summaryrefslogtreecommitdiff
path: root/keystonemiddleware/tests/unit/client_fixtures.py
diff options
context:
space:
mode:
Diffstat (limited to 'keystonemiddleware/tests/unit/client_fixtures.py')
-rw-r--r--keystonemiddleware/tests/unit/client_fixtures.py124
1 files changed, 124 insertions, 0 deletions
diff --git a/keystonemiddleware/tests/unit/client_fixtures.py b/keystonemiddleware/tests/unit/client_fixtures.py
index a807054..27ba482 100644
--- a/keystonemiddleware/tests/unit/client_fixtures.py
+++ b/keystonemiddleware/tests/unit/client_fixtures.py
@@ -64,6 +64,11 @@ class Examples(fixtures.Fixture):
self.v3_UUID_SERVICE_TOKEN_BIND = 'be705e4426d0449a89e35ae21c380a05'
self.v3_NOT_IS_ADMIN_PROJECT = uuid.uuid4().hex
+ self.v3_APP_CRED_TOKEN = '6f506fa9641448bbaecbd12dd30678a9'
+ self.v3_APP_CRED_ACCESS_RULES = 'c417747898c44629b08791f2579e40a5'
+ self.v3_APP_CRED_EMPTY_ACCESS_RULES = 'c75905c307f04fdd9979126582d7aae'
+ self.v3_APP_CRED_MATCHING_RULES = 'ad49decc7106489d95ca9ed874b6cb66'
+
# JSON responses keyed by token ID
self.TOKEN_RESPONSES = {}
@@ -86,6 +91,8 @@ class Examples(fixtures.Fixture):
SERVICE_ROLE_NAME1 = 'service'
SERVICE_ROLE_NAME2 = 'service_role2'
+ APP_CRED_ID = 'app_cred_id1'
+
self.SERVICE_TYPE = 'identity'
self.UNVERSIONED_SERVICE_URL = 'https://keystone.example.com:1234/'
self.SERVICE_URL = self.UNVERSIONED_SERVICE_URL + 'v2.0'
@@ -293,6 +300,123 @@ class Examples(fixtures.Fixture):
svc.add_endpoint('public', self.SERVICE_URL)
self.TOKEN_RESPONSES[self.v3_NOT_IS_ADMIN_PROJECT] = token
+ # Application credential token
+ token = fixture.V3Token(user_id=USER_ID,
+ user_name=USER_NAME,
+ user_domain_id=DOMAIN_ID,
+ user_domain_name=DOMAIN_NAME,
+ project_id=PROJECT_ID,
+ project_name=PROJECT_NAME,
+ project_domain_id=DOMAIN_ID,
+ project_domain_name=DOMAIN_NAME,
+ application_credential_id=APP_CRED_ID)
+ token.add_role(name=ROLE_NAME1)
+ token.add_role(name=ROLE_NAME2)
+ svc = token.add_service(self.SERVICE_TYPE)
+ svc.add_endpoint('public', self.SERVICE_URL)
+ svc = token.add_service('compute')
+ svc.add_endpoint('public', 'https://nova.openstack.example.org/v2.1')
+ self.TOKEN_RESPONSES[self.v3_APP_CRED_TOKEN] = token
+
+ # Application credential with access_rules token
+ access_rules = [{
+ 'path': '/v2.1/servers',
+ 'method': 'GET',
+ 'service': 'compute'
+ }]
+ token = fixture.V3Token(
+ user_id=USER_ID,
+ user_name=USER_NAME,
+ user_domain_id=DOMAIN_ID,
+ user_domain_name=DOMAIN_NAME,
+ project_id=PROJECT_ID,
+ project_name=PROJECT_NAME,
+ project_domain_id=DOMAIN_ID,
+ project_domain_name=DOMAIN_NAME,
+ application_credential_id=APP_CRED_ID,
+ application_credential_access_rules=access_rules)
+ token.add_role(name=ROLE_NAME1)
+ token.add_role(name=ROLE_NAME2)
+ svc = token.add_service(self.SERVICE_TYPE)
+ svc.add_endpoint('public', self.SERVICE_URL)
+ svc = token.add_service('compute')
+ svc.add_endpoint('public', 'https://nova.openstack.example.org')
+ svc = token.add_service('image')
+ svc.add_endpoint('public', 'https://glance.openstack.example.org')
+ self.TOKEN_RESPONSES[self.v3_APP_CRED_ACCESS_RULES] = token
+
+ # Application credential with explicitly empty access_rules
+ access_rules = []
+ token = fixture.V3Token(
+ user_id=USER_ID,
+ user_name=USER_NAME,
+ user_domain_id=DOMAIN_ID,
+ user_domain_name=DOMAIN_NAME,
+ project_id=PROJECT_ID,
+ project_name=PROJECT_NAME,
+ project_domain_id=DOMAIN_ID,
+ project_domain_name=DOMAIN_NAME,
+ application_credential_id=APP_CRED_ID,
+ application_credential_access_rules=access_rules)
+ token.add_role(name=ROLE_NAME1)
+ token.add_role(name=ROLE_NAME2)
+ svc = token.add_service(self.SERVICE_TYPE)
+ svc.add_endpoint('public', self.SERVICE_URL)
+ self.TOKEN_RESPONSES[self.v3_APP_CRED_EMPTY_ACCESS_RULES] = token
+
+ # Application credential with matching rules
+ access_rules = [
+ {
+ 'path': '/v2.1/servers/{server_id}',
+ 'method': 'GET',
+ 'service': 'compute'
+ },
+ {
+ 'path': '/v2/images/*',
+ 'method': 'GET',
+ 'service': 'image'
+ },
+ {
+ 'path': '**',
+ 'method': 'GET',
+ 'service': 'identity'
+ },
+ {
+ 'path': '/v3/{project_id}/types/{volume_type_id}',
+ 'method': 'GET',
+ 'service': 'block-storage'
+ },
+ {
+ 'path': '/v1/*/*/*',
+ 'method': 'GET',
+ 'service': 'object-store'
+ }
+ ]
+ token = fixture.V3Token(
+ user_id=USER_ID,
+ user_name=USER_NAME,
+ user_domain_id=DOMAIN_ID,
+ user_domain_name=DOMAIN_NAME,
+ project_id=PROJECT_ID,
+ project_name=PROJECT_NAME,
+ project_domain_id=DOMAIN_ID,
+ project_domain_name=DOMAIN_NAME,
+ application_credential_id=APP_CRED_ID,
+ application_credential_access_rules=access_rules)
+ token.add_role(name=ROLE_NAME1)
+ token.add_role(name=ROLE_NAME2)
+ svc = token.add_service(self.SERVICE_TYPE)
+ svc.add_endpoint('public', self.SERVICE_URL)
+ svc = token.add_service('compute')
+ svc.add_endpoint('public', 'https://nova.openstack.example.org')
+ svc = token.add_service('image')
+ svc.add_endpoint('public', 'https://glance.openstack.example.org')
+ svc = token.add_service('block-storage')
+ svc.add_endpoint('public', 'https://cinder.openstack.example.org')
+ svc = token.add_service('object-store')
+ svc.add_endpoint('public', 'https://swift.openstack.example.org')
+ self.TOKEN_RESPONSES[self.v3_APP_CRED_MATCHING_RULES] = token
+
self.JSON_TOKEN_RESPONSES = dict([(k, jsonutils.dumps(v)) for k, v in
self.TOKEN_RESPONSES.items()])