import uuid from datetime import timedelta from django.core.management.base import BaseCommand,CommandError from django.utils import timezone from monitoring.models import Segment,Server,Event from monitoring.ingest import ingest from monitoring.tasks import evaluate_alarms class Command(BaseCommand): help='Create isolated, explicitly named demo servers. Never deletes real data.' def handle(self,*args,**kwargs): seg,_=Segment.objects.get_or_create(name='DEMO ยท Produktion',defaults={'cidr':'Demo-Netz'}) for i,name in enumerate(['DEMO-django-01','DEMO-celery-01','DEMO-ai-01']): s,created=Server.objects.get_or_create(name=name,defaults={'segment':seg,'address':'Demodaten'}) if not created: continue now=timezone.now();batch=[] for h in range(24): at=now-timedelta(hours=23-h) def event(kind,p):return {'id':uuid.uuid4(),'kind':kind,'occurred_at':at,'payload':p} batch.append(event('metric',{'cpu':89 if i==1 else 25+h%15,'ram':52+i*8,'disk':40+i*5,'services':{'django':True}})) batch.append(event('task-succeeded',{'uuid':str(uuid.uuid4()),'name':'demo.documents.index','hostname':name,'runtime':1.5+i})) ingest(s.pk,batch) evaluate_alarms() self.stdout.write('Demo servers created. Login with a separately created user.')