Load env in a function
Changes:
- New func to load the env vars
Change-Id: I34ab423e97bce9c7d501b6ca10b540bee5dd4a98
Signed-off-by: George Keishing <gkeishin@in.ibm.com>
diff --git a/ffdc/ffdc_collector.py b/ffdc/ffdc_collector.py
index 5c9d1f0..b23776c 100644
--- a/ffdc/ffdc_collector.py
+++ b/ffdc/ffdc_collector.py
@@ -55,14 +55,6 @@
self.hostname = hostname
self.username = username
self.password = password
- # This is for the env vars a user can use in YAML to load it at runtime.
- # Example YAML:
- # -COMMANDS:
- # - my_command ${hostname} ${username} ${password}
- os.environ['hostname'] = hostname
- os.environ['username'] = username
- os.environ['password'] = password
-
self.ffdc_config = ffdc_config
self.location = location + "/" + remote_type.upper()
self.ssh_remoteclient = None
@@ -71,6 +63,8 @@
self.ffdc_prefix = ""
self.target_type = remote_type.upper()
self.remote_protocol = remote_protocol.upper()
+ self.env_vars = env_vars
+ self.econfig = econfig
self.start_time = 0
self.elapsed_time = ''
self.logger = None
@@ -103,41 +97,7 @@
# Load ENV vars from user.
self.logger.info("\n\tENV: User define input YAML variables")
self.env_dict = {}
-
- try:
- if env_vars:
- self.env_dict = json.loads(env_vars)
-
- # Export ENV vars default.
- for key, value in self.env_dict.items():
- os.environ[key] = value
-
- if econfig:
- with open(econfig, 'r') as file:
- env_config_dict = yaml.load(file, Loader=yaml.FullLoader)
- # Export ENV vars.
- for key, value in env_config_dict['env_params'].items():
- os.environ[key] = str(value)
- self.env_dict[key] = str(value)
-
- except json.decoder.JSONDecodeError as e:
- self.logger.error("\n\tERROR: %s " % e)
- sys.exit(-1)
-
- # Append default Env.
- self.env_dict['hostname'] = self.hostname
- self.env_dict['username'] = self.username
- self.env_dict['password'] = self.password
- # This to mask the password from displaying on the console.
- mask_dict = self.env_dict.copy()
- for k, v in mask_dict.items():
- if k.lower().find("password") != -1:
- hidden_text = []
- hidden_text.append(v)
- password_regex = '(' +\
- '|'.join([re.escape(x) for x in hidden_text]) + ')'
- mask_dict[k] = re.sub(password_regex, "********", v)
- self.logger.info(json.dumps(mask_dict, indent=8, sort_keys=True))
+ self. load_env()
def verify_script_env(self):
@@ -754,3 +714,53 @@
self.logger.info("\n\t[Check] %s IPMI LAN Service.\t\t [NOT AVAILABLE]" % self.hostname)
return tmp_list
+
+ def load_env(self):
+ r"""
+ Perform protocol working check.
+
+ """
+ # This is for the env vars a user can use in YAML to load it at runtime.
+ # Example YAML:
+ # -COMMANDS:
+ # - my_command ${hostname} ${username} ${password}
+ os.environ['hostname'] = self.hostname
+ os.environ['username'] = self.username
+ os.environ['password'] = self.password
+
+ # Append default Env.
+ self.env_dict['hostname'] = self.hostname
+ self.env_dict['username'] = self.username
+ self.env_dict['password'] = self.password
+
+ try:
+ tmp_env_dict = {}
+ if self.env_vars:
+ tmp_env_dict = json.loads(self.env_vars)
+ # Export ENV vars default.
+ for key, value in tmp_env_dict.items():
+ os.environ[key] = value
+ self.env_dict[key] = str(value)
+
+ if self.econfig:
+ with open(self.econfig, 'r') as file:
+ tmp_env_dict = yaml.load(file, Loader=yaml.FullLoader)
+ # Export ENV vars.
+ for key, value in tmp_env_dict['env_params'].items():
+ os.environ[key] = str(value)
+ self.env_dict[key] = str(value)
+ except json.decoder.JSONDecodeError as e:
+ self.logger.error("\n\tERROR: %s " % e)
+ sys.exit(-1)
+
+ # This to mask the password from displaying on the console.
+ mask_dict = self.env_dict.copy()
+ for k, v in mask_dict.items():
+ if k.lower().find("password") != -1:
+ hidden_text = []
+ hidden_text.append(v)
+ password_regex = '(' +\
+ '|'.join([re.escape(x) for x in hidden_text]) + ')'
+ mask_dict[k] = re.sub(password_regex, "********", v)
+
+ self.logger.info(json.dumps(mask_dict, indent=8, sort_keys=False))