Example #1
0
    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())
Example #2
0
 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)
Example #3
0
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')
Example #4
0
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