blob: 947706e5e3d70d9bee57e01d308a3a845c23dd1c [file] [log] [blame]
Zhenzan Zhou494b0a62015-07-17 21:06:31 +08001# Copyright 2013 OpenStack Foundation
2# All Rights Reserved.
3#
4# Licensed under the Apache License, Version 2.0 (the "License"); you may
5# not use this file except in compliance with the License. You may obtain
6# a copy of the License at
7#
8# http://www.apache.org/licenses/LICENSE-2.0
9#
10# Unless required by applicable law or agreed to in writing, software
11# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
12# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
13# License for the specific language governing permissions and limitations
14# under the License.
15
16from tempest.api.identity import base
Ken'ichi Ohmichi7bd25752017-03-10 10:45:39 -080017from tempest.lib.common.utils import data_utils
Ken'ichi Ohmichieeabdd22017-01-27 17:46:00 -080018from tempest.lib import decorators
Zhenzan Zhou494b0a62015-07-17 21:06:31 +080019
20
21class EndPointsTestJSON(base.BaseIdentityV2AdminTest):
22
23 @classmethod
24 def resource_setup(cls):
25 super(EndPointsTestJSON, cls).resource_setup()
Zhenzan Zhou494b0a62015-07-17 21:06:31 +080026 s_name = data_utils.rand_name('service')
27 s_type = data_utils.rand_name('type')
28 s_description = data_utils.rand_name('description')
zhufl95a32812017-03-01 17:52:21 +080029 service_data = cls.services_client.create_service(
ghanshyam6ce39212016-06-15 13:20:11 +090030 name=s_name, type=s_type,
31 description=s_description)['OS-KSADM:service']
Saurabh Chordiyacd5f5862017-10-25 19:20:35 +053032 cls.addClassResourceCleanup(cls.services_client.delete_service,
33 service_data['id'])
zhufl95a32812017-03-01 17:52:21 +080034 cls.service_id = service_data['id']
Zhenzan Zhou494b0a62015-07-17 21:06:31 +080035 # Create endpoints so as to use for LIST and GET test cases
36 cls.setup_endpoints = list()
zhufl8e9a0732017-01-26 16:15:21 +080037 for _ in range(2):
Zhenzan Zhou494b0a62015-07-17 21:06:31 +080038 region = data_utils.rand_name('region')
39 url = data_utils.rand_url()
Daniel Mellado3f951ef2016-01-13 09:48:00 +000040 endpoint = cls.endpoints_client.create_endpoint(
Ken'ichi Ohmichib5ebadb2016-06-13 14:19:22 -070041 service_id=cls.service_id,
42 region=region,
Daniel Mellado3f951ef2016-01-13 09:48:00 +000043 publicurl=url,
44 adminurl=url,
45 internalurl=url)['endpoint']
Saurabh Chordiyacd5f5862017-10-25 19:20:35 +053046 cls.addClassResourceCleanup(cls.endpoints_client.delete_endpoint,
47 endpoint['id'])
Zhenzan Zhou494b0a62015-07-17 21:06:31 +080048 # list_endpoints() will return 'enabled' field
49 endpoint['enabled'] = True
50 cls.setup_endpoints.append(endpoint)
51
Ken'ichi Ohmichieeabdd22017-01-27 17:46:00 -080052 @decorators.idempotent_id('11f590eb-59d8-4067-8b2b-980c7f387f51')
Zhenzan Zhou494b0a62015-07-17 21:06:31 +080053 def test_list_endpoints(self):
54 # Get a list of endpoints
Daniel Mellado3f951ef2016-01-13 09:48:00 +000055 fetched_endpoints = self.endpoints_client.list_endpoints()['endpoints']
Zhenzan Zhou494b0a62015-07-17 21:06:31 +080056 # Asserting LIST endpoints
57 missing_endpoints =\
58 [e for e in self.setup_endpoints if e not in fetched_endpoints]
Masayuki Igawaf9009b42017-04-10 14:49:29 +090059 self.assertEmpty(missing_endpoints,
Zhenzan Zhou494b0a62015-07-17 21:06:31 +080060 "Failed to find endpoint %s in fetched list" %
61 ', '.join(str(e) for e in missing_endpoints))
62
Ken'ichi Ohmichieeabdd22017-01-27 17:46:00 -080063 @decorators.idempotent_id('9974530a-aa28-4362-8403-f06db02b26c1')
Zhenzan Zhou494b0a62015-07-17 21:06:31 +080064 def test_create_list_delete_endpoint(self):
65 region = data_utils.rand_name('region')
66 url = data_utils.rand_url()
Daniel Mellado3f951ef2016-01-13 09:48:00 +000067 endpoint = self.endpoints_client.create_endpoint(
Ken'ichi Ohmichib5ebadb2016-06-13 14:19:22 -070068 service_id=self.service_id,
69 region=region,
Daniel Mellado3f951ef2016-01-13 09:48:00 +000070 publicurl=url,
71 adminurl=url,
72 internalurl=url)['endpoint']
Zhenzan Zhou494b0a62015-07-17 21:06:31 +080073 # Asserting Create Endpoint response body
74 self.assertIn('id', endpoint)
75 self.assertEqual(region, endpoint['region'])
76 self.assertEqual(url, endpoint['publicurl'])
77 # Checking if created endpoint is present in the list of endpoints
Daniel Mellado3f951ef2016-01-13 09:48:00 +000078 fetched_endpoints = self.endpoints_client.list_endpoints()['endpoints']
Zhenzan Zhou494b0a62015-07-17 21:06:31 +080079 fetched_endpoints_id = [e['id'] for e in fetched_endpoints]
80 self.assertIn(endpoint['id'], fetched_endpoints_id)
81 # Deleting the endpoint created in this method
Daniel Mellado3f951ef2016-01-13 09:48:00 +000082 self.endpoints_client.delete_endpoint(endpoint['id'])
Zhenzan Zhou494b0a62015-07-17 21:06:31 +080083 # Checking whether endpoint is deleted successfully
Daniel Mellado3f951ef2016-01-13 09:48:00 +000084 fetched_endpoints = self.endpoints_client.list_endpoints()['endpoints']
Zhenzan Zhou494b0a62015-07-17 21:06:31 +080085 fetched_endpoints_id = [e['id'] for e in fetched_endpoints]
86 self.assertNotIn(endpoint['id'], fetched_endpoints_id)