diff --git a/tcp_tests/tests/system/test_failover_k8s.py b/tcp_tests/tests/system/test_failover_k8s.py
index 60ac4a7..850cfd1 100644
--- a/tcp_tests/tests/system/test_failover_k8s.py
+++ b/tcp_tests/tests/system/test_failover_k8s.py
@@ -57,9 +57,9 @@
             new_minion_vip =\
                 core_actions.get_keepalived_vip_minion_id(vip)
         except Exception:
-                time.sleep(15)
-                new_minion_vip = \
-                    core_actions.get_keepalived_vip_minion_id(vip)
+            time.sleep(15)
+            new_minion_vip = \
+                core_actions.get_keepalived_vip_minion_id(vip)
         LOG.info("VIP {0} migrated to {1}".format(vip, new_minion_vip))
         assert new_minion_vip != minion_vip
 
diff --git a/tcp_tests/tests/system/test_install_mcp_ovs_pike.py b/tcp_tests/tests/system/test_install_mcp_ovs_pike.py
index d10d250..0c74d20 100644
--- a/tcp_tests/tests/system/test_install_mcp_ovs_pike.py
+++ b/tcp_tests/tests/system/test_install_mcp_ovs_pike.py
@@ -356,9 +356,9 @@
 
         pillar = 'keepalived:cluster:instance:cicd_control_vip:address'
         addresses = salt_deployed.get_pillar('cid01*', pillar)
-        ip = list(set([ip
+        ip = list(set([ipaddr
                   for item in addresses
-                  for node, ip in item.items() if ip]))
+                  for node, ipaddr in item.items() if ipaddr]))
         LOG.info('Jenkins ip is {}'.format(ip))
         try:
             assert len(ip) > 0, 'fail to find jenkins ip'
@@ -367,9 +367,9 @@
                 tgt='cid*', fun='cmd.run',
                 args='service keepalived restart')
             addresses = salt_deployed.get_pillar('cid01*', pillar)
-            ip = list(set([ip
+            ip = list(set([ipaddr
                       for item in addresses
-                      for node, ip in item.items() if ip]))
+                      for node, ipaddr in item.items() if ipaddr]))
             LOG.info('Jenkins ip is {}'.format(ip))
             assert len(ip) > 0, 'fail to find jenkins ip {}'.format(addresses)
 
@@ -457,9 +457,9 @@
 
         pillar = 'keepalived:cluster:instance:cicd_control_vip:address'
         addresses = salt_deployed.get_pillar('cid01*', pillar)
-        ip = list(set([ip
+        ip = list(set([ipaddr
                   for item in addresses
-                  for node, ip in item.items() if ip]))
+                  for node, ipaddr in item.items() if ipaddr]))
         LOG.info('Jenkins ip is {}'.format(ip))
         try:
             assert len(ip) > 0, 'fail to find jenkins ip'
@@ -468,9 +468,9 @@
                 tgt='cid*', fun='cmd.run',
                 args='service keepalived restart')
             addresses = salt_deployed.get_pillar('cid01*', pillar)
-            ip = list(set([ip
+            ip = list(set([ipaddr
                       for item in addresses
-                      for node, ip in item.items() if ip]))
+                      for node, ipaddr in item.items() if ipaddr]))
             LOG.info('Jenkins ip is {}'.format(ip))
             assert len(ip) > 0, 'fail to find jenkins ip {}'.format(addresses)
 
