3535
3636LOG = logging .getLogger (get_logger_name (__file__ ))
3737
38+ # Add a module-level set to track which environment variables have been logged
39+ _logged_required_env_vars = set ()
40+ _logged_optional_env_vars = set ()
41+
3842
3943def get_timeout (cluster_config , partition ):
4044 if 'timeouts' not in cluster_config :
@@ -67,20 +71,30 @@ def get_env_variables(cluster_config):
6771 Returns:
6872 dict: dictionary of environment
6973 """
74+ global _logged_required_env_vars , _logged_optional_env_vars
75+
7076 env_vars = {}
7177 # Check for user requested env variables
7278 required_env_vars = cluster_config .get ("required_env_vars" , [])
7379 for env_var in required_env_vars :
80+ env_var_name = env_var .split ('=' )[0 ].strip () if "=" in env_var else env_var
81+
7482 if "=" in env_var :
7583 if env_var .count ("=" ) == 1 :
76- env_var , value = env_var .split ("=" )
84+ env_var_name , value = env_var .split ("=" )
85+ env_var_name = env_var_name .strip ()
86+ value = value .strip ()
7787 else :
7888 raise ValueError (f"Invalid required environment variable format: { env_var } " )
79- env_vars [env_var .strip ()] = value .strip ()
80- logging .info (f"Adding required environment variable { env_var } " )
89+ env_vars [env_var_name ] = value
90+ if env_var_name not in _logged_required_env_vars :
91+ LOG .info (f"Adding required environment variable { env_var_name } from config" )
92+ _logged_required_env_vars .add (env_var_name )
8193 elif env_var in os .environ :
82- logging .info (f"Adding required environment variable { env_var } from environment" )
8394 env_vars [env_var ] = os .environ [env_var ]
95+ if env_var not in _logged_required_env_vars :
96+ LOG .info (f"Adding required environment variable { env_var } from environment" )
97+ _logged_required_env_vars .add (env_var )
8498 else :
8599 raise ValueError (f"Required environment variable { env_var } not found." )
86100
@@ -94,21 +108,33 @@ def get_env_variables(cluster_config):
94108 # Add optional env variables
95109 optional_env_vars = cluster_config .get ("env_vars" , [])
96110 for env_var in optional_env_vars + always_optional_env_vars :
111+ env_var_name = env_var .split ('=' )[0 ].strip () if "=" in env_var else env_var
112+
97113 if "=" in env_var :
98114 if env_var .count ("=" ) == 1 :
99- env_var , value = env_var .split ("=" )
115+ env_var_name , value = env_var .split ("=" )
116+ env_var_name = env_var_name .strip ()
117+ value = value .strip ()
100118 else :
101119 raise ValueError (f"Invalid optional environment variable format: { env_var } " )
102- env_vars [env_var .strip ()] = value .strip ()
103- logging .info (f"Adding optional environment variable { env_var } " )
120+ env_vars [env_var_name ] = value
121+ if env_var_name not in _logged_optional_env_vars :
122+ LOG .info (f"Adding optional environment variable { env_var_name } from config" )
123+ _logged_optional_env_vars .add (env_var_name )
104124 elif env_var in os .environ :
105- logging .info (f"Adding optional environment variable { env_var } from environment" )
106125 env_vars [env_var ] = os .environ [env_var ]
126+ if env_var not in _logged_optional_env_vars :
127+ LOG .info (f"Adding optional environment variable { env_var } from environment" )
128+ _logged_optional_env_vars .add (env_var )
107129 elif env_var in default_factories :
108130 env_vars [env_var ] = default_factories [env_var ]()
109- logging .info (f"Adding optional environment variable { env_var } from environment" )
131+ if env_var not in _logged_optional_env_vars :
132+ LOG .info (f"Adding optional environment variable { env_var } from environment" )
133+ _logged_optional_env_vars .add (env_var )
110134 else :
111- logging .info (f"Optional environment variable { env_var } not found in user environment; skipping." )
135+ if env_var not in _logged_optional_env_vars :
136+ LOG .info (f"Optional environment variable { env_var } not found in user environment; skipping." )
137+ _logged_optional_env_vars .add (env_var )
112138
113139 return env_vars
114140
0 commit comments