diff --git a/tempest/api/image/v2/test_images_metadefs_namespaces.py b/tempest/api/image/v2/test_images_metadefs_namespaces.py
index d089c84..efb7b8b 100644
--- a/tempest/api/image/v2/test_images_metadefs_namespaces.py
+++ b/tempest/api/image/v2/test_images_metadefs_namespaces.py
@@ -29,42 +29,42 @@
         resource_name = body['resource_types'][0]['name']
         name = [{'name': resource_name}]
         namespace_name = data_utils.rand_name('namespace')
-        # create the metadef namespaces
-        body = self.client.create_namespaces(namespace=namespace_name,
-                                             visibility='public',
-                                             description='Tempest',
-                                             display_name=namespace_name,
-                                             resource_type_associations=name,
-                                             protected=True)
+        # create the metadef namespace
+        body = self.client.create_namespace(namespace=namespace_name,
+                                            visibility='public',
+                                            description='Tempest',
+                                            display_name=namespace_name,
+                                            resource_type_associations=name,
+                                            protected=True)
         self.addCleanup(self._cleanup_namespace, namespace_name)
-        # get namespaces details
-        body = self.client.show_namespaces(namespace_name)
+        # get namespace details
+        body = self.client.show_namespace(namespace_name)
         self.assertEqual(namespace_name, body['namespace'])
         self.assertEqual('public', body['visibility'])
         # unable to delete protected namespace
-        self.assertRaises(lib_exc.Forbidden, self.client.delete_namespaces,
+        self.assertRaises(lib_exc.Forbidden, self.client.delete_namespace,
                           namespace_name)
         # update the visibility to private and protected to False
-        body = self.client.update_namespaces(namespace=namespace_name,
-                                             description='Tempest',
-                                             visibility='private',
-                                             display_name=namespace_name,
-                                             protected=False)
+        body = self.client.update_namespace(namespace=namespace_name,
+                                            description='Tempest',
+                                            visibility='private',
+                                            display_name=namespace_name,
+                                            protected=False)
         self.assertEqual('private', body['visibility'])
         self.assertEqual(False, body['protected'])
         # now able to delete the non-protected namespace
-        self.client.delete_namespaces(namespace_name)
+        self.client.delete_namespace(namespace_name)
 
     def _cleanup_namespace(self, namespace_name):
         # this is used to cleanup the resources
         try:
-            body = self.client.show_namespaces(namespace_name)
+            body = self.client.show_namespace(namespace_name)
             self.assertEqual(namespace_name, body['namespace'])
-            body = self.client.update_namespaces(namespace=namespace_name,
-                                                 description='Tempest',
-                                                 visibility='private',
-                                                 display_name=namespace_name,
-                                                 protected=False)
-            self.client.delete_namespaces(namespace_name)
+            body = self.client.update_namespace(namespace=namespace_name,
+                                                description='Tempest',
+                                                visibility='private',
+                                                display_name=namespace_name,
+                                                protected=False)
+            self.client.delete_namespace(namespace_name)
         except lib_exc.NotFound:
             pass
diff --git a/tempest/services/image/v2/json/image_client.py b/tempest/services/image/v2/json/image_client.py
index 492c7df..6b9ec32 100644
--- a/tempest/services/image/v2/json/image_client.py
+++ b/tempest/services/image/v2/json/image_client.py
@@ -220,7 +220,7 @@
         body = json.loads(body)
         return service_client.ResponseBody(resp, body)
 
-    def create_namespaces(self, namespace, **kwargs):
+    def create_namespace(self, namespace, **kwargs):
         params = {
             "namespace": namespace,
         }
@@ -240,14 +240,14 @@
         body = json.loads(body)
         return service_client.ResponseBody(resp, body)
 
-    def show_namespaces(self, namespace):
+    def show_namespace(self, namespace):
         url = '/v2/metadefs/namespaces/%s' % namespace
         resp, body = self.get(url)
         self.expected_success(200, resp.status)
         body = json.loads(body)
         return service_client.ResponseBody(resp, body)
 
-    def update_namespaces(self, namespace, visibility, **kwargs):
+    def update_namespace(self, namespace, visibility, **kwargs):
         params = {
             "namespace": namespace,
             "visibility": visibility
@@ -267,7 +267,7 @@
         body = json.loads(body)
         return service_client.ResponseBody(resp, body)
 
-    def delete_namespaces(self, namespace):
+    def delete_namespace(self, namespace):
         url = '/v2/metadefs/namespaces/%s' % namespace
         resp, _ = self.delete(url)
         self.expected_success(204, resp.status)
