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(block_store_service.BlockStoreService(version="v2")) self._add_service(compute_service.ComputeService(version="v2")) self._add_service(cts_service.CTSService(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(kms_service.KMSService(version="v1")) self._add_service(maas_service.MaaSService(version="v1")) self._add_service(network_service.NetworkService(version="v2.0")) self._add_service( orchestration_service.OrchestrationService(version="v1")) self._add_service(smn_service.SMNService(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")) self._add_service(evs_service.EvsServiceV2_1(version='v2.1')) self._add_service(evs_service.EvsService(version='v2')) self._add_service(ecs_service.EcsService(version='v1')) self._add_service(ecs_service.EcsServiceV1_1(version='v1.1')) self._add_service(vpc_service.VpcService(version='v2.0')) self._add_service(bms_service.BmsService(version='v1')) self._add_service(lb_service.LoadBalancerService(version='v1')) # not support below service # self._add_service(message_service.MessageService(version="v1")) # self._add_service(cluster_service.ClusterService(version="v1")) # self._add_service(database_service.DatabaseService(version="v1")) # self._add_service(alarm_service.AlarmService(version="v2")) # self._add_service(bare_metal_service.BareMetalService(version="v1")) # self._add_service(key_manager_service.KeyManagerService(version="v1")) # self._add_service( # object_store_service.ObjectStoreService(version="v1")) self._add_service(rds_service.RDSService(version="v1")) self._add_service(cdn_service.CDNService(version='v1')) # self._add_service(rds_os_service.RDSService(version="v1")) # self._add_service(telemetry_service.TelemetryService(version="v2")) # self._add_service(workflow_service.WorkflowService(version="v2")) if plugins: for plugin in plugins: self._load_plugin(plugin) self.service_keys = sorted(self._services.keys())
def test_service(self): sot = cts_service.CTSService() self.assertEqual('cts', sot.service_type) self.assertEqual('public', sot.interface) self.assertIsNone(sot.region) self.assertIsNone(sot.service_name) self.assertEqual(2, len(sot.valid_versions)) self.assertEqual('v1', sot.valid_versions[0].module) self.assertEqual('v1', sot.valid_versions[0].path) self.assertTrue(sot.requires_project_id)
class Tracker(ctsresource.Resource): base_path = '/tracker' service = cts_service.CTSService() _query_mapping = resource.QueryParameters('tracker_name') # capabilities allow_create = True allow_update = True # Properties #: tracker name tracker_name = resource.Body('tracker_name', alternate_id=True) #: bucket name bucket_name = resource.Body('bucket_name') #: file prefix name in a bucket file_prefix_name = resource.Body('file_prefix_name') #: Status of the tracker status = resource.Body('status') #: Detail of the tracker, only validate if exception happens detail = resource.Body('detail') @classmethod def list(cls, session, paginated=False, **params): query_params = cls._query_mapping._transpose(params) uri = cls.base_path % params endpoint_override = cls.service.get_endpoint_override() resp = session.get(uri, endpoint_filter=cls.service, endpoint_override=endpoint_override, headers={ "Accept": "application/json", "Content-type": "application/json" }, params=query_params) resp = resp.json() return cls.existing(**resp) def delete(self, session): params = {'tracker_name': self.tracker_name} endpoint_override = self.service.get_endpoint_override() session.delete(self.base_path, endpoint_filter=self.service, endpoint_override=endpoint_override, headers={ "Accept": "", "Content-type": "application/json" }, params=params)
class Trace(ctsresource.Resource): base_path = '/%(tracker_name)s/trace' resources_key = 'traces' service = cts_service.CTSService() allow_list = True _query_mapping = resource.QueryParameters('service_type', 'resource_type', 'resource_id', 'resource_name' 'trace_name', 'limit', 'next', 'from', 'to', 'trace_id', 'trace_rating', 'user') # Properties #: trace resource id resource_id = resource.Body('resource_id') #: name of the trace trace_name = resource.Body('trace_name') #: rating of the trace, normal, warning, incident trace_rating = resource.Body('trace_rating') #: trace source type trace_type = resource.Body('trace_type') #: trace request content request = resource.Body('request') #: trace response content response = resource.Body('response') #: trace http return code code = resource.Body('code') #: API version api_version = resource.Body('api_version') #: remark of the trace message = resource.Body('message') #: record time stampt #: *Type: int* record_time = resource.Body('record_time', type=int) #: metadata of the trace #: *Type: dict* meta_data = resource.Body('meta_data', type=dict) #: trace id trace_id = resource.Body('trace_id') #: trace event time #: *Type: int* time = resource.Body('time', type=int) #: trace user information user = resource.Body('user') #: trace service type service_type = resource.Body('service_type') #: trace resource type resource_type = resource.Body('resource_type') #: user ip of the trace source_ip = resource.Body('source_ip') #: resource name of the trace resource_name = resource.Body('resource_name')
class TraceV2(ctsresource.Resource): # Compared with v1.0, v2.0 change trace_rating to trace_status in request, # user/request/resource to dict in the response # FIXME: the doc says, v2.0 changes resource to dict, but the api response # example shows response changes to dict. base_path = '/%(tracker_name)s/trace' resources_key = 'traces' service = cts_service.CTSService() allow_list = True _query_mapping = resource.QueryParameters('service_type', 'resource_type', 'resource_id', 'resource_name' 'trace_name', 'limit', 'next', 'from', 'to', 'trace_id', 'trace_status', 'user') # Properties #: trace resource id resource_id = resource.Body('resource_id') #: name of the trace trace_name = resource.Body('trace_name') #: rating of the trace, normal, warning, incident trace_status = resource.Body('trace_status') #: trace source type trace_type = resource.Body('trace_type') #: trace request content #: *Type: dict* request = resource.Body('request', type=dict) #: trace response content #: *Type: dict* response = resource.Body('response', type=dict) #: trace http return code code = resource.Body('code') #: API version api_version = resource.Body('api_version') #: remark of the trace message = resource.Body('message') #: record time stampt #: *Type: int* record_time = resource.Body('record_time', type=int) #: metadata of the trace #: *Type: dict* meta_data = resource.Body('meta_data', type=dict) #: trace id trace_id = resource.Body('trace_id') #: trace event time #: *Type: int* time = resource.Body('time', type=int) #: trace user information #: *Type: dict* user = resource.Body('user', type=dict) #: trace service type service_type = resource.Body('service_type') #: trace resource type resource_type = resource.Body('resource_type') #: user ip of the trace source_ip = resource.Body('source_ip') #: resource name of the trace resource_name = resource.Body('resource_name')