Beispiel #1
0
def cronjob(sched_id, cmd_id):
    db_model = Model()

    devices = db_model.get_schedule_active_devices(sched_id, 'iled', 'iled')
    if not devices:
        return

    with open(cache_json_path, 'r') as fin:
        json = json_load(fin)
        cmd_name = json['command_names'][str(cmd_id)]
        
    errors = []
    succeeded = []
    dev_ids_to_update = []
    for dev_id, dev_name, password in devices:
        # call worker.py
        res = handle_request(
            vendor='iled', model='iled', dev_name=dev_name,
            password=password, command=cmd_id
        )

        if res['status'] != 'OK':
            errors.append({
                'dev_name': dev_name,
                'status': res['status'],
                'reason': res['message']
            })
        else:
            dev_ids_to_update.append(dev_id)
            succeeded.append(dev_name)
    
    if errors:
        json = json_dumps({'schedule_id' : sched_id, 'vendor' : 'iled', 'model' : 'iled', 'command': cmd_name, 'errors' : errors})
        db_model.insert_log('schedule_error', json, 1)
    
    if dev_ids_to_update:
        db_model.update_device_status(dev_ids_to_update, cmd_id=cmd_id, dstat_name='active')

    db_model.cleanup()
Beispiel #2
0
def _cronjob(sched_id):
    db_model = Model()

    devices = db_model.get_schedule_active_devices(sched_id, 'nasys', 'ul2011')

    sched_cmd_data = generate_schedule(sched_id)
    cmd = 'send_custom_command'
    msg = json_dumps(sched_cmd_data)

    errors = []
    succeeded = []
    for _dev_id, dev_name, password in devices:
        res = handle_request(vendor='nasys',
                             model='ul2011',
                             dev_name=dev_name,
                             password=password,
                             command=cmd,
                             parameter=msg)

        if res['status'] != 'OK':
            errors.append({
                'dev_name': dev_name,
                'status': res['status'],
                'reason': res['message']
            })
        else:
            succeeded.append(dev_name)

    if errors:
        json = json_dumps({
            'schedule_id': sched_id,
            'vendor': 'nasys',
            'model': 'ul2011',
            'errors': errors
        })
        db_model.insert_log('schedule_error', json, 1)

    db_model.cleanup()