Compare commits
	
		
			3 Commits
		
	
	
		
			3fb8254c15
			...
			mock-hub-c
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 6dbe2b5c86 | |||
| f7461d5a28 | |||
| 9f23638959 | 
@ -17,6 +17,10 @@ from capsulflask.http_client import HTTPResult
 | 
			
		||||
from capsulflask.shared import VirtualizationInterface, VirtualMachine, OnlineHost, validate_capsul_id, my_exec_info_message
 | 
			
		||||
 | 
			
		||||
class MockHub(VirtualizationInterface):
 | 
			
		||||
  def __init__(self):
 | 
			
		||||
    self.default_network = "public1"
 | 
			
		||||
    self.default_ipv4 = "1.1.1.1"
 | 
			
		||||
 | 
			
		||||
  def capacity_avaliable(self, additional_ram_bytes):
 | 
			
		||||
    return True
 | 
			
		||||
 | 
			
		||||
@ -29,9 +33,9 @@ class MockHub(VirtualizationInterface):
 | 
			
		||||
        {"key_type":"RSA", "content":"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCvotgzgEP65JUQ8S8OoNKy1uEEPEAcFetSp7QpONe6hj4wPgyFNgVtdoWdNcU19dX3hpdse0G8OlaMUTnNVuRlbIZXuifXQ2jTtCFUA2mmJ5bF+XjGm3TXKMNGh9PN+wEPUeWd14vZL+QPUMev5LmA8cawPiU5+vVMLid93HRBj118aCJFQxLgrdP48VPfKHFRfCR6TIjg1ii3dH4acdJAvlmJ3GFB6ICT42EmBqskz2MPe0rIFxH8YohCBbAbrbWYcptHt4e48h4UdpZdYOhEdv89GrT8BF2C5cbQ5i9qVpI57bXKrj8hPZU5of48UHLSpXG8mbH0YDiOQOfKX/Mt", "sha256":"ghee6KzRnBJhND2kEUZSaouk7CD6o6z2aAc8GPkV+GQ"},
 | 
			
		||||
        {"key_type":"ECDSA", "content":"ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBLLgOoATz9R4aS2kk7vWoxX+lshK63t9+5BIHdzZeFE1o+shlcf0Wji8cN/L1+m3bi0uSETZDOAWMP3rHLJj9Hk=", "sha256":"aCYG1aD8cv/TjzJL0bi9jdabMGksdkfa7R8dCGm1yYs"}
 | 
			
		||||
      ]""")
 | 
			
		||||
      return VirtualMachine(id, current_app.config["SPOKE_HOST_ID"], ipv4="1.1.1.1", ssh_host_keys=ssh_host_keys)
 | 
			
		||||
      return VirtualMachine(id, current_app.config["SPOKE_HOST_ID"], ipv4=self.default_ipv4, ssh_host_keys=ssh_host_keys)
 | 
			
		||||
 | 
			
		||||
    return VirtualMachine(id, current_app.config["SPOKE_HOST_ID"], ipv4="1.1.1.1")
 | 
			
		||||
    return VirtualMachine(id, current_app.config["SPOKE_HOST_ID"], ipv4=self.default_ipv4)
 | 
			
		||||
 | 
			
		||||
  def list_ids(self) -> list:
 | 
			
		||||
    return get_model().all_non_deleted_vm_ids()
 | 
			
		||||
@ -40,6 +44,16 @@ class MockHub(VirtualizationInterface):
 | 
			
		||||
    validate_capsul_id(id)
 | 
			
		||||
    current_app.logger.info(f"mock create: {id} for {email}")
 | 
			
		||||
    sleep(1)
 | 
			
		||||
    get_model().create_vm(
 | 
			
		||||
      email=email, 
 | 
			
		||||
      id=id, 
 | 
			
		||||
      size=size, 
 | 
			
		||||
      os=os,
 | 
			
		||||
      host=current_app.config["SPOKE_HOST_ID"],
 | 
			
		||||
      network_name=self.default_network,
 | 
			
		||||
      public_ipv4=self.default_ipv4,
 | 
			
		||||
      ssh_authorized_keys=list(map(lambda x: x["name"], ssh_authorized_keys)),
 | 
			
		||||
    )
 | 
			
		||||
 | 
			
		||||
  def destroy(self, email: str, id: str):
 | 
			
		||||
    current_app.logger.info(f"mock destroy: {id} for {email}")
 | 
			
		||||
@ -49,7 +63,6 @@ class MockHub(VirtualizationInterface):
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class CapsulFlaskHub(VirtualizationInterface):
 | 
			
		||||
 | 
			
		||||
  def synchronous_operation(self, hosts: List[OnlineHost], email: str, payload: str) -> List[HTTPResult]:
 | 
			
		||||
    return self.generic_operation(hosts, email, payload, True)[1]
 | 
			
		||||
  
 | 
			
		||||
@ -262,4 +275,3 @@ class CapsulFlaskHub(VirtualizationInterface):
 | 
			
		||||
 | 
			
		||||
    if not result_status == "success":
 | 
			
		||||
      raise ValueError(f"""failed to {command} vm "{id}" on host "{host.id}" for {email}: {result_json_string}""")
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user