2015-12-01 02:43:10 +03:00
|
|
|
# coding: utf-8
|
|
|
|
|
|
|
|
|
2016-04-02 00:42:22 +03:00
|
|
|
from flask import Blueprint, jsonify, request
|
|
|
|
from SWSCloudCore.controllers.containers import ControllerContainers
|
|
|
|
from SWSCloudCore.controllers.datacenters import ControllerDataCenters
|
|
|
|
from SWSCloudCore.controllers.users import ControllerAPI
|
|
|
|
from SWSCloudCore.controllers.users import ControllerUsers
|
2015-12-01 02:43:10 +03:00
|
|
|
|
|
|
|
viewAPI = Blueprint('api', __name__, url_prefix='/api')
|
|
|
|
|
|
|
|
|
2015-12-23 02:31:43 +03:00
|
|
|
# /auth
|
|
|
|
@viewAPI.route('/auth', methods=['POST'])
|
|
|
|
def auth():
|
|
|
|
"""
|
2015-12-24 02:24:11 +03:00
|
|
|
curl -X POST http://localhost:5000/api/auth --data 'email=<email>&secret=<secret>'
|
|
|
|
TODO:
|
2015-12-23 02:31:43 +03:00
|
|
|
Процесс авторизации
|
|
|
|
- получаем емейл и секретный ключ
|
|
|
|
- создаём временный токен
|
|
|
|
- выдаём токен
|
|
|
|
:return:
|
|
|
|
"""
|
|
|
|
email = request.form['email']
|
|
|
|
secret = request.form['secret']
|
2015-12-24 02:24:11 +03:00
|
|
|
# expire = request.form['expire']
|
|
|
|
|
|
|
|
if not ControllerAPI().auth(email, secret):
|
|
|
|
return jsonify(status=1)
|
|
|
|
|
|
|
|
user_id = ControllerUsers().get_id_by_email(email)
|
|
|
|
|
|
|
|
return jsonify(user_id=user_id)
|
2015-12-24 02:36:32 +03:00
|
|
|
|
|
|
|
|
|
|
|
@viewAPI.route('/datacenter/list', methods=['POST'])
|
|
|
|
def datacenter_list():
|
|
|
|
"""
|
|
|
|
curl -X POST http://localhost:5000/api/datacenter/list --data 'email=<email>&secret=<secret>'
|
|
|
|
:return:
|
|
|
|
"""
|
|
|
|
email = request.form['email']
|
|
|
|
secret = request.form['secret']
|
|
|
|
#
|
|
|
|
if not ControllerAPI().auth(email, secret):
|
|
|
|
return jsonify(status=1)
|
|
|
|
#
|
|
|
|
user_id = ControllerUsers().get_id_by_email(email)
|
|
|
|
# get containers list
|
|
|
|
datacenters = ControllerDataCenters().get()
|
|
|
|
#
|
|
|
|
return jsonify(
|
|
|
|
status=0,
|
|
|
|
total=datacenters['total'],
|
|
|
|
items=datacenters['items']
|
|
|
|
)
|
|
|
|
|
|
|
|
|
2015-12-23 02:31:43 +03:00
|
|
|
# /container/create
|
|
|
|
# /container/details/<uuid:container_id>
|
|
|
|
|
|
|
|
|
2015-12-24 02:36:32 +03:00
|
|
|
@viewAPI.route('/container/list', methods=['POST'])
|
2015-12-23 02:31:43 +03:00
|
|
|
def container_list():
|
2015-12-24 02:24:11 +03:00
|
|
|
"""
|
|
|
|
curl -X POST http://localhost:5000/api/container/list --data 'email=<email>&secret=<secret>'
|
|
|
|
:return:
|
|
|
|
"""
|
|
|
|
email = request.form['email']
|
|
|
|
secret = request.form['secret']
|
|
|
|
# expire = request.form['expire']
|
|
|
|
#
|
|
|
|
if not ControllerAPI().auth(email, secret):
|
|
|
|
return jsonify(status=1)
|
|
|
|
#
|
|
|
|
user_id = ControllerUsers().get_id_by_email(email)
|
2015-12-23 02:31:43 +03:00
|
|
|
# get containers list
|
2015-12-24 02:24:11 +03:00
|
|
|
containers = ControllerContainers(user_id).get_items()
|
|
|
|
#
|
|
|
|
return jsonify(
|
|
|
|
status=0,
|
|
|
|
total=containers['total'],
|
|
|
|
items=containers['items']
|
|
|
|
)
|
2015-12-24 02:36:32 +03:00
|
|
|
|
|
|
|
|
|
|
|
@viewAPI.route('/container/create', methods=['POST'])
|
|
|
|
def container_create():
|
|
|
|
"""
|
|
|
|
curl -X POST http://localhost:5000/api/container/create --data 'email=<email>&secret=<secret>&datacenter_id=<datacenter_id>'
|
|
|
|
:return:
|
|
|
|
"""
|
|
|
|
email = request.form['email']
|
|
|
|
secret = request.form['secret']
|
|
|
|
datacenter_id = request.form['datacenter_id']
|
|
|
|
# expire = request.form['expire']
|
|
|
|
#
|
|
|
|
if not ControllerAPI().auth(email, secret):
|
|
|
|
return jsonify(status=1)
|
|
|
|
#
|
|
|
|
user_id = ControllerUsers().get_id_by_email(email)
|
|
|
|
# get containers list
|
|
|
|
containers = ControllerContainers(user_id).get_items()
|
|
|
|
#
|
|
|
|
return jsonify(
|
|
|
|
status=0,
|
|
|
|
total=containers['total'],
|
|
|
|
items=containers['items']
|
|
|
|
)
|
2016-01-18 11:06:45 +03:00
|
|
|
|
|
|
|
|
2016-01-18 11:32:26 +03:00
|
|
|
@viewAPI.route('/container/delete', methods=['POST'])
|
2016-01-18 11:06:45 +03:00
|
|
|
def container_delete():
|
|
|
|
"""
|
|
|
|
curl -X POST http://localhost:5000/api/container/delete --data 'email=<str:email>&secret=<str:secret>&container_id=<uuid:container_id>'
|
|
|
|
:return:
|
|
|
|
"""
|
2016-01-18 11:32:26 +03:00
|
|
|
return jsonify(status=0)
|
2016-01-18 11:06:45 +03:00
|
|
|
|
|
|
|
|
2016-01-18 11:32:26 +03:00
|
|
|
@viewAPI.route('/container/stop', methods=['POST'])
|
2016-01-18 11:06:45 +03:00
|
|
|
def container_stop():
|
|
|
|
"""
|
|
|
|
curl -X POST http://localhost:5000/api/container/stop --data 'email=<str:email>&secret=<str:secret>&container_id=<uuid:container_id>'
|
|
|
|
:return:
|
|
|
|
"""
|
2016-01-18 11:32:26 +03:00
|
|
|
return jsonify(status=0)
|
2016-01-18 11:06:45 +03:00
|
|
|
|
|
|
|
|
2016-01-18 11:32:26 +03:00
|
|
|
@viewAPI.route('/container/start', methods=['POST'])
|
2016-01-18 11:06:45 +03:00
|
|
|
def container_start():
|
|
|
|
"""
|
|
|
|
curl -X POST http://localhost:5000/api/container/start --data 'email=<str:email>&secret=<str:secret>&container_id=<uuid:container_id>'
|
|
|
|
:return:
|
|
|
|
"""
|
2016-01-18 11:32:26 +03:00
|
|
|
return jsonify(status=0)
|
2016-01-18 11:06:45 +03:00
|
|
|
|
|
|
|
|
2016-01-18 11:32:26 +03:00
|
|
|
@viewAPI.route('/container/restart', methods=['POST'])
|
2016-01-18 14:16:42 +03:00
|
|
|
def container_restart():
|
2016-01-18 11:06:45 +03:00
|
|
|
"""
|
|
|
|
curl -X POST http://localhost:5000/api/container/restart --data 'email=<str:email>&secret=<str:secret>&container_id=<uuid:container_id>'
|
|
|
|
:return:
|
|
|
|
"""
|
2016-01-18 11:32:26 +03:00
|
|
|
return jsonify(status=0)
|