diff --git a/erp5/util/testnode/testnode.py b/erp5/util/testnode/testnode.py index 613edcb3ea5c6fc52198af22e0934eb0b4300ce5..d99354c9105dd9998fdb5f9467c64eb13d37d955 100644 --- a/erp5/util/testnode/testnode.py +++ b/erp5/util/testnode/testnode.py @@ -34,6 +34,9 @@ import time import xmlrpclib import glob import SlapOSControler +import logging + +DEFAULT_SLEEP_TIMEOUT = 120 # time in seconds to sleep class SubprocessError(EnvironmentError): def __init__(self, status_dict): @@ -43,7 +46,6 @@ class SubprocessError(EnvironmentError): def __str__(self): return 'Error %i' % self.status_code - from Updater import Updater supervisord_pid_file = None @@ -58,8 +60,9 @@ def sigterm_handler(signal, frame): signal.signal(signal.SIGTERM, sigterm_handler) -import logging def safeRpcCall(function, *args): + # XXX: this method will try infinitive calls to backend + # this can cause testnode to looked "stalled" retry = 64 while True: try: @@ -188,7 +191,7 @@ branch = %(branch)s revision = ','.join(full_revision_list) if previous_revision == revision: log('Sleeping a bit') - time.sleep(120) + time.sleep(DEFAULT_SLEEP_TIMEOUT) if not(retry_software): continue log('Retrying install') @@ -204,7 +207,7 @@ branch = %(branch)s portal = xmlrpclib.ServerProxy("%s%s" % (portal_url, 'portal_task_distribution'), allow_none=1) - master = portal.portal_task_distribution + master = portal assert safeRpcCall(master.getProtocolRevision) == 1 test_result = safeRpcCall(master.createTestResult, config['test_suite'], revision, [], @@ -235,7 +238,7 @@ branch = %(branch)s slapos_controler = SlapOSControler.SlapOSControler(config, process_group_pid_set=process_group_pid_set, log=log, slapproxy_log=slapproxy_log) - for method_name in ("runSoftwareRelease", "runComputerPartition"): + for method_name in ("runSoftwareRelease", "runComputerPartition",): stdout, stderr = getInputOutputFileList(config, method_name) slapos_method = getattr(slapos_controler, method_name) status_dict = slapos_method(config, @@ -288,7 +291,7 @@ branch = %(branch)s if remote_test_result_needs_cleanup: safeRpcCall(master.reportTaskFailure, test_result_path, e.status_dict, config['test_node_title']) - time.sleep(120) + time.sleep(DEFAULT_SLEEP_TIMEOUT) continue finally: