Migrate cvp-sanity to Python3
* use print function from future
* convert dict keys and values to list
* do not use bunch imports
* fix requirements mismatch
Related: PROD-33849
Change-Id: Ifecc3a9dcdcfe3243f7dcf2c709a80e9a7c765a1
(cherry picked from commit e32e3f9ea37a24da5365dcef2a13609057b61923)
diff --git a/test_set/cvp-sanity/utils/__init__.py b/test_set/cvp-sanity/utils/__init__.py
index c6bbed2..12b8e72 100644
--- a/test_set/cvp-sanity/utils/__init__.py
+++ b/test_set/cvp-sanity/utils/__init__.py
@@ -1,3 +1,5 @@
+from builtins import range
+from builtins import object
import os
import yaml
import requests
@@ -12,7 +14,7 @@
pass
-class salt_remote:
+class salt_remote(object):
def __init__(self):
self.config = get_configuration()
self.skipped_nodes = self.config.get('skipped_nodes') or []
@@ -42,7 +44,7 @@
"was not established.\n"
"Please make sure that you "
"provided correct credentials.\n"
- "Error message: {}\033[0m\n".format(e.message or e))
+ "Error message: {}\033[0m\n".format(e))
traceback.print_exc(file=sys.stdout)
sys.exit()
self.expire = login_request.json()['return'][0]['expire']
@@ -78,7 +80,7 @@
continue
response = request.json()['return'][0]
result = {key: response[key] for key in response if key not in self.skipped_nodes}
- if check_status and (False in result.values() or not result):
+ if check_status and (False in list(result.values()) or not result):
logging.warning("One or several nodes are not responding. Output {}".format(json.dumps(result, indent=4)))
continue
break
@@ -95,7 +97,7 @@
If all nodes returns nothing, then exception is thrown.
"""
response = self.cmd(tgt=tgt, param=param, expr_form=expr_form)
- for node in response.keys():
+ for node in list(response.keys()):
if response[node] or response[node] == '':
return response[node]
else:
@@ -111,7 +113,7 @@
:param fail_if_empty
"""
response = self.cmd(tgt=tgt, fun='pillar.get', param=param, expr_form=expr_form)
- for node in response.keys():
+ for node in list(response.keys()):
if response[node] or response[node] != '':
return response[node]
else:
@@ -143,9 +145,9 @@
nodes_names = set ()
expr_form = ''
all_nodes = set(local_salt_client.test_ping(tgt='*', expr_form=None))
- if 'groups' in config.keys() and 'PB_GROUPS' in os.environ.keys() and \
+ if 'groups' in list(config.keys()) and 'PB_GROUPS' in list(os.environ.keys()) and \
os.environ['PB_GROUPS'].lower() != 'false':
- nodes_names.update(config['groups'].keys())
+ nodes_names.update(list(config['groups'].keys()))
expr_form = 'compound'
else:
for node in all_nodes:
@@ -178,14 +180,14 @@
node_groups[node_name] = [x for x in nodes
if x not in config['skipped_nodes']
- if x not in gluster_nodes.keys()
- if x not in kvm_nodes.keys()]
+ if x not in list(gluster_nodes.keys())
+ if x not in list(kvm_nodes.keys())]
all_nodes = set(all_nodes - set(node_groups[node_name]))
if node_groups[node_name] == []:
del node_groups[node_name]
if kvm_nodes:
- node_groups['kvm'] = kvm_nodes.keys()
- node_groups['kvm_gluster'] = gluster_nodes.keys()
+ node_groups['kvm'] = list(kvm_nodes.keys())
+ node_groups['kvm_gluster'] = list(gluster_nodes.keys())
all_nodes = set(all_nodes - set(kvm_nodes.keys()))
all_nodes = set(all_nodes - set(gluster_nodes.keys()))
if all_nodes:
@@ -201,9 +203,8 @@
os.path.dirname(os.path.abspath(__file__)), "../global_config.yaml")
with open(global_config_file, 'r') as file:
global_config = yaml.load(file, Loader=yaml.SafeLoader)
-
- for param in global_config.keys():
- if param in os.environ.keys():
+ for param in list(global_config.keys()):
+ if param in list(os.environ.keys()):
if ',' in os.environ[param]:
global_config[param] = []
for item in os.environ[param].split(','):