Exemplo n.º 1
0
    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
Exemplo n.º 2
0
    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
Exemplo n.º 3
0
    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
Exemplo n.º 4
0
    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