2015-12-01 02:43:10 +03:00
|
|
|
|
# coding: utf-8
|
|
|
|
|
|
|
|
|
|
from uuid import uuid4
|
2016-04-03 19:10:18 +03:00
|
|
|
|
import validators
|
2016-04-02 00:42:22 +03:00
|
|
|
|
|
2016-08-22 03:58:07 +03:00
|
|
|
|
from flask import Blueprint, flash, g, jsonify, redirect, render_template, request, session, url_for
|
2016-10-11 03:37:04 +03:00
|
|
|
|
from SWSCloudAdministrator.Administrator.common import requires_login
|
|
|
|
|
|
2016-04-03 19:10:18 +03:00
|
|
|
|
from SWSCloudCore.controllers.administrators import ControllerAdministrators
|
2016-10-11 03:37:04 +03:00
|
|
|
|
# from SWSCloudCore.controllers.billing import ControllerBilling
|
2016-04-03 19:10:18 +03:00
|
|
|
|
from SWSCloudCore.controllers.common import ControllerMessagesEmail
|
|
|
|
|
from SWSCloudCore.controllers.datacenters.manage import ControllerManageDatacenters
|
|
|
|
|
from SWSCloudCore.controllers.ips.manage import ControllerManageIPs
|
|
|
|
|
from SWSCloudCore.controllers.servers.manage import ControllerManageServer
|
2016-10-11 03:37:04 +03:00
|
|
|
|
# from SWSCloudCore.controllers.users.manage import ControllerManageUsers
|
|
|
|
|
# from SWSCloudCore.controllers.users.manage import ControllerManageUsersBalance
|
|
|
|
|
# from SWSCloudCore.controllers.users.manage import ControllerManageUsersDetails
|
2016-05-16 09:24:27 +03:00
|
|
|
|
from SWSCloudCore.controllers.plans import ControllerPlans
|
2016-04-03 19:10:18 +03:00
|
|
|
|
from SWSCloudCore import models
|
2015-12-01 02:43:10 +03:00
|
|
|
|
|
|
|
|
|
viewAdministrator = Blueprint('administrator', __name__, url_prefix='/administrator')
|
|
|
|
|
|
|
|
|
|
|
2017-01-18 11:07:29 +03:00
|
|
|
|
@viewAdministrator.route('/login.html', methods=['GET'])
|
2015-12-01 02:43:10 +03:00
|
|
|
|
def login():
|
|
|
|
|
return render_template('administrator/login.html')
|
|
|
|
|
|
|
|
|
|
|
2017-01-18 11:07:29 +03:00
|
|
|
|
@viewAdministrator.route('/login.html', methods=['POST'])
|
|
|
|
|
def login_post():
|
|
|
|
|
admin_email = request.form.get('email').encode('utf-8')
|
|
|
|
|
admin_password = request.form.get('password').encode('utf-8')
|
|
|
|
|
|
|
|
|
|
# validation entered data
|
|
|
|
|
if not validators.email(admin_email):
|
|
|
|
|
flash('Invalid registration data')
|
|
|
|
|
return redirect(url_for('administrator.login'))
|
|
|
|
|
|
|
|
|
|
# try auth only active users (with status code 1)
|
|
|
|
|
if not models.Admins.auth(admin_email, admin_password, 1):
|
|
|
|
|
flash('Invalid login. Please try again.')
|
|
|
|
|
return redirect(url_for('administrator.login'))
|
|
|
|
|
|
|
|
|
|
# get user_id
|
|
|
|
|
user_id = ControllerAdministrators().get_id_by_email(admin_email)
|
|
|
|
|
|
|
|
|
|
# save user data to session
|
|
|
|
|
session['admin_id'] = str(user_id)
|
|
|
|
|
session['admin_email'] = admin_email
|
|
|
|
|
session['admin_password'] = admin_password
|
|
|
|
|
|
|
|
|
|
# redirect to rules list
|
|
|
|
|
return redirect(url_for('administrator.dashboard'))
|
|
|
|
|
|
|
|
|
|
|
2016-05-16 09:24:27 +03:00
|
|
|
|
@viewAdministrator.route('/logout.html')
|
2015-12-01 02:43:10 +03:00
|
|
|
|
def logout():
|
|
|
|
|
session.pop('admin_id', None)
|
|
|
|
|
session.pop('admin_email', None)
|
|
|
|
|
session.pop('admin_password', None)
|
|
|
|
|
return redirect(url_for('administrator.login'))
|
|
|
|
|
|
|
|
|
|
|
2016-05-16 09:24:27 +03:00
|
|
|
|
@viewAdministrator.route('/dashboard.html')
|
2016-10-11 03:37:04 +03:00
|
|
|
|
@requires_login
|
2015-12-01 02:43:10 +03:00
|
|
|
|
def dashboard():
|
|
|
|
|
stats = {
|
|
|
|
|
'users': models.Users.select().count(),
|
2016-05-22 12:36:54 +03:00
|
|
|
|
'datacenters': models.DataCenters.select().count(),
|
|
|
|
|
'servers': models.Servers.select().count(),
|
2016-01-17 21:02:48 +03:00
|
|
|
|
'containers': models.Containers.select().count(),
|
|
|
|
|
'ips': models.Ips.select().count(),
|
2016-05-22 12:36:54 +03:00
|
|
|
|
'vms': models.Vms.select().count(),
|
2015-12-01 02:43:10 +03:00
|
|
|
|
'payments': models.UsersBalanceTransactions.select().count(),
|
|
|
|
|
}
|
2015-12-02 02:34:17 +03:00
|
|
|
|
#
|
2016-04-03 19:10:18 +03:00
|
|
|
|
return render_template(
|
2016-10-11 03:37:04 +03:00
|
|
|
|
'administrator/dashboard.html', stats=stats)
|
2016-05-21 16:07:10 +03:00
|
|
|
|
|
|
|
|
|
|
2015-12-01 02:43:10 +03:00
|
|
|
|
@viewAdministrator.route('/payments')
|
2016-10-11 03:37:04 +03:00
|
|
|
|
@requires_login
|
2015-12-01 02:43:10 +03:00
|
|
|
|
def payments():
|
|
|
|
|
payments_items = {
|
|
|
|
|
'total': models.UsersBalanceTransactions.select().count(),
|
|
|
|
|
'items': models.UsersBalanceTransactions.select()
|
|
|
|
|
}
|
2016-04-03 19:10:18 +03:00
|
|
|
|
return render_template(
|
|
|
|
|
'administrator/payments.html',
|
|
|
|
|
payments=payments_items
|
|
|
|
|
)
|
2015-12-01 02:43:10 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@viewAdministrator.route('/datacenters')
|
2016-10-11 03:37:04 +03:00
|
|
|
|
@requires_login
|
2015-12-01 02:43:10 +03:00
|
|
|
|
def datacenters():
|
2015-12-11 09:02:14 +03:00
|
|
|
|
return render_template(
|
|
|
|
|
'administrator/datacenters/index.html',
|
2016-10-11 03:37:04 +03:00
|
|
|
|
datacenters=ControllerManageDatacenters().items_get())
|
2015-12-01 02:43:10 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@viewAdministrator.route('/datacenters/create', methods=['GET', 'POST'])
|
2016-10-11 03:37:04 +03:00
|
|
|
|
@requires_login
|
2015-12-01 02:43:10 +03:00
|
|
|
|
def datacenters_create():
|
|
|
|
|
if request.method == "POST":
|
|
|
|
|
# TODO: validate
|
2016-05-12 03:24:24 +03:00
|
|
|
|
dc_name = request.form.get('name')
|
|
|
|
|
dc_code = request.form.get('code')
|
|
|
|
|
dc_country = request.form.get('country')
|
|
|
|
|
dc_city = request.form.get('city')
|
|
|
|
|
dc_status = request.form.get('status')
|
2015-12-01 02:43:10 +03:00
|
|
|
|
|
|
|
|
|
# check exists datacenter
|
|
|
|
|
if models.DataCenters.select().where(models.DataCenters.name == dc_name).count() == 1:
|
|
|
|
|
return redirect(url_for('administrator.datacenters_create'))
|
|
|
|
|
|
2016-05-12 03:24:24 +03:00
|
|
|
|
models.DataCenters.create(id=uuid4(), code=dc_code, name=dc_name, country=dc_country, city=dc_city, status=dc_status)
|
2015-12-01 02:43:10 +03:00
|
|
|
|
return redirect(url_for('administrator.datacenters'))
|
|
|
|
|
# todo: ... update record for datacenter
|
|
|
|
|
# return url_for('administrator.datacenters_edit', dc_id=dc_id)
|
|
|
|
|
# datacenter = models.DataCenters.select().where(models.DataCenters.id == dc_id).limit(1)[0]
|
|
|
|
|
|
|
|
|
|
return render_template('administrator/datacenters/create.html')
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@viewAdministrator.route('/datacenters/edit/<uuid:dc_id>', methods=['GET', 'POST'])
|
2016-10-11 03:37:04 +03:00
|
|
|
|
@requires_login
|
2015-12-01 02:43:10 +03:00
|
|
|
|
def datacenters_edit(dc_id):
|
|
|
|
|
# check exists datacenter
|
2015-12-12 17:28:57 +03:00
|
|
|
|
if not ControllerManageDatacenters().check_exists(dc_id):
|
2015-12-01 02:43:10 +03:00
|
|
|
|
return redirect(url_for('administrator.datacenters'))
|
2015-12-12 17:28:57 +03:00
|
|
|
|
# POST
|
2015-12-01 02:43:10 +03:00
|
|
|
|
if request.method == "POST":
|
|
|
|
|
# todo: ... update record for datacenter
|
2016-04-03 19:10:18 +03:00
|
|
|
|
return redirect(url_for('administrator.datacenters_edit', dc_id=dc_id))
|
2015-12-01 02:43:10 +03:00
|
|
|
|
|
2016-04-03 19:10:18 +03:00
|
|
|
|
cmd = ControllerManageDatacenters()
|
2015-12-01 02:43:10 +03:00
|
|
|
|
|
2015-12-12 17:28:57 +03:00
|
|
|
|
return render_template(
|
2016-05-12 04:28:46 +03:00
|
|
|
|
'administrator/datacenters/edit.html',
|
2016-04-03 19:10:18 +03:00
|
|
|
|
datacenter=cmd.item_get(dc_id)
|
2015-12-12 17:28:57 +03:00
|
|
|
|
)
|
2015-12-01 02:43:10 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@viewAdministrator.route('/servers/')
|
2016-10-11 03:37:04 +03:00
|
|
|
|
@requires_login
|
2015-12-01 02:43:10 +03:00
|
|
|
|
def servers_index():
|
2016-10-11 03:37:04 +03:00
|
|
|
|
# ca = ControllerAdministrators()
|
2016-06-01 02:07:26 +03:00
|
|
|
|
cms = ControllerManageServer()
|
2015-12-14 01:49:38 +03:00
|
|
|
|
#
|
|
|
|
|
return render_template(
|
|
|
|
|
'administrator/servers/index.html',
|
2016-10-11 03:37:04 +03:00
|
|
|
|
servers=cms.items_get())
|
2015-12-01 02:43:10 +03:00
|
|
|
|
|
|
|
|
|
|
2015-12-14 01:49:38 +03:00
|
|
|
|
@viewAdministrator.route('/ips/')
|
2016-10-11 03:37:04 +03:00
|
|
|
|
@requires_login
|
2015-12-14 01:49:38 +03:00
|
|
|
|
def ips_index():
|
|
|
|
|
#
|
|
|
|
|
return render_template(
|
|
|
|
|
'administrator/ips/index.html',
|
2016-10-11 03:37:04 +03:00
|
|
|
|
ips=ControllerManageIPs().items_get())
|
2015-12-01 02:43:10 +03:00
|
|
|
|
|
|
|
|
|
|
2016-01-17 20:12:34 +03:00
|
|
|
|
@viewAdministrator.route('/ips/create', methods=['POST', 'GET'])
|
2016-10-11 03:37:04 +03:00
|
|
|
|
@requires_login
|
2016-01-17 20:12:34 +03:00
|
|
|
|
def ips_create():
|
|
|
|
|
#
|
|
|
|
|
if request.method == "POST":
|
2024-12-10 21:05:37 +03:00
|
|
|
|
print(request.form)
|
2016-01-17 20:12:34 +03:00
|
|
|
|
if ControllerManageIPs().is_valid_ipv4_address(request.form['ipv4'])\
|
|
|
|
|
and ControllerManageIPs().is_valid_ipv4_address(request.form['ipv4_gateway']):
|
|
|
|
|
ControllerManageIPs().item_create(
|
2016-05-12 04:28:46 +03:00
|
|
|
|
request.form.get('datacenter'),
|
|
|
|
|
request.form.get('server'),
|
|
|
|
|
request.form.get('ipv4'),
|
|
|
|
|
request.form.get('ipv4_gateway'),
|
2016-01-17 20:12:34 +03:00
|
|
|
|
'',
|
|
|
|
|
'',
|
|
|
|
|
0
|
|
|
|
|
)
|
|
|
|
|
if ControllerManageIPs().is_valid_ipv6_address(request.form['ipv6'])\
|
|
|
|
|
and ControllerManageIPs().is_valid_ipv6_address(request.form['ipv6_gateway']):
|
|
|
|
|
ControllerManageIPs().item_create(
|
2016-05-12 04:28:46 +03:00
|
|
|
|
request.form['datacenter'],
|
|
|
|
|
request.form['server'],
|
2016-01-17 20:12:34 +03:00
|
|
|
|
'',
|
|
|
|
|
'',
|
|
|
|
|
request.form['ipv6'],
|
|
|
|
|
request.form['ipv6_gateway'],
|
|
|
|
|
0
|
|
|
|
|
)
|
|
|
|
|
#
|
|
|
|
|
return render_template(
|
|
|
|
|
'administrator/ips/create.html',
|
|
|
|
|
datacenters=ControllerManageDatacenters().items_get(),
|
|
|
|
|
servers=ControllerManageServer().items_get()
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@viewAdministrator.route('/ips/edit/<int:ip_id>', methods=['GET', 'POST'])
|
2016-10-11 03:37:04 +03:00
|
|
|
|
@requires_login
|
2016-01-17 20:12:34 +03:00
|
|
|
|
def ips_edit(ip_id):
|
|
|
|
|
#
|
|
|
|
|
if request.method == 'POST':
|
2024-12-10 21:05:37 +03:00
|
|
|
|
print(request.form)
|
2016-01-17 20:12:34 +03:00
|
|
|
|
# if ControllerManageIPs().is_valid_ipv4_address(request.form['ipv4'])\
|
|
|
|
|
# and ControllerManageIPs().is_valid_ipv4_address(request.form['ipv4_gateway']):
|
|
|
|
|
ControllerManageIPs().item_update(
|
|
|
|
|
request.form['ip_id'],
|
|
|
|
|
request.form['server'],
|
|
|
|
|
request.form['ipv4'],
|
|
|
|
|
request.form['ipv4_gateway'],
|
|
|
|
|
request.form['ipv6'],
|
|
|
|
|
request.form['ipv6_gateway'],
|
|
|
|
|
request.form['status']
|
|
|
|
|
)
|
|
|
|
|
#
|
|
|
|
|
return render_template(
|
|
|
|
|
'administrator/ips/edit.html',
|
|
|
|
|
servers=ControllerManageServer().items_get(),
|
|
|
|
|
ip=ControllerManageIPs().item_get(ip_id)
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@viewAdministrator.route('/ips/delete', methods=['GET', 'POST'])
|
|
|
|
|
def ips_delete():
|
|
|
|
|
return render_template(
|
|
|
|
|
'administrator/ips/delete.html',
|
|
|
|
|
# ip=ControllerManageIPs().i
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
2015-12-01 02:43:10 +03:00
|
|
|
|
@viewAdministrator.route('/servers/create', methods=['GET', 'POST'])
|
2016-10-11 03:37:04 +03:00
|
|
|
|
@requires_login
|
2015-12-01 02:43:10 +03:00
|
|
|
|
def servers_create():
|
|
|
|
|
if request.method == "POST":
|
2024-12-10 21:05:37 +03:00
|
|
|
|
print(request.form)
|
2015-12-12 17:28:57 +03:00
|
|
|
|
params = {
|
|
|
|
|
'datacenter_id': request.form['datacenter_id'],
|
|
|
|
|
'server_id': uuid4(),
|
|
|
|
|
'secret': uuid4(),
|
|
|
|
|
'hostname': request.form['hostname'],
|
|
|
|
|
'ipv4': request.form['ip'],
|
|
|
|
|
'status': request.form['status']
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
ControllerManageServer().item_create(
|
|
|
|
|
params['datacenter_id'],
|
|
|
|
|
params['server_id'],
|
|
|
|
|
params['secret'],
|
|
|
|
|
params['hostname'],
|
|
|
|
|
params['ipv4'],
|
|
|
|
|
None,
|
|
|
|
|
params['status']
|
2015-12-02 02:34:17 +03:00
|
|
|
|
)
|
2015-12-01 02:43:10 +03:00
|
|
|
|
|
2015-12-12 17:28:57 +03:00
|
|
|
|
dcs = ControllerManageDatacenters().items_get()
|
|
|
|
|
|
|
|
|
|
return render_template(
|
|
|
|
|
'administrator/servers/create.html',
|
|
|
|
|
datacenters=dcs
|
|
|
|
|
)
|
2015-12-01 02:43:10 +03:00
|
|
|
|
|
|
|
|
|
|
2016-04-20 03:39:13 +03:00
|
|
|
|
@viewAdministrator.route('/servers/edit/<uuid:server_id>.html', methods=['GET', 'POST'])
|
2016-10-11 03:37:04 +03:00
|
|
|
|
@requires_login
|
2016-06-01 02:07:26 +03:00
|
|
|
|
def server_edit(server_id):
|
2015-12-01 02:43:10 +03:00
|
|
|
|
# check exists server
|
|
|
|
|
if models.Servers.select().where(models.Servers.id == server_id).count() == 0:
|
|
|
|
|
return redirect(url_for('administrator.servers'))
|
|
|
|
|
|
2016-06-01 02:07:26 +03:00
|
|
|
|
if request.method == "POST":
|
|
|
|
|
x = models.Servers.update(status=request.form.get('status', 0)).where(models.Servers.id == server_id)
|
|
|
|
|
x.execute()
|
|
|
|
|
return redirect(url_for('administrator.server_edit', server_id=server_id))
|
|
|
|
|
|
2016-04-20 03:39:13 +03:00
|
|
|
|
server_details = models.Servers.select().where(models.Servers.id == server_id).get()
|
2015-12-01 02:43:10 +03:00
|
|
|
|
|
|
|
|
|
return render_template('administrator/servers/edit.html', server=server_details)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@viewAdministrator.route('/settings/')
|
2016-10-11 03:37:04 +03:00
|
|
|
|
@requires_login
|
2015-12-01 02:43:10 +03:00
|
|
|
|
def settings_index():
|
|
|
|
|
settings_list = {
|
|
|
|
|
'total': models.Settings.select().count(),
|
|
|
|
|
'items': models.Settings.select()
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return render_template('administrator/settings/index.html', settings=settings_list)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@viewAdministrator.route('/settings/create', methods=['GET', 'POST'])
|
2016-10-11 03:37:04 +03:00
|
|
|
|
@requires_login
|
2015-12-01 02:43:10 +03:00
|
|
|
|
def settings_create():
|
|
|
|
|
# Обрабатываем POST-запрос
|
|
|
|
|
if request.method == 'POST':
|
|
|
|
|
# check exists `key`
|
|
|
|
|
if models.Settings.select().where(models.Settings.key == request.form['key']).count() == 0:
|
|
|
|
|
# Если указанного ключа нет в таблице, то добавляем его
|
|
|
|
|
models.Settings.create(key=request.form['key'], val=request.form['val'])
|
|
|
|
|
# После добавления записи делаем редирект на страницу со списком параметров
|
|
|
|
|
return redirect(url_for('administrator.settings_index'))
|
|
|
|
|
# Если предыдущее условие (проверка отсутствия ключа) не сработало,
|
|
|
|
|
# то выдаём сообщение об уже существующем ключе
|
|
|
|
|
g.errors['total'] += 1
|
|
|
|
|
g.errors['items'].append(u"Параметр уже существует")
|
|
|
|
|
return render_template('administrator/settings/create.html')
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@viewAdministrator.route('/settings/delete', methods=['GET', 'POST'])
|
2016-10-11 03:37:04 +03:00
|
|
|
|
@requires_login
|
2015-12-01 02:43:10 +03:00
|
|
|
|
def settings_delete():
|
2015-12-02 02:34:17 +03:00
|
|
|
|
#
|
2015-12-01 02:43:10 +03:00
|
|
|
|
if request.method == 'POST':
|
|
|
|
|
delete_set = models.Settings.delete().where(models.Settings.id == request.form['id'])
|
|
|
|
|
delete_set.execute()
|
|
|
|
|
return redirect(url_for('administrator.settings_index'))
|
2015-12-02 02:34:17 +03:00
|
|
|
|
#
|
2015-12-01 02:43:10 +03:00
|
|
|
|
setting = models.Settings.select().where(models.Settings.id == request.args['id']).limit(1)[0]
|
2015-12-02 02:34:17 +03:00
|
|
|
|
#
|
2015-12-01 02:43:10 +03:00
|
|
|
|
return render_template('administrator/settings/delete.html', setting=setting)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@viewAdministrator.route('/settings/update', methods=['GET', 'POST'])
|
2016-10-11 03:37:04 +03:00
|
|
|
|
@requires_login
|
2015-12-01 02:43:10 +03:00
|
|
|
|
def settings_update():
|
|
|
|
|
#
|
|
|
|
|
if request.method == 'POST':
|
|
|
|
|
uq = models.Settings.update(val=request.form['val']).where(models.Settings.id == request.form['id'])
|
|
|
|
|
uq.execute()
|
|
|
|
|
return redirect(url_for('administrator.settings_index'))
|
|
|
|
|
# get setting parameter by ID
|
|
|
|
|
setting = models.Settings.select().where(models.Settings.id == request.args['id']).limit(1)[0]
|
|
|
|
|
return render_template('administrator/settings/update.html', setting=setting)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@viewAdministrator.route('/settings/messages/email_test.html', methods=['GET', 'POST'])
|
2016-10-11 03:37:04 +03:00
|
|
|
|
@requires_login
|
2015-12-01 02:43:10 +03:00
|
|
|
|
def settings_messages_email_test():
|
|
|
|
|
email = ControllerMessagesEmail()
|
|
|
|
|
email.send(title='test', to='vanzhiganov@ya.ru', lead='qwdqwd', message='qwdqwd', callout='qwdqwd')
|
|
|
|
|
# if request.method == 'POST':
|
|
|
|
|
# uq = models.Settings.update(val=request.form['val']).where(models.Settings.id == request.form['id'])
|
|
|
|
|
# uq.execute()
|
|
|
|
|
# return redirect(url_for('administrator.settings_index'))
|
|
|
|
|
# get setting parameter by ID
|
2016-10-11 03:37:04 +03:00
|
|
|
|
# setting = models.Settings.select().where(models.Settings.id == request.args['id']).limit(1)[0]
|
2015-12-01 02:43:10 +03:00
|
|
|
|
return render_template('administrator/settings/messages/email.html')
|
2016-01-17 20:12:34 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@viewAdministrator.route('/json/datacenter/list', methods=['GET'])
|
2016-10-11 03:37:04 +03:00
|
|
|
|
@requires_login
|
2016-01-17 20:12:34 +03:00
|
|
|
|
def json_datacenter_list():
|
|
|
|
|
return jsonify(ControllerManageDatacenters().items_get())
|
2016-05-12 04:28:46 +03:00
|
|
|
|
|
|
|
|
|
|
2016-05-16 09:24:27 +03:00
|
|
|
|
@viewAdministrator.route('/plans/', methods=['GET'])
|
2016-10-11 03:37:04 +03:00
|
|
|
|
@requires_login
|
2016-05-16 09:24:27 +03:00
|
|
|
|
def plans_index():
|
|
|
|
|
return render_template(
|
|
|
|
|
'administrator/plans/index.html',
|
2016-10-11 03:37:04 +03:00
|
|
|
|
plans=ControllerPlans().get())
|
2016-05-16 09:24:27 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@viewAdministrator.route('/plans/create.html', methods=['GET', 'POST'])
|
2016-10-11 03:37:04 +03:00
|
|
|
|
@requires_login
|
2016-05-16 09:24:27 +03:00
|
|
|
|
def plans_create():
|
|
|
|
|
if request.method == "POST":
|
|
|
|
|
plan_id = str(uuid4())
|
|
|
|
|
models.PlansVMs.create(
|
|
|
|
|
id=plan_id,
|
|
|
|
|
name=request.form.get('name'),
|
2016-06-02 03:47:55 +03:00
|
|
|
|
price=request.form.get('price'),
|
2016-05-16 09:24:27 +03:00
|
|
|
|
status=request.form.get('status'),
|
|
|
|
|
storage=request.form.get('storage'),
|
|
|
|
|
swap=request.form.get('swap'),
|
|
|
|
|
memory=request.form.get('memory'),
|
|
|
|
|
cores=request.form.get('cores'),
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
flash('Plan has been created')
|
|
|
|
|
return redirect(url_for('administrator.plans_index'))
|
|
|
|
|
return render_template('administrator/plans/create.html')
|
2016-06-08 02:03:13 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@viewAdministrator.route('/plans/<uuid:plan_id>/edit.html', methods=['GET', 'POST'])
|
2016-10-11 03:37:04 +03:00
|
|
|
|
@requires_login
|
2016-06-08 02:03:13 +03:00
|
|
|
|
def plan_edit(plan_id):
|
|
|
|
|
# check exists plan
|
|
|
|
|
if models.PlansVMs.select().where(models.PlansVMs.id == plan_id).count() == 0:
|
|
|
|
|
return redirect(url_for('administrator.plans_index'))
|
|
|
|
|
|
|
|
|
|
if request.method == 'POST':
|
|
|
|
|
x = models.PlansVMs.get(models.PlansVMs.id == plan_id)
|
|
|
|
|
x.name = request.form.get('name')
|
|
|
|
|
x.status = request.form.get('status')
|
|
|
|
|
x.price = request.form.get('price')
|
|
|
|
|
x.storage = request.form.get('storage')
|
|
|
|
|
x.swap = request.form.get('swap')
|
|
|
|
|
x.memory = request.form.get('memory')
|
|
|
|
|
x.cores = request.form.get('cores')
|
|
|
|
|
x.save()
|
|
|
|
|
|
|
|
|
|
return redirect(url_for('administrator.plans_index'))
|
|
|
|
|
|
|
|
|
|
return render_template(
|
|
|
|
|
'administrator/plans/edit.html',
|
2016-10-11 03:37:04 +03:00
|
|
|
|
plan_details=models.PlansVMs.select().where(models.PlansVMs.id == plan_id).get())
|