blob: c78d70db606637410176e1f8ab20741f5d975b08 [file] [log] [blame]
Haiwei Xu1461c782013-12-09 10:14:13 +09001# Copyright 2013 NEC Corporation. All rights reserved.
2#
3# Licensed under the Apache License, Version 2.0 (the "License"); you may
4# not use this file except in compliance with the License. You may obtain
5# a copy of the License at
6#
7# http://www.apache.org/licenses/LICENSE-2.0
8#
9# Unless required by applicable law or agreed to in writing, software
10# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
11# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
12# License for the specific language governing permissions and limitations
13# under the License.
14
15from tempest.api.compute import base
16from tempest import exceptions
Masayuki Igawa394d8d92014-03-04 17:21:56 +090017from tempest import test
Haiwei Xu1461c782013-12-09 10:14:13 +090018
19
Haiwei Xu661049c2013-12-09 17:28:13 +090020class ServicesAdminNegativeTestJSON(base.BaseV2ComputeAdminTest):
Haiwei Xu1461c782013-12-09 10:14:13 +090021
22 """
23 Tests Services API. List and Enable/Disable require admin privileges.
24 """
25
Haiwei Xu1461c782013-12-09 10:14:13 +090026 @classmethod
27 def setUpClass(cls):
Haiwei Xu661049c2013-12-09 17:28:13 +090028 super(ServicesAdminNegativeTestJSON, cls).setUpClass()
Haiwei Xu1461c782013-12-09 10:14:13 +090029 cls.client = cls.os_adm.services_client
30 cls.non_admin_client = cls.services_client
31
Masayuki Igawa394d8d92014-03-04 17:21:56 +090032 @test.attr(type=['negative', 'gate'])
Haiwei Xu1461c782013-12-09 10:14:13 +090033 def test_list_services_with_non_admin_user(self):
34 self.assertRaises(exceptions.Unauthorized,
35 self.non_admin_client.list_services)
36
Masayuki Igawa394d8d92014-03-04 17:21:56 +090037 @test.attr(type=['negative', 'gate'])
Haiwei Xu1461c782013-12-09 10:14:13 +090038 def test_get_service_by_invalid_params(self):
39 # return all services if send the request with invalid parameter
40 resp, services = self.client.list_services()
41 params = {'xxx': 'nova-compute'}
42 resp, services_xxx = self.client.list_services(params)
43 self.assertEqual(200, resp.status)
44 self.assertEqual(len(services), len(services_xxx))
45
Masayuki Igawa394d8d92014-03-04 17:21:56 +090046 @test.attr(type=['negative', 'gate'])
Haiwei Xu1461c782013-12-09 10:14:13 +090047 def test_get_service_by_invalid_service_and_valid_host(self):
48 resp, services = self.client.list_services()
49 host_name = services[0]['host']
50 params = {'host': host_name, 'binary': 'xxx'}
51 resp, services = self.client.list_services(params)
52 self.assertEqual(200, resp.status)
53 self.assertEqual(0, len(services))
54
Masayuki Igawa394d8d92014-03-04 17:21:56 +090055 @test.attr(type=['negative', 'gate'])
Haiwei Xu1461c782013-12-09 10:14:13 +090056 def test_get_service_with_valid_service_and_invalid_host(self):
57 resp, services = self.client.list_services()
58 binary_name = services[0]['binary']
59 params = {'host': 'xxx', 'binary': binary_name}
60 resp, services = self.client.list_services(params)
61 self.assertEqual(200, resp.status)
62 self.assertEqual(0, len(services))
63
64
Haiwei Xu661049c2013-12-09 17:28:13 +090065class ServicesAdminNegativeTestXML(ServicesAdminNegativeTestJSON):
Haiwei Xu1461c782013-12-09 10:14:13 +090066 _interface = 'xml'