bug fixes
This commit is contained in:
parent
7464da34cf
commit
45f875b3fb
15 changed files with 73 additions and 58 deletions
|
@ -17,5 +17,5 @@ view_administrator_compute_containers = Blueprint(
|
||||||
def index():
|
def index():
|
||||||
# формируем список правил
|
# формируем список правил
|
||||||
return render_template(
|
return render_template(
|
||||||
'administrator/containers/index.html',
|
'administrator/compute/containers/index.html',
|
||||||
containers=models.Containers.get_items())
|
containers=models.Containers.get_items())
|
||||||
|
|
|
@ -15,7 +15,7 @@ view_administrator_compute_vms = Blueprint('administrator_compute_vms', __name__
|
||||||
def index():
|
def index():
|
||||||
# формируем список правил
|
# формируем список правил
|
||||||
return render_template(
|
return render_template(
|
||||||
'administrator/vms/index.html', vms=models.Vms.get_items())
|
'administrator/compute/vms/index.html', vms=models.Vms.get_items())
|
||||||
|
|
||||||
|
|
||||||
@view_administrator_compute_vms.route('/<uuid:vm_id>', methods=['GET'])
|
@view_administrator_compute_vms.route('/<uuid:vm_id>', methods=['GET'])
|
||||||
|
@ -25,7 +25,7 @@ def details(vm_id):
|
||||||
return redirect(url_for('.index'))
|
return redirect(url_for('.index'))
|
||||||
# формируем список правил
|
# формируем список правил
|
||||||
return render_template(
|
return render_template(
|
||||||
'administrator/vms/details.html', vm=models.Vms.get_item(vm_id))
|
'administrator/compute/vms/details.html', vm=models.Vms.get_item(vm_id))
|
||||||
|
|
||||||
|
|
||||||
@view_administrator_compute_vms.route('/<uuid:vm_id>/delete', methods=['POST'])
|
@view_administrator_compute_vms.route('/<uuid:vm_id>/delete', methods=['POST'])
|
||||||
|
|
|
@ -18,9 +18,8 @@ view_administrator_tasks = Blueprint('administrator_tasks', __name__, url_prefix
|
||||||
def index():
|
def index():
|
||||||
return render_template(
|
return render_template(
|
||||||
'administrator/tasks/index.html',
|
'administrator/tasks/index.html',
|
||||||
# tasks=ControllerManageTasks().get_by_server().get()
|
total=models.Tasks.count_items(),
|
||||||
tasks=ControllerManageTasks().get()
|
tasks=ControllerManageTasks().get())
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
@view_administrator_tasks.route('/edit.html', methods=['GET'])
|
@view_administrator_tasks.route('/edit.html', methods=['GET'])
|
||||||
|
@ -32,8 +31,7 @@ def edit():
|
||||||
|
|
||||||
return render_template(
|
return render_template(
|
||||||
'administrator/tasks/edit.html',
|
'administrator/tasks/edit.html',
|
||||||
task=ControllerManageTasks().get_task(task_id)
|
task=ControllerManageTasks().get_task(task_id))
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
@view_administrator_tasks.route('/edit.html', methods=['POST'])
|
@view_administrator_tasks.route('/edit.html', methods=['POST'])
|
||||||
|
|
|
@ -38,6 +38,8 @@
|
||||||
<tr>
|
<tr>
|
||||||
<td> </td>
|
<td> </td>
|
||||||
<td>
|
<td>
|
||||||
|
<a href="{{ url_for('administrator_compute_vms.index') }}" class="button primary small">Start</a>
|
||||||
|
<a href="{{ url_for('administrator_compute_vms.index') }}" class="button primary small">Stop</a>
|
||||||
<a href="{{ url_for('administrator_compute_vms.index') }}" class="button secondary small">Cancel</a>
|
<a href="{{ url_for('administrator_compute_vms.index') }}" class="button secondary small">Cancel</a>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
|
@ -4,6 +4,7 @@
|
||||||
{% set subtitle="Tasks" %}
|
{% set subtitle="Tasks" %}
|
||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
|
<p>Total: {{total}}</p>
|
||||||
<table class="table table-bordered" width="100%">
|
<table class="table table-bordered" width="100%">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
|
|
|
@ -292,6 +292,12 @@ class Tasks(PgSQLModel):
|
||||||
return False
|
return False
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def count_items(status=None):
|
||||||
|
if status:
|
||||||
|
Tasks.select().where(Tasks.status == status).count()
|
||||||
|
return Tasks.select().count()
|
||||||
|
|
||||||
# @staticmethod
|
# @staticmethod
|
||||||
# def set_task(datacenter_id, server_id, task, status, **args):
|
# def set_task(datacenter_id, server_id, task, status, **args):
|
||||||
# task_id = uuid.uuid4()
|
# task_id = uuid.uuid4()
|
||||||
|
|
File diff suppressed because one or more lines are too long
|
@ -16948,7 +16948,7 @@ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Cons
|
||||||
} else {
|
} else {
|
||||||
barXY = eventFromBar;
|
barXY = eventFromBar;
|
||||||
}
|
}
|
||||||
offsetPct = percent(barXY, barDim);
|
var offsetPct = percent(barXY, barDim);
|
||||||
|
|
||||||
value = (this.options.end - this.options.start) * offsetPct + this.options.start;
|
value = (this.options.end - this.options.start) * offsetPct + this.options.start;
|
||||||
|
|
||||||
|
|
|
@ -11,13 +11,13 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="large-12 columns">
|
<div class="large-12 columns">
|
||||||
<form action="{{ url_for('account.password_update') }}" method="post">
|
<form action="{{ url_for('account.password_update_post') }}" method="post">
|
||||||
<label>Старый пароль</label>
|
<label for="old_password">Старый пароль</label>
|
||||||
<input type="password" name="old_password" value="" />
|
<input type="password" name="old_password" id="old_password" value="" />
|
||||||
<label>Новый пароль</label>
|
<label for="new_password">Новый пароль</label>
|
||||||
<input type="password" name="new_password" value="" />
|
<input type="password" name="new_password" id="new_password" value="" />
|
||||||
<label>Новый пароль (повторно)</label>
|
<label for="new_password_confirm">Новый пароль (повторно)</label>
|
||||||
<input type="password" name="new_password_confirm" value="" />
|
<input type="password" name="new_password_confirm" id="new_password_confirm" value="" />
|
||||||
<input type="submit" value="Сменить пароль" class="button success" />
|
<input type="submit" value="Сменить пароль" class="button success" />
|
||||||
<a href="{{ url_for('account.index') }}" class="button secondary">Отмена</a>
|
<a href="{{ url_for('account.index') }}" class="button secondary">Отмена</a>
|
||||||
</form>
|
</form>
|
||||||
|
|
|
@ -9,7 +9,7 @@
|
||||||
|
|
||||||
Личный счёт успешно пополнен.
|
Личный счёт успешно пополнен.
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="{{ url_for('account.billing') }}">Биллинг</a></li>
|
<li><a href="{{ url_for('bills.index') }}">Биллинг</a></li>
|
||||||
{% if g.settings.get('SERVICE_CONTAINERS_ENABLE', "0") == "1" %}
|
{% if g.settings.get('SERVICE_CONTAINERS_ENABLE', "0") == "1" %}
|
||||||
<li><a href="{{ url_for('containers.index') }}">Контейнеры</a></li>
|
<li><a href="{{ url_for('containers.index') }}">Контейнеры</a></li>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
|
@ -101,7 +101,7 @@ def registration():
|
||||||
|
|
||||||
# Проверяем правильность адреса е-почты и
|
# Проверяем правильность адреса е-почты и
|
||||||
if not validators.email(email):
|
if not validators.email(email):
|
||||||
flash(u'Неправильный адрес електронной почты', 'error')
|
flash(u'Неправильный адрес электронной почты', 'error')
|
||||||
return redirect(url_for('account.registration'))
|
return redirect(url_for('account.registration'))
|
||||||
|
|
||||||
# Проверяем зарегистрирован ли указанный адрес електронной почты
|
# Проверяем зарегистрирован ли указанный адрес електронной почты
|
||||||
|
@ -191,12 +191,12 @@ def password_reset():
|
||||||
email = request.form['email']
|
email = request.form['email']
|
||||||
|
|
||||||
if not validators.email(email):
|
if not validators.email(email):
|
||||||
flash(u'Произошла ошибка. Введите корректный адрес е.почты.')
|
flash(u'Произошла ошибка. Введите корректный адрес электронной почты.')
|
||||||
return redirect(url_for('account.password_reset'))
|
return redirect(url_for('account.password_reset'))
|
||||||
|
|
||||||
# check exists email
|
# check exists email
|
||||||
if not cu.user_exists_by_email(email):
|
if not cu.user_exists_by_email(email):
|
||||||
flash(u'Произошла ошибка. Введите корректный адрес е.почты.')
|
flash(u'Произошла ошибка. Введите корректный адрес электронной почты.')
|
||||||
return redirect(url_for('account.password_reset'))
|
return redirect(url_for('account.password_reset'))
|
||||||
|
|
||||||
# get user_id by email
|
# get user_id by email
|
||||||
|
@ -214,8 +214,7 @@ def password_reset():
|
||||||
subject = u'GoCloud.ru: Код восстановления доступа'
|
subject = u'GoCloud.ru: Код восстановления доступа'
|
||||||
message = u'Код восстановления: %s' % recovery_code
|
message = u'Код восстановления: %s' % recovery_code
|
||||||
lead = u"""
|
lead = u"""
|
||||||
Данный код необходимо ввести на странице подтверждения
|
Данный код необходимо ввести на странице подтверждения <a href="https://gocloud.ru/account/password_reset_step2">сброса пароля</a>.
|
||||||
<a href="https://gocloud.ru/account/password_reset_step2">сброса пароля</a>.
|
|
||||||
"""
|
"""
|
||||||
callout = u'Если вы не хотите сбрасывать пароль, то просто проигнорируйте (или удалите) данное письмо.'
|
callout = u'Если вы не хотите сбрасывать пароль, то просто проигнорируйте (или удалите) данное письмо.'
|
||||||
# controllers.Mail().send(request.form['email'], subject, message)
|
# controllers.Mail().send(request.form['email'], subject, message)
|
||||||
|
@ -272,14 +271,23 @@ def password_reset_step2():
|
||||||
return render_template('default/id/password_reset_step2.html')
|
return render_template('default/id/password_reset_step2.html')
|
||||||
|
|
||||||
|
|
||||||
@viewAccount.route("/password_update", methods=['GET', 'POST'])
|
@viewAccount.route("/password_update", methods=['GET'])
|
||||||
@requires_login
|
@requires_login
|
||||||
def password_update():
|
def password_update():
|
||||||
"""
|
"""
|
||||||
Обновление пароля из личного кабинета с уведомлением владельца по ел.почте
|
Обновление пароля из личного кабинета с уведомлением владельца по ел.почте
|
||||||
:return:
|
:return:
|
||||||
"""
|
"""
|
||||||
if request.method == "POST":
|
return render_template('default/id/password_update.html')
|
||||||
|
|
||||||
|
|
||||||
|
@viewAccount.route("/password_update", methods=['POST'])
|
||||||
|
@requires_login
|
||||||
|
def password_update_post():
|
||||||
|
"""
|
||||||
|
Обновление пароля из личного кабинета с уведомлением владельца по ел.почте
|
||||||
|
:return:
|
||||||
|
"""
|
||||||
# Проверка старого пароля
|
# Проверка старого пароля
|
||||||
check_old = ControllerUsers().auth(session['email'], request.form['old_password'])
|
check_old = ControllerUsers().auth(session['email'], request.form['old_password'])
|
||||||
|
|
||||||
|
@ -292,9 +300,8 @@ def password_update():
|
||||||
Пароль для достуна в личный кабинет был успешно изменён.
|
Пароль для достуна в личный кабинет был успешно изменён.
|
||||||
"""
|
"""
|
||||||
message = u"""Пароль: %s""" % request.form['new_password']
|
message = u"""Пароль: %s""" % request.form['new_password']
|
||||||
callout = u"""
|
callout = u""""""
|
||||||
"""
|
subject = u'''GoCloud.ru: Смена пароля'''
|
||||||
subject = u'GoCloud.ru: Смена пароля'
|
|
||||||
|
|
||||||
email = ControllerMessagesEmail()
|
email = ControllerMessagesEmail()
|
||||||
email.send(
|
email.send(
|
||||||
|
@ -302,11 +309,13 @@ def password_update():
|
||||||
to=session['email'],
|
to=session['email'],
|
||||||
lead=lead,
|
lead=lead,
|
||||||
message=message,
|
message=message,
|
||||||
callout=callout
|
callout=callout)
|
||||||
)
|
|
||||||
|
|
||||||
return redirect(url_for('account.password_update'))
|
return redirect(url_for('account.password_update'))
|
||||||
return render_template('default/id/password_update.html')
|
return redirect(url_for('account.password_update'))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@viewAccount.route('/sshkey', methods=['GET'])
|
@viewAccount.route('/sshkey', methods=['GET'])
|
||||||
|
|
|
@ -8,8 +8,9 @@ from SWSCloudCore.controllers.vms import ControllerVMS
|
||||||
nb = models.Settings.get_item('NEGATIVE_BALANCE')
|
nb = models.Settings.get_item('NEGATIVE_BALANCE')
|
||||||
|
|
||||||
if int(models.Settings.get_item('SERVICE_VMS_ENABLE')) == 1:
|
if int(models.Settings.get_item('SERVICE_VMS_ENABLE')) == 1:
|
||||||
print 'total vms:', models.Vms.select().count()
|
print 'total vms:', models.Vms.select().where(models.Vms.status == 1).count()
|
||||||
for vm in models.Vms.select():
|
|
||||||
|
for vm in models.Vms.select().where(models.Vms.status == 1):
|
||||||
# Высчитываем, сколько стоит виртуальная машина 15 минут
|
# Высчитываем, сколько стоит виртуальная машина 15 минут
|
||||||
price_quarter = vm.plan.price / 30 / 24 / 4
|
price_quarter = vm.plan.price / 30 / 24 / 4
|
||||||
|
|
||||||
|
@ -24,7 +25,7 @@ if int(models.Settings.get_item('SERVICE_VMS_ENABLE')) == 1:
|
||||||
# Shutting down all VMs by users who doesn't have money
|
# Shutting down all VMs by users who doesn't have money
|
||||||
user_balance = models.UsersBalance.select(
|
user_balance = models.UsersBalance.select(
|
||||||
models.UsersBalance.balance).where(models.UsersBalance.user == vm.user.id).get().balance
|
models.UsersBalance.balance).where(models.UsersBalance.user == vm.user.id).get().balance
|
||||||
if -500 > user_balance:
|
if -500 > user_balance and models.Vms.get_state(vm.id) == 1:
|
||||||
print "user_balance", user_balance
|
print "user_balance", user_balance
|
||||||
ControllerVMS(vm.user.id).status_set(vm.id, 3)
|
ControllerVMS(vm.user.id).status_set(vm.id, 3)
|
||||||
# Создание задания
|
# Создание задания
|
||||||
|
|
6
setup.py
6
setup.py
|
@ -4,7 +4,7 @@ from setuptools import setup
|
||||||
|
|
||||||
setup(
|
setup(
|
||||||
name='SWSCloudCore',
|
name='SWSCloudCore',
|
||||||
version='2.7.8',
|
version='2.7.9',
|
||||||
author='Vyacheslav Anzhiganov',
|
author='Vyacheslav Anzhiganov',
|
||||||
author_email='hello@anzhiganov.com',
|
author_email='hello@anzhiganov.com',
|
||||||
packages=[
|
packages=[
|
||||||
|
@ -107,7 +107,8 @@ setup(
|
||||||
'static/js/vendor/*.js',
|
'static/js/vendor/*.js',
|
||||||
#
|
#
|
||||||
'templates/administrator/*.html',
|
'templates/administrator/*.html',
|
||||||
'templates/administrator/containers/*.html',
|
'templates/administrator/compute/containers/*.html',
|
||||||
|
'templates/administrator/compute/vms/*.html',
|
||||||
'templates/administrator/datacenters/*.html',
|
'templates/administrator/datacenters/*.html',
|
||||||
'templates/administrator/email/*.html',
|
'templates/administrator/email/*.html',
|
||||||
'templates/administrator/ips/*.html',
|
'templates/administrator/ips/*.html',
|
||||||
|
@ -118,7 +119,6 @@ setup(
|
||||||
'templates/administrator/tasks/*.html',
|
'templates/administrator/tasks/*.html',
|
||||||
'templates/administrator/users/*.html',
|
'templates/administrator/users/*.html',
|
||||||
# 'templates/administrator/payments/*.html',
|
# 'templates/administrator/payments/*.html',
|
||||||
'templates/administrator/vms/*.html',
|
|
||||||
'templates/administrator/wiki/*.html',
|
'templates/administrator/wiki/*.html',
|
||||||
'templates/administrator/wiki/article/*.html',
|
'templates/administrator/wiki/article/*.html',
|
||||||
'templates/administrator/wiki/category/*.html',
|
'templates/administrator/wiki/category/*.html',
|
||||||
|
|
Loading…
Add table
Reference in a new issue