mirror of
https://github.com/ArchiveBox/ArchiveBox.git
synced 2026-01-16 17:03:26 +08:00
46 lines
3.3 KiB
Python
46 lines
3.3 KiB
Python
# 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')],
|
|
},
|
|
),
|
|
]
|