64 lines
1.7 KiB
Python
64 lines
1.7 KiB
Python
|
# coding: utf-8
|
||
|
|
||
|
import json
|
||
|
import uuid
|
||
|
|
||
|
from flask import Response
|
||
|
from flask import request
|
||
|
from flask import Blueprint
|
||
|
from flask import jsonify
|
||
|
|
||
|
from app import models
|
||
|
from app.cloud.controllers.tasks.server import ControllerTasksServer
|
||
|
# from .controllers import ControllerRulesStatistics
|
||
|
|
||
|
viewServerAPI = Blueprint('server_api', __name__, url_prefix='/server_api')
|
||
|
|
||
|
|
||
|
@viewServerAPI.route('/tasks', methods=['GET'])
|
||
|
def tasks_list():
|
||
|
node_id = request.args.get('node_id')
|
||
|
node_secret = request.args.get('node_secret')
|
||
|
server_api = ControllerTasksServer(node_id, node_secret)
|
||
|
|
||
|
# auth request
|
||
|
if not server_api.auth():
|
||
|
# status: 403 - access denied
|
||
|
return jsonify({'status': 403})
|
||
|
|
||
|
result = dict()
|
||
|
result['status'] = 0
|
||
|
result['results'] = []
|
||
|
|
||
|
for task in server_api.get():
|
||
|
result['results'].append({
|
||
|
'id': task.id,
|
||
|
'datacenter': task.datacenter.id,
|
||
|
'server': task.server.id,
|
||
|
'user': task.user.id,
|
||
|
'task': task.task,
|
||
|
'created': task.created,
|
||
|
'status': task.status,
|
||
|
'plain': json.loads(task.plain),
|
||
|
})
|
||
|
return jsonify(result)
|
||
|
|
||
|
|
||
|
@viewServerAPI.route('/task_status_update', methods=['GET'])
|
||
|
def task_status_update():
|
||
|
node_id = request.args.get('node_id')
|
||
|
node_secret = request.args.get('node_secret')
|
||
|
server_api = ControllerTasksServer(node_id, node_secret)
|
||
|
|
||
|
# auth request
|
||
|
if not server_api.auth():
|
||
|
# status: 403 - access denied
|
||
|
return jsonify({'status': 403})
|
||
|
|
||
|
task_id = request.args.get('task_id')
|
||
|
status = int(request.args.get('status'))
|
||
|
|
||
|
server_api.update(task_id, status)
|
||
|
|
||
|
return jsonify({'status': 0})
|