This commit is contained in:
Nick Sweeting
2025-12-24 21:46:14 -08:00
parent 1915333b81
commit 6c769d831c
69 changed files with 3586 additions and 4216 deletions

View File

@@ -1,140 +0,0 @@
# Generated by Django 5.1.1 on 2024-10-02 04:34
# Modified: Removed abid/charidfield - ABID system removed
import archivebox.base_models.models
import django.db.models.deletion
from django.db import migrations, models
def drop_machine_abid_fields_if_exist(apps, schema_editor):
"""Drop abid fields from machine tables if they exist."""
connection = schema_editor.connection
tables_and_fields = [
('machine_machine', 'abid'),
('machine_networkinterface', 'abid'),
]
for table_name, field_name in tables_and_fields:
with connection.cursor() as cursor:
try:
cursor.execute(f"PRAGMA table_info({table_name})")
columns = [row[1] for row in cursor.fetchall()]
if field_name in columns:
print(f" Dropping {table_name}.{field_name}...")
cursor.execute(f"ALTER TABLE {table_name} DROP COLUMN {field_name}")
except Exception:
pass
class Migration(migrations.Migration):
initial = True
dependencies = []
operations = [
migrations.CreateModel(
name="Machine",
fields=[
(
"id",
models.UUIDField(
default=None,
editable=False,
primary_key=True,
serialize=False,
unique=True,
verbose_name="ID",
),
),
# Removed: abid field - ABID system removed
(
"created_at",
archivebox.base_models.models.AutoDateTimeField(
db_index=True, default=None
),
),
("modified_at", models.DateTimeField(auto_now=True)),
(
"guid",
models.CharField(
default=None, editable=False, max_length=64, unique=True
),
),
("hostname", models.CharField(default=None, max_length=63)),
("hw_in_docker", models.BooleanField(default=False)),
("hw_in_vm", models.BooleanField(default=False)),
("hw_manufacturer", models.CharField(default=None, max_length=63)),
("hw_product", models.CharField(default=None, max_length=63)),
("hw_uuid", models.CharField(default=None, max_length=255)),
("os_arch", models.CharField(default=None, max_length=15)),
("os_family", models.CharField(default=None, max_length=15)),
("os_platform", models.CharField(default=None, max_length=63)),
("os_release", models.CharField(default=None, max_length=63)),
("os_kernel", models.CharField(default=None, max_length=255)),
("stats", models.JSONField(default=None)),
],
options={
"abstract": False,
},
),
migrations.CreateModel(
name="NetworkInterface",
fields=[
(
"id",
models.UUIDField(
default=None,
editable=False,
primary_key=True,
serialize=False,
unique=True,
verbose_name="ID",
),
),
# Removed: abid field - ABID system removed
(
"created_at",
archivebox.base_models.models.AutoDateTimeField(
db_index=True, default=None
),
),
("modified_at", models.DateTimeField(auto_now=True)),
(
"mac_address",
models.CharField(default=None, editable=False, max_length=17),
),
(
"ip_public",
models.GenericIPAddressField(default=None, editable=False),
),
(
"ip_local",
models.GenericIPAddressField(default=None, editable=False),
),
(
"dns_server",
models.GenericIPAddressField(default=None, editable=False),
),
("iface", models.CharField(default=None, max_length=15)),
("hostname", models.CharField(default=None, max_length=63)),
("isp", models.CharField(default=None, max_length=63)),
("city", models.CharField(default=None, max_length=63)),
("region", models.CharField(default=None, max_length=63)),
("country", models.CharField(default=None, max_length=63)),
(
"machine",
models.ForeignKey(
default=None,
on_delete=django.db.models.deletion.CASCADE,
to="machine.machine",
),
),
],
options={
"unique_together": {
("machine", "ip_public", "ip_local", "mac_address", "dns_server")
},
},
),
migrations.RunPython(drop_machine_abid_fields_if_exist, reverse_code=migrations.RunPython.noop),
]

View File

@@ -0,0 +1,111 @@
# Squashed migration: replaces 0001-0004
# For fresh installs: creates final schema
# For dev users with 0001-0004 applied: marked as applied (no-op)
from uuid import uuid4
from django.db import migrations, models
import django.db.models.deletion
import django.utils.timezone
class Migration(migrations.Migration):
initial = True
replaces = [
('machine', '0001_initial'),
('machine', '0002_alter_machine_stats_installedbinary'),
('machine', '0003_alter_installedbinary_options_and_more'),
('machine', '0004_alter_installedbinary_abspath_and_more'),
]
dependencies = []
operations = [
migrations.CreateModel(
name='Machine',
fields=[
('num_uses_failed', models.PositiveIntegerField(default=0)),
('num_uses_succeeded', models.PositiveIntegerField(default=0)),
('id', models.UUIDField(default=uuid4, 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)),
('guid', models.CharField(default=None, editable=False, max_length=64, unique=True)),
('hostname', models.CharField(default=None, max_length=63)),
('hw_in_docker', models.BooleanField(default=False)),
('hw_in_vm', models.BooleanField(default=False)),
('hw_manufacturer', models.CharField(default=None, max_length=63)),
('hw_product', models.CharField(default=None, max_length=63)),
('hw_uuid', models.CharField(default=None, max_length=255)),
('os_arch', models.CharField(default=None, max_length=15)),
('os_family', models.CharField(default=None, max_length=15)),
('os_platform', models.CharField(default=None, max_length=63)),
('os_release', models.CharField(default=None, max_length=63)),
('os_kernel', models.CharField(default=None, max_length=255)),
('stats', models.JSONField(default=dict)),
('config', models.JSONField(blank=True, default=dict)),
],
),
migrations.CreateModel(
name='NetworkInterface',
fields=[
('num_uses_failed', models.PositiveIntegerField(default=0)),
('num_uses_succeeded', models.PositiveIntegerField(default=0)),
('id', models.UUIDField(default=uuid4, 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)),
('mac_address', models.CharField(default=None, editable=False, max_length=17)),
('ip_public', models.GenericIPAddressField(default=None, editable=False)),
('ip_local', models.GenericIPAddressField(default=None, editable=False)),
('dns_server', models.GenericIPAddressField(default=None, editable=False)),
('hostname', models.CharField(default=None, max_length=63)),
('iface', models.CharField(default=None, max_length=15)),
('isp', models.CharField(default=None, max_length=63)),
('city', models.CharField(default=None, max_length=63)),
('region', models.CharField(default=None, max_length=63)),
('country', models.CharField(default=None, max_length=63)),
('machine', models.ForeignKey(default=None, on_delete=django.db.models.deletion.CASCADE, to='machine.machine')),
],
options={
'unique_together': {('machine', 'ip_public', 'ip_local', 'mac_address', 'dns_server')},
},
),
migrations.CreateModel(
name='Dependency',
fields=[
('id', models.UUIDField(default=uuid4, 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)),
('bin_name', models.CharField(db_index=True, max_length=63, unique=True)),
('bin_providers', models.CharField(default='*', max_length=127)),
('custom_cmds', models.JSONField(blank=True, default=dict)),
('config', models.JSONField(blank=True, default=dict)),
],
options={
'verbose_name': 'Dependency',
'verbose_name_plural': 'Dependencies',
},
),
migrations.CreateModel(
name='InstalledBinary',
fields=[
('num_uses_failed', models.PositiveIntegerField(default=0)),
('num_uses_succeeded', models.PositiveIntegerField(default=0)),
('id', models.UUIDField(default=uuid4, 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)),
('name', models.CharField(blank=True, db_index=True, default=None, max_length=63)),
('binprovider', models.CharField(blank=True, default=None, max_length=31)),
('abspath', models.CharField(blank=True, default=None, max_length=255)),
('version', models.CharField(blank=True, default=None, max_length=32)),
('sha256', models.CharField(blank=True, default=None, max_length=64)),
('machine', models.ForeignKey(blank=True, default=None, on_delete=django.db.models.deletion.CASCADE, to='machine.machine')),
('dependency', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='installedbinary_set', to='machine.dependency')),
],
options={
'verbose_name': 'Installed Binary',
'verbose_name_plural': 'Installed Binaries',
'unique_together': {('machine', 'name', 'abspath', 'version', 'sha256')},
},
),
]

View File

@@ -1,78 +0,0 @@
# Generated by Django 5.1.1 on 2024-10-03 07:25
# Modified: Removed abid/charidfield - ABID system removed
import archivebox.base_models.models
import django.db.models.deletion
from django.db import migrations, models
def drop_installedbinary_abid_if_exist(apps, schema_editor):
"""Drop abid field from installedbinary if it exists."""
connection = schema_editor.connection
with connection.cursor() as cursor:
try:
cursor.execute("PRAGMA table_info(machine_installedbinary)")
columns = [row[1] for row in cursor.fetchall()]
if 'abid' in columns:
print(" Dropping machine_installedbinary.abid...")
cursor.execute("ALTER TABLE machine_installedbinary DROP COLUMN abid")
except Exception:
pass
class Migration(migrations.Migration):
dependencies = [
("machine", "0001_initial"),
]
operations = [
migrations.AlterField(
model_name="machine",
name="stats",
field=models.JSONField(default=dict),
),
migrations.CreateModel(
name="InstalledBinary",
fields=[
(
"id",
models.UUIDField(
default=None,
editable=False,
primary_key=True,
serialize=False,
unique=True,
verbose_name="ID",
),
),
# Removed: abid field - ABID system removed
(
"created_at",
archivebox.base_models.models.AutoDateTimeField(
db_index=True, default=None
),
),
("modified_at", models.DateTimeField(auto_now=True)),
("name", models.CharField(default=None, max_length=63)),
("binprovider", models.CharField(default=None, max_length=31)),
("abspath", models.CharField(default=None, max_length=255)),
("version", models.CharField(default=None, max_length=32)),
("sha256", models.CharField(default=None, max_length=64)),
(
"machine",
models.ForeignKey(
default=None,
on_delete=django.db.models.deletion.CASCADE,
to="machine.machine",
),
),
],
options={
"unique_together": {
("machine", "name", "binprovider", "abspath", "version", "sha256")
},
},
),
migrations.RunPython(drop_installedbinary_abid_if_exist, reverse_code=migrations.RunPython.noop),
]

View File

@@ -1,50 +0,0 @@
# Generated by Django 5.1.1 on 2024-10-03 09:20
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
("machine", "0002_alter_machine_stats_installedbinary"),
]
operations = [
migrations.AlterModelOptions(
name="installedbinary",
options={
"verbose_name": "Installed Binary",
"verbose_name_plural": "Installed Binaries",
},
),
migrations.AddField(
model_name="installedbinary",
name="num_uses_failed",
field=models.PositiveIntegerField(default=0),
),
migrations.AddField(
model_name="installedbinary",
name="num_uses_succeeded",
field=models.PositiveIntegerField(default=0),
),
migrations.AddField(
model_name="machine",
name="num_uses_failed",
field=models.PositiveIntegerField(default=0),
),
migrations.AddField(
model_name="machine",
name="num_uses_succeeded",
field=models.PositiveIntegerField(default=0),
),
migrations.AddField(
model_name="networkinterface",
name="num_uses_failed",
field=models.PositiveIntegerField(default=0),
),
migrations.AddField(
model_name="networkinterface",
name="num_uses_succeeded",
field=models.PositiveIntegerField(default=0),
),
]

View File

@@ -1,49 +0,0 @@
# Generated by Django 5.1.1 on 2024-10-03 09:50
import django.db.models.deletion
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
("machine", "0003_alter_installedbinary_options_and_more"),
]
operations = [
migrations.AlterField(
model_name="installedbinary",
name="abspath",
field=models.CharField(blank=True, default=None, max_length=255),
),
migrations.AlterField(
model_name="installedbinary",
name="binprovider",
field=models.CharField(blank=True, default=None, max_length=31),
),
migrations.AlterField(
model_name="installedbinary",
name="machine",
field=models.ForeignKey(
blank=True,
default=None,
on_delete=django.db.models.deletion.CASCADE,
to="machine.machine",
),
),
migrations.AlterField(
model_name="installedbinary",
name="name",
field=models.CharField(blank=True, default=None, max_length=63),
),
migrations.AlterField(
model_name="installedbinary",
name="sha256",
field=models.CharField(blank=True, default=None, max_length=64),
),
migrations.AlterField(
model_name="installedbinary",
name="version",
field=models.CharField(blank=True, default=None, max_length=32),
),
]