From c44c890cdeac4a7db99ea9bb316b89367909701a Mon Sep 17 00:00:00 2001 From: vanzhiganov Date: Thu, 19 May 2016 10:22:01 +0300 Subject: [PATCH] 39 QEMU virtual machines --- SWSCloudCore/controllers/vms/__init__.py | 9 ++++- SWSCloudCore/templates/default/vms/index.html | 2 +- .../templates/default/vms/settings.html | 35 +++++++++++++++++++ SWSCloudCore/views/vms/__init__.py | 20 +++++------ 4 files changed, 54 insertions(+), 12 deletions(-) create mode 100644 SWSCloudCore/templates/default/vms/settings.html diff --git a/SWSCloudCore/controllers/vms/__init__.py b/SWSCloudCore/controllers/vms/__init__.py index 30f6dfa..a26705f 100644 --- a/SWSCloudCore/controllers/vms/__init__.py +++ b/SWSCloudCore/controllers/vms/__init__.py @@ -6,7 +6,9 @@ class ControllerVMS(object): self.user_id = user_id pass - def get(self): + def get(self, vm_id=None): + if vm_id: + return Vms.select().where(Vms.user == self.user_id, Vms.id == vm_id).get() return Vms.select().where(Vms.user == self.user_id) def create(self, datacenter_id, server_id, vm_id, @@ -27,3 +29,8 @@ class ControllerVMS(object): status=status ) return True + + def exists(self, vm_id): + if Vms.select().where(Vms.user == self.user_id, Vms.id == vm_id).count() == 0: + return False + return True diff --git a/SWSCloudCore/templates/default/vms/index.html b/SWSCloudCore/templates/default/vms/index.html index 0a67d39..867fece 100644 --- a/SWSCloudCore/templates/default/vms/index.html +++ b/SWSCloudCore/templates/default/vms/index.html @@ -54,7 +54,7 @@ {% endif %} - Настройки + Настройки {% endfor %} diff --git a/SWSCloudCore/templates/default/vms/settings.html b/SWSCloudCore/templates/default/vms/settings.html new file mode 100644 index 0000000..f93ba4d --- /dev/null +++ b/SWSCloudCore/templates/default/vms/settings.html @@ -0,0 +1,35 @@ +{% extends "default/_layout.html" %} + +{% block title %}Статистика{% endblock %} + +{% block content %} +
+
+

Настройки

+
+
+
+
+

Статус

+ {% if vm.status == 0 %} +

Неактивен

+ {% else %} +

Активен

+ {% endif %} +
+ +
+ +
+ +
+

Удалить

+ + + +
+
+{% endblock %} diff --git a/SWSCloudCore/views/vms/__init__.py b/SWSCloudCore/views/vms/__init__.py index d24933c..7ab1a75 100644 --- a/SWSCloudCore/views/vms/__init__.py +++ b/SWSCloudCore/views/vms/__init__.py @@ -182,8 +182,8 @@ def create(): ) -@viewVMs.route('/delete/.html', methods=['GET', 'POST']) -def delete(container_id): +@viewVMs.route('/delete/.html', methods=['GET', 'POST']) +def delete(vm_id): # check session if not ControllerUsers().check_session(): return redirect(url_for("account.logout")) @@ -221,8 +221,8 @@ def delete(container_id): ) -@viewVMs.route('/settings/', methods=['GET', 'POST']) -def settings(container_id): +@viewVMs.route('/settings/.html', methods=['GET', 'POST']) +def settings(vm_id): # check session if not ControllerUsers().check_session(): return redirect(url_for("account.logout")) @@ -230,15 +230,15 @@ def settings(container_id): if not ControllerUsers().auth(session['email'], session['password']): return redirect(url_for("account.logout")) - containers = ControllerContainers(session['user_id']) + vm = ControllerVMS(session['user_id']) # check the user have a selected rule # if user not have a container then redirect to the container list - if not containers.check_exists_item(container_id): - return redirect(url_for('containers.index')) + if not vm.exists(vm_id): + return redirect(url_for('vms.index')) # get container details - container_details = containers.get_item(container_id) + vm_details = vm.get(vm_id=vm_id) if request.method == 'POST': if request.form['action'] == 'set_status': @@ -273,8 +273,8 @@ def settings(container_id): return redirect(url_for('containers.settings', container_id=container_id)) return render_template( - 'default/containers/settings.html', - container=container_details + 'default/vms/settings.html', + vm=vm_details )