Separate quota_classes client from quotas client

Each resource should be implemented in each separated module.
quota_classes and quotas are different resources like
  os-quota-class-sets
  os-quota-sets
So this patch separates quota_classes client from quotas client.

Partially implements blueprint consistent-service-method-names

Change-Id: Icd98294c7a161f5c8c1d7202df9f3e6d9daee1d9
diff --git a/tempest/clients.py b/tempest/clients.py
index 9f6a9bb..f0aedd5 100644
--- a/tempest/clients.py
+++ b/tempest/clients.py
@@ -56,7 +56,8 @@
 from tempest.services.compute.json.migrations_client import \
     MigrationsClientJSON
 from tempest.services.compute.json.networks_client import NetworksClientJSON
-from tempest.services.compute.json.quotas_client import QuotaClassesClientJSON
+from tempest.services.compute.json.quota_classes_client import \
+    QuotaClassesClientJSON
 from tempest.services.compute.json.quotas_client import QuotasClientJSON
 from tempest.services.compute.json.security_group_default_rules_client import \
     SecurityGroupDefaultRulesClientJSON
diff --git a/tempest/services/compute/json/quota_classes_client.py b/tempest/services/compute/json/quota_classes_client.py
new file mode 100644
index 0000000..6c43679
--- /dev/null
+++ b/tempest/services/compute/json/quota_classes_client.py
@@ -0,0 +1,46 @@
+# Copyright 2012 NTT Data
+# 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.
+
+import json
+
+from tempest.api_schema.response.compute.v2_1\
+    import quota_classes as classes_schema
+from tempest.common import service_client
+
+
+class QuotaClassesClientJSON(service_client.ServiceClient):
+
+    def get_quota_class_set(self, quota_class_id):
+        """List the quota class set for a quota class."""
+
+        url = 'os-quota-class-sets/%s' % str(quota_class_id)
+        resp, body = self.get(url)
+        body = json.loads(body)
+        self.validate_response(classes_schema.get_quota_class_set, resp, body)
+        return service_client.ResponseBody(resp, body['quota_class_set'])
+
+    def update_quota_class_set(self, quota_class_id, **kwargs):
+        """
+        Updates the quota class's limits for one or more resources.
+        """
+        post_body = json.dumps({'quota_class_set': kwargs})
+
+        resp, body = self.put('os-quota-class-sets/%s' % str(quota_class_id),
+                              post_body)
+
+        body = json.loads(body)
+        self.validate_response(classes_schema.update_quota_class_set,
+                               resp, body)
+        return service_client.ResponseBody(resp, body['quota_class_set'])
diff --git a/tempest/services/compute/json/quotas_client.py b/tempest/services/compute/json/quotas_client.py
index 6e38c47..92a1fe7 100644
--- a/tempest/services/compute/json/quotas_client.py
+++ b/tempest/services/compute/json/quotas_client.py
@@ -15,8 +15,6 @@
 
 import json
 
-from tempest.api_schema.response.compute.v2_1\
-    import quota_classes as classes_schema
 from tempest.api_schema.response.compute.v2_1 import quotas as schema
 from tempest.common import service_client
 
@@ -113,29 +111,3 @@
         resp, body = self.delete('os-quota-sets/%s' % str(tenant_id))
         self.validate_response(schema.delete_quota, resp, body)
         return service_client.ResponseBody(resp, body)
-
-
-class QuotaClassesClientJSON(service_client.ServiceClient):
-
-    def get_quota_class_set(self, quota_class_id):
-        """List the quota class set for a quota class."""
-
-        url = 'os-quota-class-sets/%s' % str(quota_class_id)
-        resp, body = self.get(url)
-        body = json.loads(body)
-        self.validate_response(classes_schema.get_quota_class_set, resp, body)
-        return service_client.ResponseBody(resp, body['quota_class_set'])
-
-    def update_quota_class_set(self, quota_class_id, **kwargs):
-        """
-        Updates the quota class's limits for one or more resources.
-        """
-        post_body = json.dumps({'quota_class_set': kwargs})
-
-        resp, body = self.put('os-quota-class-sets/%s' % str(quota_class_id),
-                              post_body)
-
-        body = json.loads(body)
-        self.validate_response(classes_schema.update_quota_class_set,
-                               resp, body)
-        return service_client.ResponseBody(resp, body['quota_class_set'])
diff --git a/tempest/tests/common/test_service_clients.py b/tempest/tests/common/test_service_clients.py
index 9bb58b0..c6c1053 100644
--- a/tempest/tests/common/test_service_clients.py
+++ b/tempest/tests/common/test_service_clients.py
@@ -34,6 +34,7 @@
 from tempest.services.compute.json import limits_client
 from tempest.services.compute.json import migrations_client
 from tempest.services.compute.json import networks_client as nova_net_client
+from tempest.services.compute.json import quota_classes_client
 from tempest.services.compute.json import quotas_client
 from tempest.services.compute.json import security_group_default_rules_client \
     as nova_secgrop_default_client
@@ -122,7 +123,7 @@
             migrations_client.MigrationsClientJSON,
             nova_net_client.NetworksClientJSON,
             quotas_client.QuotasClientJSON,
-            quotas_client.QuotaClassesClientJSON,
+            quota_classes_client.QuotaClassesClientJSON,
             nova_secgrop_default_client.SecurityGroupDefaultRulesClientJSON,
             security_groups_client.SecurityGroupsClientJSON,
             servers_client.ServersClientJSON,