diff --git a/manila_tempest_tests/clients_share.py b/manila_tempest_tests/clients_share.py
index 65ee64e..023aa60 100644
--- a/manila_tempest_tests/clients_share.py
+++ b/manila_tempest_tests/clients_share.py
@@ -14,7 +14,7 @@
 #    under the License.
 
 from tempest import clients
-from tempest.common import cred_provider
+from tempest.common import credentials_factory as common_creds
 
 from manila_tempest_tests.services.share.json import shares_client
 from manila_tempest_tests.services.share.v2.json import shares_client \
@@ -22,7 +22,10 @@
 
 
 class Manager(clients.Manager):
-    def __init__(self, credentials=None, service=None):
+    def __init__(
+            self,
+            credentials=common_creds.get_configured_credentials('user'),
+            service=None):
         super(Manager, self).__init__(credentials, service)
         self.shares_client = shares_client.SharesClient(self.auth_provider)
         self.shares_v2_client = shares_v2_client.SharesV2Client(
@@ -32,11 +35,11 @@
 class AltManager(Manager):
     def __init__(self, service=None):
         super(AltManager, self).__init__(
-            cred_provider.get_configured_credentials('alt_user'), service)
+            common_creds.get_configured_credentials('alt_user'), service)
 
 
 class AdminManager(Manager):
     def __init__(self, service=None):
         super(AdminManager, self).__init__(
-            cred_provider.get_configured_credentials('identity_admin'),
+            common_creds.get_configured_credentials('identity_admin'),
             service)
diff --git a/manila_tempest_tests/tests/api/base.py b/manila_tempest_tests/tests/api/base.py
index de7c542..be56719 100644
--- a/manila_tempest_tests/tests/api/base.py
+++ b/manila_tempest_tests/tests/api/base.py
@@ -21,6 +21,7 @@
 from oslo_concurrency import lockutils
 from oslo_log import log
 import six
+from tempest.common import credentials_factory as common_creds
 from tempest.common import dynamic_creds
 from tempest import config
 from tempest import test
@@ -153,7 +154,9 @@
         ic = dynamic_creds.DynamicCredentialProvider(
             identity_version=CONF.identity.auth_version,
             name=name,
-            admin_role=CONF.identity.admin_role)
+            admin_role=CONF.identity.admin_role,
+            admin_creds=common_creds.get_configured_credentials(
+                'identity_admin'))
         if "admin" in type_of_creds:
             creds = ic.get_admin_creds()
         elif "alt" in type_of_creds:
@@ -290,7 +293,8 @@
                         identity_version=CONF.identity.auth_version,
                         name=service_net_name,
                         admin_role=CONF.identity.admin_role,
-                    )
+                        admin_creds=common_creds.get_configured_credentials(
+                            'identity_admin'))
                     net_data = ic._create_network_resources(sc.tenant_id)
                     network, subnet, router = net_data
                     net_id = network["id"]
diff --git a/manila_tempest_tests/tests/scenario/test_share_basic_ops.py b/manila_tempest_tests/tests/scenario/test_share_basic_ops.py
index c26cbab..7de8870 100644
--- a/manila_tempest_tests/tests/scenario/test_share_basic_ops.py
+++ b/manila_tempest_tests/tests/scenario/test_share_basic_ops.py
@@ -78,13 +78,13 @@
 
     def init_ssh(self, instance, do_ping=False):
         # Obtain a floating IP
-        floating_ip = (self.floating_ips_client.create_floating_ip()
+        floating_ip = (self.compute_floating_ips_client.create_floating_ip()
                        ['floating_ip'])
         self.addCleanup(self.delete_wrapper,
-                        self.floating_ips_client.delete_floating_ip,
+                        self.compute_floating_ips_client.delete_floating_ip,
                         floating_ip['id'])
         # Attach a floating IP
-        self.floating_ips_client.associate_floating_ip_to_server(
+        self.compute_floating_ips_client.associate_floating_ip_to_server(
             floating_ip['ip'], instance['id'])
         # Check ssh
         ssh_client = self.get_remote_client(
