console/app/cloud/views/server_api/__init__.py

64 lines
1.7 KiB
Python
Raw Normal View History

2015-12-01 02:43:10 +03:00
# 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})