示例#1
0
def monitor_task_status(api, task_ids, history, interval=15):
    _extract_info = lambda task: {u'status': task.status, u'statistic': task.statistic}
    while True:
        time_zero = time.time()
        try:
            history.append({_id: _extract_info(api.transform_tasks[_id]) for _id in task_ids})
            time.sleep(max(0, interval - (time.time() - time_zero)))
        except (ConnectionError, Timeout) as e:
            print(u'WARNING! Communication error while monitoring tasks, details: {1}.'.format(e))
示例#2
0
def monitor_unit_status(environment, history, interval=15):
    while True:
        time_zero = time.time()
        units     = {}
        status    = environment.status(fail=False)
        if status:
            services = status.get(u'services', {})
            for service in services.itervalues():
                units.update({k:v[u'agent-state'] for k,v in service['units'].iteritems()})
            history.append(units)
        time.sleep(max(0, interval - (time.time() - time_zero)))