def create_instance(self, **kwargs): # do not provide key pair as boot argument, it will be updated with the # low level SQL update. See # `cloudferrylib.os.actions.transport_compute_resources` for more # information ignored_instance_args = ['key_name', 'user_id'] boot_args = {k: v for k, v in kwargs.items() if k not in ignored_instance_args} created_instance = self.nova_client.servers.create(**boot_args) instances.update_user_ids_for_instance(self.mysql_connector, created_instance.id, kwargs['user_id']) return created_instance.id
def create_instance(self, nclient, **kwargs): # do not provide key pair as boot argument, it will be updated with the # low level SQL update. See # `cloudferrylib.os.actions.transport_compute_resources` for more # information ignored_instance_args = ['key_name', 'user_id'] boot_args = { k: v for k, v in kwargs.items() if k not in ignored_instance_args } created_instance = nclient.servers.create(**boot_args) instances.update_user_ids_for_instance(self.mysql_connector, created_instance.id, kwargs['user_id']) return created_instance.id
def create_instance(self, nclient, **kwargs): # do not provide key pair as boot argument, it will be updated with the # low level SQL update. See # `cloudferrylib.os.actions.transport_compute_resources` for more # information ignored_instance_args = ['key_name', 'user_id'] boot_args = {k: v for k, v in kwargs.items() if k not in ignored_instance_args} LOG.debug("Creating instance with args '%s'", pprint.pformat(boot_args)) created_instance = nclient.servers.create(**boot_args) curr_user_id = created_instance.user_id instance_user_id = kwargs['user_id'] LOG.debug("Current user id = '%s' for instance '%s'", curr_user_id, created_instance.id) if curr_user_id != instance_user_id: if self.config.migrate.keep_usage_quotas_inst: LOG.debug("Fixing usage quota for user '%s' on '%s'", curr_user_id, instance_user_id) db = self.mysql_connector flavor_obj = nclient.flavors.get(boot_args['flavor']) flavor = { 'vcpus': flavor_obj.vcpus, 'ram': flavor_obj.ram, } tenant_id = created_instance.tenant_id UsageQuotaCompute.change_usage_quota_instance(db, flavor, curr_user_id, instance_user_id, tenant_id) LOG.debug("Replacing current user on '%s'", instance_user_id) instances.update_user_ids_for_instance(self.mysql_connector, created_instance.id, instance_user_id) LOG.debug("Created instance '%s'", created_instance.id) return created_instance.id
def create_instance(self, nclient, **kwargs): # do not provide key pair as boot argument, it will be updated with the # low level SQL update. See # `cloudferrylib.os.actions.transport_compute_resources` for more # information ignored_instance_args = ['key_name', 'user_id'] boot_args = { k: v for k, v in kwargs.items() if k not in ignored_instance_args } LOG.debug("Creating instance with args '%s'", pprint.pformat(boot_args)) created_instance = nclient.servers.create(**boot_args) curr_user_id = created_instance.user_id instance_user_id = kwargs['user_id'] LOG.debug("Current user id = '%s' for instance '%s'", curr_user_id, created_instance.id) if curr_user_id != instance_user_id: if self.config.migrate.keep_usage_quotas_inst: LOG.debug("Fixing usage quota for user '%s' on '%s'", curr_user_id, instance_user_id) db = self.mysql_connector flavor_obj = nclient.flavors.get(boot_args['flavor']) flavor = { 'vcpus': flavor_obj.vcpus, 'ram': flavor_obj.ram, } tenant_id = created_instance.tenant_id UsageQuotaCompute.change_usage_quota_instance( db, flavor, curr_user_id, instance_user_id, tenant_id) LOG.debug("Replacing current user on '%s'", instance_user_id) instances.update_user_ids_for_instance(self.mysql_connector, created_instance.id, instance_user_id) LOG.debug("Created instance '%s'", created_instance.id) return created_instance.id