52 lines
1.9 KiB
Python
52 lines
1.9 KiB
Python
# coding: utf-8
|
||
|
||
from flask import Blueprint, flash, g, jsonify, redirect, render_template, request, session, url_for
|
||
from SWSCloudCore.controllers.administrators import ControllerAdministrators
|
||
from SWSCloudCore.controllers.tasks.manage import ControllerManageTasks
|
||
from SWSCloudCore.controllers.tasks import ControllerTasks
|
||
from SWSCloudCore import models
|
||
from SWSCloudAdministrator.Administrator.common import requires_login
|
||
|
||
view_administrator_compute_vms = Blueprint('administrator_compute_vms', __name__, url_prefix='/administrator/compute/vms')
|
||
|
||
|
||
@view_administrator_compute_vms.route('/', methods=['GET'])
|
||
@requires_login
|
||
def index():
|
||
# формируем список правил
|
||
return render_template(
|
||
'administrator/compute/vms/index.html', vms=models.Vms.get_items())
|
||
|
||
|
||
@view_administrator_compute_vms.route('/<uuid:vm_id>', methods=['GET'])
|
||
@requires_login
|
||
def details(vm_id):
|
||
if not models.Vms.exists(vm_id):
|
||
return redirect(url_for('.index'))
|
||
# формируем список правил
|
||
return render_template(
|
||
'administrator/compute/vms/details.html', vm=models.Vms.get_item(vm_id))
|
||
|
||
|
||
@view_administrator_compute_vms.route('/<uuid:vm_id>/delete', methods=['POST'])
|
||
@requires_login
|
||
def delete(vm_id):
|
||
vm_details = models.Vms.get_item(vm_id)
|
||
# vm_details.user.id
|
||
# Обновляем статус "5" для правила
|
||
models.Vms.set_status(vm_id, 5)
|
||
|
||
# Создание задания
|
||
tasks = ControllerTasks(vm_details.user.id)
|
||
tasks.create(
|
||
datacenter_id=vm_details.datacenter.id,
|
||
server_id=vm_details.server.id,
|
||
task='vm_delete',
|
||
status=0,
|
||
vm_id=vm_id
|
||
)
|
||
# TODO: send email container was deleted about
|
||
# Редиректим на страницу со всеми правилами
|
||
flash(u'Виртуальная машина будет удалена')
|
||
return redirect(url_for('.index'))
|
||
|