move uncloud a layer up

Signed-off-by: Nico Schottelius <nico@nico-notebook.schottelius.org>
This commit is contained in:
Nico Schottelius 2020-02-23 14:07:37 +01:00
commit 94633d6cc8
70 changed files with 99 additions and 50 deletions

View file

@ -0,0 +1,26 @@
import time
from django.conf import settings
from django.core.management.base import BaseCommand
import uncloud_api.models
import inspect
import sys
import re
class Command(BaseCommand):
args = '<None>'
help = 'hacking - only use if you are Nico'
def add_arguments(self, parser):
parser.add_argument('command', type=str, help='Command')
def handle(self, *args, **options):
getattr(self, options['command'])(**options)
@classmethod
def classtest(cls, **_):
clsmembers = inspect.getmembers(sys.modules['uncloud_api.models'], inspect.isclass)
for name, c in clsmembers:
if re.match(r'.+Product$', name):
print("{} -> {}".format(name, c))

View file

@ -0,0 +1,36 @@
import time
from django.conf import settings
from django.core.management.base import BaseCommand
from uncloud_api import models
class Command(BaseCommand):
args = '<None>'
help = 'VM Snapshot support'
def add_arguments(self, parser):
parser.add_argument('command', type=str, help='Command')
def handle(self, *args, **options):
print("Snapshotting")
#getattr(self, options['command'])(**options)
def get_disks_of_vm(self, vmuuid):
""" Returns the disks used by a VM in the format
( ceph_name, size )
"""
pass
@classmethod
def monitor(cls, **_):
while True:
try:
tweets = models.Reply.get_target_tweets()
responses = models.Reply.objects.values_list('tweet_id', flat=True)
new_tweets = [x for x in tweets if x.id not in responses]
models.Reply.send(new_tweets)
except TweepError as e:
print(e)
time.sleep(60)