update administrator dashboard
This commit is contained in:
parent
b62e9433c4
commit
595bd2bea9
4 changed files with 55 additions and 33 deletions
|
@ -13,3 +13,11 @@ class ControllerPlans(object):
|
||||||
if status:
|
if status:
|
||||||
return PlansVMs.select().where(PlansVMs.status == status)
|
return PlansVMs.select().where(PlansVMs.status == status)
|
||||||
return PlansVMs.select()
|
return PlansVMs.select()
|
||||||
|
|
||||||
|
def plan_get(self, plan_id):
|
||||||
|
return PlansVMs.select().where(PlansVMs.id == plan_id).get()
|
||||||
|
|
||||||
|
def exists(self, plan_id):
|
||||||
|
if PlansVMs.select().where(PlansVMs.id == plan_id).count() == 0:
|
||||||
|
return False
|
||||||
|
return True
|
||||||
|
|
|
@ -8,24 +8,24 @@
|
||||||
<table class="table table-bordered" width="100%">
|
<table class="table table-bordered" width="100%">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th>Users</th>
|
|
||||||
<th>Containers</th>
|
|
||||||
<th>VMs</th>
|
|
||||||
<th>Datacenters</th>
|
<th>Datacenters</th>
|
||||||
<th>Servers</th>
|
<th>Servers</th>
|
||||||
<th>IPs</th>
|
<th>IPs</th>
|
||||||
|
<th>Users</th>
|
||||||
|
<th>Containers</th>
|
||||||
|
<th>VMs</th>
|
||||||
<th>Payments</th>
|
<th>Payments</th>
|
||||||
<th>Traffic</th>
|
<th>Traffic</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
<tr>
|
<tr>
|
||||||
<td>{{ stats.users }}</td>
|
|
||||||
<td>{{ stats.containers }}</td>
|
|
||||||
<td>{{ stats.vms }}</td>
|
|
||||||
<td>{{ stats.datacenters }}</td>
|
<td>{{ stats.datacenters }}</td>
|
||||||
<td>{{ stats.servers }}</td>
|
<td>{{ stats.servers }}</td>
|
||||||
<td>{{ stats.ips }}</td>
|
<td>{{ stats.ips }}</td>
|
||||||
|
<td>{{ stats.users }}</td>
|
||||||
|
<td>{{ stats.containers }}</td>
|
||||||
|
<td>{{ stats.vms }}</td>
|
||||||
<td>{{ stats.payments }}</td>
|
<td>{{ stats.payments }}</td>
|
||||||
<td>{{ stats.traffic }}</td>
|
<td>{{ stats.traffic }}</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
|
@ -78,9 +78,11 @@ def dashboard():
|
||||||
#
|
#
|
||||||
stats = {
|
stats = {
|
||||||
'users': models.Users.select().count(),
|
'users': models.Users.select().count(),
|
||||||
|
'datacenters': models.DataCenters.select().count(),
|
||||||
|
'servers': models.Servers.select().count(),
|
||||||
'containers': models.Containers.select().count(),
|
'containers': models.Containers.select().count(),
|
||||||
'ips': models.Ips.select().count(),
|
'ips': models.Ips.select().count(),
|
||||||
# 'traffic': models.RulesTraffic.select().count(),
|
'vms': models.Vms.select().count(),
|
||||||
'payments': models.UsersBalanceTransactions.select().count(),
|
'payments': models.UsersBalanceTransactions.select().count(),
|
||||||
}
|
}
|
||||||
#
|
#
|
||||||
|
|
|
@ -44,6 +44,7 @@ def create():
|
||||||
|
|
||||||
user_balance = ControllerBilling().get(session['user_id'])
|
user_balance = ControllerBilling().get(session['user_id'])
|
||||||
user_ssh = ControllerSSHKey(session['user_id'])
|
user_ssh = ControllerSSHKey(session['user_id'])
|
||||||
|
controller_plans = ControllerPlans()
|
||||||
|
|
||||||
if request.method == "POST":
|
if request.method == "POST":
|
||||||
# check user money
|
# check user money
|
||||||
|
@ -54,6 +55,14 @@ def create():
|
||||||
new_vm = dict()
|
new_vm = dict()
|
||||||
new_vm['vm_id'] = str(uuid.uuid4())
|
new_vm['vm_id'] = str(uuid.uuid4())
|
||||||
|
|
||||||
|
# check exists plan
|
||||||
|
if not controller_plans.exists(request.form.get('plan')):
|
||||||
|
flash(u'Необходимо выбрать план')
|
||||||
|
return redirect(url_for('vms.create'))
|
||||||
|
|
||||||
|
# load plan details
|
||||||
|
plan_details = controller_plans.plan_get(request.form.get('plan'))
|
||||||
|
|
||||||
new_vm['plan'] = request.form.get('plan')
|
new_vm['plan'] = request.form.get('plan')
|
||||||
|
|
||||||
# select server from selected region with available ip-addresses
|
# select server from selected region with available ip-addresses
|
||||||
|
@ -80,10 +89,10 @@ def create():
|
||||||
new_vm['dns1'] = '8.8.8.8'
|
new_vm['dns1'] = '8.8.8.8'
|
||||||
new_vm['dns2'] = '8.8.4.4'
|
new_vm['dns2'] = '8.8.4.4'
|
||||||
|
|
||||||
new_vm['cores'] = 1
|
new_vm['cores'] = plan_details.cores
|
||||||
new_vm['storage'] = 20000
|
new_vm['storage'] = plan_details.storage
|
||||||
new_vm['swap'] = 512
|
new_vm['swap'] = plan_details.swap
|
||||||
new_vm['memory'] = 512
|
new_vm['memory'] = plan_details.memory
|
||||||
|
|
||||||
new_vm['os_name'] = 'ubuntu'
|
new_vm['os_name'] = 'ubuntu'
|
||||||
new_vm['os_suite'] = 'trusty'
|
new_vm['os_suite'] = 'trusty'
|
||||||
|
@ -140,15 +149,18 @@ def create():
|
||||||
|
|
||||||
ssh_key=new_vm['ssh_key'],
|
ssh_key=new_vm['ssh_key'],
|
||||||
)
|
)
|
||||||
#
|
|
||||||
# # send mail message with recovery code
|
# Show login/password on page
|
||||||
# message_parts = []
|
flash(u'Виртуальный сервер будет доступен через несколько минут.')
|
||||||
#
|
|
||||||
# if new_container['ipv4']:
|
# send mail message with recovery code
|
||||||
# message_parts.append(u"IPv4: %s" % new_container['ipv4'])
|
message_parts = []
|
||||||
# if new_container['ipv6']:
|
|
||||||
# message_parts.append(u"IPv6: %s" % new_container['ipv6'])
|
if new_vm['ipv4']:
|
||||||
# message_parts.append(u"Пользователь: %s" % new_container['username'])
|
message_parts.append(u"IPv4: %s" % new_vm['ipv4'])
|
||||||
|
if new_vm['ipv6']:
|
||||||
|
message_parts.append(u"IPv6: %s" % new_vm['ipv6'])
|
||||||
|
# message_parts.append(u"Пользователь: %s" % new_vm['username'])
|
||||||
# message_parts.append(u"Пароль: %s" % new_container['password'])
|
# message_parts.append(u"Пароль: %s" % new_container['password'])
|
||||||
# if new_container['ssh_key']:
|
# if new_container['ssh_key']:
|
||||||
# message_parts.append(u"SSH ключ: добавлен")
|
# message_parts.append(u"SSH ключ: добавлен")
|
||||||
|
@ -242,34 +254,34 @@ def settings(vm_id):
|
||||||
if request.method == 'POST':
|
if request.method == 'POST':
|
||||||
if request.form['action'] == 'set_status':
|
if request.form['action'] == 'set_status':
|
||||||
if request.form['status'] == 'inactive':
|
if request.form['status'] == 'inactive':
|
||||||
containers.set_status(container_id, 3)
|
vm.status_set(vm_id, 3)
|
||||||
# Создание задания
|
# Создание задания
|
||||||
ControllerTasks(session['user_id']).create(
|
ControllerTasks(session['user_id']).create(
|
||||||
container_details.datacenter.id,
|
vm_details.datacenter.id,
|
||||||
container_details.server.id,
|
vm_details.server.id,
|
||||||
'container_stop',
|
'vm_stop',
|
||||||
0,
|
0,
|
||||||
container_id=container_id
|
vm_id=vm_id
|
||||||
)
|
)
|
||||||
return redirect(url_for('containers.settings', container_id=container_id))
|
return redirect(url_for('vms.settings', vm_id=vm_id))
|
||||||
|
|
||||||
if request.form['status'] == 'active':
|
if request.form['status'] == 'active':
|
||||||
balance = ControllerBilling().get(session['user_id'])
|
balance = ControllerBilling().get(session['user_id'])
|
||||||
|
|
||||||
if balance <= 0:
|
if balance <= 0:
|
||||||
flash(u'Недостаточно средств на балансе.')
|
flash(u'Недостаточно средств на балансе.')
|
||||||
return redirect(url_for('containers.settings', container_id=container_id))
|
return redirect(url_for('vms.settings', vm_id=vm_id))
|
||||||
|
|
||||||
containers.set_status(container_id, 2)
|
vm.set_status(vm_id, 2)
|
||||||
# Создание задания
|
# Создание задания
|
||||||
ControllerTasks(session['user_id']).create(
|
ControllerTasks(session['user_id']).create(
|
||||||
container_details.datacenter.id,
|
vm_details.datacenter.id,
|
||||||
container_details.server.id,
|
vm_details.server.id,
|
||||||
'container_start',
|
'vm_start',
|
||||||
0,
|
0,
|
||||||
container_id=container_details.id
|
vm_id=vm_details.id
|
||||||
)
|
)
|
||||||
return redirect(url_for('containers.settings', container_id=container_id))
|
return redirect(url_for('vms.settings', vm_id=vm_id))
|
||||||
|
|
||||||
return render_template(
|
return render_template(
|
||||||
'default/vms/settings.html',
|
'default/vms/settings.html',
|
||||||
|
|
Loading…
Add table
Reference in a new issue