blob: 4861733aab66683eadc71970cec1125327205133 [file] [log] [blame]
Matthew Treinish2324e6b2013-10-21 20:25:17 +00001# Copyright 2012 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 lxml import etree
Matthew Treinish684d8992014-01-30 16:27:40 +000017
vponomaryov960eeb42014-02-22 18:25:25 +020018from tempest.common import rest_client
Matthew Treinish684d8992014-01-30 16:27:40 +000019from tempest import config
Yuiko Takada4d41c2f2014-03-07 11:58:31 +000020from tempest.services.compute.xml import common
Matthew Treinish2324e6b2013-10-21 20:25:17 +000021
Matthew Treinish684d8992014-01-30 16:27:40 +000022CONF = config.CONF
23
Matthew Treinish2324e6b2013-10-21 20:25:17 +000024
vponomaryov960eeb42014-02-22 18:25:25 +020025class ExtensionsClientXML(rest_client.RestClient):
26 TYPE = "xml"
Matthew Treinish2324e6b2013-10-21 20:25:17 +000027
Andrea Frittoli8bbdb162014-01-06 11:06:13 +000028 def __init__(self, auth_provider):
29 super(ExtensionsClientXML, self).__init__(auth_provider)
Matthew Treinish684d8992014-01-30 16:27:40 +000030 self.service = CONF.volume.catalog_type
Matthew Treinish2324e6b2013-10-21 20:25:17 +000031
32 def _parse_array(self, node):
33 array = []
34 for child in node:
Yuiko Takada4d41c2f2014-03-07 11:58:31 +000035 array.append(common.xml_to_json(child))
Matthew Treinish2324e6b2013-10-21 20:25:17 +000036 return array
37
38 def list_extensions(self):
39 url = 'extensions'
Valeriy Ponomaryov88686d82014-02-16 12:24:51 +020040 resp, body = self.get(url)
Matthew Treinish2324e6b2013-10-21 20:25:17 +000041 body = self._parse_array(etree.fromstring(body))
42 return resp, body