From c1024859939b6d29ff7d18e022c0c163ed80c1fe Mon Sep 17 00:00:00 2001 From: Robert Rati <rrati@redhat.com> Date: Thu, 21 Jul 2011 12:39:38 -0500 Subject: [PATCH 06/13] Add parameter to read_condor_config to disallow lookup of param only. The param defaults to true, and if set to false then subsys.param must exist. Updated hooks to used the new parameter --- hooks/hook_evict_claim.py | 2 +- hooks/hook_fetch_work.py | 2 +- hooks/hook_job_exit.py | 2 +- hooks/hook_prepare_job.py | 2 +- hooks/hook_reply_fetch.py | 2 +- hooks/hook_update_job_status.py | 2 +- module/readconfig.py | 23 ++++++++++++++--------- 7 files changed, 20 insertions(+), 15 deletions(-) diff --git a/hooks/hook_evict_claim.py b/hooks/hook_evict_claim.py index 61bd567..eb3883f 100755 --- a/hooks/hook_evict_claim.py +++ b/hooks/hook_evict_claim.py @@ -32,7 +32,7 @@ def main(argv=None): log_name = os.path.basename(argv[0]) try: - config = read_condor_config('JOB_HOOKS', ['IP', 'PORT', 'LOG']) + config = read_condor_config('JOB_HOOKS', ['IP', 'PORT', 'LOG'], permit_param_only = False) except ConfigError, error: try: print >> sys.stderr, 'Warning: %s' % error.msg diff --git a/hooks/hook_fetch_work.py b/hooks/hook_fetch_work.py index 102ea60..8fb73e8 100755 --- a/hooks/hook_fetch_work.py +++ b/hooks/hook_fetch_work.py @@ -33,7 +33,7 @@ def main(argv=None): log_name = os.path.basename(argv[0]) try: - config = read_condor_config('JOB_HOOKS', ['IP', 'PORT', 'LOG']) + config = read_condor_config('JOB_HOOKS', ['IP', 'PORT', 'LOG'], permit_param_only = False) except ConfigError, error: try: print >> sys.stderr, 'Warning: %s' % error.msg diff --git a/hooks/hook_job_exit.py b/hooks/hook_job_exit.py index ebc28af..9637c02 100755 --- a/hooks/hook_job_exit.py +++ b/hooks/hook_job_exit.py @@ -36,7 +36,7 @@ def main(argv=None): if use_syslog == True: syslog.openlog(os.path.basename(argv[0])) try: - config = read_condor_config('JOB_HOOKS', ['IP', 'PORT']) + config = read_condor_config('JOB_HOOKS', ['IP', 'PORT'], permit_param_only = False) except ConfigError, error: try: if use_syslog == True: diff --git a/hooks/hook_prepare_job.py b/hooks/hook_prepare_job.py index 1a2e2b0..30a3303 100755 --- a/hooks/hook_prepare_job.py +++ b/hooks/hook_prepare_job.py @@ -36,7 +36,7 @@ def main(argv=None): if use_syslog == True: syslog.openlog(os.path.basename(argv[0])) try: - config = read_condor_config('JOB_HOOKS', ['IP', 'PORT']) + config = read_condor_config('JOB_HOOKS', ['IP', 'PORT'], permit_param_only = False) except ConfigError, error: try: if use_syslog == True: diff --git a/hooks/hook_reply_fetch.py b/hooks/hook_reply_fetch.py index 867de9d..4458fd5 100755 --- a/hooks/hook_reply_fetch.py +++ b/hooks/hook_reply_fetch.py @@ -33,7 +33,7 @@ def main(argv=None): log_name = os.path.basename(argv[0]) try: - config = read_condor_config('JOB_HOOKS', ['IP', 'PORT', 'LOG']) + config = read_condor_config('JOB_HOOKS', ['IP', 'PORT', 'LOG'], permit_param_only = False) except ConfigError, error: try: print >> sys.stderr, 'Warning: %s' % error.msg diff --git a/hooks/hook_update_job_status.py b/hooks/hook_update_job_status.py index bfcd976..4f014cf 100755 --- a/hooks/hook_update_job_status.py +++ b/hooks/hook_update_job_status.py @@ -36,7 +36,7 @@ def main(argv=None): if use_syslog == True: syslog.openlog(os.path.basename(argv[0])) try: - config = read_condor_config('JOB_HOOKS', ['IP', 'PORT']) + config = read_condor_config('JOB_HOOKS', ['IP', 'PORT'], permit_param_only = False) except ConfigError, error: try: if use_syslog == True: diff --git a/module/readconfig.py b/module/readconfig.py index 42da2da..d4cb908 100644 --- a/module/readconfig.py +++ b/module/readconfig.py @@ -22,7 +22,7 @@ class ConfigError(Exception): self.msg = msg -def read_condor_config(subsys, attr_list, environ={}): +def read_condor_config(subsys, attr_list, environ={}, permit_param_only=True): """ Uses condor_config_val to look up values in condor's configuration. First looks for subsys_param, then for the newer subsys.param. Returns map(param, value)""" @@ -42,14 +42,19 @@ def read_condor_config(subsys, attr_list, environ={}): config[attr.lower()] = value.strip() if found == False: - # Try the param name by itself - (rcode, value, stderr) = run_cmd('condor_config_val ' + attr, environ=environ) - if rcode == 0: - found = True - config[attr.lower()] = value.strip() - else: - # The param wasn't found so break out so that an execption can - # be raised + if permit_param_only == True: + # Try the param name by itself + (rcode, value, stderr) = run_cmd('condor_config_val ' + attr, environ=environ) + if rcode == 0: + found = True + config[attr.lower()] = value.strip() + else: + # The param wasn't found so break out so that an execption can + # be raised + break + else + # Lookup of param by itself isn't allowed, so break so an exception + # can be raised break if found == False: -- 1.7.6.5