mirror of https://github.com/jumpserver/jumpserver
ibuler
2 years ago
committed by
老广
3 changed files with 231 additions and 11 deletions
@ -0,0 +1,116 @@
|
||||
# Generated by Django 3.2.14 on 2022-10-10 01:59 |
||||
|
||||
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', '0106_auto_20220916_1556'), |
||||
] |
||||
|
||||
operations = [ |
||||
migrations.CreateModel( |
||||
name='BaseAutomation', |
||||
fields=[ |
||||
('created_by', models.CharField(blank=True, max_length=32, null=True, verbose_name='Created by')), |
||||
('updated_by', models.CharField(blank=True, max_length=32, null=True, verbose_name='Updated 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')), |
||||
('id', models.UUIDField(default=uuid.uuid4, primary_key=True, serialize=False)), |
||||
('org_id', models.CharField(blank=True, db_index=True, default='', max_length=36, verbose_name='Organization')), |
||||
('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')), |
||||
('accounts', models.JSONField(default=list, verbose_name='Accounts')), |
||||
('type', models.CharField(max_length=16, verbose_name='Type')), |
||||
('comment', models.TextField(blank=True, verbose_name='Comment')), |
||||
('assets', models.ManyToManyField(blank=True, to='assets.Asset', verbose_name='Assets')), |
||||
('nodes', models.ManyToManyField(blank=True, to='assets.Node', verbose_name='Nodes')), |
||||
], |
||||
options={ |
||||
'verbose_name': 'Automation plan', |
||||
'unique_together': {('org_id', 'name')}, |
||||
}, |
||||
), |
||||
migrations.AddField( |
||||
model_name='label', |
||||
name='created_by', |
||||
field=models.CharField(blank=True, max_length=32, null=True, verbose_name='Created by'), |
||||
), |
||||
migrations.AddField( |
||||
model_name='label', |
||||
name='date_updated', |
||||
field=models.DateTimeField(auto_now=True, verbose_name='Date updated'), |
||||
), |
||||
migrations.AddField( |
||||
model_name='label', |
||||
name='updated_by', |
||||
field=models.CharField(blank=True, max_length=32, null=True, verbose_name='Updated by'), |
||||
), |
||||
migrations.CreateModel( |
||||
name='DiscoveryAutomation', |
||||
fields=[ |
||||
('baseautomation_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='assets.baseautomation')), |
||||
], |
||||
options={ |
||||
'verbose_name': 'Discovery strategy', |
||||
}, |
||||
bases=('assets.baseautomation',), |
||||
), |
||||
migrations.CreateModel( |
||||
name='ReconcileAutomation', |
||||
fields=[ |
||||
('baseautomation_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='assets.baseautomation')), |
||||
], |
||||
options={ |
||||
'verbose_name': 'Reconcile strategy', |
||||
}, |
||||
bases=('assets.baseautomation',), |
||||
), |
||||
migrations.CreateModel( |
||||
name='VerifyAutomation', |
||||
fields=[ |
||||
('baseautomation_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='assets.baseautomation')), |
||||
], |
||||
options={ |
||||
'verbose_name': 'Verify strategy', |
||||
}, |
||||
bases=('assets.baseautomation',), |
||||
), |
||||
migrations.CreateModel( |
||||
name='AutomationExecution', |
||||
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)), |
||||
('status', models.CharField(default='pending', max_length=16)), |
||||
('date_created', models.DateTimeField(auto_now_add=True, verbose_name='Date created')), |
||||
('date_start', models.DateTimeField(db_index=True, null=True, verbose_name='Date start')), |
||||
('date_finished', models.DateTimeField(null=True, verbose_name='Date finished')), |
||||
('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')), |
||||
('automation', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='executions', to='assets.baseautomation', verbose_name='Automation strategy')), |
||||
], |
||||
options={ |
||||
'verbose_name': 'Automation strategy execution', |
||||
}, |
||||
), |
||||
migrations.CreateModel( |
||||
name='ChangePasswordAutomation', |
||||
fields=[ |
||||
('baseautomation_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='assets.baseautomation')), |
||||
('password', common.db.fields.EncryptTextField(blank=True, null=True, verbose_name='Secret')), |
||||
('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=('assets.baseautomation',), |
||||
), |
||||
] |
@ -0,0 +1,100 @@
|
||||
# Generated by Django 3.2.14 on 2022-10-09 12:50 |
||||
|
||||
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', '0106_auto_20220916_1556'), |
||||
('ops', '0025_auto_20221008_1631'), |
||||
] |
||||
|
||||
operations = [ |
||||
migrations.CreateModel( |
||||
name='Playbook', |
||||
fields=[ |
||||
('created_by', models.CharField(blank=True, max_length=32, null=True, verbose_name='Created by')), |
||||
('updated_by', models.CharField(blank=True, max_length=32, null=True, verbose_name='Updated 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')), |
||||
('id', models.UUIDField(default=uuid.uuid4, primary_key=True, serialize=False)), |
||||
('org_id', models.CharField(blank=True, db_index=True, default='', max_length=36, verbose_name='Organization')), |
||||
('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')), |
||||
('account', models.CharField(default='root', max_length=128, verbose_name='Account')), |
||||
('account_policy', models.CharField(default='root', max_length=128, verbose_name='Account policy')), |
||||
('date_last_run', models.DateTimeField(null=True, verbose_name='Date last run')), |
||||
('path', models.FilePathField(max_length=1024, verbose_name='Playbook')), |
||||
('comment', models.TextField(blank=True, verbose_name='Comment')), |
||||
('assets', models.ManyToManyField(to='assets.Asset', verbose_name='Assets')), |
||||
], |
||||
options={ |
||||
'abstract': False, |
||||
}, |
||||
), |
||||
migrations.AlterField( |
||||
model_name='adhocexecution', |
||||
name='date_finished', |
||||
field=models.DateTimeField(null=True, verbose_name='Date finished'), |
||||
), |
||||
migrations.CreateModel( |
||||
name='PlaybookTemplate', |
||||
fields=[ |
||||
('created_by', models.CharField(blank=True, max_length=32, null=True, verbose_name='Created by')), |
||||
('updated_by', models.CharField(blank=True, max_length=32, null=True, verbose_name='Updated 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')), |
||||
('id', models.UUIDField(default=uuid.uuid4, primary_key=True, serialize=False)), |
||||
('org_id', models.CharField(blank=True, db_index=True, default='', max_length=36, verbose_name='Organization')), |
||||
('name', models.CharField(max_length=128, verbose_name='Name')), |
||||
('path', models.FilePathField(verbose_name='Path')), |
||||
('comment', models.TextField(blank=True, verbose_name='Comment')), |
||||
], |
||||
options={ |
||||
'verbose_name': 'Playbook template', |
||||
'ordering': ['name'], |
||||
'unique_together': {('org_id', 'name')}, |
||||
}, |
||||
), |
||||
migrations.CreateModel( |
||||
name='PlaybookExecution', |
||||
fields=[ |
||||
('id', models.UUIDField(default=uuid.uuid4, primary_key=True, serialize=False)), |
||||
('status', models.CharField(default='running', max_length=16, verbose_name='Status')), |
||||
('result', models.JSONField(blank=True, null=True, verbose_name='Result')), |
||||
('summary', models.JSONField(default=dict, verbose_name='Summary')), |
||||
('date_created', models.DateTimeField(auto_now_add=True, verbose_name='Date created')), |
||||
('date_start', models.DateTimeField(db_index=True, null=True, verbose_name='Date start')), |
||||
('date_finished', models.DateTimeField(null=True, verbose_name='Date finished')), |
||||
('path', models.FilePathField(max_length=1024, verbose_name='Run dir')), |
||||
('creator', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, to=settings.AUTH_USER_MODEL, verbose_name='Creator')), |
||||
('task', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='ops.playbook', verbose_name='Task')), |
||||
], |
||||
options={ |
||||
'ordering': ['-date_start'], |
||||
'abstract': False, |
||||
}, |
||||
), |
||||
migrations.AddField( |
||||
model_name='playbook', |
||||
name='last_execution', |
||||
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='ops.playbookexecution', verbose_name='Last execution'), |
||||
), |
||||
migrations.AddField( |
||||
model_name='playbook', |
||||
name='owner', |
||||
field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, to=settings.AUTH_USER_MODEL, verbose_name='Owner'), |
||||
), |
||||
migrations.AddField( |
||||
model_name='playbook', |
||||
name='template', |
||||
field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, to='ops.playbooktemplate', verbose_name='Template'), |
||||
), |
||||
] |
Loading…
Reference in new issue