# Generated by Django 3.2.14 on 2022-09-08 11:58 import common.db.fields from django.conf import settings from django.db import migrations, models import django.db.models.deletion import uuid class Migration(migrations.Migration): dependencies = [ migrations.swappable_dependency(settings.AUTH_USER_MODEL), ('assets', '0111_auto_20220908_1958'), ('ops', '0022_auto_20220817_1346'), ] operations = [ migrations.CreateModel( name='AutomationStrategy', fields=[ ('org_id', models.CharField(blank=True, db_index=True, default='', max_length=36, verbose_name='Organization')), ('created_by', models.CharField(blank=True, max_length=32, null=True, verbose_name='Created by')), ('date_created', models.DateTimeField(auto_now_add=True, null=True, verbose_name='Date created')), ('date_updated', models.DateTimeField(auto_now=True, verbose_name='Date updated')), ('name', models.CharField(max_length=128, verbose_name='Name')), ('is_periodic', models.BooleanField(default=False)), ('interval', models.IntegerField(blank=True, default=24, null=True, verbose_name='Cycle perform')), ('crontab', models.CharField(blank=True, max_length=128, null=True, verbose_name='Regularly perform')), ('id', models.UUIDField(default=uuid.uuid4, primary_key=True, serialize=False)), ('accounts', models.JSONField(default=list, verbose_name='Accounts')), ('comment', models.TextField(blank=True, verbose_name='Comment')), ('assets', models.ManyToManyField(blank=True, related_name='automation_strategy', to='assets.Asset', verbose_name='Assets')), ('nodes', models.ManyToManyField(blank=True, related_name='automation_strategy', to='assets.Node', verbose_name='Nodes')), ], options={ 'verbose_name': 'Automation plan', 'unique_together': {('org_id', 'name')}, }, ), migrations.CreateModel( name='AutomationStrategyExecution', fields=[ ('org_id', models.CharField(blank=True, db_index=True, default='', max_length=36, verbose_name='Organization')), ('id', models.UUIDField(default=uuid.uuid4, primary_key=True, serialize=False)), ('date_created', models.DateTimeField(auto_now_add=True)), ('timedelta', models.FloatField(default=0.0, null=True, verbose_name='Time')), ('date_start', models.DateTimeField(auto_now_add=True, verbose_name='Date start')), ('snapshot', common.db.fields.EncryptJsonDictTextField(blank=True, default=dict, null=True, verbose_name='Automation snapshot')), ('trigger', models.CharField(choices=[('manual', 'Manual trigger'), ('timing', 'Timing trigger')], default='manual', max_length=128, verbose_name='Trigger mode')), ('strategy', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='execution', to='ops.automationstrategy', verbose_name='Automation strategy')), ], options={ 'verbose_name': 'Automation strategy execution', }, ), migrations.CreateModel( name='CollectStrategy', fields=[ ('automationstrategy_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='ops.automationstrategy')), ], options={ 'verbose_name': 'Collect strategy', }, bases=('ops.automationstrategy',), ), migrations.CreateModel( name='PushStrategy', fields=[ ('automationstrategy_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='ops.automationstrategy')), ], options={ 'verbose_name': 'Push strategy', }, bases=('ops.automationstrategy',), ), migrations.CreateModel( name='VerifyStrategy', fields=[ ('automationstrategy_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='ops.automationstrategy')), ], options={ 'verbose_name': 'Verify strategy', }, bases=('ops.automationstrategy',), ), migrations.CreateModel( name='AutomationStrategyTask', fields=[ ('org_id', models.CharField(blank=True, db_index=True, default='', max_length=36, verbose_name='Organization')), ('id', models.UUIDField(default=uuid.uuid4, primary_key=True, serialize=False)), ('is_success', models.BooleanField(default=False, verbose_name='Is success')), ('timedelta', models.FloatField(default=0.0, null=True, verbose_name='Time')), ('date_start', models.DateTimeField(auto_now_add=True, verbose_name='Date start')), ('reason', models.CharField(blank=True, max_length=1024, null=True, verbose_name='Reason')), ('account', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='assets.account', verbose_name='Account')), ('asset', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='assets.asset', verbose_name='Asset')), ('execution', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='task', to='ops.automationstrategyexecution', verbose_name='Automation strategy execution')), ], options={ 'verbose_name': 'Automation strategy task', }, ), migrations.CreateModel( name='ChangeAuthStrategy', fields=[ ('automationstrategy_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='ops.automationstrategy')), ('is_password', models.BooleanField(default=True)), ('password_strategy', models.CharField(blank=True, choices=[('custom', 'Custom password'), ('random_one', 'All assets use the same random password'), ('random_all', 'All assets use different random password')], max_length=128, null=True, verbose_name='Password strategy')), ('password_rules', common.db.fields.JsonDictCharField(blank=True, max_length=2048, null=True, verbose_name='Password rules')), ('password', common.db.fields.EncryptCharField(blank=True, max_length=256, null=True, verbose_name='Password')), ('is_ssh_key', models.BooleanField(default=False)), ('ssh_key_strategy', models.CharField(blank=True, choices=[('add', 'Append SSH KEY'), ('set', 'Empty and append SSH KEY'), ('set_jms', 'Replace (The key generated by JumpServer) ')], max_length=128, null=True, verbose_name='SSH Key strategy')), ('private_key', common.db.fields.EncryptTextField(blank=True, max_length=4096, null=True, verbose_name='SSH private key')), ('public_key', common.db.fields.EncryptTextField(blank=True, max_length=4096, null=True, verbose_name='SSH public key')), ('recipients', models.ManyToManyField(blank=True, related_name='recipients_change_auth_strategy', to=settings.AUTH_USER_MODEL, verbose_name='Recipient')), ], options={ 'verbose_name': 'Change auth strategy', }, bases=('ops.automationstrategy',), ), ]