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 = maas_service.MaaSService() self.assertEqual('maas', sot.service_type) self.assertEqual('public', sot.interface) 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) self.assertTrue(sot.requires_project_id)
class Version(resource.Resource): resouces_key = "versions" base_path = '/objectstorage/version' service = maas_service.MaaSService() # capabilities allow_list = True # Properties links = resource.Body('links') version = resource.Body('version') status = resource.Body('current') updated = resource.Body('updated')
class Task(_maasresource.Resource): base_path = '/objectstorage/task' service = maas_service.MaaSService() # capabilities allow_create = True allow_list = True allow_get = True allow_delete = True _query_mapping = resource.QueryParameters('start', 'limit', 'state') # Properties #: Task Id #: *Type: int* id = resource.Body('id', type=int) #: Task name name = resource.Body('name') #: Source node information #: *Type: dict* src_node = resource.Body('src_node', type=dict) #: Dest node information #: *Type: dict* dst_node = resource.Body('dst_node', type=dict) #: Thread number #: *Type: int* thread_num = resource.Body('thread_num', type=int) #: Task status, value could be 0-5 #: *Type: int* status = resource.Body('status', type=int) #: Task migrate progress #: *Type: float* progress = resource.Body('progress', type=float) #: Migrate speed, byte/s #: *Type: int* migrate_speed = resource.Body('migrate_speed', type=int) #: Enable KMS #: *Type: bool* enableKMS = resource.Body('enableKMS', type=bool) #: Taskname task_name = resource.Body('task_name') #: Task description, empty if user does not set it description = resource.Body('description') #: Error reason #: *Type: dict* error_reason = resource.Body('error_reason', type=dict) #: Total size of the task #: *Type: int* total_size = resource.Body('total_size', type=int) #: Complete size of the task #: *Type: int* complete_size = resource.Body('complete_size', type=int) #: Task start time #: *Type: int* start_time = resource.Body('start_time', type=int) #: Task left time #: *Type: int* left_time = resource.Body('left_time', type=int) #: Task total time #: *Type: int* total_time = resource.Body('total_time', type=int) #: Task migration success object number #: *Type: int* success_num = resource.Body('success_num', type=int) #: Task migration failed object number #: *Type: int* fail_num = resource.Body('fail_num', type=int) #: Task migration total object number #: *Type: int* total_num = resource.Body('total_num', type=int) #: SMN information #: *Type: dict* smnInfo = resource.Body('smnInfo', type=dict) def _action(self, session, **kwargs): endpoint_override = self.service.get_endpoint_override() url = utils.urljoin(self.base_path, self._get_id(self)) request = self._prepare_request(prepend_key=True) resp = session.put(url, endpoint_filter=self.service, endpoint_override=endpoint_override, json=kwargs, headers=request.headers) if resp is not None and resp.status_code == 200: return True return False def start(self, session, source_ak, source_sk, target_ak, target_sk): return self._action(session, operation='start', source_ak=source_ak, source_sk=source_sk, target_ak=target_ak, target_sk=target_sk) def stop(self, session): return self._action(session, operation='stop') @classmethod def task_count(cls, session, state): uri = cls.base_path query_params = {'totalcount': 'true'} if state is not None: query_params.update({'state': state}) 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 resp.get('taskcount') # overwrite resource2.py get to add request.headers # if all maas API requres get to have headers move this # to maasresrouce.py def get(self, session, requires_id=True): request = self._prepare_request(requires_id=requires_id) endpoint_override = self.service.get_endpoint_override() response = session.get(request.uri, endpoint_filter=self.service, headers=request.headers, endpoint_override=endpoint_override) self._translate_response(response) return self # overwrite resource2.py delete to add request.headers # if all maas API requres delete to have headers move this # to maasresrouce.py def delete(self, session): request = self._prepare_request() endpoint_override = self.service.get_endpoint_override() response = session.delete(request.uri, endpoint_filter=self.service, endpoint_override=endpoint_override, headers=request.headers) self._translate_response(response, has_body=False) return self