blob: 15f883a0b5f6db57f739aa62f82ba9a3d9676553 [file] [log] [blame]
YuikoTakadaac0879a2015-01-22 02:40:03 +00001# Copyright 2015 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
Matthew Treinish21905512015-07-13 10:33:35 -040015from oslo_serialization import jsonutils as json
Matthew Treinish89128142015-04-23 10:44:30 -040016from six.moves.urllib import parse as urllib
YuikoTakadaac0879a2015-01-22 02:40:03 +000017
ghanshyam59869d02015-04-22 17:23:08 +090018from tempest.api_schema.response.compute.v2_1 import baremetal_nodes \
19 as schema
YuikoTakadaac0879a2015-01-22 02:40:03 +000020from tempest.common import service_client
21
22
Ken'ichi Ohmichia6287072015-07-02 02:43:15 +000023class BaremetalNodesClient(service_client.ServiceClient):
YuikoTakadaac0879a2015-01-22 02:40:03 +000024 """
25 Tests Baremetal API
26 """
27
Ken'ichi Ohmichi118776d2015-07-01 08:15:00 +000028 def list_baremetal_nodes(self, **params):
YuikoTakadaac0879a2015-01-22 02:40:03 +000029 """List all baremetal nodes."""
30 url = 'os-baremetal-nodes'
31 if params:
32 url += '?%s' % urllib.urlencode(params)
33 resp, body = self.get(url)
34 body = json.loads(body)
35 self.validate_response(schema.list_baremetal_nodes, resp, body)
ghanshyamf9a569b2015-08-04 15:29:06 +090036 return service_client.ResponseBody(resp, body)
YuikoTakadaac0879a2015-01-22 02:40:03 +000037
Ken'ichi Ohmichi3de6d982015-04-13 00:20:41 +000038 def show_baremetal_node(self, baremetal_node_id):
YuikoTakadaac0879a2015-01-22 02:40:03 +000039 """Returns the details of a single baremetal node."""
40 url = 'os-baremetal-nodes/%s' % baremetal_node_id
41 resp, body = self.get(url)
42 body = json.loads(body)
43 self.validate_response(schema.get_baremetal_node, resp, body)
ghanshyamf9a569b2015-08-04 15:29:06 +090044 return service_client.ResponseBody(resp, body)