| 123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- # Generated by Django 6.0 on 2025-12-31 22:54
- import django.db.models.deletion
- import django.utils.timezone
- import uuid
- from django.db import migrations, models
- class Migration(migrations.Migration):
- dependencies = [
- ('machine', '0005_converge_binary_model'),
- ]
- operations = [
- migrations.CreateModel(
- name='Process',
- fields=[
- ('id', models.UUIDField(default=uuid.uuid7, editable=False, primary_key=True, serialize=False, unique=True)),
- ('created_at', models.DateTimeField(db_index=True, default=django.utils.timezone.now)),
- ('modified_at', models.DateTimeField(auto_now=True)),
- ('pwd', models.CharField(blank=True, default='', help_text='Working directory for process execution', max_length=512)),
- ('cmd', models.JSONField(blank=True, default=list, help_text='Command as array of arguments')),
- ('env', models.JSONField(blank=True, default=dict, help_text='Environment variables for process')),
- ('timeout', models.IntegerField(default=120, help_text='Timeout in seconds')),
- ('pid', models.IntegerField(blank=True, default=None, help_text='OS process ID', null=True)),
- ('exit_code', models.IntegerField(blank=True, default=None, help_text='Process exit code (0 = success)', null=True)),
- ('stdout', models.TextField(blank=True, default='', help_text='Standard output from process')),
- ('stderr', models.TextField(blank=True, default='', help_text='Standard error from process')),
- ('started_at', models.DateTimeField(blank=True, default=None, help_text='When process was launched', null=True)),
- ('ended_at', models.DateTimeField(blank=True, default=None, help_text='When process completed/terminated', null=True)),
- ('url', models.URLField(blank=True, default=None, help_text='Connection URL (CDP endpoint, sonic server, etc.)', max_length=2048, null=True)),
- ('status', models.CharField(choices=[('queued', 'Queued'), ('running', 'Running'), ('exited', 'Exited')], db_index=True, default='queued', max_length=16)),
- ('retry_at', models.DateTimeField(blank=True, db_index=True, default=django.utils.timezone.now, help_text='When to retry this process', null=True)),
- ('binary', models.ForeignKey(blank=True, help_text='Binary used by this process', null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='process_set', to='machine.binary')),
- ('iface', models.ForeignKey(blank=True, help_text='Network interface used by this process', null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='process_set', to='machine.networkinterface')),
- ('machine', models.ForeignKey(help_text='Machine where this process executed', on_delete=django.db.models.deletion.CASCADE, related_name='process_set', to='machine.machine')),
- ],
- options={
- 'verbose_name': 'Process',
- 'verbose_name_plural': 'Processes',
- 'indexes': [models.Index(fields=['machine', 'status', 'retry_at'], name='machine_pro_machine_5e3a87_idx'), models.Index(fields=['binary', 'exit_code'], name='machine_pro_binary__7bd19c_idx')],
- },
- ),
- ]
|