Files
deb-python-tempest-lib/tempest_lib/services/compute/fixed_ips_client.py
ghanshyam 2a6da4a5cd Fix fixed_ip schema and service client
There are two issues in fixed_ip schema and client.
1. Schema expect string in response body-
   Nova had bug#1356058 for response of reserve/unreserve fixed ip APIs,
   where plain text ("202 Accepted The request is accepted for processing.")
   was returned in response body.
   It is fixed on Nova side - Ifca3081f573407808a2196e71ac1db87180db6ec

2. Return value of reserve_fixed_ip client method-
    In Fixed ip service client, reserve_fixed_ip method does not
    return the response body.
    As per consistency in service client interfaces, this method should
    return the response value even that is empty body.

Those were fixed in Tempest but did not get sync in lib.
-I098ee0d1fa3056f8cfb0654e2b8fd3bf75fb3e2c
-I2cb1ef8dacd1994576656cfb108dd2eef2fbd988

Change-Id: I27b8d2165188ee069f5d8d22c0426f2c748f80c8
2015-11-24 11:49:12 +09:00

37 lines
1.4 KiB
Python

# Copyright 2013 IBM Corp
# All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
from oslo_serialization import jsonutils as json
from tempest_lib.api_schema.response.compute.v2_1 import fixed_ips as schema
from tempest_lib.common import rest_client
class FixedIPsClient(rest_client.RestClient):
def show_fixed_ip(self, fixed_ip):
url = "os-fixed-ips/%s" % fixed_ip
resp, body = self.get(url)
body = json.loads(body)
self.validate_response(schema.get_fixed_ip, resp, body)
return rest_client.ResponseBody(resp, body)
def reserve_fixed_ip(self, fixed_ip, **kwargs):
"""This reserves and unreserves fixed ips."""
url = "os-fixed-ips/%s/action" % fixed_ip
resp, body = self.post(url, json.dumps(kwargs))
self.validate_response(schema.reserve_unreserve_fixed_ip, resp, body)
return rest_client.ResponseBody(resp, body)