1
0
mirror of https://github.com/ARM-software/workload-automation.git synced 2025-09-02 11:22:41 +01:00

Added retries

Failed jobs will now be automatically retired. This is controlled by two
new settings:

retry_on_status - a list of statuses which will be consided failures and
                  result in a retry
max_retries - number of retries before giving up
This commit is contained in:
Sergei Trofimov
2015-06-18 16:36:56 +01:00
parent 51c5ef1520
commit ccea63555c
5 changed files with 70 additions and 3 deletions

View File

@@ -308,6 +308,12 @@ def _combine_ids(*args):
return '_'.join(args)
class status_list(list):
def append(self, item):
list.append(self, str(item).upper())
class RunConfiguration(object):
"""
Loads and maintains the unified configuration for this run. This includes configuration
@@ -470,6 +476,8 @@ class RunConfiguration(object):
RunConfigurationItem('reboot_policy', 'scalar', 'replace'),
RunConfigurationItem('device', 'scalar', 'replace'),
RunConfigurationItem('flashing_config', 'dict', 'replace'),
RunConfigurationItem('retry_on_status', 'list', 'replace'),
RunConfigurationItem('max_retries', 'scalar', 'replace'),
]
# Configuration specified for each workload spec. "workload_parameters"
@@ -523,6 +531,8 @@ class RunConfiguration(object):
self.workload_specs = []
self.flashing_config = {}
self.other_config = {} # keeps track of used config for extensions other than of the four main kinds.
self.retry_on_status = status_list(['FAILED', 'PARTIAL'])
self.max_retries = 3
self._used_config_items = []
self._global_instrumentation = []
self._reboot_policy = None