console/SWSCloudCore/views/api/__init__.py
Vyacheslav Anzhiganov d6f4a0e348 Merge commit 'bf9e0731bcd036956918559645d2a8cd4a3a2c94'
# Conflicts:
#	README.md
#	SWSCloudCore/__init__.py
#	SWSCloudCore/static/css/gocloud.css
#	SWSCloudCore/static/css/hp.css
#	SWSCloudCore/static/css/normalize.css
#	SWSCloudCore/static/css/style.css
#	SWSCloudCore/templates/default/_header.html
#	SWSCloudCore/templates/default/containers/index.html
#	SWSCloudCore/templates/default/homepage/index.en.html
#	SWSCloudCore/templates/default/id/_account_information_edit.html
#	SWSCloudCore/templates/default/id/_account_information_view.html
#	SWSCloudCore/templates/default/id/billing.html
#	SWSCloudCore/templates/default/id/edit.html
#	SWSCloudCore/templates/default/tasks/index.html
#	SWSCloudCore/templates/errors/403.html
#	SWSCloudCore/templates/errors/404.html
#	SWSCloudCore/templates/errors/410.html
#	SWSCloudCore/templates/errors/500.html
#	SWSCloudCore/views/account/__init__.py
#	SWSCloudCore/views/api/__init__.py
#	SWSCloudCore/views/containers/__init__.py
#	SWSCloudCore/views/payments/__init__.py
#	app/static/css/app.css
#	app/static/css/gocloud.css
#	app/templates/default/_footer.html
#	app/templates/default/errors/404.html
#	app/templates/default/errors/410.html
#	app/templates/default/errors/500.html
#	app/templates/default/homepage/index.html
#	app/templates/default/id/_account_information_view.html
#	app/templates/default/settings/profile/_account_information_view.html
#	app/templates/default/tasks/index.html
#	app/templates/default/tasks/index.ru.html
#	app/templates/errors/404.html
#	app/templates/errors/410.html
#	app/templates/errors/500.html
#	kb/README.md
2016-04-02 02:20:12 +03:00

169 lines
4.9 KiB
Python

# coding: utf-8
<<<<<<< HEAD:app/cloud/views/api/__init__.py
import uuid
from datetime import datetime
from datetime import timedelta
from flask import jsonify
from flask import render_template
from flask import session
from flask import redirect
from flask import url_for
from flask import request
from flask import Blueprint
from app import models
from app.settings import settings
from app.cloud.controllers.users import ControllerUsers
from app.cloud.controllers.users import ControllerSSHKey
from app.cloud.controllers.billing import ControllerBilling
from app.cloud.controllers.users import ControllerAPI
from app.cloud.controllers.datacenters import ControllerDataCenters
from app.cloud.controllers.containers import ControllerContainers
=======
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
>>>>>>> bf9e0731bcd036956918559645d2a8cd4a3a2c94:SWSCloudCore/views/api/__init__.py
viewAPI = Blueprint('api', __name__, url_prefix='/api')
# /auth
@viewAPI.route('/auth', methods=['POST'])
def auth():
"""
curl -X POST http://localhost:5000/api/auth --data 'email=<email>&secret=<secret>'
TODO:
Процесс авторизации
- получаем емейл и секретный ключ
- создаём временный токен
- выдаём токен
: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)
return jsonify(user_id=user_id)
@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']
)
# /container/create
# /container/details/<uuid:container_id>
@viewAPI.route('/container/list', methods=['POST'])
def container_list():
"""
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)
# get containers list
containers = ControllerContainers(user_id).get_items()
#
return jsonify(
status=0,
total=containers['total'],
items=containers['items']
)
@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']
)
@viewAPI.route('/container/delete', methods=['POST'])
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:
"""
return jsonify(status=0)
@viewAPI.route('/container/stop', methods=['POST'])
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:
"""
return jsonify(status=0)
@viewAPI.route('/container/start', methods=['POST'])
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:
"""
return jsonify(status=0)
@viewAPI.route('/container/restart', methods=['POST'])
def container_restart():
"""
curl -X POST http://localhost:5000/api/container/restart --data 'email=<str:email>&secret=<str:secret>&container_id=<uuid:container_id>'
:return:
"""
return jsonify(status=0)