From 595bd2bea9d80a8e51572ba36fd8b3bcd795aab9 Mon Sep 17 00:00:00 2001 From: vanzhiganov Date: Sun, 22 May 2016 12:36:54 +0300 Subject: [PATCH] update administrator dashboard --- SWSCloudCore/controllers/plans/__init__.py | 8 +++ .../templates/administrator/dashboard.html | 12 ++-- SWSCloudCore/views/administrator/__init__.py | 4 +- SWSCloudCore/views/vms/__init__.py | 64 +++++++++++-------- 4 files changed, 55 insertions(+), 33 deletions(-) diff --git a/SWSCloudCore/controllers/plans/__init__.py b/SWSCloudCore/controllers/plans/__init__.py index e22493c..570e355 100644 --- a/SWSCloudCore/controllers/plans/__init__.py +++ b/SWSCloudCore/controllers/plans/__init__.py @@ -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 diff --git a/SWSCloudCore/templates/administrator/dashboard.html b/SWSCloudCore/templates/administrator/dashboard.html index 4fcc729..7a2189a 100644 --- a/SWSCloudCore/templates/administrator/dashboard.html +++ b/SWSCloudCore/templates/administrator/dashboard.html @@ -8,24 +8,24 @@ - - - + + + - - - + + + diff --git a/SWSCloudCore/views/administrator/__init__.py b/SWSCloudCore/views/administrator/__init__.py index d52dfc1..1c2640b 100644 --- a/SWSCloudCore/views/administrator/__init__.py +++ b/SWSCloudCore/views/administrator/__init__.py @@ -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(), } # diff --git a/SWSCloudCore/views/vms/__init__.py b/SWSCloudCore/views/vms/__init__.py index 3a2a9b4..d8b2fc1 100644 --- a/SWSCloudCore/views/vms/__init__.py +++ b/SWSCloudCore/views/vms/__init__.py @@ -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',
UsersContainersVMs Datacenters Servers IPsUsersContainersVMs Payments Traffic
{{ stats.users }}{{ stats.containers }}{{ stats.vms }} {{ stats.datacenters }} {{ stats.servers }} {{ stats.ips }}{{ stats.users }}{{ stats.containers }}{{ stats.vms }} {{ stats.payments }} {{ stats.traffic }}