コード例 #1
0
    def test_list_projects_v2(self):
        self.use_keystone_v2()
        project_one = self._get_project_data(v3=False)
        project_two = self._get_project_data(v3=False)
        project_list = [project_one, project_two]

        first_response = {'tenants': [project_one.json_response['tenant']]}
        second_response = {'tenants': [p.json_response['tenant']
                                       for p in project_list]}

        mock_uri = self.get_mock_url(
            service_type='identity', interface='admin', resource='tenants')

        self.register_uris([
            dict(method='GET', uri=mock_uri, status_code=200,
                 json=first_response),
            dict(method='GET', uri=mock_uri, status_code=200,
                 json=second_response)])

        self.assertEqual(
            self.cloud._normalize_projects(
                meta.obj_list_to_munch(first_response['tenants'])),
            self.cloud.list_projects())
        self.assertEqual(
            self.cloud._normalize_projects(
                meta.obj_list_to_munch(first_response['tenants'])),
            self.cloud.list_projects())
        # invalidate the list_projects cache
        self.cloud.list_projects.invalidate(self.cloud)
        # ensure the new values are now retrieved
        self.assertEqual(
            self.cloud._normalize_projects(
                meta.obj_list_to_munch(second_response['tenants'])),
            self.cloud.list_projects())
        self.assert_calls()
コード例 #2
0
ファイル: _utils.py プロジェクト: ctrlaltdel/neutrinator
def normalize_domains(domains):
    ret = [
        dict(
            id=domain.get('id'),
            name=domain.get('name'),
            description=domain.get('description'),
            enabled=domain.get('enabled'),
        ) for domain in domains
    ]
    return meta.obj_list_to_munch(ret)
コード例 #3
0
def normalize_groups(domains):
    """Normalize Identity groups."""
    ret = [
        dict(
            id=domain.get('id'),
            name=domain.get('name'),
            description=domain.get('description'),
            domain_id=domain.get('domain_id'),
        ) for domain in domains
    ]
    return meta.obj_list_to_munch(ret)
コード例 #4
0
    def test_list_projects_v3(self):
        project_one = self._get_project_data()
        project_two = self._get_project_data()
        project_list = [project_one, project_two]

        first_response = {'projects': [project_one.json_response['project']]}
        second_response = {
            'projects': [p.json_response['project'] for p in project_list]
        }

        mock_uri = self.get_mock_url(service_type='identity',
                                     resource='projects',
                                     base_url_append='v3')

        self.register_uris([
            dict(method='GET',
                 uri=mock_uri,
                 status_code=200,
                 json=first_response),
            dict(method='GET',
                 uri=mock_uri,
                 status_code=200,
                 json=second_response)
        ])

        self.assertEqual(
            self.cloud._normalize_projects(
                meta.obj_list_to_munch(first_response['projects'])),
            self.cloud.list_projects())
        self.assertEqual(
            self.cloud._normalize_projects(
                meta.obj_list_to_munch(first_response['projects'])),
            self.cloud.list_projects())
        # invalidate the list_projects cache
        self.cloud.list_projects.invalidate(self.cloud)
        # ensure the new values are now retrieved
        self.assertEqual(
            self.cloud._normalize_projects(
                meta.obj_list_to_munch(second_response['projects'])),
            self.cloud.list_projects())
        self.assert_calls()
コード例 #5
0
ファイル: test_meta.py プロジェクト: icersummer/openstacksdk
    def test_obj_list_to_munch(self):
        """Test conversion of a list of objects to a list of dictonaries"""
        class obj0:
            value = 0

        class obj1:
            value = 1

        list = [obj0, obj1]
        new_list = meta.obj_list_to_munch(list)
        self.assertEqual(new_list[0]['value'], 0)
        self.assertEqual(new_list[1]['value'], 1)
コード例 #6
0
ファイル: test_meta.py プロジェクト: ctrlaltdel/neutrinator
    def test_obj_list_to_munch(self):
        """Test conversion of a list of objects to a list of dictonaries"""
        class obj0(object):
            value = 0

        class obj1(object):
            value = 1

        list = [obj0, obj1]
        new_list = meta.obj_list_to_munch(list)
        self.assertEqual(new_list[0]['value'], 0)
        self.assertEqual(new_list[1]['value'], 1)
コード例 #7
0
def normalize_users(users):
    ret = [
        dict(id=user.get('id'),
             email=user.get('email'),
             name=user.get('name'),
             username=user.get('username'),
             default_project_id=user.get('default_project_id',
                                         user.get('tenantId')),
             domain_id=user.get('domain_id'),
             enabled=user.get('enabled'),
             description=user.get('description')) for user in users
    ]
    return meta.obj_list_to_munch(ret)
コード例 #8
0
ファイル: _utils.py プロジェクト: ctrlaltdel/neutrinator
def normalize_users(users):
    ret = [
        dict(
            id=user.get('id'),
            email=user.get('email'),
            name=user.get('name'),
            username=user.get('username'),
            default_project_id=user.get('default_project_id',
                                        user.get('tenantId')),
            domain_id=user.get('domain_id'),
            enabled=user.get('enabled'),
            description=user.get('description')
        ) for user in users
    ]
    return meta.obj_list_to_munch(ret)
コード例 #9
0
 def test_list_volume_backups(self):
     backup = {'id': '6ff16bdf-44d5-4bf9-b0f3-687549c76414',
               'status': 'available'}
     search_opts = {'status': 'available'}
     self.register_uris([
         dict(method='GET',
              uri=self.get_mock_url(
                  'volumev2', 'public', append=['backups', 'detail'],
                  qs_elements=['='.join(i) for i in search_opts.items()]),
              json={"backups": [backup]})])
     result = self.cloud.list_volume_backups(True, search_opts)
     self.assertEqual(len(result), 1)
     self.assertEqual(
         meta.obj_list_to_munch([backup]),
         result)
     self.assert_calls()
コード例 #10
0
 def test_list_volume_backups(self):
     backup = {'id': '6ff16bdf-44d5-4bf9-b0f3-687549c76414',
               'status': 'available'}
     search_opts = {'status': 'available'}
     self.register_uris([
         dict(method='GET',
              uri=self.get_mock_url(
                  'volumev2', 'public', append=['backups', 'detail'],
                  qs_elements=['='.join(i) for i in search_opts.items()]),
              json={"backups": [backup]})])
     result = self.cloud.list_volume_backups(True, search_opts)
     self.assertEqual(len(result), 1)
     self.assertEqual(
         meta.obj_list_to_munch([backup]),
         result)
     self.assert_calls()
コード例 #11
0
 def test_search_volume_backups(self):
     name = 'Volume1'
     vol1 = {'name': name, 'availability_zone': 'az1'}
     vol2 = {'name': name, 'availability_zone': 'az1'}
     vol3 = {'name': 'Volume2', 'availability_zone': 'az2'}
     self.register_uris([
         dict(method='GET',
              uri=self.get_mock_url('volumev2',
                                    'public',
                                    append=['backups', 'detail']),
              json={"backups": [vol1, vol2, vol3]})
     ])
     result = self.cloud.search_volume_backups(name,
                                               {'availability_zone': 'az1'})
     self.assertEqual(len(result), 2)
     self.assertEqual(meta.obj_list_to_munch([vol1, vol2]), result)
     self.assert_calls()
コード例 #12
0
 def test_search_volume_backups(self):
     name = 'Volume1'
     vol1 = {'name': name, 'availability_zone': 'az1'}
     vol2 = {'name': name, 'availability_zone': 'az1'}
     vol3 = {'name': 'Volume2', 'availability_zone': 'az2'}
     self.register_uris([
         dict(method='GET',
              uri=self.get_mock_url(
                  'volumev2', 'public', append=['backups', 'detail']),
              json={"backups": [vol1, vol2, vol3]})])
     result = self.cloud.search_volume_backups(
         name, {'availability_zone': 'az1'})
     self.assertEqual(len(result), 2)
     self.assertEqual(
         meta.obj_list_to_munch([vol1, vol2]),
         result)
     self.assert_calls()
コード例 #13
0
ファイル: test_stack.py プロジェクト: Supriya30201/gskube
 def test_search_stacks(self):
     fake_stacks = [
         self.stack,
         fakes.make_fake_stack(
             self.getUniqueString('id'),
             self.getUniqueString('name'))
     ]
     self.register_uris([
         dict(method='GET',
              uri='{endpoint}/stacks'.format(
                  endpoint=fakes.ORCHESTRATION_ENDPOINT),
              json={"stacks": fake_stacks}),
     ])
     stacks = self.cloud.search_stacks()
     self.assertEqual(
         self.cloud._normalize_stacks(meta.obj_list_to_munch(fake_stacks)),
         stacks)
     self.assert_calls()
コード例 #14
0
def normalize_keystone_services(services):
    """Normalize the structure of keystone services

    In keystone v2, there is a field called "service_type". In v3, it's
    "type". Just make the returned dict have both.

    :param list services: A list of keystone service dicts

    :returns: A list of normalized dicts.
    """
    ret = []
    for service in services:
        service_type = service.get('type', service.get('service_type'))
        new_service = {
            'id': service['id'],
            'name': service['name'],
            'description': service.get('description', None),
            'type': service_type,
            'service_type': service_type,
            'enabled': service['enabled']
        }
        ret.append(new_service)
    return meta.obj_list_to_munch(ret)
コード例 #15
0
ファイル: _utils.py プロジェクト: ctrlaltdel/neutrinator
def normalize_keystone_services(services):
    """Normalize the structure of keystone services

    In keystone v2, there is a field called "service_type". In v3, it's
    "type". Just make the returned dict have both.

    :param list services: A list of keystone service dicts

    :returns: A list of normalized dicts.
    """
    ret = []
    for service in services:
        service_type = service.get('type', service.get('service_type'))
        new_service = {
            'id': service['id'],
            'name': service['name'],
            'description': service.get('description', None),
            'type': service_type,
            'service_type': service_type,
            'enabled': service['enabled']
        }
        ret.append(new_service)
    return meta.obj_list_to_munch(ret)