blob: d1595dda6fe22b04a98f5d796c92e2d950457e13 [file] [log] [blame]
harika-vakadia92dd742013-02-19 20:41:22 +05301# 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
Masayuki Igawabfa07602015-01-20 18:47:17 +090016from tempest_lib import exceptions as lib_exc
17
Sean Dague1937d092013-05-17 16:36:38 -040018from tempest.api.identity import base
Fei Long Wangd39431f2015-05-14 11:30:48 +120019from tempest.common.utils import data_utils
Matthew Treinish5c660ab2014-05-18 21:14:36 -040020from tempest import test
harika-vakadia92dd742013-02-19 20:41:22 +053021
22
Matthew Treinishdb2c5972014-01-31 22:18:59 +000023class ServicesTestJSON(base.BaseIdentityV3AdminTest):
harika-vakadia92dd742013-02-19 20:41:22 +053024
nayna-patel54b0fb52014-04-25 13:19:16 +000025 def _del_service(self, service_id):
26 # Used for deleting the services created in this class
27 self.service_client.delete_service(service_id)
28 # Checking whether service is deleted successfully
Ken'ichi Ohmichi402b8752015-11-09 10:47:16 +000029 self.assertRaises(lib_exc.NotFound, self.service_client.show_service,
nayna-patel54b0fb52014-04-25 13:19:16 +000030 service_id)
harika-vakadia92dd742013-02-19 20:41:22 +053031
nayna-patel54b0fb52014-04-25 13:19:16 +000032 @test.attr(type='smoke')
Chris Hoge7579c1a2015-02-26 14:12:15 -080033 @test.idempotent_id('5193aad5-bcb7-411d-85b0-b3b61b96ef06')
nayna-patel54b0fb52014-04-25 13:19:16 +000034 def test_create_update_get_service(self):
35 # Creating a Service
36 name = data_utils.rand_name('service')
37 serv_type = data_utils.rand_name('type')
38 desc = data_utils.rand_name('description')
David Kranzd8ccb792014-12-29 11:32:05 -050039 create_service = self.service_client.create_service(
Yaroslav Lobankov61db2d92015-11-11 16:51:23 +030040 type=serv_type, name=name, description=desc)['service']
nayna-patel54b0fb52014-04-25 13:19:16 +000041 self.addCleanup(self._del_service, create_service['id'])
42 self.assertIsNotNone(create_service['id'])
harika-vakadia92dd742013-02-19 20:41:22 +053043
nayna-patel54b0fb52014-04-25 13:19:16 +000044 # Verifying response body of create service
45 expected_data = {'name': name, 'type': serv_type, 'description': desc}
46 self.assertDictContainsSubset(expected_data, create_service)
47
48 # Update description
49 s_id = create_service['id']
50 resp1_desc = create_service['description']
51 s_desc2 = data_utils.rand_name('desc2')
David Kranzd8ccb792014-12-29 11:32:05 -050052 update_service = self.service_client.update_service(
John Warrenf96750d2015-08-13 13:44:59 +000053 s_id, description=s_desc2)['service']
nayna-patel54b0fb52014-04-25 13:19:16 +000054 resp2_desc = update_service['description']
55
harika-vakadia92dd742013-02-19 20:41:22 +053056 self.assertNotEqual(resp1_desc, resp2_desc)
57
Attila Fazekasf7f34f92013-08-01 17:01:44 +020058 # Get service
Ken'ichi Ohmichi402b8752015-11-09 10:47:16 +000059 fetched_service = self.service_client.show_service(s_id)['service']
nayna-patel54b0fb52014-04-25 13:19:16 +000060 resp3_desc = fetched_service['description']
harika-vakadia92dd742013-02-19 20:41:22 +053061
harika-vakadia92dd742013-02-19 20:41:22 +053062 self.assertEqual(resp2_desc, resp3_desc)
nayna-patel54b0fb52014-04-25 13:19:16 +000063 self.assertDictContainsSubset(update_service, fetched_service)
64
Chris Hoge7579c1a2015-02-26 14:12:15 -080065 @test.idempotent_id('d1dcb1a1-2b6b-4da8-bbb8-5532ef6e8269')
nayna-patel54b0fb52014-04-25 13:19:16 +000066 def test_create_service_without_description(self):
67 # Create a service only with name and type
68 name = data_utils.rand_name('service')
69 serv_type = data_utils.rand_name('type')
David Kranzd8ccb792014-12-29 11:32:05 -050070 service = self.service_client.create_service(
Yaroslav Lobankov61db2d92015-11-11 16:51:23 +030071 type=serv_type, name=name)['service']
nayna-patel54b0fb52014-04-25 13:19:16 +000072 self.addCleanup(self.service_client.delete_service, service['id'])
73 self.assertIn('id', service)
74 expected_data = {'name': name, 'type': serv_type}
75 self.assertDictContainsSubset(expected_data, service)
76
Chris Hoge7579c1a2015-02-26 14:12:15 -080077 @test.idempotent_id('e55908e8-360e-439e-8719-c3230a3e179e')
nayna-patel54b0fb52014-04-25 13:19:16 +000078 def test_list_services(self):
79 # Create, List, Verify and Delete Services
80 service_ids = list()
81 for _ in range(3):
82 name = data_utils.rand_name('service')
83 serv_type = data_utils.rand_name('type')
David Kranzd8ccb792014-12-29 11:32:05 -050084 create_service = self.service_client.create_service(
Yaroslav Lobankov61db2d92015-11-11 16:51:23 +030085 type=serv_type, name=name)['service']
nayna-patel54b0fb52014-04-25 13:19:16 +000086 self.addCleanup(self.service_client.delete_service,
87 create_service['id'])
88 service_ids.append(create_service['id'])
89
90 # List and Verify Services
John Warrenf96750d2015-08-13 13:44:59 +000091 services = self.service_client.list_services()['services']
nayna-patel54b0fb52014-04-25 13:19:16 +000092 fetched_ids = [service['id'] for service in services]
93 found = [s for s in fetched_ids if s in service_ids]
94 self.assertEqual(len(found), len(service_ids))