Exemple #1
0
        def _create_resources():

            db_info = DBInstance.create(name=name, flavor_id=flavor_id,
                                        tenant_id=context.tenant,
                                        volume_size=volume_size,
                                        service_type=service_type,
                                        task_status=InstanceTasks.BUILDING)
            LOG.debug(_("Tenant %(tenant)s created new "
                        "Trove instance %(db)s...") %
                      {'tenant': context.tenant, 'db': db_info.id})

            service_status = InstanceServiceStatus.create(
                instance_id=db_info.id,
                status=rd_instance.ServiceStatuses.NEW)

            if CONF.trove_dns_support:
                dns_client = create_dns_client(context)
                hostname = dns_client.determine_hostname(db_info.id)
                db_info.hostname = hostname
                db_info.save()

            root_password = None
            if CONF.root_on_create and not backup_id:
                root_password = uuidutils.generate_uuid()

            task_api.API(context).create_instance(db_info.id, name, flavor,
                                                  image_id, databases, users,
                                                  service_type, volume_size,
                                                  backup_id,
                                                  availability_zone,
                                                  root_password)

            return SimpleInstance(context, db_info, service_status,
                                  root_password)
Exemple #2
0
def update_datastore_version(datastore, name, image_id, packages, active):
    db_api.configure_db(CONF)
    datastore = Datastore.load(datastore)
    try:
        version = DBDatastoreVersion.find_by(name=name)
    except exception.ModelNotFoundError:
        # Create a new one
        version = DBDatastoreVersion()
        version.id = uuidutils.generate_uuid()
        version.name = name
    version.datastore_id = datastore.id
    version.image_id = image_id
    version.packages = packages
    version.active = active
    db_api.save(version)
Exemple #3
0
def update_datastore(name, manager, default_version):
    db_api.configure_db(CONF)
    if default_version:
        version = DatastoreVersion.load(default_version)
        if not version.active:
            raise exception.DatastoreVersionInactive(version=
                                                     version.name)
    try:
        datastore = DBDatastore.find_by(name=name)
    except exception.ModelNotFoundError:
        # Create a new one
        datastore = DBDatastore()
        datastore.id = uuidutils.generate_uuid()
        datastore.name = name
    datastore.manager = manager
    if default_version:
        datastore.default_version_id = version.id
    db_api.save(datastore)
Exemple #4
0
def generate_request_id():
    return 'req-%s' % uuidutils.generate_uuid()
Exemple #5
0
        def _create_resources():
            security_groups = None

            if backup_id is not None:
                backup_info = Backup.get_by_id(context, backup_id)
                if backup_info.is_running:
                    raise exception.BackupNotCompleteError(backup_id=backup_id)

                location = backup_info.location
                LOG.info(_("Checking if backup exist in '%s'") % location)
                if not Backup.check_object_exist(context, location):
                    raise exception.BackupFileNotFound(location=location)

            db_info = DBInstance.create(
                name=name,
                flavor_id=flavor_id,
                tenant_id=context.tenant,
                volume_size=volume_size,
                service_type=service_type,
                task_status=InstanceTasks.BUILDING,
            )
            LOG.debug(
                _("Tenant %(tenant)s created new " "Trove instance %(db)s...")
                % {"tenant": context.tenant, "db": db_info.id}
            )

            service_status = InstanceServiceStatus.create(
                instance_id=db_info.id, status=rd_instance.ServiceStatuses.NEW
            )

            if CONF.trove_dns_support:
                dns_client = create_dns_client(context)
                hostname = dns_client.determine_hostname(db_info.id)
                db_info.hostname = hostname
                db_info.save()

            if CONF.trove_security_groups_support:
                security_group = SecurityGroup.create_for_instance(db_info.id, context)
                if CONF.trove_security_groups_rules_support:
                    SecurityGroupRule.create_sec_group_rule(
                        security_group,
                        CONF.trove_security_group_rule_protocol,
                        CONF.trove_security_group_rule_port,
                        CONF.trove_security_group_rule_port,
                        CONF.trove_security_group_rule_cidr,
                        context,
                    )
                security_groups = [security_group["name"]]

            root_password = None
            if CONF.root_on_create and not backup_id:
                root_password = uuidutils.generate_uuid()

            task_api.API(context).create_instance(
                db_info.id,
                name,
                flavor,
                image_id,
                databases,
                users,
                service_type,
                volume_size,
                security_groups,
                backup_id,
                availability_zone,
                root_password,
            )

            return SimpleInstance(context, db_info, service_status, root_password)