def __init__(self, plugins=None): """User preference for each service. :param plugins: List of entry point namespaces to load. Create a new :class:`~openstack.profile.Profile` object with no preferences defined, but knowledge of the services. Services are identified by their service type, e.g.: 'identity', 'compute', etc. """ self._services = {} self._add_service(baremetal_service.BaremetalService(version="v1")) self._add_service( block_storage_service.BlockStorageService(version="v2")) self._add_service(clustering_service.ClusteringService(version="v1")) self._add_service(compute_service.ComputeService(version="v2")) self._add_service(database_service.DatabaseService(version="v1")) self._add_service(identity_service.IdentityService(version="v3")) self._add_service(image_service.ImageService(version="v2")) self._add_service(key_manager_service.KeyManagerService(version="v1")) self._add_service(lb_service.LoadBalancerService(version="v2")) self._add_service(message_service.MessageService(version="v1")) self._add_service(network_service.NetworkService(version="v2")) self._add_service( object_store_service.ObjectStoreService(version="v1")) self._add_service( orchestration_service.OrchestrationService(version="v1")) self._add_service(workflow_service.WorkflowService(version="v2")) self.service_keys = sorted(self._services.keys())
def __init__(self, plugins=None): """User preference for each service. :param list plugins: List of entry point namespaces to load. Create a new :class:`~openstack.profile.Profile` object with no preferences defined, but knowledge of the services. Services are identified by their service type, e.g.: 'identity', 'compute', etc. """ self._preferences = {} self._services = {} self._add_service(cluster_service.ClusterService()) self._add_service(compute_service.ComputeService()) self._add_service(database_service.DatabaseService()) self._add_service(identity_service.IdentityService()) self._add_service(image_service.ImageService()) self._add_service(metric_service.MetricService()) self._add_service(network_service.NetworkService()) self._add_service(object_store_service.ObjectStoreService()) self._add_service(orchestration_service.OrchestrationService()) self._add_service(key_management_service.KeyManagementService()) self._add_service(telemetry_service.TelemetryService()) self._add_service(block_store_service.BlockStoreService()) self._add_service(message_service.MessageService()) if plugins: for plugin in plugins: self._load_plugin(plugin) self.service_names = sorted(self._services.keys())
class User(resource.Resource): id_attribute = 'name' resource_key = 'user' resources_key = 'users' base_path = '/instances/%(instance_id)s/users' service = database_service.DatabaseService() # capabilities allow_create = True allow_delete = True allow_list = True # path args instance_id = resource.prop('instance_id') # Properties #: Databases the user has access to databases = resource.prop('databases') #: The name of the user name = resource.prop('name') #: The password of the user password = resource.prop('password') @classmethod def create_by_id(cls, session, attrs, r_id=None, path_args=None): url = cls._get_url(path_args) # Create expects an array of users body = {'users': [attrs]} resp = session.post(url, service=cls.service, json=body).body return resp
class User(resource.Resource): resource_key = 'user' resources_key = 'users' base_path = '/instances/%(instance_id)s/users' service = database_service.DatabaseService() # capabilities allow_create = True allow_delete = True allow_list = True instance_id = resource.URI('instance_id') # Properties #: Databases the user has access to databases = resource.Body('databases') #: The name of the user name = resource.Body('name', alternate_id=True) #: The password of the user password = resource.Body('password') def _prepare_request(self, requires_id=True, prepend_key=True): """Prepare a request for the database service's create call User.create calls require the resources_key. The base_prepare_request would insert the resource_key (singular) """ body = {self.resources_key: self._body.dirty} uri = self.base_path % self._uri.attributes uri = utils.urljoin(uri, self.id) return resource._Request(uri, body, None)
def test_service(self): sot = database_service.DatabaseService() self.assertEqual('database', sot.service_type) self.assertEqual('public', sot.visibility) self.assertIsNone(sot.region) self.assertIsNone(sot.service_name) self.assertEqual(1, len(sot.valid_versions)) self.assertEqual('v1', sot.valid_versions[0].module) self.assertEqual('v1', sot.valid_versions[0].path)
def __init__(self): """Preferences for each service. Create a new :class:`~openstack.profile.Profile` object with no preferences defined, but knowledge of the services. Services are identified by their service type, e.g.: 'identity', 'compute', etc. """ self._preferences = {} self._services = {} """ NOTE(thowe): We should probably do something more clever here rather than brute force create all the services. Maybe use entry points or something, but I'd like to leave that work for another commit. """ serv = cluster_service.ClusterService() serv.set_visibility(None) self._services[serv.service_type] = serv serv = compute_service.ComputeService() serv.set_visibility(None) self._services[serv.service_type] = serv serv = database_service.DatabaseService() serv.set_visibility(None) self._services[serv.service_type] = serv serv = identity_service.IdentityService() serv.set_visibility(None) self._services[serv.service_type] = serv serv = image_service.ImageService() serv.set_visibility(None) self._services[serv.service_type] = serv serv = metric_service.MetricService() serv.set_visibility(None) self._services[serv.service_type] = serv serv = network_service.NetworkService() serv.set_visibility(None) self._services[serv.service_type] = serv serv = object_store_service.ObjectStoreService() serv.set_visibility(None) self._services[serv.service_type] = serv serv = orchestration_service.OrchestrationService() serv.set_visibility(None) self._services[serv.service_type] = serv serv = keystore_service.KeystoreService() serv.set_visibility(None) self._services[serv.service_type] = serv serv = telemetry_service.TelemetryService() serv.set_visibility(None) self._services[serv.service_type] = serv serv = block_store_service.BlockStoreService() serv.set_visibility(None) self._services[serv.service_type] = serv serv = message_service.MessageService() serv.set_visibility(None) self._services[serv.service_type] = serv self.service_names = sorted(self._services.keys())
def __init__(self, plugins=None): """User preference for each service. :param plugins: List of entry point namespaces to load. Create a new :class:`~openstack.profile.Profile` object with no preferences defined, but knowledge of the services. Services are identified by their service type, e.g.: 'identity', 'compute', etc. """ self._services = {} self._add_service(anti_ddos_service.AntiDDosService(version="v1")) self._add_service(alarm_service.AlarmService(version="v2")) self._add_service(bare_metal_service.BareMetalService(version="v1")) self._add_service(block_store_service.BlockStoreService(version="v2")) self._add_service(cluster_service.ClusterService(version="v1")) self._add_service(compute_service.ComputeService(version="v2")) self._add_service(cts_service.CTSService(version="v1")) self._add_service(database_service.DatabaseService(version="v1")) self._add_service(dms_service.DMSService(version="v1")) self._add_service(identity_service.IdentityService(version="v3")) self._add_service(image_service.ImageService(version="v2")) self._add_service(key_manager_service.KeyManagerService(version="v1")) self._add_service(kms_service.KMSService(version="v1")) self._add_service(lb_service.LoadBalancerService(version="v1")) self._add_service(maas_service.MaaSService(version="v1")) self._add_service(message_service.MessageService(version="v1")) self._add_service(network_service.NetworkService(version="v2")) self._add_service( object_store_service.ObjectStoreService(version="v1")) self._add_service( orchestration_service.OrchestrationService(version="v1")) self._add_service(rds_service.RDSService(version="v1")) self._add_service(rds_os_service.RDSService(version="v1")) self._add_service(smn_service.SMNService(version="v2")) self._add_service(telemetry_service.TelemetryService(version="v2")) self._add_service(workflow_service.WorkflowService(version="v2")) # QianBiao.NG HuaWei Services self._add_service(dns_service.DNSService(version="v2")) self._add_service(cloud_eye_service.CloudEyeService(version="v1")) ass = auto_scaling_service.AutoScalingService(version="v1") self._add_service(ass) vbs_v2 = volume_backup_service.VolumeBackupService(version="v2") self._add_service(vbs_v2) self._add_service(map_reduce_service.MapReduceService(version="v1")) if plugins: for plugin in plugins: self._load_plugin(plugin) self.service_keys = sorted(self._services.keys())
class Flavor(resource.Resource): resource_key = 'flavor' resources_key = 'flavors' base_path = '/flavors' service = database_service.DatabaseService() # capabilities allow_list = True allow_retrieve = True # Properties links = resource.prop('links') name = resource.prop('name') ram = resource.prop('ram')
class Flavor(resource.Resource): resource_key = 'flavor' resources_key = 'flavors' base_path = '/flavors' service = database_service.DatabaseService() # capabilities allow_list = True allow_get = True # Properties #: Links associated with the flavor links = resource.Body('links') #: The name of the flavor name = resource.Body('name') #: The size in MB of RAM the flavor has ram = resource.Body('ram')
class Database(resource.Resource): id_attribute = 'name' resource_key = 'database' resources_key = 'databases' base_path = '/instances/%(instance_id)s/databases' service = database_service.DatabaseService() # capabilities allow_create = True allow_delete = True allow_list = True # Properties character_set = resource.prop('character_set') collate = resource.prop('collate') instance_id = resource.prop('instance_id') name = resource.prop('name')
class Instance(resource.Resource): resource_key = 'instance' resources_key = 'instances' base_path = '/instances' service = database_service.DatabaseService() # capabilities allow_create = True allow_retrieve = True allow_update = True allow_delete = True allow_list = True # Properties flavor = resource.prop('flavor') links = resource.prop('links') name = resource.prop('name') status = resource.prop('status') volume = resource.prop('volume') def enable_root_user(self, session): url = utils.urljoin(self.base_path, self.id, 'root') resp = session.post(url, service=self.service).body return resp['user'] def is_root_enabled(self, session): url = utils.urljoin(self.base_path, self.id, 'root') resp = session.get(url, service=self.service).body return resp['rootEnabled'] def restart(self, session): body = {'restart': {}} url = utils.urljoin(self.base_path, self.id, 'action') session.post(url, service=self.service, json=body) def resize(self, session, flavor_reference): body = {'resize': {'flavorRef': flavor_reference}} url = utils.urljoin(self.base_path, self.id, 'action') session.post(url, service=self.service, json=body) def resize_volume(self, session, volume_size): body = {'resize': {'volume': volume_size}} url = utils.urljoin(self.base_path, self.id, 'action') session.post(url, service=self.service, json=body)
class Database(resource.Resource): resource_key = 'database' resources_key = 'databases' base_path = '/instances/%(instance_id)s/databases' service = database_service.DatabaseService() # capabilities allow_create = True allow_delete = True allow_list = True # Properties #: Set of symbols and encodings. The default character set is ``utf8``. character_set = resource.Body('character_set') #: Set of rules for comparing characters in a character set. #: The default value for collate is ``utf8_general_ci``. collate = resource.Body('collate') #: The ID of the instance instance_id = resource.URI('instance_id') #: The name of the database name = resource.Body('name', alternate_id=True)
class User(resource.Resource): id_attribute = 'name' resource_key = 'user' resources_key = 'users' base_path = '/instances/%(instance_id)s/users' service = database_service.DatabaseService() # capabilities allow_create = True allow_delete = True allow_list = True # path args instance_id = resource.prop('instance_id') # Properties databases = resource.prop('databases') name = resource.prop('name') _password = resource.prop('password') @property def password(self): try: val = self._password except AttributeError: val = None return val @password.setter def password(self, val): self._password = val @classmethod def create_by_id(cls, session, attrs, r_id=None, path_args=None): url = cls.base_path % path_args # Create expects an array of users body = {'users': [attrs]} resp = session.post(url, service=cls.service, json=body).body return resp
class Instance(resource.Resource): resource_key = 'instance' resources_key = 'instances' base_path = '/instances' service = database_service.DatabaseService() # capabilities allow_create = True allow_retrieve = True allow_update = True allow_delete = True allow_list = True # Properties #: The flavor of the instance flavor = resource.prop('flavor') #: Links associated with the instance links = resource.prop('links') #: The name of the instance name = resource.prop('name') #: The status of the instance status = resource.prop('status') #: The size of the volume volume = resource.prop('volume') def enable_root_user(self, session): """Enable login for the root user. This operation enables login from any host for the root user and provides the user with a generated root password. :param session: The session to use for making this request. :type session: :class:`~openstack.session.Session` :returns: A dictionary with keys ``name`` and ``password`` specifying the login credentials. """ url = utils.urljoin(self.base_path, self.id, 'root') resp = session.post(url, endpoint_filter=self.service) return resp.json()['user'] def is_root_enabled(self, session): """Determine if root is enabled on an instance. Determine if root is enabled on this particular instance. :param session: The session to use for making this request. :type session: :class:`~openstack.session.Session` :returns: ``True`` if root user is enabled for a specified database instance or ``False`` otherwise. """ url = utils.urljoin(self.base_path, self.id, 'root') resp = session.get(url, endpoint_filter=self.service) return resp.json()['rootEnabled'] def restart(self, session): """Restart the database instance :returns: ``None`` """ body = {'restart': {}} url = utils.urljoin(self.base_path, self.id, 'action') session.post(url, endpoint_filter=self.service, json=body) def resize(self, session, flavor_reference): """Resize the database instance :returns: ``None`` """ body = {'resize': {'flavorRef': flavor_reference}} url = utils.urljoin(self.base_path, self.id, 'action') session.post(url, endpoint_filter=self.service, json=body) def resize_volume(self, session, volume_size): """Resize the volume attached to the instance :returns: ``None`` """ body = {'resize': {'volume': volume_size}} url = utils.urljoin(self.base_path, self.id, 'action') session.post(url, endpoint_filter=self.service, json=body)
def test_service(self): sot = database_service.DatabaseService() self.assertEqual('database', sot.service_type) self.assertEqual('public', sot.visibility) self.assertIsNone(sot.region) self.assertIsNone(sot.service_name)
class Instance(resource.Resource): resource_key = 'instance' resources_key = 'instances' base_path = '/instances' service = database_service.DatabaseService() # capabilities allow_create = True allow_fetch = True allow_commit = True allow_delete = True allow_list = True # Properties #: The flavor of the instance flavor = resource.Body('flavor') #: Links associated with the instance links = resource.Body('links') #: The name of the instance name = resource.Body('name') #: The status of the instance status = resource.Body('status') #: The size of the volume volume = resource.Body('volume') #: A dictionary of datastore details, often including 'type' and 'version' #: keys datastore = resource.Body('datastore', type=dict) #: The ID of this instance id = resource.Body('id') #: The region this instance resides in region = resource.Body('region') #: The name of the host hostname = resource.Body('hostname') #: The timestamp when this instance was created created_at = resource.Body('created') #: The timestamp when this instance was updated updated_at = resource.Body('updated') def enable_root_user(self, session): """Enable login for the root user. This operation enables login from any host for the root user and provides the user with a generated root password. :param session: The session to use for making this request. :type session: :class:`~keystoneauth1.adapter.Adapter` :returns: A dictionary with keys ``name`` and ``password`` specifying the login credentials. """ url = utils.urljoin(self.base_path, self.id, 'root') resp = session.post(url, ) return resp.json()['user'] def is_root_enabled(self, session): """Determine if root is enabled on an instance. Determine if root is enabled on this particular instance. :param session: The session to use for making this request. :type session: :class:`~keystoneauth1.adapter.Adapter` :returns: ``True`` if root user is enabled for a specified database instance or ``False`` otherwise. """ url = utils.urljoin(self.base_path, self.id, 'root') resp = session.get(url, ) return resp.json()['rootEnabled'] def restart(self, session): """Restart the database instance :returns: ``None`` """ body = {'restart': {}} url = utils.urljoin(self.base_path, self.id, 'action') session.post(url, json=body) def resize(self, session, flavor_reference): """Resize the database instance :returns: ``None`` """ body = {'resize': {'flavorRef': flavor_reference}} url = utils.urljoin(self.base_path, self.id, 'action') session.post(url, json=body) def resize_volume(self, session, volume_size): """Resize the volume attached to the instance :returns: ``None`` """ body = {'resize': {'volume': volume_size}} url = utils.urljoin(self.base_path, self.id, 'action') session.post(url, json=body)
class ServicesMixin(object): identity = identity_service.IdentityService(service_type='identity') compute = compute_service.ComputeService(service_type='compute') image = image_service.ImageService(service_type='image') load_balancer = load_balancer_service.LoadBalancerService( service_type='load-balancer') object_store = object_store_service.ObjectStoreService( service_type='object-store') clustering = clustering_service.ClusteringService( service_type='clustering') resource_cluster = clustering cluster = clustering data_processing = service_description.ServiceDescription( service_type='data-processing') baremetal = baremetal_service.BaremetalService(service_type='baremetal') bare_metal = baremetal baremetal_introspection = baremetal_introspection_service.BaremetalIntrospectionService( service_type='baremetal-introspection') key_manager = key_manager_service.KeyManagerService( service_type='key-manager') resource_optimization = service_description.ServiceDescription( service_type='resource-optimization') infra_optim = resource_optimization message = message_service.MessageService(service_type='message') messaging = message application_catalog = service_description.ServiceDescription( service_type='application-catalog') container_infrastructure_management = service_description.ServiceDescription( service_type='container-infrastructure-management') container_infrastructure = container_infrastructure_management container_infra = container_infrastructure_management search = service_description.ServiceDescription(service_type='search') dns = dns_service.DnsService(service_type='dns') workflow = workflow_service.WorkflowService(service_type='workflow') rating = service_description.ServiceDescription(service_type='rating') operator_policy = service_description.ServiceDescription( service_type='operator-policy') policy = operator_policy shared_file_system = service_description.ServiceDescription( service_type='shared-file-system') share = shared_file_system data_protection_orchestration = service_description.ServiceDescription( service_type='data-protection-orchestration') orchestration = orchestration_service.OrchestrationService( service_type='orchestration') block_storage = block_storage_service.BlockStorageService( service_type='block-storage') block_store = block_storage volume = block_storage alarm = service_description.ServiceDescription(service_type='alarm') alarming = alarm meter = service_description.ServiceDescription(service_type='meter') metering = meter telemetry = meter event = service_description.ServiceDescription(service_type='event') events = event application_deployment = service_description.ServiceDescription( service_type='application-deployment') application_deployment = application_deployment multi_region_network_automation = service_description.ServiceDescription( service_type='multi-region-network-automation') tricircle = multi_region_network_automation database = database_service.DatabaseService(service_type='database') application_container = service_description.ServiceDescription( service_type='application-container') container = application_container root_cause_analysis = service_description.ServiceDescription( service_type='root-cause-analysis') rca = root_cause_analysis nfv_orchestration = service_description.ServiceDescription( service_type='nfv-orchestration') network = network_service.NetworkService(service_type='network') backup = service_description.ServiceDescription(service_type='backup') monitoring_logging = service_description.ServiceDescription( service_type='monitoring-logging') monitoring_log_api = monitoring_logging monitoring = service_description.ServiceDescription( service_type='monitoring') monitoring_events = service_description.ServiceDescription( service_type='monitoring-events') placement = service_description.ServiceDescription( service_type='placement') instance_ha = instance_ha_service.InstanceHaService( service_type='instance-ha') ha = instance_ha reservation = service_description.ServiceDescription( service_type='reservation') function_engine = service_description.ServiceDescription( service_type='function-engine') accelerator = accelerator_service.AcceleratorService( service_type='accelerator') admin_logic = service_description.ServiceDescription( service_type='admin-logic') registration = admin_logic