示例#1
0
class ContactTable(BaseTable):
    pk = SelectColumn()
    name = tables.Column(linkify=True)
    phone = tables.Column(linkify=linkify_phone)
    assignment_count = tables.Column(verbose_name="Assignments")
    tags = TagColumn(url_name="messaging:contact_list")
    actions = ButtonsColumn(Contact, buttons=("edit", "delete"))

    class Meta(BaseTable.Meta):
        model = Contact
        fields = (
            "pk",
            "name",
            "title",
            "phone",
            "email",
            "address",
            "comments",
            "assignment_count",
            "tags",
        )
        default_columns = (
            "pk",
            "name",
            "assignment_count",
            "title",
            "phone",
            "email",
            "actions",
        )
示例#2
0
class ConnectionTable(BaseTable):
    pk = SelectColumn()
    ipv6_address = tables.Column(linkify=True, verbose_name="IPv6")
    ipv4_address = tables.Column(linkify=True, verbose_name="IPv4")
    internet_exchange_point = tables.LinkColumn()
    router = tables.LinkColumn()
    buttons = ButtonsColumn(Connection)

    class Meta(BaseTable.Meta):
        model = Connection
        fields = (
            "pk",
            "state",
            "vlan",
            "ipv6_address",
            "ipv4_address",
            "internet_exchange_point",
            "router",
            "interface",
            "buttons",
        )
        default_columns = (
            "pk",
            "state",
            "vlan",
            "ipv6_address",
            "ipv4_address",
            "router",
            "buttons",
        )
        empty_text = "None"
示例#3
0
class EmailTable(BaseTable):
    pk = SelectColumn()
    name = tables.Column(linkify=True)
    jinja2_trim = BooleanColumn(
        verbose_name="Trim",
        attrs={"td": {"class": "text-center"}, "th": {"class": "text-center"}},
    )
    jinja2_lstrip = BooleanColumn(
        verbose_name="Lstrip",
        attrs={"td": {"class": "text-center"}, "th": {"class": "text-center"}},
    )
    tags = TagColumn(url_name="peering:configuration_list")
    buttons = ButtonsColumn(Email)

    class Meta(BaseTable.Meta):
        model = Email
        fields = (
            "pk",
            "name",
            "subject",
            "jinja2_trim",
            "jinja2_lstrip",
            "updated",
            "tags",
            "buttons",
        )
        default_columns = ("pk", "name", "updated", "buttons")
示例#4
0
class ContactRoleTable(BaseTable):
    pk = SelectColumn()
    name = tables.Column(linkify=True)
    actions = ButtonsColumn(ContactRole, buttons=("edit", "delete"))

    class Meta(BaseTable.Meta):
        model = ContactRole
        fields = ("pk", "name", "slug", "description", "actions")
        default_columns = ("pk", "name", "description", "actions")
示例#5
0
class IXAPITable(BaseTable):
    name = tables.Column(linkify=True)
    url = tables.URLColumn()
    actions = ButtonsColumn(IXAPI)

    class Meta(BaseTable.Meta):
        model = IXAPI
        fields = ("name", "url", "api_key", "actions")
        default_columns = ("name", "url", "api_key", "actions")
示例#6
0
class InternetExchangeTable(BaseTable):
    pk = SelectColumn()
    local_autonomous_system = tables.Column(verbose_name="Local AS",
                                            linkify=True)
    name = tables.Column(linkify=True)
    check_bgp_session_states = BooleanColumn(
        verbose_name="Check Sessions",
        attrs={
            "td": {
                "class": "text-center"
            },
            "th": {
                "class": "text-center"
            }
        },
    )
    bgp_session_states_update = tables.Column(
        verbose_name="Last Sessions Check")
    import_routing_policies = RoutingPolicyColumn(
        verbose_name="Import Policies")
    export_routing_policies = RoutingPolicyColumn(
        verbose_name="Export Policies")
    internetexchangepeeringsession_count = tables.Column(
        verbose_name="Sessions",
        attrs={
            "td": {
                "class": "text-center"
            },
            "th": {
                "class": "text-center"
            }
        },
    )
    tags = TagColumn(url_name="peering:internetexchange_list")
    buttons = ButtonsColumn(InternetExchange, pk_field="slug")

    class Meta(BaseTable.Meta):
        model = InternetExchange
        fields = (
            "pk",
            "local_autonomous_system",
            "name",
            "slug",
            "import_routing_policies",
            "export_routing_policies",
            "check_bgp_session_states",
            "bgp_session_states_update",
            "internetexchangepeeringsession_count",
            "tags",
            "buttons",
        )
        default_columns = (
            "pk",
            "name",
            "internetexchangepeeringsession_count",
            "buttons",
        )
示例#7
0
class BGPGroupTable(BaseTable):
    """
    Table for BGPGroup lists
    """

    pk = SelectColumn()
    name = tables.Column(linkify=True)
    check_bgp_session_states = BooleanColumn(
        verbose_name="Poll Session States",
        attrs={
            "td": {
                "class": "text-center"
            },
            "th": {
                "class": "text-center"
            }
        },
    )
    import_routing_policies = RoutingPolicyColumn(
        verbose_name="Import Policies")
    export_routing_policies = RoutingPolicyColumn(
        verbose_name="Export Policies")
    directpeeringsession_count = tables.Column(
        verbose_name="Direct Sessions",
        attrs={
            "td": {
                "class": "text-center"
            },
            "th": {
                "class": "text-center"
            }
        },
    )
    tags = TagColumn(url_name="peering:bgpgroup_list")
    buttons = ButtonsColumn(BGPGroup, pk_field="slug")

    class Meta(BaseTable.Meta):
        model = BGPGroup
        fields = (
            "pk",
            "name",
            "slug",
            "check_bgp_session_states",
            "import_routing_policies",
            "export_routing_policies",
            "directpeeringsession_count",
            "tags",
            "buttons",
        )
        default_columns = (
            "pk",
            "name",
            "check_bgp_session_states",
            "directpeeringsession_count",
            "buttons",
        )
示例#8
0
class RelationshipTable(BaseTable):
    pk = SelectColumn()
    name = tables.LinkColumn()
    color = ColourColumn()
    buttons = ButtonsColumn(Relationship, buttons=("edit", "delete"))

    class Meta(BaseTable.Meta):
        model = Relationship
        fields = ("pk", "name", "slug", "description", "color", "buttons")
        default_columns = ("pk", "name", "color", "buttons")
示例#9
0
class EmailTable(BaseTable):
    pk = SelectColumn()
    name = tables.Column(linkify=True)
    tags = TagColumn(url_name="peering:configuration_list")
    buttons = ButtonsColumn(Email)

    class Meta(BaseTable.Meta):
        model = Email
        fields = ("pk", "name", "subject", "updated", "tags", "buttons")
        default_columns = ("pk", "name", "updated", "buttons")
示例#10
0
class CommunityTable(BaseTable):
    pk = SelectColumn()
    name = tables.Column(linkify=True)
    type = tables.TemplateColumn(template_code=COMMUNITY_TYPE)
    tags = TagColumn(url_name="peering:community_list")
    actions = ButtonsColumn(Community)

    class Meta(BaseTable.Meta):
        model = Community
        fields = ("pk", "name", "slug", "value", "type", "tags", "actions")
        default_columns = ("pk", "name", "value", "type", "actions")
示例#11
0
class RoutingPolicyTable(BaseTable):
    pk = SelectColumn()
    name = tables.Column(linkify=True)
    type = tables.TemplateColumn(template_code=ROUTING_POLICY_TYPE)
    tags = TagColumn(url_name="peering:routingpolicy_list")
    buttons = ButtonsColumn(RoutingPolicy)

    class Meta(BaseTable.Meta):
        model = RoutingPolicy
        fields = ("pk", "name", "type", "weight", "address_family", "tags", "buttons")
        default_columns = ("pk", "name", "type", "weight", "address_family", "buttons")
示例#12
0
class RouterTable(BaseTable):
    pk = SelectColumn()
    local_autonomous_system = tables.Column(verbose_name="Local AS", linkify=True)
    name = tables.Column(linkify=True)
    platform = tables.Column(linkify=True)
    encrypt_passwords = BooleanColumn(
        verbose_name="Encrypt Password",
        attrs={"td": {"class": "text-center"}, "th": {"class": "text-center"}},
    )
    configuration_template = tables.Column(linkify=True, verbose_name="Configuration")
    connection_count = tables.Column(
        verbose_name="Connections",
        attrs={"td": {"class": "text-center"}, "th": {"class": "text-center"}},
    )
    directpeeringsession_count = tables.Column(
        verbose_name="Direct Sessions",
        attrs={"td": {"class": "text-center"}, "th": {"class": "text-center"}},
    )
    internetexchangepeeringsession_count = tables.Column(
        verbose_name="IX Sessions",
        attrs={"td": {"class": "text-center"}, "th": {"class": "text-center"}},
    )
    tags = TagColumn(url_name="peering:router_list")
    buttons = ButtonsColumn(Router)

    class Meta(BaseTable.Meta):
        model = Router
        fields = (
            "pk",
            "local_autonomous_system",
            "name",
            "hostname",
            "platform",
            "encrypt_passwords",
            "configuration_template",
            "connection_count",
            "directpeeringsession_count",
            "internetexchangepeeringsession_count",
            "device_state",
            "tags",
            "buttons",
        )
        default_columns = (
            "pk",
            "name",
            "hostname",
            "platform",
            "encrypt_passwords",
            "configuration_template",
            "connection_count",
            "device_state",
            "buttons",
        )
示例#13
0
class ContactAssignmentTable(BaseTable):
    content_type = ContentTypeColumn(verbose_name="Object Type")
    object = tables.Column(linkify=True, orderable=False)
    contact = tables.Column(linkify=True)
    role = tables.Column(linkify=True)
    actions = ButtonsColumn(model=ContactAssignment,
                            buttons=("edit", "delete"))

    class Meta(BaseTable.Meta):
        model = ContactAssignment
        fields = ("content_type", "object", "contact", "role", "actions")
        default_columns = ("content_type", "object", "contact", "role",
                           "actions")
示例#14
0
class AutonomousSystemTable(BaseTable):
    pk = SelectColumn()
    asn = tables.Column(verbose_name="ASN")
    name = tables.Column(linkify=True)
    irr_as_set = tables.Column(verbose_name="IRR AS-SET", orderable=False)
    ipv6_max_prefixes = tables.Column(verbose_name="IPv6 Max Prefixes")
    ipv4_max_prefixes = tables.Column(verbose_name="IPv4 Max Prefixes")
    import_routing_policies = RoutingPolicyColumn(verbose_name="Import Policies")
    export_routing_policies = RoutingPolicyColumn(verbose_name="Export Policies")
    directpeeringsession_count = tables.Column(
        verbose_name="Direct Sessions",
        attrs={"td": {"class": "text-center"}, "th": {"class": "text-center"}},
    )
    internetexchangepeeringsession_count = tables.Column(
        verbose_name="IX Sessions",
        attrs={"td": {"class": "text-center"}, "th": {"class": "text-center"}},
    )
    affiliated = BooleanColumn(
        verbose_name="Affiliated",
        attrs={"td": {"class": "text-center"}, "th": {"class": "text-center"}},
    )
    tags = TagColumn(url_name="peering:autonomoussystem_list")
    buttons = ButtonsColumn(AutonomousSystem)

    class Meta(BaseTable.Meta):
        model = AutonomousSystem
        fields = (
            "pk",
            "asn",
            "name",
            "irr_as_set",
            "ipv6_max_prefixes",
            "ipv4_max_prefixes",
            "general_policy",
            "import_routing_policies",
            "export_routing_policies",
            "directpeeringsession_count",
            "internetexchangepeeringsession_count",
            "affiliated",
            "tags",
            "buttons",
        )
        default_columns = (
            "pk",
            "asn",
            "name",
            "irr_as_set",
            "directpeeringsession_count",
            "internetexchangepeeringsession_count",
            "buttons",
        )
示例#15
0
class ConfigurationTable(BaseTable):
    """
    Table for Configuration lists
    """

    pk = SelectColumn()
    name = tables.Column(linkify=True)
    tags = TagColumn(url_name="peering:configuration_list")
    buttons = ButtonsColumn(Configuration)

    class Meta(BaseTable.Meta):
        model = Configuration
        fields = ("pk", "name", "updated", "tags", "buttons")
        default_columns = ("pk", "name", "updated", "buttons")
示例#16
0
class InternetExchangeTable(BaseTable):
    pk = SelectColumn()
    local_autonomous_system = tables.Column(verbose_name="Local AS",
                                            linkify=True)
    name = tables.Column(linkify=True)
    import_routing_policies = RoutingPolicyColumn(
        verbose_name="Import Policies")
    export_routing_policies = RoutingPolicyColumn(
        verbose_name="Export Policies")
    connection_count = tables.Column(
        verbose_name="Connections",
        attrs={
            "td": {
                "class": "text-center"
            },
            "th": {
                "class": "text-center"
            }
        },
    )
    tags = TagColumn(url_name="peering:internetexchange_list")
    actions = ButtonsColumn(InternetExchange)

    class Meta(BaseTable.Meta):
        model = InternetExchange
        fields = (
            "pk",
            "local_autonomous_system",
            "name",
            "slug",
            "import_routing_policies",
            "export_routing_policies",
            "connection_count",
            "tags",
            "actions",
        )
        default_columns = (
            "pk",
            "name",
            "connection_count",
            "actions",
        )
示例#17
0
class EmailTable(BaseTable):
    pk = SelectColumn()
    name = tables.Column(linkify=True)
    jinja2_trim = BooleanColumn(verbose_name="Trim")
    jinja2_lstrip = BooleanColumn(verbose_name="Lstrip")
    tags = TagColumn(url_name="devices:configuration_list")
    actions = ButtonsColumn(Email)

    class Meta(BaseTable.Meta):
        model = Email
        fields = (
            "pk",
            "name",
            "subject",
            "jinja2_trim",
            "jinja2_lstrip",
            "updated",
            "tags",
            "actions",
        )
        default_columns = ("pk", "name", "updated", "actions")
示例#18
0
class BGPGroupTable(BaseTable):
    pk = SelectColumn()
    name = tables.Column(linkify=True)
    import_routing_policies = RoutingPolicyColumn(
        verbose_name="Import Policies")
    export_routing_policies = RoutingPolicyColumn(
        verbose_name="Export Policies")
    directpeeringsession_count = tables.Column(
        verbose_name="Direct Sessions",
        attrs={
            "td": {
                "class": "text-center"
            },
            "th": {
                "class": "text-center"
            }
        },
    )
    tags = TagColumn(url_name="peering:bgpgroup_list")
    actions = ButtonsColumn(BGPGroup)

    class Meta(BaseTable.Meta):
        model = BGPGroup
        fields = (
            "pk",
            "name",
            "slug",
            "import_routing_policies",
            "export_routing_policies",
            "directpeeringsession_count",
            "tags",
            "actions",
        )
        default_columns = (
            "pk",
            "name",
            "directpeeringsession_count",
            "actions",
        )
示例#19
0
class PlatformTable(BaseTable):
    pk = SelectColumn()
    router_count = tables.Column(
        verbose_name="Routers",
        attrs={
            "td": {
                "class": "text-center"
            },
            "th": {
                "class": "text-center"
            }
        },
    )
    buttons = ButtonsColumn(Platform,
                            pk_field="slug",
                            buttons=("edit", "delete"))

    class Meta(BaseTable.Meta):
        model = Platform
        fields = (
            "pk",
            "name",
            "router_count",
            "slug",
            "napalm_driver",
            "napalm_args",
            "password_algorithm",
            "description",
            "buttons",
        )
        default_columns = (
            "pk",
            "name",
            "router_count",
            "napalm_driver",
            "password_algorithm",
            "description",
            "buttons",
        )
示例#20
0
class DirectPeeringSessionTable(BaseTable):
    """
    Table for DirectPeeringSession lists
    """

    append_template = """
    {% load helpers %}
    {% if record.comments %}
    <button type="button" class="btn btn-xs btn-info popover-hover" data-toggle="popover" data-html="true" title="Peering Session Comments" data-content="{{ record.comments | markdown:True }}"><i class="fas fa-comment"></i></button>
    {% endif %}
    {% if record.autonomous_system.comments %}
    <button type="button" class="btn btn-xs btn-info popover-hover" data-toggle="popover" data-html="true" title="Autonomous System Comments" data-content="{{ record.autonomous_system.comments | markdown:True }}"><i class="fas fa-comments"></i></button>
    {% endif %}
    """

    pk = SelectColumn()
    local_autonomous_system = tables.Column(verbose_name="Local AS",
                                            linkify=True)
    autonomous_system = tables.Column(verbose_name="AS", linkify=True)
    ip_address = tables.Column(verbose_name="IP Address", linkify=True)
    bgp_group = tables.Column(verbose_name="BGP Group",
                              accessor="bgp_group",
                              linkify=True)
    relationship = tables.TemplateColumn(verbose_name="Relationship",
                                         template_code=BGP_RELATIONSHIP)
    enabled = BooleanColumn(
        verbose_name="Status",
        attrs={
            "td": {
                "class": "text-center"
            },
            "th": {
                "class": "text-center"
            }
        },
    )
    import_routing_policies = RoutingPolicyColumn(
        verbose_name="Import Policies")
    export_routing_policies = RoutingPolicyColumn(
        verbose_name="Export Policies")
    state = BGPSessionStateColumn(accessor="bgp_state")
    router = tables.Column(verbose_name="Router",
                           accessor="router",
                           linkify=True)
    tags = TagColumn(url_name="peering:directpeeringsession_list")
    buttons = ButtonsColumn(DirectPeeringSession,
                            append_template=append_template)

    class Meta(BaseTable.Meta):
        model = DirectPeeringSession
        fields = (
            "pk",
            "local_autonomous_system",
            "autonomous_system",
            "ip_address",
            "bgp_group",
            "relationship",
            "enabled",
            "import_routing_policies",
            "export_routing_policies",
            "state",
            "last_established_state",
            "received_prefix_count",
            "advertised_prefix_count",
            "router",
            "tags",
            "buttons",
        )
        default_columns = (
            "pk",
            "local_autonomous_system",
            "autonomous_system",
            "ip_address",
            "bgp_group",
            "relationship",
            "enabled",
            "router",
            "buttons",
        )
示例#21
0
class InternetExchangePeeringSessionTable(BaseTable):
    """
    Table for InternetExchangePeeringSession lists
    """

    append_template = """
    {% load helpers %}
    {% if record.comments %}
    <button type="button" class="btn btn-xs btn-info popover-hover" data-toggle="popover" data-html="true" title="Peering Session Comments" data-content="{{ record.comments | markdown:True }}"><i class="fas fa-comment"></i></button>
    {% endif %}
    {% if record.autonomous_system.comments %}
    <button type="button" class="btn btn-xs btn-info popover-hover" data-toggle="popover" data-html="true" title="Autonomous System Comments" data-content="{{ record.autonomous_system.comments | markdown:True }}"><i class="fas fa-comments"></i></button>
    {% endif %}
    {% if record.internet_exchange.comments %}
    <button type="button" class="btn btn-xs btn-info popover-hover" data-toggle="popover" data-html="true" title="Internet Exchange Comments" data-content="{{ record.internet_exchange.comments | markdown:True }}"><i class="fas fa-comment-dots"></i></button>
    {% endif %}
    """

    pk = SelectColumn()
    autonomous_system = tables.Column(verbose_name="AS",
                                      accessor="autonomous_system",
                                      linkify=True)
    internet_exchange = tables.Column(verbose_name="IX",
                                      accessor="internet_exchange",
                                      linkify=True)
    ip_address = tables.Column(verbose_name="IP Address", linkify=True)
    is_route_server = BooleanColumn(
        verbose_name="Route Server",
        attrs={
            "td": {
                "class": "text-center"
            },
            "th": {
                "class": "text-center"
            }
        },
    )
    enabled = BooleanColumn(
        verbose_name="Enabled",
        attrs={
            "td": {
                "class": "text-center"
            },
            "th": {
                "class": "text-center"
            }
        },
    )
    import_routing_policies = RoutingPolicyColumn(
        verbose_name="Import Policies")
    export_routing_policies = RoutingPolicyColumn(
        verbose_name="Export Policies")
    state = BGPSessionStateColumn(accessor="bgp_state")
    tags = TagColumn(url_name="peering:internetexchangepeeringsession_list")
    buttons = ButtonsColumn(InternetExchangePeeringSession,
                            append_template=append_template)

    class Meta(BaseTable.Meta):
        model = InternetExchangePeeringSession
        fields = (
            "pk",
            "autonomous_system",
            "internet_exchange",
            "ip_address",
            "is_route_server",
            "enabled",
            "import_routing_policies",
            "export_routing_policies",
            "state",
            "last_established_state",
            "received_prefix_count",
            "advertised_prefix_count",
            "tags",
            "buttons",
        )
        default_columns = (
            "pk",
            "autonomous_system",
            "internet_exchange",
            "ip_address",
            "is_route_server",
            "enabled",
            "enabled",
            "buttons",
        )