40 lines
1.3 KiB
Python
40 lines
1.3 KiB
Python
from django.db import migrations, models
|
|
from serverus import generate_password, generate_port
|
|
|
|
|
|
def generate_subscription(apps, schema_editor):
|
|
# у уже установленных точек подписка появится после переустановки
|
|
Point = apps.get_model('App', 'Point')
|
|
for point in Point.objects.all():
|
|
point.sub_port = generate_port(exclude={point.panel_port})
|
|
point.sub_path = generate_password(12)
|
|
point.save(update_fields=['sub_port', 'sub_path'])
|
|
|
|
|
|
class Migration(migrations.Migration):
|
|
|
|
dependencies = [
|
|
('App', '0003_server_default_root_password'),
|
|
]
|
|
|
|
operations = [
|
|
migrations.AddField(
|
|
model_name='point',
|
|
name='panel_inbound_id',
|
|
field=models.PositiveIntegerField(blank=True, help_text='Подключение reality в панели', null=True),
|
|
),
|
|
migrations.AddField(
|
|
model_name='point',
|
|
name='sub_port',
|
|
field=models.PositiveIntegerField(default=0, help_text='Порт подписки панели'),
|
|
preserve_default=False,
|
|
),
|
|
migrations.AddField(
|
|
model_name='point',
|
|
name='sub_path',
|
|
field=models.CharField(default='', help_text='Путь подписки без слешей', max_length=64),
|
|
preserve_default=False,
|
|
),
|
|
migrations.RunPython(generate_subscription, migrations.RunPython.noop),
|
|
]
|