def _test_get_all_tenants(self, version, get_keystone_client_mock):
     # prepare mocks
     client_mock = mock.MagicMock()
     client_mock.version = version
     get_keystone_client_mock.return_value = client_mock
     # call tested function
     keystone_manager.get_all_tenants()
     # check calls
     get_keystone_client_mock.assert_called_once_with()
     if version == 'v3':
         client_mock.projects.list.assert_called_once_with()
     else:
         client_mock.tenants.list.assert_called_once_with()
 def _test_get_all_tenants(self, version, get_keystone_client_mock):
     # prepare mocks
     auth_token = 'test_auth_token'
     client_mock = mock.MagicMock()
     client_mock.version = version
     get_keystone_client_mock.return_value = client_mock
     # call tested function
     keystone_manager.get_all_tenants(auth_token)
     # check calls
     get_keystone_client_mock.assert_called_once_with(auth_token)
     if version == 'v3':
         client_mock.projects.list.assert_called_once_with()
     else:
         client_mock.tenants.list.assert_called_once_with()
Beispiel #3
0
    def get_tenant_name(self, tenant_id=None):
        """Returns tenant name from context or db.

        If tenant id stored in context matches requested one,
        then return tenant name from context.
        If incoming tenant_id is different from context one then query db.
        """
        tenant_id_in_query = tenant_id or self.tenant_id
        if tenant_id_in_query:
            if self.context.tenant_name and (self.context.tenant_id
                                             == tenant_id_in_query):
                return self.context.tenant_name

            if self.grid_config.tenant_name_persistence:
                tenant = dbi.get_tenant(self.context.session,
                                        tenant_id_in_query)
                if tenant:
                    return tenant.tenant_name

        if self.grid_config.tenant_name_persistence:
            # Try resync with keystone if still no tenant name is found
            if km.sync_tenants_from_keystone(self.context):
                tenant = dbi.get_tenant(self.context.session,
                                        tenant_id_in_query)
                if tenant:
                    return tenant.tenant_name
        else:
            tenants = km.get_all_tenants()
            for tenant in tenants:
                if tenant.id == tenant_id_in_query:
                    return tenant.name
        return None
    def get_tenant_name(self, tenant_id=None):
        """Returns tenant name from context or db.

        If tenant id stored in context matches requested one,
        then return tenant name from context.
        If incoming tenant_id is different from context one then query db.
        """
        tenant_id_in_query = tenant_id or self.tenant_id
        if tenant_id_in_query:
            if self.context.tenant_name and (
                    self.context.tenant_id == tenant_id_in_query):
                return self.context.tenant_name

            if self.grid_config.tenant_name_persistence:
                tenant = dbi.get_tenant(self.context.session,
                                        tenant_id_in_query)
                if tenant:
                    return tenant.tenant_name

        if self.grid_config.tenant_name_persistence:
            # Try resync with keystone if still no tenant name is found
            if km.sync_tenants_from_keystone(self.context,
                                             self.context.auth_token):
                tenant = dbi.get_tenant(self.context.session,
                                        tenant_id_in_query)
                if tenant:
                    return tenant.tenant_name
        else:
            tenants = km.get_all_tenants(self.context.auth_token)
            for tenant in tenants:
                if tenant.id == tenant_id_in_query:
                    return tenant.name
        return None