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