From 01fa4d0cfde866d761466c48b8849e2add8f2b36 Mon Sep 17 00:00:00 2001 From: vanzhiganov Date: Thu, 27 Oct 2016 10:47:16 +0300 Subject: [PATCH] update cloud-cron-balance & model func --- SWSCloudCore/models.py | 6 ++++++ cloud-cron-balance.py | 13 +++++++++---- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/SWSCloudCore/models.py b/SWSCloudCore/models.py index 0b5ec1a..dcc0e3d 100644 --- a/SWSCloudCore/models.py +++ b/SWSCloudCore/models.py @@ -317,6 +317,12 @@ class Settings(PgSQLModel): key = TextField(unique=True, null=False) val = TextField(null=True) + @staticmethod + def get_item(key): + if Settings.select().where(Settings.key == key).count() == 0: + return None + return Settings.select(Settings.val).where(Settings.key == key).first().val + class Admins(PgSQLModel): id = UUIDField(primary_key=True, unique=True) diff --git a/cloud-cron-balance.py b/cloud-cron-balance.py index 8f17a5a..9623152 100644 --- a/cloud-cron-balance.py +++ b/cloud-cron-balance.py @@ -3,8 +3,9 @@ from SWSCloudCore import models +nb = models.Settings.get_item('NEGATIVE_BALANCE') -if int(models.Settings.select().where(models.Settings.key == 'SERVICE_VMS_ENABLE').get().val) == 1: +if int(models.Settings.get_item('SERVICE_VMS_ENABLE')) == 1: print 'total vms:', models.Vms.select().count() for vm in models.Vms.select(): # Высчитываем, сколько стоит виртуальная машина 15 минут @@ -16,11 +17,15 @@ if int(models.Settings.select().where(models.Settings.key == 'SERVICE_VMS_ENABLE x = models.UsersBalance.update( balance=models.UsersBalance.balance - price_quarter ).where( - models.UsersBalance.user == vm.user.id - ) + models.UsersBalance.user == vm.user.id) x.execute() -if int(models.Settings.select().where(models.Settings.key == 'SERVICE_CONTAINERS_ENABLE').get().val) == 1: + # Shutting down all VMs by users who doesn't have money + if nb < 500: + pass + + +if int(models.Settings.get_item('SERVICE_CONTAINERS_ENABLE')) == 1: print 'total containers:', models.Containers.select().count() for container in models.Containers.select(): container_state = models.ContainersStatisticsState.select().where(