2022-09-08 12:31:04 +00:00
# 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 ) ,
2022-09-22 07:24:32 +00:00
( ' assets ' , ' 0105_auto_20220817_1544 ' ) ,
2022-09-08 12:31:04 +00:00
( ' 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 ' , ) ,
) ,
]