Ejemplo n.º 1
0
    def setUp(self):
        super(TestCacheRegion, self).setUp()
        self.config_fixture = self.useFixture(config_fixture.Config(CONF))
        self.config_fixture.config(
            # TODO(morganfainberg): Make Cache Testing a separate test case
            # in tempest, and move it out of the base unit tests.
            group='cache',
            backend='dogpile.cache.memory')

        # replace existing backend since this may already be configured
        cache.CACHE_INVALIDATION_REGION.configure(
            backend='dogpile.cache.memory',
            expiration_time=None,
            replace_existing_backend=True)

        self.region_name = uuid.uuid4().hex
        self.region0 = cache.create_region('test_region')
        self.region1 = cache.create_region('test_region')
        cache.configure_cache(region=self.region0)
        cache.configure_cache(region=self.region1)

        # TODO(dstanek): this should be a mock entrypoint
        self.cache_dict = {}
        self.backend = memory.MemoryBackend({'cache_dict': self.cache_dict})
        self.region0.backend = self.backend
        self.region1.backend = self.backend
def load_backends():

    # Configure and build the cache
    cache.configure_cache()
    cache.configure_cache(region=catalog.COMPUTED_CATALOG_REGION)

    # Ensure that the identity driver is created before the assignment manager
    # and that the assignment driver is created before the resource manager.
    # The default resource driver depends on assignment, which in turn
    # depends on identity - hence we need to ensure the chain is available.
    _IDENTITY_API = identity.Manager()
    _ASSIGNMENT_API = assignment.Manager()

    DRIVERS = dict(
        assignment_api=_ASSIGNMENT_API,
        catalog_api=catalog.Manager(),
        credential_api=credential.Manager(),
        domain_config_api=resource.DomainConfigManager(),
        endpoint_policy_api=endpoint_policy.Manager(),
        federation_api=federation.Manager(),
        id_generator_api=identity.generator.Manager(),
        id_mapping_api=identity.MappingManager(),
        identity_api=_IDENTITY_API,
        oauth_api=oauth1.Manager(),
        policy_api=policy.Manager(),
        resource_api=resource.Manager(),
        revoke_api=revoke.Manager(),
        role_api=assignment.RoleManager(),
        token_api=token.persistence.Manager(),
        trust_api=trust.Manager(),
        token_provider_api=token.provider.Manager())

    auth.controllers.load_auth_methods()

    return DRIVERS
Ejemplo n.º 3
0
    def setUp(self):
        super(TestCacheRegion, self).setUp()
        self.config_fixture = self.useFixture(config_fixture.Config(CONF))
        self.config_fixture.config(
            # TODO(morganfainberg): Make Cache Testing a separate test case
            # in tempest, and move it out of the base unit tests.
            group='cache',
            backend='dogpile.cache.memory')

        # replace existing backend since this may already be configured
        cache.CACHE_INVALIDATION_REGION.configure(
            backend='dogpile.cache.memory',
            expiration_time=None,
            replace_existing_backend=True)

        self.region_name = uuid.uuid4().hex
        self.region0 = cache.create_region('test_region')
        self.region1 = cache.create_region('test_region')
        cache.configure_cache(region=self.region0)
        cache.configure_cache(region=self.region1)

        # TODO(dstanek): this should be a mock entrypoint
        self.cache_dict = {}
        self.backend = memory.MemoryBackend({'cache_dict': self.cache_dict})
        self.region0.backend = self.backend
        self.region1.backend = self.backend
Ejemplo n.º 4
0
def load_backends():

    # Configure and build the cache
    cache.configure_cache()
    cache.configure_cache(region=catalog.COMPUTED_CATALOG_REGION)

    # Ensure that the identity driver is created before the assignment manager
    # and that the assignment driver is created before the resource manager.
    # The default resource driver depends on assignment, which in turn
    # depends on identity - hence we need to ensure the chain is available.
    _IDENTITY_API = identity.Manager()
    _ASSIGNMENT_API = assignment.Manager()

    DRIVERS = dict(assignment_api=_ASSIGNMENT_API,
                   catalog_api=catalog.Manager(),
                   credential_api=credential.Manager(),
                   domain_config_api=resource.DomainConfigManager(),
                   endpoint_policy_api=endpoint_policy.Manager(),
                   federation_api=federation.Manager(),
                   id_generator_api=identity.generator.Manager(),
                   id_mapping_api=identity.MappingManager(),
                   identity_api=_IDENTITY_API,
                   oauth_api=oauth1.Manager(),
                   policy_api=policy.Manager(),
                   resource_api=resource.Manager(),
                   revoke_api=revoke.Manager(),
                   role_api=assignment.RoleManager(),
                   token_api=token.persistence.Manager(),
                   trust_api=trust.Manager(),
                   token_provider_api=token.provider.Manager())

    auth.controllers.load_auth_methods()

    return DRIVERS
Ejemplo n.º 5
0
    def setUp(self):
        sqldb = self.useFixture(database.Database())
        super(BaseBackendLdapIdentitySqlEverythingElse, self).setUp()
        self.load_backends()
        cache.configure_cache()

        sqldb.recreate()
        self.load_fixtures(default_fixtures)
        # defaulted by the data load
        self.user_foo['enabled'] = True
Ejemplo n.º 6
0
    def setUp(self):
        sqldb = self.useFixture(database.Database())
        super(BaseBackendLdapIdentitySqlEverythingElse, self).setUp()
        self.load_backends()
        cache.configure_cache()

        sqldb.recreate()
        self.load_fixtures(default_fixtures)
        # defaulted by the data load
        self.user_foo['enabled'] = True
Ejemplo n.º 7
0
    def setUp(self):
        super(Cache, self).setUp()

        # NOTE(dstanek):  We must remove the existing cache backend in the
        # setUp instead of the tearDown because it defaults to a no-op cache
        # and we want the configure call below to create the correct backend.

        # NOTE(morganfainberg):  The only way to reconfigure the CacheRegion
        # object on each setUp() call is to remove the .backend property.
        if cache.CACHE_REGION.is_configured:
            del cache.CACHE_REGION.backend

        # ensure the cache region instance is setup
        cache.configure_cache()
Ejemplo n.º 8
0
def load_backends():

    # Configure and build the cache
    cache.configure_cache()
    cache.configure_cache(region=catalog.COMPUTED_CATALOG_REGION)
    cache.apply_invalidation_patch(
        region=catalog.COMPUTED_CATALOG_REGION,
        region_name=catalog.COMPUTED_CATALOG_REGION.name)
    cache.configure_cache(region=assignment.COMPUTED_ASSIGNMENTS_REGION)
    cache.apply_invalidation_patch(
        region=assignment.COMPUTED_ASSIGNMENTS_REGION,
        region_name=assignment.COMPUTED_ASSIGNMENTS_REGION.name)
    cache.configure_cache(region=revoke.REVOKE_REGION)
    cache.apply_invalidation_patch(region=revoke.REVOKE_REGION,
                                   region_name=revoke.REVOKE_REGION.name)
    cache.configure_cache(region=token.provider.TOKENS_REGION)

    # Ensure that the identity driver is created before the assignment manager
    # and that the assignment driver is created before the resource manager.
    # The default resource driver depends on assignment, which in turn
    # depends on identity - hence we need to ensure the chain is available.
    # TODO(morganfainberg): In "O" release move _IDENTITY_API to be directly
    # instantiated in the DRIVERS dict once assignment driver being selected
    # based upon [identity]/driver is removed.
    _IDENTITY_API = identity.Manager()
    _ASSIGNMENT_API = assignment.Manager()

    DRIVERS = dict(
        assignment_api=_ASSIGNMENT_API,
        catalog_api=catalog.Manager(),
        credential_api=credential.Manager(),
        domain_config_api=resource.DomainConfigManager(),
        endpoint_policy_api=endpoint_policy.Manager(),
        federation_api=federation.Manager(),
        id_generator_api=identity.generator.Manager(),
        id_mapping_api=identity.MappingManager(),
        identity_api=_IDENTITY_API,
        shadow_users_api=identity.ShadowUsersManager(),
        oauth_api=oauth1.Manager(),
        policy_api=policy.Manager(),
        resource_api=resource.Manager(),
        revoke_api=revoke.Manager(),
        role_api=assignment.RoleManager(),
        token_api=token.persistence.Manager(),
        trust_api=trust.Manager(),
        token_provider_api=token.provider.Manager())

    auth.controllers.load_auth_methods()

    return DRIVERS
Ejemplo n.º 9
0
    def setUp(self):
        super(Cache, self).setUp()

        # NOTE(dstanek):  We must remove the existing cache backend in the
        # setUp instead of the tearDown because it defaults to a no-op cache
        # and we want the configure call below to create the correct backend.

        # NOTE(morganfainberg):  The only way to reconfigure the CacheRegion
        # object on each setUp() call is to remove the .backend property.
        if cache.CACHE_REGION.is_configured:
            del cache.CACHE_REGION.backend

        # ensure the cache region instance is setup
        cache.configure_cache()
Ejemplo n.º 10
0
def symptom_connection_to_memcached():
    """Memcached isn't reachable.

    Caching is enabled and the `keystone.conf [cache] backend` option is
    configured but one or more Memcached servers are not reachable or marked
    as dead. Please ensure `keystone.conf [cache] memcache_servers` is
    configured properly.
    """
    memcached_drivers = ['dogpile.cache.memcached', 'oslo_cache.memcache_pool']
    if CONF.cache.enabled and CONF.cache.backend in memcached_drivers:
        cache.configure_cache()
        cache_stats = cache.CACHE_REGION.actual_backend.client.get_stats()
        memcached_server_count = len(CONF.cache.memcache_servers)
        if len(cache_stats) != memcached_server_count:
            return True
        else:
            return False
    else:
        return False
Ejemplo n.º 11
0
def load_backends():

    # Configure and build the cache
    cache.configure_cache()
    cache.configure_cache(region=catalog.COMPUTED_CATALOG_REGION)
    cache.apply_invalidation_patch(
        region=catalog.COMPUTED_CATALOG_REGION,
        region_name=catalog.COMPUTED_CATALOG_REGION.name)
    cache.configure_cache(region=assignment.COMPUTED_ASSIGNMENTS_REGION)
    cache.apply_invalidation_patch(
        region=assignment.COMPUTED_ASSIGNMENTS_REGION,
        region_name=assignment.COMPUTED_ASSIGNMENTS_REGION.name)
    cache.configure_cache(region=revoke.REVOKE_REGION)
    cache.apply_invalidation_patch(region=revoke.REVOKE_REGION,
                                   region_name=revoke.REVOKE_REGION.name)

    # Ensure that the identity driver is created before the assignment manager
    # and that the assignment driver is created before the resource manager.
    # The default resource driver depends on assignment, which in turn
    # depends on identity - hence we need to ensure the chain is available.
    # TODO(morganfainberg): In "O" release move _IDENTITY_API to be directly
    # instantiated in the DRIVERS dict once assignment driver being selected
    # based upon [identity]/driver is removed.
    _IDENTITY_API = identity.Manager()
    _ASSIGNMENT_API = assignment.Manager()

    DRIVERS = dict(assignment_api=_ASSIGNMENT_API,
                   catalog_api=catalog.Manager(),
                   credential_api=credential.Manager(),
                   domain_config_api=resource.DomainConfigManager(),
                   endpoint_policy_api=endpoint_policy.Manager(),
                   federation_api=federation.Manager(),
                   id_generator_api=identity.generator.Manager(),
                   id_mapping_api=identity.MappingManager(),
                   identity_api=_IDENTITY_API,
                   shadow_users_api=identity.ShadowUsersManager(),
                   oauth_api=oauth1.Manager(),
                   policy_api=policy.Manager(),
                   resource_api=resource.Manager(),
                   revoke_api=revoke.Manager(),
                   role_api=assignment.RoleManager(),
                   token_api=token.persistence.Manager(),
                   trust_api=trust.Manager(),
                   token_provider_api=token.provider.Manager())

    auth.controllers.load_auth_methods()

    return DRIVERS
Ejemplo n.º 12
0
def load_backends():

    # Configure and build the cache
    cache.configure_cache()
    cache.configure_cache(region=catalog.COMPUTED_CATALOG_REGION)
    cache.apply_invalidation_patch(
        region=catalog.COMPUTED_CATALOG_REGION,
        region_name=catalog.COMPUTED_CATALOG_REGION.name)
    cache.configure_cache(region=assignment.COMPUTED_ASSIGNMENTS_REGION)
    cache.apply_invalidation_patch(
        region=assignment.COMPUTED_ASSIGNMENTS_REGION,
        region_name=assignment.COMPUTED_ASSIGNMENTS_REGION.name)

    # Ensure that the assignment driver is created before the resource manager.
    # The default resource driver depends on assignment.
    _ASSIGNMENT_API = assignment.Manager()

    DRIVERS = dict(
        assignment_api=_ASSIGNMENT_API,
        catalog_api=catalog.Manager(),
        credential_api=credential.Manager(),
        domain_config_api=resource.DomainConfigManager(),
        endpoint_policy_api=endpoint_policy.Manager(),
        federation_api=federation.Manager(),
        id_generator_api=identity.generator.Manager(),
        id_mapping_api=identity.MappingManager(),
        identity_api=identity.Manager(),
        oauth_api=oauth1.Manager(),
        policy_api=policy.Manager(),
        resource_api=resource.Manager(),
        revoke_api=revoke.Manager(),
        role_api=assignment.RoleManager(),
        token_api=token.persistence.Manager(),
        trust_api=trust.Manager(),
        token_provider_api=token.provider.Manager())

    auth.controllers.load_auth_methods()

    return DRIVERS
Ejemplo n.º 13
0
def load_backends():

    # Configure and build the cache
    cache.configure_cache()
    cache.configure_cache(region=catalog.COMPUTED_CATALOG_REGION)
    cache.apply_invalidation_patch(
        region=catalog.COMPUTED_CATALOG_REGION,
        region_name=catalog.COMPUTED_CATALOG_REGION.name)
    cache.configure_cache(region=assignment.COMPUTED_ASSIGNMENTS_REGION)
    cache.apply_invalidation_patch(
        region=assignment.COMPUTED_ASSIGNMENTS_REGION,
        region_name=assignment.COMPUTED_ASSIGNMENTS_REGION.name)

    # Ensure that the assignment driver is created before the resource manager.
    # The default resource driver depends on assignment.
    _ASSIGNMENT_API = assignment.Manager()

    DRIVERS = dict(assignment_api=_ASSIGNMENT_API,
                   catalog_api=catalog.Manager(),
                   credential_api=credential.Manager(),
                   domain_config_api=resource.DomainConfigManager(),
                   endpoint_policy_api=endpoint_policy.Manager(),
                   federation_api=federation.Manager(),
                   id_generator_api=identity.generator.Manager(),
                   id_mapping_api=identity.MappingManager(),
                   identity_api=identity.Manager(),
                   oauth_api=oauth1.Manager(),
                   policy_api=policy.Manager(),
                   resource_api=resource.Manager(),
                   revoke_api=revoke.Manager(),
                   role_api=assignment.RoleManager(),
                   token_api=token.persistence.Manager(),
                   trust_api=trust.Manager(),
                   token_provider_api=token.provider.Manager())

    auth.controllers.load_auth_methods()

    return DRIVERS
Ejemplo n.º 14
0
def load_backends():

    # Configure and build the cache
    cache.configure_cache()
    cache.configure_cache(region=catalog.COMPUTED_CATALOG_REGION)
    cache.configure_cache(region=assignment.COMPUTED_ASSIGNMENTS_REGION)
    cache.configure_cache(region=revoke.REVOKE_REGION)
    cache.configure_cache(region=token.provider.TOKENS_REGION)
    cache.configure_cache(region=identity.ID_MAPPING_REGION)
    cache.configure_invalidation_region()

    managers = [
        application_credential.Manager, assignment.Manager, catalog.Manager,
        credential.Manager, credential.provider.Manager,
        resource.DomainConfigManager, endpoint_policy.Manager,
        federation.Manager, identity.generator.Manager,
        identity.MappingManager, identity.Manager, identity.ShadowUsersManager,
        limit.Manager, oauth1.Manager, policy.Manager, resource.Manager,
        revoke.Manager, assignment.RoleManager, trust.Manager,
        token.provider.Manager, persistence.PersistenceManager
    ]

    drivers = {d._provides_api: d() for d in managers}

    # NOTE(morgan): lock the APIs, these should only ever be instantiated
    # before running keystone.
    provider_api.ProviderAPIs.lock_provider_registry()

    auth.core.load_auth_methods()

    return drivers
Ejemplo n.º 15
0
def load_backends():

    # Configure and build the cache
    cache.configure_cache()
    cache.configure_cache(region=catalog.COMPUTED_CATALOG_REGION)
    cache.configure_cache(region=assignment.COMPUTED_ASSIGNMENTS_REGION)
    cache.configure_cache(region=revoke.REVOKE_REGION)
    cache.configure_cache(region=token.provider.TOKENS_REGION)
    cache.configure_cache(region=identity.ID_MAPPING_REGION)
    cache.configure_invalidation_region()

    managers = [application_credential.Manager, assignment.Manager,
                catalog.Manager, credential.Manager,
                credential.provider.Manager, resource.DomainConfigManager,
                endpoint_policy.Manager, federation.Manager,
                identity.generator.Manager, identity.MappingManager,
                identity.Manager, identity.ShadowUsersManager,
                limit.Manager, oauth1.Manager, policy.Manager,
                resource.Manager, revoke.Manager, assignment.RoleManager,
                trust.Manager, token.provider.Manager]

    drivers = {d._provides_api: d() for d in managers}

    # NOTE(morgan): lock the APIs, these should only ever be instantiated
    # before running keystone.
    provider_api.ProviderAPIs.lock_provider_registry()

    auth.core.load_auth_methods()

    return drivers
Ejemplo n.º 16
0
    def load_backends(self):
        # ensure the cache region instance is setup
        cache.configure_cache()

        super(RestfulTestCase, self).load_backends()
Ejemplo n.º 17
0
def load_backends():

    # Configure and build the cache
    cache.configure_cache()
    cache.configure_cache(region=catalog.COMPUTED_CATALOG_REGION)
    cache.configure_cache(region=assignment.COMPUTED_ASSIGNMENTS_REGION)
    cache.configure_cache(region=revoke.REVOKE_REGION)
    cache.configure_cache(region=token.provider.TOKENS_REGION)
    cache.configure_cache(region=receipt.provider.RECEIPTS_REGION)
    cache.configure_cache(region=identity.ID_MAPPING_REGION)
    cache.configure_invalidation_region()

    managers = [
        access_rules_config.Manager, application_credential.Manager,
        assignment.Manager, catalog.Manager, credential.Manager,
        credential.provider.Manager, resource.DomainConfigManager,
        endpoint_policy.Manager, federation.Manager,
        identity.generator.Manager, identity.MappingManager, identity.Manager,
        identity.ShadowUsersManager, limit.Manager, oauth1.Manager,
        policy.Manager, resource.Manager, revoke.Manager,
        assignment.RoleManager, receipt.provider.Manager, trust.Manager,
        token.provider.Manager
    ]

    drivers = {d._provides_api: d() for d in managers}

    # NOTE(morgan): lock the APIs, these should only ever be instantiated
    # before running keystone.
    provider_api.ProviderAPIs.lock_provider_registry()
    try:
        # Check project depth before start process. If fail, Keystone will not
        # start.
        drivers['unified_limit_api'].check_project_depth()
    except exception.LimitTreeExceedError as e:
        LOG.critical(e)
        sys.exit(1)

    auth.core.load_auth_methods()

    return drivers
Ejemplo n.º 18
0
def load_backends():

    # Configure and build the cache
    cache.configure_cache()
    cache.configure_cache(region=catalog.COMPUTED_CATALOG_REGION)
    cache.configure_cache(region=assignment.COMPUTED_ASSIGNMENTS_REGION)
    cache.configure_cache(region=revoke.REVOKE_REGION)
    cache.configure_cache(region=token.provider.TOKENS_REGION)
    cache.configure_cache(region=identity.ID_MAPPING_REGION)
    cache.configure_invalidation_region()

    # NOTE(knikolla): The assignment manager must be instantiated before the
    # resource manager. The current dictionary ordering ensures that.
    DRIVERS = dict(assignment_api=assignment.Manager(),
                   catalog_api=catalog.Manager(),
                   credential_api=credential.Manager(),
                   credential_provider_api=credential.provider.Manager(),
                   domain_config_api=resource.DomainConfigManager(),
                   endpoint_policy_api=endpoint_policy.Manager(),
                   federation_api=federation.Manager(),
                   id_generator_api=identity.generator.Manager(),
                   id_mapping_api=identity.MappingManager(),
                   identity_api=identity.Manager(),
                   shadow_users_api=identity.ShadowUsersManager(),
                   oauth_api=oauth1.Manager(),
                   policy_api=policy.Manager(),
                   resource_api=resource.Manager(),
                   revoke_api=revoke.Manager(),
                   role_api=assignment.RoleManager(),
                   token_api=token.persistence.Manager(),
                   trust_api=trust.Manager(),
                   token_provider_api=token.provider.Manager())

    auth.core.load_auth_methods()

    return DRIVERS