Fix for V3 identity failing test cases.

Following V3 identity api tests are failing -
    1. test_delete_credential
    2. test_delete_user
    3. test_delete_project

This patch provides fix for these failure of tests.

Closes-Bug: #1665067

Change-Id: I4bf4365a066d54d026fe350c0f01c425ba97c30c
diff --git a/patrole_tempest_plugin/tests/api/identity/v3/rbac_base.py b/patrole_tempest_plugin/tests/api/identity/v3/rbac_base.py
index 1e29023..a830493 100644
--- a/patrole_tempest_plugin/tests/api/identity/v3/rbac_base.py
+++ b/patrole_tempest_plugin/tests/api/identity/v3/rbac_base.py
@@ -57,3 +57,23 @@
         self.addCleanup(test_utils.call_and_ignore_notfound_exc,
                         self.services_client.delete_service, service['id'])
         return service
+
+    def _setup_test_project(self):
+        """Set up a test project."""
+        project = self.projects_client.create_project(
+            name=data_utils.rand_name('test_project'),
+            description=data_utils.rand_name('desc'))['project']
+        # Delete the project at the end of the test
+        self.addCleanup(test_utils.call_and_ignore_notfound_exc,
+                        self.projects_client.delete_project, project['id'])
+        return project
+
+    def _create_test_user(self, **kwargs):
+        if kwargs['password'] is None:
+            user_password = data_utils.rand_password()
+            kwargs['password'] = user_password
+        user = self.users_client.create_user(**kwargs)['user']
+        # Delete the user at the end of the test
+        self.addCleanup(test_utils.call_and_ignore_notfound_exc,
+                        self.users_client.delete_user, user['id'])
+        return user
diff --git a/patrole_tempest_plugin/tests/api/identity/v3/test_credentials_rbac.py b/patrole_tempest_plugin/tests/api/identity/v3/test_credentials_rbac.py
index 45abe9f..3428e7f 100644
--- a/patrole_tempest_plugin/tests/api/identity/v3/test_credentials_rbac.py
+++ b/patrole_tempest_plugin/tests/api/identity/v3/test_credentials_rbac.py
@@ -14,6 +14,7 @@
 #    under the License.
 
 from tempest.common.utils import data_utils
+from tempest.lib.common.utils import test_utils
 from tempest import test
 
 from patrole_tempest_plugin import rbac_rule_validation
@@ -44,7 +45,9 @@
                                             blob=blob,
                                             type='ec2')['credential']
 
-        self.addCleanup(self.creds_client.delete_credential, credential['id'])
+        self.addCleanup(test_utils.call_and_ignore_notfound_exc,
+                        self.creds_client.delete_credential, credential['id'])
+
         return (project_id, credential)
 
     @rbac_rule_validation.action(service="keystone",
diff --git a/patrole_tempest_plugin/tests/api/identity/v3/test_projects_rbac.py b/patrole_tempest_plugin/tests/api/identity/v3/test_projects_rbac.py
index 9af2ccf..c347e56 100644
--- a/patrole_tempest_plugin/tests/api/identity/v3/test_projects_rbac.py
+++ b/patrole_tempest_plugin/tests/api/identity/v3/test_projects_rbac.py
@@ -54,7 +54,7 @@
 
         RBAC test for Keystone: identity:update_project
         """
-        project = self.setup_test_project()
+        project = self._setup_test_project()
 
         rbac_utils.switch_role(self, switchToRbacRole=True)
         self.non_admin_projects_client \
@@ -69,7 +69,7 @@
 
         RBAC test for Keystone: identity:delete_project
         """
-        project = self.setup_test_project()
+        project = self._setup_test_project()
 
         rbac_utils.switch_role(self, switchToRbacRole=True)
         self.non_admin_projects_client.delete_project(project['id'])
@@ -82,7 +82,7 @@
 
         RBAC test for Keystone: identity:get_project
         """
-        project = self.setup_test_project()
+        project = self._setup_test_project()
 
         rbac_utils.switch_role(self, switchToRbacRole=True)
         self.non_admin_projects_client.show_project(project['id'])