Hotfix for settings and SSH shell routine

  Related-PROD: PROD-36588

Change-Id: I63d6ae4a888dad81ae886c9b1e2bb5ea41139772
diff --git a/cfg_checker/common/settings.py b/cfg_checker/common/settings.py
index eac81c1..993f92f 100644
--- a/cfg_checker/common/settings.py
+++ b/cfg_checker/common/settings.py
@@ -40,14 +40,20 @@
     return _json
 
 
+def _get_env_value(_key, _default):
+    _value = os.environ.get(_key, _default)
+    logger_cli.debug("... shell env: {}={}".format(_key, _value))
+    return _value
+
+
 class CheckerConfiguration(object):
     @staticmethod
     def load_nodes_list():
-        _file = os.environ.get('SALT_NODE_LIST_FILE', None)
+        _file = _get_env_value('SALT_NODE_LIST_FILE', None)
         if _file:
             _v, _ = utils.get_nodes_list(
                 os.path.join(pkg_dir, _file),
-                env_sting=os.environ.get('CFG_ALL_NODES', None)
+                env_sting=_get_env_value('CFG_ALL_NODES', None)
             )
             return _v
         else:
@@ -181,7 +187,7 @@
                     )
                 )
         self.name = "CheckerConfig"
-        self.working_folder = os.environ.get(
+        self.working_folder = _get_env_value(
             'CFG_TESTS_WORK_DIR',
             _default_work_folder
         )
@@ -191,21 +197,21 @@
         self.pkg_versions_map = 'versions_map.csv'
 
         # self.ssh_uses_sudo = False
-        self.ssh_key = os.environ.get('MCP_SSH_KEY', None)
-        self.ssh_user = os.environ.get('MCP_SSH_USER', None)
-        self.ssh_host = os.environ.get('MCP_SSH_HOST', None)
+        self.ssh_key = _get_env_value('MCP_SSH_KEY', None)
+        self.ssh_user = _get_env_value('MCP_SSH_USER', None)
+        self.ssh_host = _get_env_value('MCP_SSH_HOST', None)
         self.ssh_connect_timeout = int(
-            os.environ.get('MCP_SSH_TIMEOUT', "15")
+            _get_env_value('MCP_SSH_TIMEOUT', "15")
         )
 
-        self.mcp_host = os.environ.get('MCP_ENV_HOST', None)
-        self.salt_port = os.environ.get('MCP_SALT_PORT', '6969')
-        self.threads = int(os.environ.get('MCP_THREADS', "5"))
+        self.mcp_host = _get_env_value('MCP_ENV_HOST', None)
+        self.salt_port = _get_env_value('MCP_SALT_PORT', '6969')
+        self.threads = int(_get_env_value('MCP_THREADS', "5"))
         self.script_execution_timeout = int(
-            os.environ.get('MCP_SCRIPT_RUN_TIMEOUT', "300")
+            _get_env_value('MCP_SCRIPT_RUN_TIMEOUT', "300")
         )
 
-        self.skip_nodes = utils.node_string_to_list(os.environ.get(
+        self.skip_nodes = utils.node_string_to_list(_get_env_value(
             'CFG_SKIP_NODES',
             None
         ))
@@ -226,13 +232,13 @@
                 if _key not in os.environ:
                     os.environ[_key] = _value
 
-            self.salt_user = os.environ.get('SALT_USER', 'salt')
-            self.salt_timeout = os.environ.get('SALT_TIMEOUT', 30)
-            self.salt_file_root = os.environ.get(
+            self.salt_user = _get_env_value('SALT_USER', 'salt')
+            self.salt_timeout = _get_env_value('SALT_TIMEOUT', 30)
+            self.salt_file_root = _get_env_value(
                 'SALT_FILE_ROOT',
                 "/usr/share/salt-formulas/env/"
             )
-            self.salt_scripts_folder = os.environ.get(
+            self.salt_scripts_folder = _get_env_value(
                 'SALT_SCRIPTS_FOLDER',
                 'cfg_checker_scripts'
             )
@@ -241,16 +247,16 @@
                 if _key not in os.environ:
                     os.environ[_key] = _value
 
-            self.kube_config_root = os.environ.get('KUBE_CONFIG_ROOT', "/root")
-            self.kube_scripts_folder = os.environ.get(
+            self.kube_config_root = _get_env_value('KUBE_CONFIG_ROOT', "/root")
+            self.kube_scripts_folder = _get_env_value(
                 'KUBE_SCRIPTS_FOLDER',
                 "cfg-checker-scripts"
             )
-            self.kube_node_user = os.environ.get(
+            self.kube_node_user = _get_env_value(
                 'KUBE_NODE_USER',
                 'ubuntu'
             )
-            self.kube_node_keypath = os.environ.get(
+            self.kube_node_keypath = _get_env_value(
                 'KUBE_NODE_KEYPATH',
                 None
             )
@@ -302,7 +308,7 @@
             ConfigException -- on env file failed validation
         """
         # detect kubeconfig placement
-        _env_kubeconf_path = os.environ.get('KUBECONFIG', None)
+        _env_kubeconf_path = _get_env_value('KUBECONFIG', None)
         if not os.path.exists(self.kube_config_path):
             logger_cli.debug(
                 "... kubeconfig not detected at '{}'".format(
@@ -419,21 +425,32 @@
 
         # if env name is default, check var too
         if args.env_name == ENV_LOCAL:
-            _env = os.getenv('MCP_ENV', None)
+            _env = _get_env_value('MCP_ENV', None)
             _env = _env if _env else args.env_name
             _env_config_path = os.path.join(pkg_dir, 'etc', _env + '.env')
         else:
             _env = args.env_name
             _env_config_path = args.env_config
+        logger_cli.debug(
+            "... env is '{}', config path is '{}'".format(
+                _env,
+                _env_config_path
+            )
+        )
 
         # Init environment variables from file, validate
+        logger_cli.debug(
+            "... init environment values from '{}'".format(_env_config_path)
+        )
         self._init_env(_env_config_path, env_name=_env)
         # Load Common vars for any type of the env
+        logger_cli.debug("... loading common variables")
         self._init_mcp_values()
         # Detect env types present
         self._detect_types()
         # handle forced env type var
-        _forced_type = os.getenv('MCP_TYPE_FORCE', None)
+        logger_cli.debug("... handling forced env types")
+        _forced_type = _get_env_value('MCP_TYPE_FORCE', None)
         if _forced_type in supported_envs:
             self.detected_envs.append(_forced_type)
         elif _forced_type is not None:
@@ -461,6 +478,9 @@
             # names and folders in case of remote env
             self.user = self.ssh_user
             self.homepath = os.path.join('/home', self.ssh_user)
+        logger_cli.debug("... system user for ssh is '{}'".format(self.user))
+        logger_cli.debug("... system home path is '{}'".format(self.homepath))
 
         # Init vars that is specific to detected envs only
+        logger_cli.debug("... loading detected environment type vars")
         self._init_env_values()
diff --git a/cfg_checker/nodes.py b/cfg_checker/nodes.py
index 0559132..cf2bdf7 100644
--- a/cfg_checker/nodes.py
+++ b/cfg_checker/nodes.py
@@ -694,12 +694,13 @@
         _h = self.nodes[node]['internalip']
         _p = 22
         if self.kube.is_local or self.kube.config.ssh_direct:
-            return None,
-            self._get_ssh_shell(
+            logger.debug("Getting shell with no port forward")
+            return [None, self._get_ssh_shell(
                 _h, _u, _k, _p, silent, piped,
                 timeout=self.kube.config.ssh_connect_timeout
-            )
+            )]
         else:
+            logger.debug("Getting shell with with forward")
             _fh = "localhost"
             _p = 10022 if not fport else fport
             _pfwd = PortForward(
@@ -720,7 +721,7 @@
                 piped,
                 timeout=self.kube.config.ssh_connect_timeout
             )
-            return _pfwd, _ssh
+            return [_pfwd, _ssh]
 
     def execute_script_on_node(self, node, script_filename, args=[]):
         # Prepare path