##// END OF EJS Templates
Se consiguió el scheduler
Se consiguió el scheduler

File last commit:

r389:b38f3eac9d06
r389:b38f3eac9d06
Show More
hello.py
86 lines | 3.4 KiB | text/x-python | PythonLexer
Renato Huallpa
Prototipo de Servidor ABS concluido en SIR
r387 from django.core.management.base import BaseCommand
Renato Huallpa
Avance scheduler
r388 from apps.main.models import Campaign, Location
from datetime import datetime,timedelta
from apps.main.views import radar_start
from django.shortcuts import render, redirect,get_object_or_404, HttpResponse
from django.urls import reverse
from django.utils.timezone import is_aware
from django.contrib import messages
from django.http import HttpResponseRedirect
from apps.main.views import experiment_start
from apps.main.models import Experiment, Configuration
Renato Huallpa
Prototipo de Servidor ABS concluido en SIR
r387
class Command(BaseCommand):
"""
Restart experiment every night at 05:00 am.
Example:
manage.py restart_experiment
"""
def handle(self, *args, **options):
Renato Huallpa
Se consiguió el scheduler
r389 print("\n\n")
all_campaigns=Campaign.objects.all()
Renato Huallpa
Avance scheduler
r388 campaigns = Campaign.objects.filter(start_date__lte=datetime.now(),
end_date__gte=datetime.now()).order_by('-start_date')
Renato Huallpa
Se consiguió el scheduler
r389 for campaign in all_campaigns:
if campaign.start_date<datetime.now() and campaign.end_date > datetime.now():
Renato Huallpa
Avance scheduler
r388
radar=campaign.get_experiments_by_radar(radar=None)
Renato Huallpa
Se consiguió el scheduler
r389 for rad in radar:
# print("RADR", rad)
radar_id=rad["id"]
# print("RADR_",radar_id)
Renato Huallpa
Avance scheduler
r388 radar_start_scheduler(campaign.id,radar_id)
Renato Huallpa
Se consiguió el scheduler
r389 print(campaign.name, "\t\t Campaign already running")
Renato Huallpa
Avance scheduler
r388
Renato Huallpa
Se consiguió el scheduler
r389 else:
Renato Huallpa
Avance scheduler
r388 radar=campaign.get_experiments_by_radar(radar=None)
radar_id=radar[0]["id"]
if campaign.experiments.all()[0].status !=1:
Renato Huallpa
Se consiguió el scheduler
r389 print(campaign.name, "\t\t Stopping Campaign...")
Renato Huallpa
Avance scheduler
r388 a=radar_stop_scheduler(campaign.id,radar_id,campaign.experiments.all()[0].id)
Renato Huallpa
Se consiguió el scheduler
r389 print("New Status: ", a)
else:
print(campaign.name,"\t\t\t Campaign already stooped")
Renato Huallpa
Avance scheduler
r388
def radar_start_scheduler(id_camp,id_radar):
campaign = get_object_or_404(Campaign, pk=id_camp)
experiments = campaign.get_experiments_by_radar(id_radar)[0]['experiments']
now = datetime.now()
Renato Huallpa
Se consiguió el scheduler
r389 # print(campaign)
# print(experiments)
Renato Huallpa
Avance scheduler
r388 for exp in experiments:
exp = get_object_or_404(Experiment, pk=exp.id)
Renato Huallpa
Se consiguió el scheduler
r389 # print("---------DEBUGG-------------")
# print(exp)
Renato Huallpa
Avance scheduler
r388 if exp.status == 2:
Renato Huallpa
Se consiguió el scheduler
r389 print('\t\t\t {} \t\t Experiment already runnnig'.format(exp))
Renato Huallpa
Avance scheduler
r388 else:
exp.status = exp.start()
if exp.status == 0:
Renato Huallpa
Se consiguió el scheduler
r389 print('\t\t\t {} \t\tExperiment not start'.format(exp))
Renato Huallpa
Avance scheduler
r388 if exp.status == 2:
Renato Huallpa
Se consiguió el scheduler
r389 print('\t\t\t {} \t\tExperiment started'.format(exp))
if exp.status == 4:
print('\t\t\t {} \t\tExperiment with state uknown, please reset'.format(exp))
Renato Huallpa
Avance scheduler
r388 exp.save()
Renato Huallpa
Prototipo de Servidor ABS concluido en SIR
r387
Renato Huallpa
Avance scheduler
r388 def radar_stop_scheduler(id_camp,id_radar,id_experiment):
'''
Stop experiments's devices
DDS-JARS-RC-CGS-ABS
'''
exp=get_object_or_404(Experiment,pk=id_experiment)
Renato Huallpa
Prototipo de Servidor ABS concluido en SIR
r387
Renato Huallpa
Avance scheduler
r388 if exp.status == 2:
confs = Configuration.objects.filter(experiment=id_experiment,type = 0).order_by('device__device_type__sequence')
confs = confs.exclude(device__device_type__name='cgs')
try:
for conf in confs:
Renato Huallpa
Se consiguió el scheduler
r389 # print(conf)
Renato Huallpa
Avance scheduler
r388 conf.stop_device()
exp.status= 1
except:
exp.status= 0
exp.save()
Renato Huallpa
Prototipo de Servidor ABS concluido en SIR
r387
Renato Huallpa
Avance scheduler
r388 return exp.status