コード例 #1
0
ファイル: core.py プロジェクト: UTSA-ICS/icsiam_keystone
 def setUp(self):
     super(TestCase, self).setUp()
     self.config([etcdir('keystone.conf.sample'),
                  testsdir('test_overrides.conf')])
     # ensure the cache region instance is setup
     cache.configure_cache_region(cache.REGION)
     self.opt(policy_file=etcdir('policy.json'))
コード例 #2
0
def load_backends():

    # Configure and build the cache
    cache.configure_cache_region(cache.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(),
        endpoint_filter_api=endpoint_filter.Manager(),
        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,
        policy_api=policy.Manager(),
        resource_api=resource.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
コード例 #3
0
ファイル: service.py プロジェクト: estephany/keystone
def load_backends():

    # Configure and build the cache
    cache.configure_cache_region(cache.REGION)

    # Ensure that the identity driver is created before the assignment manager.
    # The default assignment driver is determined by the identity driver, so
    # the identity driver must be available to the assignment manager.
    _IDENTITY_API = identity.Manager()

    DRIVERS = dict(
        assignment_api=assignment.Manager(),
        catalog_api=catalog.Manager(),
        credential_api=credential.Manager(),
        endpoint_filter_api=endpoint_filter.Manager(),
        identity_api=_IDENTITY_API,
        policy_api=policy.Manager(),
        revoke_api=revoke.Manager(),
        token_api=token.Manager(),
        trust_api=trust.Manager(),
        token_provider_api=token.provider.Manager())

    auth.controllers.load_auth_methods()

    return DRIVERS
コード例 #4
0
def load_backends():

    # Configure and build the cache
    cache.configure_cache_region(cache.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(),
                   endpoint_filter_api=endpoint_filter.Manager(),
                   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,
                   policy_api=policy.Manager(),
                   resource_api=resource.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
コード例 #5
0
ファイル: test_v3.py プロジェクト: atheendra/access_keys
    def load_backends(self):
        self.setup_database()

        # ensure the cache region instance is setup
        cache.configure_cache_region(cache.REGION)

        super(RestfulTestCase, self).load_backends()
コード例 #6
0
ファイル: backends.py プロジェクト: carrierstack/keystone
def load_backends():

    # Configure and build the cache
    cache.configure_cache_region(cache.REGION)

    # Ensure that the identity driver is created before the assignment manager.
    # The default assignment driver is determined by the identity driver, so
    # the identity driver must be available to the assignment manager.
    _IDENTITY_API = identity.Manager()

    DRIVERS = dict(assignment_api=assignment.Manager(),
                   catalog_api=catalog.Manager(),
                   credential_api=credential.Manager(),
                   endpoint_filter_api=endpoint_filter.Manager(),
                   id_generator_api=identity.generator.Manager(),
                   id_mapping_api=identity.MappingManager(),
                   identity_api=_IDENTITY_API,
                   policy_api=policy.Manager(),
                   token_api=token.Manager(),
                   trust_api=trust.Manager(),
                   token_provider_api=token.provider.Manager())

    auth.controllers.load_auth_methods()

    return DRIVERS
コード例 #7
0
ファイル: test_v3.py プロジェクト: SUSE-Cloud/keystone
    def load_backends(self):
        self.setup_database()

        # ensure the cache region instance is setup
        cache.configure_cache_region(cache.REGION)

        super(RestfulTestCase, self).load_backends()
コード例 #8
0
 def setUp(self):
     super(TestCase, self).setUp()
     self.config(
         [etcdir('keystone.conf.sample'),
          testsdir('test_overrides.conf')])
     # ensure the cache region instance is setup
     cache.configure_cache_region(cache.REGION)
     self.opt(policy_file=etcdir('policy.json'))
コード例 #9
0
ファイル: core.py プロジェクト: BlueSkyChina/keystone
    def setUp(self):
        super(TestCase, self).setUp()
        self.config([dirs.etc("keystone.conf.sample"), dirs.tests("test_overrides.conf")])
        # ensure the cache region instance is setup
        cache.configure_cache_region(cache.REGION)
        self.opt(policy_file=dirs.etc("policy.json"))

        self.logger = self.useFixture(fixtures.FakeLogger(level=logging.DEBUG))
        warnings.filterwarnings("ignore", category=DeprecationWarning)
コード例 #10
0
 def setUp(self):
     super(TestCase, self).setUp()
     self.config([etcdir('keystone.conf.sample'),
                  testsdir('test_overrides.conf')])
     # ensure the cache region instance is setup
     cache.configure_cache_region(cache.REGION)
     self.mox = mox.Mox()
     self.opt(policy_file=etcdir('policy.json'))
     self.stubs = stubout.StubOutForTesting()
     self.stubs.Set(exception, '_FATAL_EXCEPTION_FORMAT_ERRORS', True)
コード例 #11
0
    def setUp(self):
        super(TestCase, self).setUp()
        self.config([dirs.etc('keystone.conf.sample'),
                     dirs.tests('test_overrides.conf')])
        # ensure the cache region instance is setup
        cache.configure_cache_region(cache.REGION)
        self.opt(policy_file=dirs.etc('policy.json'))

        self.logger = self.useFixture(fixtures.FakeLogger(level=logging.DEBUG))
        warnings.filterwarnings('ignore', category=DeprecationWarning)
コード例 #12
0
ファイル: core.py プロジェクト: congto/icehouse
    def setUp(self):
        super(TestCase, self).setUp()
        self.config([etcdir('keystone.conf.sample'),
                     testsdir('test_overrides.conf')])
        # ensure the cache region instance is setup
        cache.configure_cache_region(cache.REGION)
        self.opt(policy_file=etcdir('policy.json'))

        self.logger = self.useFixture(fixtures.FakeLogger(level=logging.DEBUG))
        warnings.filterwarnings('ignore', category=DeprecationWarning)
コード例 #13
0
ファイル: core_ldap.py プロジェクト: listeng/keystone_docker
    def setUp(self):
        sqldb = self.useFixture(database.Database())
        super(BaseBackendLdapIdentitySqlEverythingElse, self).setUp()
        self.clear_database()
        self.load_backends()
        cache.configure_cache_region(cache.REGION)

        sqldb.recreate()
        self.load_fixtures(default_fixtures)
        # defaulted by the data load
        self.user_foo['enabled'] = True
コード例 #14
0
    def setUp(self):
        sqldb = self.useFixture(database.Database())
        super(BaseBackendLdapIdentitySqlEverythingElse, self).setUp()
        self.clear_database()
        self.load_backends()
        cache.configure_cache_region(cache.REGION)

        sqldb.recreate()
        self.load_fixtures(default_fixtures)
        # defaulted by the data load
        self.user_foo['enabled'] = True
コード例 #15
0
ファイル: test_backend_ldap.py プロジェクト: qingw/keystone
 def setUp(self):
     super(LdapIdentitySqlAssignment, self).setUp()
     self._set_config()
     self.clear_database()
     self.load_backends()
     cache.configure_cache_region(cache.REGION)
     self.engine = self.get_engine()
     sql.ModelBase.metadata.create_all(bind=self.engine)
     self.load_fixtures(default_fixtures)
     #defaulted by the data load
     self.user_foo['enabled'] = True
コード例 #16
0
    def setUp(self):
        super(TestCase, self).setUp()

        self._paths = []

        def _cleanup_paths():
            for path in self._paths:
                if path in sys.path:
                    sys.path.remove(path)
        self.addCleanup(_cleanup_paths)

        self._memo = {}
        self._overrides = []
        self._group_overrides = {}

        # show complete diffs on failure
        self.maxDiff = None

        self.addCleanup(CONF.reset)

        self.exit_patch = self.useFixture(mockpatch.PatchObject(sys, 'exit'))
        self.exit_patch.mock.side_effect = UnexpectedExit

        self.config([dirs.etc('keystone.conf.sample'),
                     dirs.tests('test_overrides.conf')])

        self.opt(policy_file=dirs.etc('policy.json'))

        # NOTE(morganfainberg):  The only way to reconfigure the
        # CacheRegion object on each setUp() call is to remove the
        # .backend property.
        self.addCleanup(delattr, cache.REGION, 'backend')

        # ensure the cache region instance is setup
        cache.configure_cache_region(cache.REGION)

        self.logger = self.useFixture(fixtures.FakeLogger(level=logging.DEBUG))
        warnings.filterwarnings('ignore', category=DeprecationWarning)

        # Clear the registry of providers so that providers from previous
        # tests aren't used.
        self.addCleanup(dependency.reset)

        self.addCleanup(kvs.INMEMDB.clear)

        self.addCleanup(timeutils.clear_time_override)

        # Ensure Notification subscriotions and resource types are empty
        self.addCleanup(notifications.SUBSCRIBERS.clear)

        # Reset the auth-plugin registry
        self.addCleanup(self.clear_auth_plugin_registry)
コード例 #17
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.REGION.is_configured:
            del cache.REGION.backend

        # ensure the cache region instance is setup
        cache.configure_cache_region(cache.REGION)
コード例 #18
0
ファイル: core.py プロジェクト: anilkrishnan/keystone
    def setUp(self):
        super(TestCase, self).setUp()

        self._paths = []

        def _cleanup_paths():
            for path in self._paths:
                if path in sys.path:
                    sys.path.remove(path)
        self.addCleanup(_cleanup_paths)

        self._memo = {}
        self._overrides = []
        self._group_overrides = {}

        # show complete diffs on failure
        self.maxDiff = None

        self.addCleanup(CONF.reset)

        self.config([dirs.etc('keystone.conf.sample'),
                     dirs.tests('test_overrides.conf')])

        self.opt(policy_file=dirs.etc('policy.json'))

        # NOTE(morganfainberg):  The only way to reconfigure the
        # CacheRegion object on each setUp() call is to remove the
        # .backend property.
        self.addCleanup(delattr, cache.REGION, 'backend')

        # ensure the cache region instance is setup
        cache.configure_cache_region(cache.REGION)

        self.logger = self.useFixture(fixtures.FakeLogger(level=logging.DEBUG))
        warnings.filterwarnings('ignore', category=DeprecationWarning)

        # Clear the registry of providers so that providers from previous
        # tests aren't used.
        self.addCleanup(dependency.reset)

        self.addCleanup(kvs.INMEMDB.clear)

        self.addCleanup(timeutils.clear_time_override)

        # Ensure Notification subscriotions and resource types are empty
        self.addCleanup(notifications.SUBSCRIBERS.clear)

        # Reset the auth-plugin registry
        self.addCleanup(self.clear_auth_plugin_registry)
コード例 #19
0
ファイル: core_ldap.py プロジェクト: AfricaRegex/keystone
    def setUp(self):
        self.useFixture(database.Database())
        super(BaseBackendLdapIdentitySqlEverythingElse, self).setUp()
        self.clear_database()
        self.load_backends()
        cache.configure_cache_region(cache.REGION)
        self.engine = sql.get_engine()
        self.addCleanup(sql.cleanup)

        sql.ModelBase.metadata.create_all(bind=self.engine)
        self.addCleanup(sql.ModelBase.metadata.drop_all, bind=self.engine)

        self.load_fixtures(default_fixtures)
        # defaulted by the data load
        self.user_foo['enabled'] = True
コード例 #20
0
ファイル: core_ldap.py プロジェクト: xiaoliukai/keystone
    def setUp(self):
        self.useFixture(database.Database())
        super(BaseBackendLdapIdentitySqlEverythingElse, self).setUp()
        self.clear_database()
        self.load_backends()
        cache.configure_cache_region(cache.REGION)
        self.engine = sql.get_engine()
        self.addCleanup(sql.cleanup)

        sql.ModelBase.metadata.create_all(bind=self.engine)
        self.addCleanup(sql.ModelBase.metadata.drop_all, bind=self.engine)

        self.load_fixtures(default_fixtures)
        # defaulted by the data load
        self.user_foo['enabled'] = True
コード例 #21
0
ファイル: core.py プロジェクト: naviduett/keystone
    def setUp(self):
        super(TestCase, self).setUp()

        self._paths = []

        def _cleanup_paths():
            for path in self._paths:
                if path in sys.path:
                    sys.path.remove(path)

        self.addCleanup(_cleanup_paths)

        self._memo = {}
        self._overrides = []
        self._group_overrides = {}

        # show complete diffs on failure
        self.maxDiff = None

        self.addCleanup(CONF.reset)

        self.config([dirs.etc("keystone.conf.sample"), dirs.tests("test_overrides.conf")])

        self.opt(policy_file=dirs.etc("policy.json"))

        # NOTE(morganfainberg):  The only way to reconfigure the
        # CacheRegion object on each setUp() call is to remove the
        # .backend property.
        self.addCleanup(delattr, cache.REGION, "backend")

        # ensure the cache region instance is setup
        cache.configure_cache_region(cache.REGION)

        self.logger = self.useFixture(fixtures.FakeLogger(level=logging.DEBUG))
        warnings.filterwarnings("ignore", category=DeprecationWarning)

        # Clear the registry of providers so that providers from previous
        # tests aren't used.
        self.addCleanup(dependency.reset)

        self.addCleanup(kvs.INMEMDB.clear)

        self.addCleanup(timeutils.clear_time_override)
コード例 #22
0
def load_backends():

    # Configure and build the cache
    cache.configure_cache_region(cache.REGION)

    # Ensure that the identity driver is created before the assignment manager.
    # The default assignment driver is determined by the identity driver, so
    # the identity driver must be available to the assignment manager.
    _IDENTITY_API = identity.Manager()

    DRIVERS = dict(
        assignment_api=assignment.Manager(),
        catalog_api=catalog.Manager(),
        credential_api=credential.Manager(),
        domain_config_api=resource.DomainConfigManager(),
        endpoint_filter_api=endpoint_filter.Manager(),
        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(),
        # admin_api=moon.AdminManager(),
        # authz_api=moon.AuthzManager()
        )

    auth.controllers.load_auth_methods()

    return DRIVERS
コード例 #23
0
 def setUp(self):
     super(CacheRegionTest, self).setUp()
     self.region = cache.make_region()
     cache.configure_cache_region(self.region)
     self.region.wrap(TestProxy)
コード例 #24
0
ファイル: service.py プロジェクト: baboune/keystone
from keystone import controllers
from keystone import credential
from keystone import identity
from keystone.openstack.common import log as logging
from keystone import policy
from keystone import routers
from keystone import token
from keystone import trust


CONF = config.CONF
LOG = logging.getLogger(__name__)


# Ensure the cache is configured and built before we instantiate the managers
cache.configure_cache_region(cache.REGION)

# Ensure that the identity driver is created before the assignment manager.
# The default assignment driver is determined by the identity driver, so the
# identity driver must be available to the assignment manager.
_IDENTITY_API = identity.Manager()

DRIVERS = dict(
    assignment_api=assignment.Manager(),
    catalog_api=catalog.Manager(),
    credentials_api=credential.Manager(),
    endpoint_filter_api=endpoint_filter.Manager(),
    identity_api=_IDENTITY_API,
    oauth1_api=oauth1.Manager(),
    policy_api=policy.Manager(),
    token_api=token.Manager(),
コード例 #25
0
 def setUp(self):
     super(CacheNoopBackendTest, self).setUp()
     self.region = cache.make_region()
     setattr(CONF.cache, 'backend', 'keystone.common.cache.noop')
     cache.configure_cache_region(self.region)
コード例 #26
0
ファイル: test_cache.py プロジェクト: appliedcode/keystone
 def setUp(self):
     super(CacheNoopBackendTest, self).setUp()
     self.region = cache.make_region()
     setattr(CONF.cache, 'backend', 'keystone.common.cache.noop')
     cache.configure_cache_region(self.region)
コード例 #27
0
 def setUp(self):
     super(CacheNoopBackendTest, self).setUp()
     self.region = cache.make_region()
     cache.configure_cache_region(self.region)
コード例 #28
0
ファイル: test_cache.py プロジェクト: appliedcode/keystone
 def setUp(self):
     super(CacheRegionTest, self).setUp()
     self.region = cache.make_region()
     cache.configure_cache_region(self.region)
     self.region.wrap(TestProxy)
コード例 #29
0
ファイル: test_cache.py プロジェクト: beamdong/keystone
 def setUp(self):
     super(CacheNoopBackendTest, self).setUp()
     self.region = cache.make_region()
     self.opt_in_group('cache', backend='keystone.common.cache.noop')
     cache.configure_cache_region(self.region)
コード例 #30
0
ファイル: service.py プロジェクト: UTSA-ICS/icsiam_keystone
from keystone import config
from keystone.contrib import endpoint_filter
from keystone import controllers
from keystone import credential
from keystone import identity
from keystone.openstack.common import log as logging
from keystone import policy
from keystone import routers
from keystone import token
from keystone import trust

CONF = config.CONF
LOG = logging.getLogger(__name__)

# Ensure the cache is configured and built before we instantiate the managers
cache.configure_cache_region(cache.REGION)

# Ensure that the identity driver is created before the assignment manager.
# The default assignment driver is determined by the identity driver, so the
# identity driver must be available to the assignment manager.
_IDENTITY_API = identity.Manager()

DRIVERS = dict(assignment_api=assignment.Manager(),
               catalog_api=catalog.Manager(),
               credentials_api=credential.Manager(),
               endpoint_filter_api=endpoint_filter.Manager(),
               identity_api=_IDENTITY_API,
               policy_api=policy.Manager(),
               token_api=token.Manager(),
               trust_api=trust.Manager(),
               token_provider_api=token.provider.Manager())
コード例 #31
0
ファイル: test_v3.py プロジェクト: cloudbau/keystone
    def setUp(self, load_sample_data=True, app_conf='keystone'):
        """Setup for v3 Restful Test Cases.

        If a child class wants to create their own sample data
        and provide their own auth data to obtain tokens, then
        load_sample_data should be set to false.

        """
        super(RestfulTestCase, self).setUp()
        self.config(self.config_files())

        self.setup_database()

        new_paste_file = self.generate_paste_config()
        if new_paste_file:
            app_conf = 'config:%s' % (new_paste_file)

        # ensure the cache region instance is setup
        cache.configure_cache_region(cache.REGION)

        self.load_backends()

        self.public_app = webtest.TestApp(
            self.loadapp(app_conf, name='main'))
        self.admin_app = webtest.TestApp(
            self.loadapp(app_conf, name='admin'))

        if load_sample_data:
            self.domain_id = uuid.uuid4().hex
            self.domain = self.new_domain_ref()
            self.domain['id'] = self.domain_id
            self.assignment_api.create_domain(self.domain_id, self.domain)

            self.project_id = uuid.uuid4().hex
            self.project = self.new_project_ref(
                domain_id=self.domain_id)
            self.project['id'] = self.project_id
            self.assignment_api.create_project(self.project_id, self.project)

            self.user_id = uuid.uuid4().hex
            self.user = self.new_user_ref(domain_id=self.domain_id)
            self.user['id'] = self.user_id
            self.identity_api.create_user(self.user_id, self.user)

            self.default_domain_project_id = uuid.uuid4().hex
            self.default_domain_project = self.new_project_ref(
                domain_id=DEFAULT_DOMAIN_ID)
            self.default_domain_project['id'] = self.default_domain_project_id
            self.assignment_api.create_project(self.default_domain_project_id,
                                               self.default_domain_project)

            self.default_domain_user_id = uuid.uuid4().hex
            self.default_domain_user = self.new_user_ref(
                domain_id=DEFAULT_DOMAIN_ID)
            self.default_domain_user['id'] = self.default_domain_user_id
            self.identity_api.create_user(self.default_domain_user_id,
                                          self.default_domain_user)

            # create & grant policy.json's default role for admin_required
            self.role_id = uuid.uuid4().hex
            self.role = self.new_role_ref()
            self.role['id'] = self.role_id
            self.role['name'] = 'admin'
            self.assignment_api.create_role(self.role_id, self.role)
            self.assignment_api.add_role_to_user_and_project(
                self.user_id, self.project_id, self.role_id)
            self.assignment_api.add_role_to_user_and_project(
                self.default_domain_user_id, self.default_domain_project_id,
                self.role_id)
            self.assignment_api.add_role_to_user_and_project(
                self.default_domain_user_id, self.project_id,
                self.role_id)

            self.service_id = uuid.uuid4().hex
            self.service = self.new_service_ref()
            self.service['id'] = self.service_id
            self.catalog_api.create_service(
                self.service_id,
                self.service.copy())

            self.endpoint_id = uuid.uuid4().hex
            self.endpoint = self.new_endpoint_ref(service_id=self.service_id)
            self.endpoint['id'] = self.endpoint_id
            self.catalog_api.create_endpoint(
                self.endpoint_id,
                self.endpoint.copy())

        self.empty_context = {'environment': {}}
コード例 #32
0
 def test_cache_region_no_error_multiple_config(self):
     # Verify configuring the CacheRegion again doesn't error.
     cache.configure_cache_region(self.region)
     cache.configure_cache_region(self.region)
コード例 #33
0
 def test_cache_region_no_error_multiple_config(self):
     # Verify configuring the CacheRegion again doesn't error.
     cache.configure_cache_region(self.region)
     cache.configure_cache_region(self.region)
コード例 #34
0
 def setUp(self):
     super(CacheNoopBackendTest, self).setUp()
     self.region = cache.make_region()
     self.opt_in_group('cache', backend='keystone.common.cache.noop')
     cache.configure_cache_region(self.region)
コード例 #35
0
 def setUp(self):
     super(CacheRegionTest, self).setUp()
     self.region = cache.make_region()
     cache.configure_cache_region(self.region)
     self.region.wrap(TestProxy)
     self.test_value = TestProxyValue('Decorator Test')
コード例 #36
0
 def setUp(self):
     super(CacheRegionTest, self).setUp()
     self.region = cache.make_region()
     cache.configure_cache_region(self.region)
     self.region.wrap(TestProxy)
     self.test_value = TestProxyValue('Decorator Test')
コード例 #37
0
ファイル: test_cache.py プロジェクト: xiaoliukai/keystone
 def setUp(self):
     super(CacheNoopBackendTest, self).setUp()
     self.region = cache.make_region()
     cache.configure_cache_region(self.region)
コード例 #38
0
ファイル: test_v3.py プロジェクト: UTSA-ICS/icsiam_keystone
    def setUp(self, load_sample_data=True, app_conf='keystone'):
        """Setup for v3 Restful Test Cases.

        If a child class wants to create their own sample data
        and provide their own auth data to obtain tokens, then
        load_sample_data should be set to false.

        """
        super(RestfulTestCase, self).setUp()
        self.config(self.config_files())

        self.setup_database()

        new_paste_file = self.generate_paste_config()
        if new_paste_file:
            app_conf = 'config:%s' % (new_paste_file)

        # ensure the cache region instance is setup
        cache.configure_cache_region(cache.REGION)

        self.load_backends()

        self.public_app = webtest.TestApp(self.loadapp(app_conf, name='main'))
        self.admin_app = webtest.TestApp(self.loadapp(app_conf, name='admin'))

        if load_sample_data:
            self.domain_id = uuid.uuid4().hex
            self.domain = self.new_domain_ref()
            self.domain['id'] = self.domain_id
            self.assignment_api.create_domain(self.domain_id, self.domain)

            self.project_id = uuid.uuid4().hex
            self.project = self.new_project_ref(domain_id=self.domain_id)
            self.project['id'] = self.project_id
            self.assignment_api.create_project(self.project_id, self.project)

            self.user_id = uuid.uuid4().hex
            self.user = self.new_user_ref(domain_id=self.domain_id)
            self.user['id'] = self.user_id
            self.identity_api.create_user(self.user_id, self.user)

            self.default_domain_project_id = uuid.uuid4().hex
            self.default_domain_project = self.new_project_ref(
                domain_id=DEFAULT_DOMAIN_ID)
            self.default_domain_project['id'] = self.default_domain_project_id
            self.assignment_api.create_project(self.default_domain_project_id,
                                               self.default_domain_project)

            self.default_domain_user_id = uuid.uuid4().hex
            self.default_domain_user = self.new_user_ref(
                domain_id=DEFAULT_DOMAIN_ID)
            self.default_domain_user['id'] = self.default_domain_user_id
            self.identity_api.create_user(self.default_domain_user_id,
                                          self.default_domain_user)

            # create & grant policy.json's default role for admin_required
            self.role_id = uuid.uuid4().hex
            self.role = self.new_role_ref()
            self.role['id'] = self.role_id
            self.role['name'] = 'admin'
            self.assignment_api.create_role(self.role_id, self.role)
            self.assignment_api.add_role_to_user_and_project(
                self.user_id, self.project_id, self.role_id)
            self.assignment_api.add_role_to_user_and_project(
                self.default_domain_user_id, self.default_domain_project_id,
                self.role_id)
            self.assignment_api.add_role_to_user_and_project(
                self.default_domain_user_id, self.project_id, self.role_id)

            self.service_id = uuid.uuid4().hex
            self.service = self.new_service_ref()
            self.service['id'] = self.service_id
            self.catalog_api.create_service(self.service_id,
                                            self.service.copy())

            self.endpoint_id = uuid.uuid4().hex
            self.endpoint = self.new_endpoint_ref(service_id=self.service_id)
            self.endpoint['id'] = self.endpoint_id
            self.catalog_api.create_endpoint(self.endpoint_id,
                                             self.endpoint.copy())

        self.public_server = self.serveapp(app_conf, name='main')
        self.admin_server = self.serveapp(app_conf, name='admin')