Remove redundant interfaces from v3 identity client

V3 identity service client has 2 interface making
same API request.
-assign_user_role
-assign_user_role_on_project

This commit remove the first one and make use of second one instead.

Change-Id: Ifbfa851ede26a1ade513c9fee61b06cc7098ca79
diff --git a/tempest/api/identity/admin/v3/test_tokens.py b/tempest/api/identity/admin/v3/test_tokens.py
index 3e6533a..531ff56 100644
--- a/tempest/api/identity/admin/v3/test_tokens.py
+++ b/tempest/api/identity/admin/v3/test_tokens.py
@@ -82,11 +82,11 @@
         self.addCleanup(self.client.delete_role, role['id'])
 
         # Grant the user the role on both projects.
-        self.client.assign_user_role(project1['id'], user['id'],
-                                     role['id'])
+        self.client.assign_user_role_on_project(project1['id'], user['id'],
+                                                role['id'])
 
-        self.client.assign_user_role(project2['id'], user['id'],
-                                     role['id'])
+        self.client.assign_user_role_on_project(project2['id'], user['id'],
+                                                role['id'])
 
         # Get an unscoped token.
         token_auth = self.token.auth(user_id=user['id'],
diff --git a/tempest/api/identity/admin/v3/test_trusts.py b/tempest/api/identity/admin/v3/test_trusts.py
index 37611e0..180e695 100644
--- a/tempest/api/identity/admin/v3/test_trusts.py
+++ b/tempest/api/identity/admin/v3/test_trusts.py
@@ -76,12 +76,12 @@
         self.not_delegated_role_id = role['id']
 
         # Assign roles to trustor
-        self.client.assign_user_role(self.trustor_project_id,
-                                     self.trustor_user_id,
-                                     self.delegated_role_id)
-        self.client.assign_user_role(self.trustor_project_id,
-                                     self.trustor_user_id,
-                                     self.not_delegated_role_id)
+        self.client.assign_user_role_on_project(self.trustor_project_id,
+                                                self.trustor_user_id,
+                                                self.delegated_role_id)
+        self.client.assign_user_role_on_project(self.trustor_project_id,
+                                                self.trustor_user_id,
+                                                self.not_delegated_role_id)
 
         # Get trustee user ID, use the demo user
         trustee_username = self.non_admin_client.user
diff --git a/tempest/api/identity/admin/v3/test_users.py b/tempest/api/identity/admin/v3/test_users.py
index f7f33b3..de659d8 100644
--- a/tempest/api/identity/admin/v3/test_users.py
+++ b/tempest/api/identity/admin/v3/test_users.py
@@ -135,9 +135,9 @@
             self.addCleanup(
                 self.projects_client.delete_project, project_body['id'])
             # Assigning roles to user on project
-            self.client.assign_user_role(project['id'],
-                                         user['id'],
-                                         role['id'])
+            self.client.assign_user_role_on_project(project['id'],
+                                                    user['id'],
+                                                    role['id'])
             assigned_project_ids.append(project['id'])
         body = self.users_client.list_user_projects(user['id'])['projects']
         for i in body:
diff --git a/tempest/common/cred_client.py b/tempest/common/cred_client.py
index 5069807..5aa794c 100644
--- a/tempest/common/cred_client.py
+++ b/tempest/common/cred_client.py
@@ -73,8 +73,7 @@
             msg = 'No "%s" role found' % role_name
             raise lib_exc.NotFound(msg)
         try:
-            self.roles_client.assign_user_role(project['id'], user['id'],
-                                               role['id'])
+            self._assign_user_role(project, user, role)
         except lib_exc.Conflict:
             LOG.debug("Role %s already assigned on project %s for user %s" % (
                 role['id'], project['id'], user['id']))
@@ -123,6 +122,10 @@
             tenant_name=project['name'], tenant_id=project['id'],
             password=password)
 
+    def _assign_user_role(self, project, user, role):
+        self.roles_client.assign_user_role(project['id'], user['id'],
+                                           role['id'])
+
 
 class V3CredsClient(CredsClient):
 
@@ -166,6 +169,11 @@
         roles = self.identity_client.list_roles()['roles']
         return roles
 
+    def _assign_user_role(self, project, user, role):
+        self.roles_client.assign_user_role_on_project(project['id'],
+                                                      user['id'],
+                                                      role['id'])
+
 
 def get_creds_client(identity_client,
                      projects_client,
diff --git a/tempest/services/identity/v3/json/identity_client.py b/tempest/services/identity/v3/json/identity_client.py
index 4c19442..809d0b5 100644
--- a/tempest/services/identity/v3/json/identity_client.py
+++ b/tempest/services/identity/v3/json/identity_client.py
@@ -74,13 +74,6 @@
         self.expected_success(204, resp.status)
         return service_client.ResponseBody(resp, body)
 
-    def assign_user_role(self, project_id, user_id, role_id):
-        """Add roles to a user on a project."""
-        resp, body = self.put('projects/%s/users/%s/roles/%s' %
-                              (project_id, user_id, role_id), None)
-        self.expected_success(204, resp.status)
-        return service_client.ResponseBody(resp, body)
-
     def create_domain(self, name, **kwargs):
         """Creates a domain."""
         description = kwargs.get('description', None)