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 @@
- Users |
- Containers |
- VMs |
Datacenters |
Servers |
IPs |
+ Users |
+ Containers |
+ VMs |
Payments |
Traffic |
- {{ stats.users }} |
- {{ stats.containers }} |
- {{ stats.vms }} |
{{ stats.datacenters }} |
{{ stats.servers }} |
{{ stats.ips }} |
+ {{ stats.users }} |
+ {{ stats.containers }} |
+ {{ stats.vms }} |
{{ stats.payments }} |
{{ stats.traffic }} |
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',