def migrate(self): for m in self.TAG_MODELS: self.db.add_column( m, "tags", AutoCompleteTagsField("Tags", null=True, blank=True)) self.db.add_column( "sa_managedobjectselector", "filter_tags", AutoCompleteTagsField("Tags", null=True, blank=True), )
def migrate(self): # Mock models ManagedObjectSelector = self.db.mock_model( model_name="ManagedObjectSelector", db_table="sa_managedobjectselector") # Model "ReduceTask" self.db.create_table( "sa_commandsnippet", ( ("id", models.AutoField( verbose_name="ID", primary_key=True, auto_created=True)), ("name", models.CharField("Name", max_length=128, unique=True)), ("description", models.TextField("Description")), ("snippet", models.TextField("Snippet")), ( "change_configuration", models.BooleanField("Change configuration", default=False), ), ( "selector", models.ForeignKey( ManagedObjectSelector, verbose_name="Object Selector", on_delete=models.CASCADE, ), ), ("is_enabled", models.BooleanField("Is Enabled?", default=True)), ("timeout", models.IntegerField("Timeout", default=60)), ("tags", AutoCompleteTagsField("Tags", null=True, blank=True)), ), )
class KBEntryTemplate(NOCModel): """ KB Entry Template """ class Meta(object): verbose_name = "KB Entry Template" verbose_name_plural = "KB Entry Templates" app_label = "kb" db_table = "kb_kbentrytemplate" ordering = ("id", ) name = models.CharField("Name", max_length=128, unique=True) subject = models.CharField("Subject", max_length=256) body = models.TextField("Body") language = models.ForeignKey( Language, verbose_name="Language", limit_choices_to={"is_active": True}, on_delete=models.CASCADE, ) markup_language = models.CharField("Markup Language", max_length="16", choices=[(x, x) for x in loader]) tags = AutoCompleteTagsField("Tags", null=True, blank=True) rx_template_var = re.compile("{{([^}]+)}}", re.MULTILINE) def __str__(self): return self.name def get_absolute_url(self): return site.reverse("kb:kbentrytemplate:change", self.id) @property def _var_list(self): """ Returns template variables list """ var_set = set(self.rx_template_var.findall(self.subject)) var_set.update(self.rx_template_var.findall(self.body)) return sorted(var_set)
def migrate(self): for m in self.TAG_MODELS: self.db.add_column( m, "tags", AutoCompleteTagsField("Tags", null=True, blank=True))
def migrate(self): AFI_CHOICES = [("4", "IPv4"), ("6", "IPv6")] # Style Style = self.db.mock_model(model_name="Style", db_table="main_style") # VRF Group self.db.add_column( "ip_vrfgroup", "address_constraint", models.CharField( "Address Constraint", max_length=1, choices=[ ("V", "Addresses are unique per VRF"), ("G", "Addresses are unique per VRF Group"), ], default="V", ), ) self.db.execute("ALTER TABLE ip_vrfgroup ALTER COLUMN description TYPE TEXT") self.db.execute("ALTER TABLE ip_vrfgroup ALTER COLUMN description DROP NOT NULL") self.db.execute("ALTER TABLE ip_vrfgroup ALTER COLUMN description SET DEFAULT 'V'") self.db.add_column( "ip_vrfgroup", "tags", AutoCompleteTagsField("Tags", null=True, blank=True) ) # VRF self.db.add_column("ip_vrf", "is_active", models.BooleanField("Is Active", default=True)) self.db.add_column("ip_vrf", "afi_ipv4", models.BooleanField("IPv4", default=True)) self.db.add_column("ip_vrf", "afi_ipv6", models.BooleanField("IPv6", default=False)) self.db.execute("ALTER TABLE ip_vrf ALTER COLUMN description TYPE TEXT") self.db.execute("ALTER TABLE ip_vrf ALTER COLUMN description DROP NOT NULL") self.db.execute("ALTER TABLE ip_vrf ALTER COLUMN description SET DEFAULT 'V'") self.db.add_column( "ip_vrf", "style", models.ForeignKey( Style, verbose_name="Style", blank=True, null=True, on_delete=models.CASCADE ), ) self.db.add_column( "ip_vrf", "allocated_till", models.DateField("Allocated till", null=True, blank=True) ) # Prefix VRF = self.db.mock_model(model_name="VRF", db_table="ip_vrf") AS = self.db.mock_model(model_name="AS", db_table="peer_as") VC = self.db.mock_model(model_name="VC", db_table="vc_vc") ManagedObject = self.db.mock_model(model_name="ManagedObject", db_table="sa_managedobject") Prefix = self.db.mock_model(model_name="Prefix", db_table="ip_prefix") self.db.create_table( "ip_prefix", ( ("id", models.AutoField(verbose_name="ID", primary_key=True, auto_created=True)), ( "parent", models.ForeignKey( Prefix, related_name="children_set", verbose_name="Parent", null=True, blank=True, on_delete=models.CASCADE, ), ), ("vrf", models.ForeignKey(VRF, verbose_name="VRF", on_delete=models.CASCADE)), ("afi", models.CharField("Address Family", max_length=1, choices=AFI_CHOICES)), ("prefix", CIDRField("Prefix")), ("asn", models.ForeignKey(AS, verbose_name="AS", on_delete=models.CASCADE)), ( "vc", models.ForeignKey( VC, verbose_name="VC", null=True, blank=True, on_delete=models.CASCADE ), ), ("description", models.TextField("Description", blank=True, null=True)), ("tags", AutoCompleteTagsField("Tags", null=True, blank=True)), ("tt", models.IntegerField("TT", blank=True, null=True)), ( "style", models.ForeignKey( Style, verbose_name="Style", blank=True, null=True, on_delete=models.CASCADE ), ), ("allocated_till", models.DateField("Allocated till", null=True, blank=True)), ), ) self.db.create_index("ip_prefix", ["vrf_id", "afi", "prefix"], unique=True) # Address self.db.create_table( "ip_address", ( ("id", models.AutoField(verbose_name="ID", primary_key=True, auto_created=True)), ( "prefix", models.ForeignKey(Prefix, verbose_name="Prefix", on_delete=models.CASCADE), ), ("vrf", models.ForeignKey(VRF, verbose_name="VRF", on_delete=models.CASCADE)), ("afi", models.CharField("Address Family", max_length=1, choices=AFI_CHOICES)), ("address", INETField("Address")), ("fqdn", models.CharField("FQDN", max_length=255)), ("mac", MACField("MAC", null=True, blank=True)), ("auto_update_mac", models.BooleanField("Auto Update MAC", default=False)), ( "managed_object", models.ForeignKey( ManagedObject, verbose_name="Managed Object", null=True, blank=True, related_name="address_set", on_delete=models.CASCADE, ), ), ("description", models.TextField("Description", blank=True, null=True)), ("tags", AutoCompleteTagsField("Tags", null=True, blank=True)), ("tt", models.IntegerField("TT", blank=True, null=True)), ( "style", models.ForeignKey( Style, verbose_name="Style", blank=True, null=True, on_delete=models.CASCADE ), ), ("allocated_till", models.DateField("Allocated till", null=True, blank=True)), ), ) self.db.create_index("ip_address", ["prefix_id", "vrf_id", "afi", "address"], unique=True) # PrefixAccess User = self.db.mock_model(model_name="User", db_table="auth_user") self.db.create_table( "ip_prefixaccess", ( ("id", models.AutoField(verbose_name="ID", primary_key=True, auto_created=True)), ("user", models.ForeignKey(User, verbose_name="User", on_delete=models.CASCADE)), ("vrf", models.ForeignKey(VRF, verbose_name="VRF", on_delete=models.CASCADE)), ("afi", models.CharField("Address Family", max_length=1, choices=AFI_CHOICES)), ("prefix", CIDRField("Prefix")), ("can_view", models.BooleanField("Can View", default=False)), ("can_change", models.BooleanField("Can Change", default=False)), ), ) self.db.create_index("ip_prefixaccess", ["user_id", "vrf_id", "afi", "prefix"], unique=True) # AddressRange self.db.create_table( "ip_addressrange", ( ("id", models.AutoField(verbose_name="ID", primary_key=True, auto_created=True)), ("name", models.CharField("Name", max_length=64, unique=True)), ("is_active", models.BooleanField("Is Active", default=True)), ("vrf", models.ForeignKey(VRF, verbose_name="VRF", on_delete=models.CASCADE)), ("afi", models.CharField("Address Family", max_length=1, choices=AFI_CHOICES)), ("from_address", INETField("Address")), ("to_address", INETField("Address")), ("description", models.TextField("Description", blank=True, null=True)), ("is_locked", models.BooleanField("Is Active", default=True)), ( "action", models.CharField( "FQDN Action", max_length=1, choices=[ ("N", "Do nothing"), ("G", "Generate FQDNs"), ("D", "Partial reverse zone delegation"), ], default="N", ), ), ( "fqdn_template", models.CharField("FQDN Template", max_length=255, null=True, blank=True), ), ( "reverse_nses", models.CharField("Reverse NSes", max_length=255, null=True, blank=True), ), ("tags", AutoCompleteTagsField("Tags", null=True, blank=True)), ("tt", models.IntegerField("TT", blank=True, null=True)), ("allocated_till", models.DateField("Allocated till", null=True, blank=True)), ), ) self.db.create_index( "ip_addressrange", ["vrf_id", "afi", "from_address", "to_address"], unique=True ) # PrefixBookmark self.db.create_table( "ip_prefixbookmark", ( ("id", models.AutoField(verbose_name="ID", primary_key=True, auto_created=True)), ("user", models.ForeignKey(User, verbose_name="User", on_delete=models.CASCADE)), ( "prefix", models.ForeignKey(Prefix, verbose_name="Prefix", on_delete=models.CASCADE), ), ), ) self.db.create_index("ip_prefixbookmark", ["user_id", "prefix_id"], unique=True)
def forwards(self): for m in self.TAG_MODELS: db.add_column(m,"tags",AutoCompleteTagsField("Tags",null=True,blank=True))
def forwards(self): AFI_CHOICES = [ ("4", "IPv4"), ("6", "IPv6") ] # Style Style = db.mock_model(model_name="Style", db_table="main_style", db_tablespace="", pk_field_name="id", pk_field_type=models.AutoField) # VRF Group db.add_column( "ip_vrfgroup", "address_constraint", models.CharField("Address Constraint", max_length=1, choices=[("V", "Addresses are unique per VRF"), ("G", "Addresses are unique per VRF Group")], default="V")) db.alter_column("ip_vrfgroup", "description", models.TextField("Description", blank=True, null=True, default="V")) db.add_column("ip_vrfgroup", "tags", AutoCompleteTagsField("Tags", null=True, blank=True)) # VRF db.add_column("ip_vrf", "is_active", models.BooleanField("Is Active", default=True)) db.add_column("ip_vrf", "afi_ipv4", models.BooleanField("IPv4", default=True)) db.add_column("ip_vrf", "afi_ipv6", models.BooleanField("IPv6", default=False)) db.alter_column("ip_vrf", "description", models.TextField("Description", blank=True, null=True, default="V")) db.add_column("ip_vrf", "style", models.ForeignKey(Style, verbose_name="Style", blank=True, null=True)) db.add_column("ip_vrf", "allocated_till", models.DateField("Allocated till", null=True, blank=True)) # Prefix VRF = db.mock_model(model_name="VRF", db_table="ip_vrf", db_tablespace="", pk_field_name="id", pk_field_type=models.AutoField) AS = db.mock_model(model_name="AS", db_table="peer_as", db_tablespace="", pk_field_name="id", pk_field_type=models.AutoField) VC = db.mock_model(model_name="VC", db_table="vc_vc", db_tablespace="", pk_field_name="id", pk_field_type=models.AutoField) ManagedObject = db.mock_model(model_name="ManagedObject", db_table="sa_managedobject", db_tablespace="", pk_field_name="id", pk_field_type=models.AutoField) Prefix = db.mock_model(model_name="Prefix", db_table="ip_prefix", db_tablespace="", pk_field_name="id", pk_field_type=models.AutoField) db.create_table("ip_prefix", ( ("id", models.AutoField(verbose_name="ID", primary_key=True, auto_created=True)), ("parent", models.ForeignKey(Prefix, related_name="children_set", verbose_name="Parent", null=True, blank=True)), ("vrf", models.ForeignKey(VRF, verbose_name="VRF")), ("afi", models.CharField("Address Family", max_length=1, choices=AFI_CHOICES)), ("prefix", CIDRField("Prefix")), ("asn", models.ForeignKey(AS, verbose_name="AS")), ("vc", models.ForeignKey(VC, verbose_name="VC", null=True, blank=True)), ("description", models.TextField("Description", blank=True, null=True)), ("tags", AutoCompleteTagsField("Tags", null=True, blank=True)), ("tt", models.IntegerField("TT", blank=True, null=True)), ("style", models.ForeignKey(Style, verbose_name="Style", blank=True, null=True)), ("allocated_till", models.DateField("Allocated till", null=True, blank=True)) )) db.create_index("ip_prefix", ["vrf_id", "afi", "prefix"], unique=True, db_tablespace="") # Address db.create_table("ip_address", ( ("id", models.AutoField(verbose_name="ID", primary_key=True, auto_created=True)), ("prefix", models.ForeignKey(Prefix, verbose_name="Prefix")), ("vrf", models.ForeignKey(VRF, verbose_name="VRF")), ("afi", models.CharField("Address Family", max_length=1, choices=AFI_CHOICES)), ("address", INETField("Address")), ("fqdn", models.CharField("FQDN", max_length=255)), ("mac", MACField("MAC", null=True, blank=True)), ("auto_update_mac", models.BooleanField("Auto Update MAC", default=False)), ("managed_object", models.ForeignKey(ManagedObject, verbose_name="Managed Object", null=True, blank=True, related_name="address_set")), ("description", models.TextField("Description", blank=True, null=True)), ("tags", AutoCompleteTagsField("Tags", null=True, blank=True)), ("tt", models.IntegerField("TT", blank=True, null=True)), ("style", models.ForeignKey(Style, verbose_name="Style", blank=True, null=True)), ("allocated_till", models.DateField("Allocated till", null=True, blank=True)), )) db.create_index("ip_address", ["prefix_id", "vrf_id", "afi", "address"], unique=True, db_tablespace="") # PrefixAccess User = db.mock_model(model_name="User", db_table="auth_user", db_tablespace="", pk_field_name="id", pk_field_type=models.AutoField) db.create_table("ip_prefixaccess", ( ("id", models.AutoField(verbose_name="ID", primary_key=True, auto_created=True)), ("user", models.ForeignKey(User, verbose_name="User")), ("vrf", models.ForeignKey(VRF, verbose_name="VRF")), ("afi", models.CharField("Address Family", max_length=1, choices=AFI_CHOICES)), ("prefix", CIDRField("Prefix")), ("can_view", models.BooleanField("Can View", default=False)), ("can_change", models.BooleanField("Can Change", default=False)), )) db.create_index("ip_prefixaccess", ["user_id", "vrf_id", "afi", "prefix"], unique=True, db_tablespace="") # AddressRange db.create_table("ip_addressrange", ( ("id", models.AutoField(verbose_name="ID", primary_key=True, auto_created=True)), ("name", models.CharField("Name", max_length=64, unique=True)), ("is_active", models.BooleanField("Is Active", default=True)), ("vrf", models.ForeignKey(VRF, verbose_name="VRF")), ("afi", models.CharField("Address Family", max_length=1, choices=AFI_CHOICES)), ("from_address", INETField("Address")), ("to_address", INETField("Address")), ("description", models.TextField("Description", blank=True, null=True)), ("is_locked", models.BooleanField("Is Active", default=True)), ("action", models.CharField( "FQDN Action", max_length=1, choices=[ ("N", "Do nothing"), ("G", "Generate FQDNs"), ("D", "Partial reverse zone delegation") ], default="N") ), ("fqdn_template", models.CharField("FQDN Template", max_length=255, null=True, blank=True)), ("reverse_nses", models.CharField("Reverse NSes", max_length=255, null=True, blank=True)), ("tags", AutoCompleteTagsField("Tags", null=True, blank=True)), ("tt", models.IntegerField("TT", blank=True, null=True)), ("allocated_till", models.DateField("Allocated till", null=True, blank=True)), )) db.create_index("ip_addressrange", ["vrf_id", "afi", "from_address", "to_address"], unique=True, db_tablespace="") # PrefixBookmark db.create_table("ip_prefixbookmark", ( ("id", models.AutoField(verbose_name="ID", primary_key=True, auto_created=True)), ("user", models.ForeignKey(User, verbose_name="User")), ("prefix", models.ForeignKey(Prefix, verbose_name="Prefix")) )) db.create_index("ip_prefixbookmark", ["user_id", "prefix_id"], unique=True, db_tablespace="") db.send_create_signal("ip", ["Prefix", "Address", "PrefixBookmark"])