예제 #1
0
파일: 0025_tags.py 프로젝트: nbashev/noc
 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),
     )
예제 #2
0
    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)),
            ),
        )
예제 #3
0
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)
예제 #4
0
파일: 0020_tags.py 프로젝트: nbashev/noc
 def migrate(self):
     for m in self.TAG_MODELS:
         self.db.add_column(
             m, "tags", AutoCompleteTagsField("Tags", null=True,
                                              blank=True))
예제 #5
0
    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)
예제 #6
0
파일: 0015_tags.py 프로젝트: skripkar/noc
 def forwards(self):
     for m in self.TAG_MODELS:
         db.add_column(m,"tags",AutoCompleteTagsField("Tags",null=True,blank=True))
예제 #7
0
    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"])