diff --git a/heat_tempest_plugin/common/remote_client.py b/heat_tempest_plugin/common/remote_client.py
index f23622b..aa652be 100644
--- a/heat_tempest_plugin/common/remote_client.py
+++ b/heat_tempest_plugin/common/remote_client.py
@@ -15,9 +15,9 @@
 import socket
 import time
 
+import io
 from oslo_log import log as logging
 import paramiko
-import six
 
 from heat_tempest_plugin.common import exceptions
 
@@ -31,9 +31,9 @@
         self.host = host
         self.username = username
         self.password = password
-        if isinstance(pkey, six.string_types):
+        if isinstance(pkey, str):
             pkey = paramiko.RSAKey.from_private_key(
-                six.moves.cStringIO(str(pkey)))
+                io.cStringIO(str(pkey)))
         self.pkey = pkey
         self.look_for_keys = look_for_keys
         self.key_filename = key_filename
@@ -151,7 +151,7 @@
         network = self.conf.network_for_ssh
         ip_version = self.conf.ip_version_for_ssh
         ssh_channel_timeout = self.conf.ssh_channel_timeout
-        if isinstance(server, six.string_types):
+        if isinstance(server, str):
             ip_address = server
         else:
             addresses = server['addresses'][network]
diff --git a/heat_tempest_plugin/common/test.py b/heat_tempest_plugin/common/test.py
index 83ccdc2..3858859 100644
--- a/heat_tempest_plugin/common/test.py
+++ b/heat_tempest_plugin/common/test.py
@@ -21,10 +21,9 @@
 from neutronclient.common import exceptions as network_exceptions
 from oslo_log import log as logging
 from oslo_utils import timeutils
-import six
-from six.moves import urllib
 import testscenarios
 import testtools
+import urllib
 
 from heat_tempest_plugin.common import exceptions
 from heat_tempest_plugin.common import remote_client
@@ -67,7 +66,7 @@
 
 
 def rand_name(name=''):
-    randbits = six.text_type(random.randint(1, 0x7fffffff))
+    randbits = str(random.randint(1, 0x7fffffff))
     if name:
         return name + '-' + randbits
     else:
@@ -201,7 +200,7 @@
         self.setup_clients(self.conf, True)
 
     def get_remote_client(self, server_or_ip, username, private_key=None):
-        if isinstance(server_or_ip, six.string_types):
+        if isinstance(server_or_ip, str):
             ip = server_or_ip
         else:
             network_name_for_ssh = self.conf.network_for_ssh
