Move JSON de/serializers to base baremetal client
Now Tempest supports JSON tests only without XML ones, but a
base baremetal client contains still an option for switching
de/serializers and it makes the code a little difficult.
Then, this patch moves JSON de/serializers for clarifying it
supports only JSON and easy code.
In addition, this patch removes "object_type" from serialize()
because now passed values are 'node', 'chassis' and 'port'
and they are not used for serializing at all.
Change-Id: Id96af61c422cb4e9a6d89f4ede6701e3c9d5f3c5
diff --git a/tempest/services/baremetal/base.py b/tempest/services/baremetal/base.py
index a0ffd28..4f67bf5 100644
--- a/tempest/services/baremetal/base.py
+++ b/tempest/services/baremetal/base.py
@@ -56,15 +56,15 @@
endpoint_type=CONF.baremetal.endpoint_type)
self.uri_prefix = ''
- def serialize(self, object_type, object_dict):
+ def serialize(self, object_dict):
"""Serialize an Ironic object."""
- raise NotImplementedError
+ return json.dumps(object_dict)
def deserialize(self, object_str):
"""Deserialize an Ironic object."""
- raise NotImplementedError
+ return json.loads(object_str)
def _get_uri(self, resource_name, uuid=None, permanent=False):
"""
@@ -147,7 +147,7 @@
return resp, self.deserialize(body)
- def _create_request(self, resource, object_type, object_dict):
+ def _create_request(self, resource, object_dict):
"""
Create an object of the specified type.
@@ -158,7 +158,7 @@
object.
"""
- body = self.serialize(object_type, object_dict)
+ body = self.serialize(object_dict)
uri = self._get_uri(resource)
resp, body = self.post(uri, body=body)
diff --git a/tempest/services/baremetal/v1/base_v1.py b/tempest/services/baremetal/v1/base_v1.py
index 9435dbf..bc51c1b 100644
--- a/tempest/services/baremetal/v1/base_v1.py
+++ b/tempest/services/baremetal/v1/base_v1.py
@@ -16,10 +16,6 @@
class BaremetalClientV1(base.BaremetalClient):
"""
Base Tempest REST client for Ironic API v1.
-
- Specific implementations must implement serialize and deserialize
- methods in order to send requests to Ironic.
-
"""
def __init__(self, auth_provider):
super(BaremetalClientV1, self).__init__(auth_provider)
@@ -156,7 +152,7 @@
'memory': kwargs.get('memory', 4096)},
'driver': kwargs.get('driver', 'fake')}
- return self._create_request('nodes', 'node', node)
+ return self._create_request('nodes', node)
@base.handle_errors
def create_chassis(self, **kwargs):
@@ -170,7 +166,7 @@
"""
chassis = {'description': kwargs.get('description', 'test-chassis')}
- return self._create_request('chassis', 'chassis', chassis)
+ return self._create_request('chassis', chassis)
@base.handle_errors
def create_port(self, node_id, **kwargs):
@@ -193,7 +189,7 @@
if kwargs['address'] is not None:
port['address'] = kwargs['address']
- return self._create_request('ports', 'port', port)
+ return self._create_request('ports', port)
@base.handle_errors
def delete_node(self, uuid):
diff --git a/tempest/services/baremetal/v1/client_json.py b/tempest/services/baremetal/v1/client_json.py
index c9dc874..8421fe9 100644
--- a/tempest/services/baremetal/v1/client_json.py
+++ b/tempest/services/baremetal/v1/client_json.py
@@ -10,16 +10,8 @@
# License for the specific language governing permissions and limitations
# under the License.
-import json
-
from tempest.services.baremetal.v1 import base_v1
class BaremetalClientJSON(base_v1.BaremetalClientV1):
"""Tempest REST client for Ironic JSON API v1."""
-
- def __init__(self, auth_provider):
- super(BaremetalClientJSON, self).__init__(auth_provider)
-
- self.serialize = lambda obj_type, obj_body: json.dumps(obj_body)
- self.deserialize = json.loads