blob: 546c4303a5448b280df8d34bdd1dbe9ab182d757 [file] [log] [blame]
Matthew Treinish2324e6b2013-10-21 20:25:17 +00001# vim: tabstop=4 shiftwidth=4 softtabstop=4
2
3# Copyright 2013 IBM Corp.
4# All Rights Reserved.
5#
6# Licensed under the Apache License, Version 2.0 (the "License"); you may
7# not use this file except in compliance with the License. You may obtain
8# a copy of the License at
9#
10# http://www.apache.org/licenses/LICENSE-2.0
11#
12# Unless required by applicable law or agreed to in writing, software
13# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
14# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
15# License for the specific language governing permissions and limitations
16# under the License.
17
18
19from tempest.api.volume import base
Christian Schwede1acc63a2013-12-27 15:21:32 +000020from tempest.openstack.common import log as logging
Matthew Treinish2324e6b2013-10-21 20:25:17 +000021from tempest.test import attr
22
23
Christian Schwede1acc63a2013-12-27 15:21:32 +000024LOG = logging.getLogger(__name__)
25
26
Matthew Treinish2324e6b2013-10-21 20:25:17 +000027class ExtensionsTestJSON(base.BaseVolumeTest):
28 _interface = 'json'
29
30 @attr(type='gate')
31 def test_list_extensions(self):
32 # List of all extensions
33 resp, extensions = self.volumes_extension_client.list_extensions()
34 self.assertEqual(200, resp.status)
35 if len(self.config.volume_feature_enabled.api_extensions) == 0:
36 raise self.skipException('There are not any extensions configured')
Christian Schwede1acc63a2013-12-27 15:21:32 +000037 extension_list = [extension.get('alias') for extension in extensions]
38 LOG.debug("Cinder extensions: %s" % ','.join(extension_list))
Matthew Treinish2324e6b2013-10-21 20:25:17 +000039 ext = self.config.volume_feature_enabled.api_extensions[0]
40 if ext == 'all':
41 self.assertIn('Hosts', map(lambda x: x['name'], extensions))
42 elif ext:
43 self.assertIn(ext, map(lambda x: x['name'], extensions))
44 else:
45 raise self.skipException('There are not any extensions configured')
46
47
48class ExtensionsTestXML(ExtensionsTestJSON):
49 _interface = 'xml'