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())
class Servers(resource2.Resource): base_path = "/cloudservers" resource_key = "server" resources_key = 'servers' service = ecs_service.EcsServiceV1_1() allow_create = True # string type ECS server name name = resource2.Body('name') # availability zone name availability_zone = resource2.Body('availability_zone') # server size flavorRef = resource2.Body('flavorRef') # image id for create ecs server imageRef = resource2.Body('imageRef') # system volume root_volume = resource2.Body('root_volume', type=dict) # data volume data_volumes = resource2.Body('data_volumes', type=list) # file inspect for personal personality = resource2.Body('personality', type=list) # vpc id used for ecs server vpcid = resource2.Body('vpcid') # user data inspect to create ecs server user_data = resource2.Body('user_data') # project id project_id = resource2.Body('tenant_id') # subnet id used for ecs server nics = resource2.Body('nics') # eip configed for ecs server publicip = resource2.Body('publicip') # use Cloud-init or Cloudbase-init to set user password admin_password = resource2.Body('adminPass') # whether server name will be renamed isAutoRename = resource2.Body('isAutoRename') # ssh key name to login ecs server key_name = resource2.Body('key_name') # created server number count = resource2.Body('count', type=int) # metadata for ces server metadata = resource2.Body('metadata', type=dict) # extend server info extendparam = resource2.Body('extendparam', type=dict) # security groups id security_groups = resource2.Body('security_groups', type=list) # info for schedule server based host scheduler_hints = resource2.Body('os:scheduler_hints', type=dict) # tags for identify ecs servers tags = resource2.Body('tags') # server_tags server_tags = resource2.Body("server_tags", type=list) # task id job_id = resource2.Body('job_id') server_ids = resource2.Body('serverIds', type=list) # order id order_id = resource2.Body('order_id') error = resource2.Body('error') message = resource2.Body('message') code = resource2.Body('code')
def test_service(self): sot = ecs_service.EcsServiceV1_1() self.assertEqual('ecsv1.1', 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)
class ResizeServer(resource2.Resource): base_path = "/cloudservers/%(server_id)s/resize" resource_key = "resize" service = ecs_service.EcsServiceV1_1() allow_create = True server_id = resource2.URI('server_id') # extend server info extendparam = resource2.Body('extendparam', type=dict) # optional only support dedicated type host dedicated_host_id = resource2.Body('dedicated_host_id') # server size flavorRef = resource2.Body('flavorRef') # task id job_id = resource2.Body('job_id') # order id order_id = resource2.Body('order_id') error = resource2.Body('error') message = resource2.Body('message') code = resource2.Body('code')
class Servers(resource2.Resource): base_path = "/cloudservers" resources_key = 'servers' service = ecs_service.EcsServiceV1_1() allow_create = True # server detail server = resource2.Body('server', type=dict) # is dry run True or False dry_run = resource2.Body('dry_run') # string type ECS server name name = resource2.Body('name') # availability zone name availability_zone = resource2.Body('availability_zone') # server size flavorRef = resource2.Body('flavorRef') # image id for create ecs server imageRef = resource2.Body('imageRef') # system volume root_volume = resource2.Body('root_volume', type=dict) # data volume data_volumes = resource2.Body('data_volumes', type=list) # file inspect for personal personality = resource2.Body('personality', type=list) # vpc id used for ecs server vpcid = resource2.Body('vpcid') # user data inspect to create ecs server user_data = resource2.Body('user_data') # project id project_id = resource2.Body('tenant_id') # subnet id used for ecs server nics = resource2.Body('nics') # eip configed for ecs server publicip = resource2.Body('publicip') # use Cloud-init or Cloudbase-init to set user password admin_password = resource2.Body('adminPass') # whether server name will be renamed isAutoRename = resource2.Body('isAutoRename') # ssh key name to login ecs server key_name = resource2.Body('key_name') # created server number count = resource2.Body('count', type=int) # metadata for ces server metadata = resource2.Body('metadata', type=dict) # extend server info extendparam = resource2.Body('extendparam', type=dict) # security groups id security_groups = resource2.Body('security_groups', type=list) # info for schedule server based host scheduler_hints = resource2.Body('os:scheduler_hints', type=dict) # tags for identify ecs servers tags = resource2.Body('tags') # server_tags server_tags = resource2.Body("server_tags", type=list) # task id job_id = resource2.Body('job_id') server_ids = resource2.Body('serverIds', type=list) # order id order_id = resource2.Body('order_id') error = resource2.Body('error') message = resource2.Body('message') code = resource2.Body('code') def create(self, session, headers=None, prepend_key=True): endpoint_override = self.service.get_endpoint_override() service = self.get_service_filter(self, session) request = self._prepare_request(requires_id=False, prepend_key=prepend_key) if headers: request.headers.update(headers) try: response = session.post(request.uri, endpoint_filter=self.service, endpoint_override=endpoint_override, json=request.body, headers=request.headers, microversion=service.microversion) if self.dry_run: return "dry_run finish" self._translate_response(response) return self except Exception as e: return e