def worker_get(name): w = request.worker data = w.as_json(detailed=True) data["version"] = WORKER_SCRIPT_VERSION if w.enlisted: w.ping(**request.args) runners = int(request.args.get("available_runners", "0")) if runners > 0 and w.available: r = Run.pop_queued(w) if r: try: s = Storage() with s.console_logfd(r, "a") as f: f.write("# Run sent to worker: %s\n" % name) data["run-defs"] = [_fix_run_urls(s.get_run_definition(r))] r.build.refresh_status() except Exception: r.worker = None r.status = "QUEUED" db.session.commit() raise return jsendify({"worker": data})
def worker_get(name): w = get_or_404(Worker.query.filter_by(name=name)) data = w.as_json(detailed=True) if _is_worker_authenticated(w): data['version'] = WORKER_SCRIPT_VERSION if w.enlisted: w.ping(**request.args) runners = int(request.args.get('available_runners', '0')) if runners > 0 and w.available: r = Run.pop_queued(w) if r: try: s = Storage() with s.console_logfd(r, 'a') as f: f.write("# Run sent to worker: %s\n" % name) data['run-defs'] = [_fix_run_urls(s.get_run_definition(r))] r.build.refresh_status() except: r.worker = None r.status = 'QUEUED' db.session.commit() raise return jsendify({'worker': data})