Hi,

I am experiencing a problem a problem with the certmaster-sync script, which aborts with an error. The problem seems to be the function syncable(), which issues a func call and then checks the job status for three seconds:

53          job_id = fc.certmastermod.peering_enabled()
54          while return_code != jobthing.JOB_ID_FINISHED and ticks < 3:
55              sleep(1)
56              (return_code, results) = fc.job_status(job_id)
57              ticks += 1
58      
59          hosts = []
60          for host, result in results.iteritems():

In my case, the job is not finished after three seconds and there is an int value in the results variable, which subsequently causes a problem in line 60 (there is no iteritems attribute for the int results).

After a quick browsing of the func code, I found that job_status may return an (int, int) tuple (function __access_status() in jobthing.py, which can get called by job_status()):

134         if write:
135             storage[str(jobid)] = (status, results)
136             rc = jobid
137         elif get_all:
138             rc=__get_open_ids(storage)
139         elif not purge:
140             if storage.has_key(str(jobid)):
141                 # tuple of (status, results)
142     
143                 rc = storage[str(jobid)]
144             else:
145                 rc = (JOB_ID_LOST_IN_SPACE, 0)

The question is now, should job_status always return a dict as the result (second element of the tuple), or should the syncable() function be prepared to handle getting an int as result?

cheers,
Andreas

_______________________________________________
Func-list mailing list
[email protected]
https://www.redhat.com/mailman/listinfo/func-list

Reply via email to