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