# Generated by Django 4.1.13 on 2024-05-09 03:16 import uuid import django.db.models.deletion from django.db import migrations, models import assets.models.asset.common import assets.models.node import common.db.fields class Migration(migrations.Migration): initial = True dependencies = [ ] operations = [ migrations.CreateModel( name='Asset', fields=[ ('created_by', models.CharField(blank=True, max_length=128, null=True, verbose_name='Created by')), ('updated_by', models.CharField(blank=True, max_length=128, 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')), ('comment', models.TextField(blank=True, default='', verbose_name='Comment')), ('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')), ('connectivity', models.CharField(choices=[('-', 'Unknown'), ('ok', 'OK'), ('err', 'Error')], default='-', max_length=16, verbose_name='Connectivity')), ('date_verified', models.DateTimeField(null=True, verbose_name='Date verified')), ('name', models.CharField(max_length=128, verbose_name='Name')), ('address', models.CharField(db_index=True, max_length=767, verbose_name='Address')), ('is_active', models.BooleanField(default=True, verbose_name='Active')), ('gathered_info', models.JSONField(blank=True, default=dict, verbose_name='Gathered info')), ('custom_info', models.JSONField(default=dict, verbose_name='Custom info')), ], options={ 'verbose_name': 'Asset', 'ordering': [], 'permissions': [('refresh_assethardwareinfo', 'Can refresh asset hardware info'), ('test_assetconnectivity', 'Can test asset connectivity'), ('match_asset', 'Can match asset'), ('change_assetnodes', 'Can change asset nodes')], }, bases=(assets.models.asset.common.NodesRelationMixin, assets.models.asset.common.JSONFilterMixin, models.Model), ), 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, verbose_name='Status')), ('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')), ], options={ 'verbose_name': 'Automation task execution', 'ordering': ('org_id', '-date_start'), }, ), migrations.CreateModel( name='BaseAutomation', fields=[ ('created_by', models.CharField(blank=True, max_length=128, null=True, verbose_name='Created by')), ('updated_by', models.CharField(blank=True, max_length=128, 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')), ('comment', models.TextField(blank=True, default='', verbose_name='Comment')), ('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, verbose_name='Periodic run')), ('interval', models.IntegerField(blank=True, default=24, null=True, verbose_name='Interval')), ('crontab', models.CharField(blank=True, max_length=128, null=True, verbose_name='Crontab')), ('accounts', models.JSONField(default=list, verbose_name='Accounts')), ('type', models.CharField(max_length=16, verbose_name='Type')), ('is_active', models.BooleanField(default=True, verbose_name='Is active')), ('params', models.JSONField(default=dict, verbose_name='Parameters')), ], options={ 'verbose_name': 'Automation task', }, ), migrations.CreateModel( name='Domain', fields=[ ('created_by', models.CharField(blank=True, max_length=128, null=True, verbose_name='Created by')), ('updated_by', models.CharField(blank=True, max_length=128, 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')), ('comment', models.TextField(blank=True, default='', verbose_name='Comment')), ('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')), ], options={ 'verbose_name': 'Zone', 'ordering': ('name',), }, ), migrations.CreateModel( name='Node', fields=[ ('created_by', models.CharField(blank=True, max_length=128, null=True, verbose_name='Created by')), ('updated_by', models.CharField(blank=True, max_length=128, 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')), ('comment', models.TextField(blank=True, default='', verbose_name='Comment')), ('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)), ('key', models.CharField(max_length=64, unique=True, verbose_name='Key')), ('value', models.CharField(max_length=128, verbose_name='Value')), ('full_value', models.CharField(default='', max_length=4096, verbose_name='Full value')), ('child_mark', models.IntegerField(default=0)), ('date_create', models.DateTimeField(auto_now_add=True)), ('parent_key', models.CharField(db_index=True, default='', max_length=64, verbose_name='Parent key')), ('assets_amount', models.IntegerField(default=0)), ], options={ 'verbose_name': 'Node', 'ordering': ['parent_key', 'value'], 'permissions': [('match_node', 'Can match node')], }, bases=(models.Model, assets.models.node.SomeNodesMixin, assets.models.node.FamilyMixin, assets.models.node.NodeAssetsMixin), ), migrations.CreateModel( name='Platform', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('created_by', models.CharField(blank=True, max_length=128, null=True, verbose_name='Created by')), ('updated_by', models.CharField(blank=True, max_length=128, 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')), ('comment', models.TextField(blank=True, default='', verbose_name='Comment')), ('name', models.SlugField(allow_unicode=True, unique=True, verbose_name='Name')), ('category', models.CharField(default='host', max_length=32, verbose_name='Category')), ('type', models.CharField(default='linux', max_length=32, verbose_name='Type')), ('meta', common.db.fields.JsonDictTextField(blank=True, null=True, verbose_name='Meta')), ('internal', models.BooleanField(default=False, verbose_name='Internal')), ('charset', models.CharField(choices=[('utf-8', 'UTF-8'), ('gbk', 'GBK')], default='utf-8', max_length=8, verbose_name='Charset')), ('domain_enabled', models.BooleanField(default=True, verbose_name='Gateway enabled')), ('su_enabled', models.BooleanField(default=False, verbose_name='Su enabled')), ('su_method', models.CharField(blank=True, max_length=32, null=True, verbose_name='Su method')), ('custom_fields', models.JSONField(default=list, null=True, verbose_name='Custom fields')), ], options={ 'verbose_name': 'Platform', }, ), migrations.CreateModel( name='Cloud', fields=[ ('asset_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='assets.asset')), ], options={ 'verbose_name': 'Cloud', }, bases=('assets.asset',), ), migrations.CreateModel( name='Custom', fields=[ ('asset_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='assets.asset')), ], options={ 'verbose_name': 'Custom asset', }, bases=('assets.asset',), ), migrations.CreateModel( name='Database', fields=[ ('asset_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='assets.asset')), ('db_name', models.CharField(blank=True, max_length=1024, verbose_name='Database')), ('use_ssl', models.BooleanField(default=False, verbose_name='Use SSL')), ('ca_cert', common.db.fields.EncryptTextField(blank=True, verbose_name='CA cert')), ('client_cert', common.db.fields.EncryptTextField(blank=True, verbose_name='Client cert')), ('client_key', common.db.fields.EncryptTextField(blank=True, verbose_name='Client key')), ('allow_invalid_cert', models.BooleanField(default=False, verbose_name='Allow invalid cert')), ], options={ 'verbose_name': 'Database', }, bases=('assets.asset',), ), migrations.CreateModel( name='Device', fields=[ ('asset_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='assets.asset')), ], options={ 'verbose_name': 'Device', }, bases=('assets.asset',), ), migrations.CreateModel( name='GPT', fields=[ ('asset_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='assets.asset')), ('proxy', models.CharField(blank=True, default='', max_length=128, verbose_name='Proxy')), ], options={ 'verbose_name': 'Web', }, bases=('assets.asset',), ), migrations.CreateModel( name='Host', fields=[ ('asset_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='assets.asset')), ], options={ 'verbose_name': 'Host', }, bases=('assets.asset',), ), migrations.CreateModel( name='Web', fields=[ ('asset_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='assets.asset')), ('autofill', models.CharField(choices=[('no', 'Disabled'), ('basic', 'Basic'), ('script', 'Script')], default='basic', max_length=16, verbose_name='Autofill')), ('username_selector', models.CharField(blank=True, default='', max_length=128, verbose_name='Username selector')), ('password_selector', models.CharField(blank=True, default='', max_length=128, verbose_name='Password selector')), ('submit_selector', models.CharField(blank=True, default='', max_length=128, verbose_name='Submit selector')), ('script', models.JSONField(blank=True, default=list, verbose_name='Script')), ], options={ 'verbose_name': 'Web', }, bases=('assets.asset',), ), migrations.CreateModel( name='Protocol', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField(max_length=32, verbose_name='Name')), ('port', models.IntegerField(verbose_name='Port')), ('asset', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='protocols', to='assets.asset', verbose_name='Asset')), ], ), migrations.CreateModel( name='PlatformProtocol', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField(max_length=32, verbose_name='Name')), ('port', models.IntegerField(verbose_name='Port')), ('primary', models.BooleanField(default=False, verbose_name='Primary')), ('required', models.BooleanField(default=False, verbose_name='Required')), ('default', models.BooleanField(default=False, verbose_name='Default')), ('public', models.BooleanField(default=True, verbose_name='Public')), ('setting', models.JSONField(default=dict, verbose_name='Setting')), ('platform', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='protocols', to='assets.platform')), ], ), migrations.CreateModel( name='PlatformAutomation', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('ansible_enabled', models.BooleanField(default=False, verbose_name='Enabled')), ('ansible_config', models.JSONField(default=dict, verbose_name='Ansible config')), ('ping_enabled', models.BooleanField(default=False, verbose_name='Ping enabled')), ('ping_method', models.CharField(blank=True, max_length=32, null=True, verbose_name='Ping method')), ('ping_params', models.JSONField(default=dict, verbose_name='Ping params')), ('gather_facts_enabled', models.BooleanField(default=False, verbose_name='Gather facts enabled')), ('gather_facts_method', models.TextField(blank=True, max_length=32, null=True, verbose_name='Gather facts method')), ('gather_facts_params', models.JSONField(default=dict, verbose_name='Gather facts params')), ('change_secret_enabled', models.BooleanField(default=False, verbose_name='Change secret enabled')), ('change_secret_method', models.TextField(blank=True, max_length=32, null=True, verbose_name='Change secret method')), ('change_secret_params', models.JSONField(default=dict, verbose_name='Change secret params')), ('push_account_enabled', models.BooleanField(default=False, verbose_name='Push account enabled')), ('push_account_method', models.TextField(blank=True, max_length=32, null=True, verbose_name='Push account method')), ('push_account_params', models.JSONField(default=dict, verbose_name='Push account params')), ('verify_account_enabled', models.BooleanField(default=False, verbose_name='Verify account enabled')), ('verify_account_method', models.TextField(blank=True, max_length=32, null=True, verbose_name='Verify account method')), ('verify_account_params', models.JSONField(default=dict, verbose_name='Verify account params')), ('gather_accounts_enabled', models.BooleanField(default=False, verbose_name='Gather facts enabled')), ('gather_accounts_method', models.TextField(blank=True, max_length=32, null=True, verbose_name='Gather facts method')), ('gather_accounts_params', models.JSONField(default=dict, verbose_name='Gather facts params')), ('remove_account_enabled', models.BooleanField(default=False, verbose_name='Remove account enabled')), ('remove_account_method', models.TextField(blank=True, max_length=32, null=True, verbose_name='Remove account method')), ('remove_account_params', models.JSONField(default=dict, verbose_name='Remove account params')), ('platform', models.OneToOneField(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='automation', to='assets.platform')), ], ), migrations.CreateModel( name='Label', fields=[ ('created_by', models.CharField(blank=True, max_length=128, null=True, verbose_name='Created by')), ('updated_by', models.CharField(blank=True, max_length=128, 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')), ('comment', models.TextField(blank=True, default='', verbose_name='Comment')), ('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')), ('value', models.CharField(max_length=128, verbose_name='Value')), ('category', models.CharField(choices=[('S', 'System'), ('U', 'User')], default='U', max_length=128, verbose_name='Category')), ('is_active', models.BooleanField(default=True, verbose_name='Is active')), ], options={ 'verbose_name': 'Label', 'db_table': 'assets_label', 'unique_together': {('name', 'value', 'org_id')}, }, ), migrations.CreateModel( name='FavoriteAsset', fields=[ ('created_by', models.CharField(blank=True, max_length=128, null=True, verbose_name='Created by')), ('updated_by', models.CharField(blank=True, max_length=128, 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')), ('comment', models.TextField(blank=True, default='', verbose_name='Comment')), ('id', models.UUIDField(default=uuid.uuid4, primary_key=True, serialize=False)), ('asset', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='assets.asset')), ], options={ 'verbose_name': 'Favorite asset', }, ), ]