def __init__(self, vm_spec): """Initialize a CloudStack virtual machine. Args: vm_spec: virtual_machine.BaseVirtualMachineSpec object of the vm. """ super(CloudStackVirtualMachine, self).__init__(vm_spec) self.network = cloudstack_network.CloudStackNetwork.GetNetwork(self) self.cs = util.CsClient(FLAGS.CS_API_URL, FLAGS.CS_API_KEY, FLAGS.CS_API_SECRET) self.project_id = None if FLAGS.project: project = self.cs.get_project(FLAGS.project) assert project, "Project not found" self.project_id = project['id'] zone = self.cs.get_zone(self.zone) assert zone, "Zone not found" self.zone_id = zone['id'] self.user_name = self.DEFAULT_USER_NAME self.image = self.image or self.DEFAULT_IMAGE self.disk_counter = 0
def __init__(self, spec): super(CloudStackNetwork, self).__init__(spec) self.cs = util.CsClient(FLAGS.CS_API_URL, FLAGS.CS_API_KEY, FLAGS.CS_API_SECRET) self.project_id = None self.network_id = None
def __init__(self, disk_spec, name, zone_id, project_id=None): super(CloudStackDisk, self).__init__(disk_spec) self.cs = util.CsClient(FLAGS.CS_API_URL, FLAGS.CS_API_KEY, FLAGS.CS_API_SECRET) self.attached_vm_name = None self.attached_vm_id = None self.name = name self.zone_id = zone_id self.project_id = project_id self.disk_offering_id = self._GetBestOfferingId(self.disk_size) assert self.disk_offering_id, "Unable get disk offering of given size" if disk_spec.disk_type: logging.warn("Cloudstack does not support disk types")