# 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
169 lines
4.9 KiB
Python
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)
|