Exemple #1
0
class SecretTable(BaseTable):
    """Table for list view of `Secret` objects."""

    pk = ToggleColumn()
    name = tables.LinkColumn()
    tags = TagColumn(url_name="extras:secret_list")

    class Meta(BaseTable.Meta):
        model = Secret
        fields = (
            "pk",
            "name",
            "provider",
            "description",
            "tags",
        )
        default_columns = (
            "pk",
            "name",
            "provider",
            "description",
            "tags",
        )

    def render_provider(self, value):
        return registry["secrets_providers"][value].name if value in registry[
            "secrets_providers"] else value
Exemple #2
0
class DeviceTypeTable(BaseTable):
    pk = ToggleColumn()
    model = tables.Column(linkify=True, verbose_name="Device Type")
    is_full_depth = BooleanColumn(verbose_name="Full Depth")
    instance_count = LinkedCountColumn(
        viewname="dcim:device_list",
        url_params={"device_type_id": "pk"},
        verbose_name="Instances",
    )
    tags = TagColumn(url_name="dcim:devicetype_list")

    class Meta(BaseTable.Meta):
        model = DeviceType
        fields = (
            "pk",
            "model",
            "manufacturer",
            "slug",
            "part_number",
            "u_height",
            "is_full_depth",
            "subdevice_role",
            "instance_count",
            "tags",
        )
        default_columns = (
            "pk",
            "model",
            "manufacturer",
            "part_number",
            "u_height",
            "is_full_depth",
            "instance_count",
        )
Exemple #3
0
class PowerPortTable(DeviceComponentTable, PathEndpointTable):
    tags = TagColumn(url_name="dcim:powerport_list")

    class Meta(DeviceComponentTable.Meta):
        model = PowerPort
        fields = (
            "pk",
            "device",
            "name",
            "label",
            "type",
            "description",
            "maximum_draw",
            "allocated_draw",
            "cable",
            "cable_peer",
            "connection",
            "tags",
        )
        default_columns = (
            "pk",
            "device",
            "name",
            "label",
            "type",
            "maximum_draw",
            "allocated_draw",
            "description",
        )
Exemple #4
0
class InventoryItemTable(DeviceComponentTable):
    manufacturer = tables.Column(linkify=True)
    discovered = BooleanColumn()
    tags = TagColumn(url_name="dcim:inventoryitem_list")
    cable = None  # Override DeviceComponentTable

    class Meta(DeviceComponentTable.Meta):
        model = InventoryItem
        fields = (
            "pk",
            "device",
            "name",
            "label",
            "manufacturer",
            "part_id",
            "serial",
            "asset_tag",
            "description",
            "discovered",
            "tags",
        )
        default_columns = (
            "pk",
            "device",
            "name",
            "label",
            "manufacturer",
            "part_id",
            "serial",
            "asset_tag",
        )
Exemple #5
0
class DeviceBayTable(DeviceComponentTable):
    status = tables.TemplateColumn(template_code=DEVICEBAY_STATUS)
    installed_device = tables.Column(linkify=True)
    tags = TagColumn(url_name="dcim:devicebay_list")

    class Meta(DeviceComponentTable.Meta):
        model = DeviceBay
        fields = (
            "pk",
            "device",
            "name",
            "label",
            "status",
            "installed_device",
            "description",
            "tags",
        )
        default_columns = (
            "pk",
            "device",
            "name",
            "label",
            "status",
            "installed_device",
            "description",
        )
Exemple #6
0
class AggregateDetailTable(AggregateTable):
    child_count = tables.Column(verbose_name="Prefixes")
    utilization = tables.TemplateColumn(template_code=UTILIZATION_GRAPH,
                                        orderable=False)
    tags = TagColumn(url_name="ipam:aggregate_list")

    class Meta(AggregateTable.Meta):
        fields = (
            "pk",
            "prefix",
            "rir",
            "tenant",
            "child_count",
            "utilization",
            "date_added",
            "description",
            "tags",
        )
        default_columns = (
            "pk",
            "prefix",
            "rir",
            "tenant",
            "child_count",
            "utilization",
            "date_added",
            "description",
        )
Exemple #7
0
class RackReservationTable(BaseTable):
    pk = ToggleColumn()
    reservation = tables.Column(accessor="pk", linkify=True)
    site = tables.Column(accessor=Accessor("rack__site"), linkify=True)
    tenant = TenantColumn()
    rack = tables.Column(linkify=True)
    unit_list = tables.Column(orderable=False, verbose_name="Units")
    tags = TagColumn(url_name="dcim:rackreservation_list")
    actions = ButtonsColumn(RackReservation)

    class Meta(BaseTable.Meta):
        model = RackReservation
        fields = (
            "pk",
            "reservation",
            "site",
            "rack",
            "unit_list",
            "user",
            "created",
            "tenant",
            "description",
            "tags",
            "actions",
        )
        default_columns = (
            "pk",
            "reservation",
            "site",
            "rack",
            "unit_list",
            "user",
            "description",
            "actions",
        )
Exemple #8
0
class VRFTable(BaseTable):
    pk = ToggleColumn()
    name = tables.LinkColumn()
    rd = tables.Column(verbose_name="RD")
    tenant = tables.TemplateColumn(template_code=COL_TENANT)
    enforce_unique = BooleanColumn(verbose_name="Unique")
    import_targets = tables.TemplateColumn(template_code=VRF_TARGETS,
                                           orderable=False)
    export_targets = tables.TemplateColumn(template_code=VRF_TARGETS,
                                           orderable=False)
    tags = TagColumn(url_name="ipam:vrf_list")

    class Meta(BaseTable.Meta):
        model = VRF
        fields = (
            "pk",
            "name",
            "rd",
            "tenant",
            "enforce_unique",
            "description",
            "import_targets",
            "export_targets",
            "tags",
        )
        default_columns = ("pk", "name", "rd", "tenant", "description")
Exemple #9
0
class IPAddressDetailTable(IPAddressTable):
    nat_inside = tables.Column(linkify=True,
                               orderable=False,
                               verbose_name="NAT (Inside)")
    tenant = tables.TemplateColumn(template_code=COL_TENANT)
    assigned = BooleanColumn(accessor="assigned_object_id",
                             verbose_name="Assigned")
    tags = TagColumn(url_name="ipam:ipaddress_list")

    class Meta(IPAddressTable.Meta):
        fields = (
            "pk",
            "address",
            "vrf",
            "status",
            "role",
            "tenant",
            "nat_inside",
            "assigned",
            "dns_name",
            "description",
            "tags",
        )
        default_columns = (
            "pk",
            "address",
            "vrf",
            "status",
            "role",
            "tenant",
            "assigned",
            "dns_name",
            "description",
        )
Exemple #10
0
class PrefixDetailTable(PrefixTable):
    utilization = tables.TemplateColumn(template_code=UTILIZATION_GRAPH,
                                        orderable=False)
    tenant = tables.TemplateColumn(template_code=COL_TENANT)
    tags = TagColumn(url_name="ipam:prefix_list")

    class Meta(PrefixTable.Meta):
        fields = (
            "pk",
            "prefix",
            "status",
            "children",
            "vrf",
            "utilization",
            "tenant",
            "site",
            "vlan",
            "role",
            "is_pool",
            "description",
            "tags",
        )
        default_columns = (
            "pk",
            "prefix",
            "status",
            "children",
            "vrf",
            "utilization",
            "tenant",
            "site",
            "vlan",
            "role",
            "description",
        )
Exemple #11
0
class InterfaceTable(DeviceComponentTable, BaseInterfaceTable, PathEndpointTable):
    mgmt_only = BooleanColumn()
    tags = TagColumn(url_name="dcim:interface_list")

    class Meta(DeviceComponentTable.Meta):
        model = Interface
        fields = (
            "pk",
            "device",
            "name",
            "label",
            "enabled",
            "type",
            "mgmt_only",
            "mtu",
            "mode",
            "mac_address",
            "description",
            "cable",
            "cable_peer",
            "connection",
            "tags",
            "ip_addresses",
            "untagged_vlan",
            "tagged_vlans",
        )
        default_columns = (
            "pk",
            "device",
            "name",
            "label",
            "enabled",
            "type",
            "description",
        )
Exemple #12
0
class VLANDetailTable(VLANTable):
    prefixes = tables.TemplateColumn(template_code=VLAN_PREFIXES,
                                     orderable=False,
                                     verbose_name="Prefixes")
    tenant = tables.TemplateColumn(template_code=COL_TENANT)
    tags = TagColumn(url_name="ipam:vlan_list")

    class Meta(VLANTable.Meta):
        fields = (
            "pk",
            "vid",
            "site",
            "group",
            "name",
            "prefixes",
            "tenant",
            "status",
            "role",
            "description",
            "tags",
        )
        default_columns = (
            "pk",
            "vid",
            "site",
            "group",
            "name",
            "prefixes",
            "tenant",
            "status",
            "role",
            "description",
        )
Exemple #13
0
class FrontPortTable(DeviceComponentTable, CableTerminationTable):
    rear_port_position = tables.Column(verbose_name="Position")
    rear_port = tables.Column(linkify=True)
    tags = TagColumn(url_name="dcim:frontport_list")

    class Meta(DeviceComponentTable.Meta):
        model = FrontPort
        fields = (
            "pk",
            "device",
            "name",
            "label",
            "type",
            "rear_port",
            "rear_port_position",
            "description",
            "cable",
            "cable_peer",
            "tags",
        )
        default_columns = (
            "pk",
            "device",
            "name",
            "label",
            "type",
            "rear_port",
            "rear_port_position",
            "description",
        )
Exemple #14
0
class PowerOutletTable(DeviceComponentTable, PathEndpointTable):
    power_port = tables.Column(linkify=True)
    tags = TagColumn(url_name="dcim:poweroutlet_list")

    class Meta(DeviceComponentTable.Meta):
        model = PowerOutlet
        fields = (
            "pk",
            "device",
            "name",
            "label",
            "type",
            "description",
            "power_port",
            "feed_leg",
            "cable",
            "cable_peer",
            "connection",
            "tags",
        )
        default_columns = (
            "pk",
            "device",
            "name",
            "label",
            "type",
            "power_port",
            "feed_leg",
            "description",
        )
Exemple #15
0
class DeviceTable(StatusTableMixin, BaseTable):
    pk = ToggleColumn()
    name = tables.TemplateColumn(order_by=("_name",), template_code=DEVICE_LINK)
    tenant = tables.TemplateColumn(template_code=COL_TENANT)
    site = tables.Column(linkify=True)
    rack = tables.Column(linkify=True)
    device_role = ColoredLabelColumn(verbose_name="Role")
    device_type = tables.LinkColumn(
        viewname="dcim:devicetype",
        args=[Accessor("device_type__pk")],
        verbose_name="Type",
        text=lambda record: record.device_type.display_name,
    )
    primary_ip = tables.Column(linkify=True, order_by=("primary_ip6", "primary_ip4"), verbose_name="IP Address")
    primary_ip4 = tables.Column(linkify=True, verbose_name="IPv4 Address")
    primary_ip6 = tables.Column(linkify=True, verbose_name="IPv6 Address")
    cluster = tables.LinkColumn(viewname="virtualization:cluster", args=[Accessor("cluster__pk")])
    virtual_chassis = tables.LinkColumn(viewname="dcim:virtualchassis", args=[Accessor("virtual_chassis__pk")])
    vc_position = tables.Column(verbose_name="VC Position")
    vc_priority = tables.Column(verbose_name="VC Priority")
    tags = TagColumn(url_name="dcim:device_list")

    class Meta(BaseTable.Meta):
        model = Device
        fields = (
            "pk",
            "name",
            "status",
            "tenant",
            "device_role",
            "device_type",
            "platform",
            "serial",
            "asset_tag",
            "site",
            "rack",
            "position",
            "face",
            "primary_ip",
            "primary_ip4",
            "primary_ip6",
            "cluster",
            "virtual_chassis",
            "vc_position",
            "vc_priority",
            "tags",
        )
        default_columns = (
            "pk",
            "name",
            "status",
            "tenant",
            "site",
            "rack",
            "device_role",
            "device_type",
            "primary_ip",
        )
Exemple #16
0
class TenantTable(BaseTable):
    pk = ToggleColumn()
    name = tables.LinkColumn()
    tags = TagColumn(url_name="tenancy:tenant_list")

    class Meta(BaseTable.Meta):
        model = Tenant
        fields = ("pk", "name", "slug", "group", "description", "tags")
        default_columns = ("pk", "name", "group", "description")
Exemple #17
0
class CableTable(StatusTableMixin, BaseTable):
    pk = ToggleColumn()
    id = tables.Column(linkify=True, verbose_name="ID")
    termination_a_parent = tables.TemplateColumn(
        template_code=CABLE_TERMINATION_PARENT,
        accessor=Accessor("termination_a"),
        orderable=False,
        verbose_name="Side A",
    )
    termination_a = tables.LinkColumn(
        accessor=Accessor("termination_a"),
        orderable=False,
        verbose_name="Termination A",
    )
    termination_b_parent = tables.TemplateColumn(
        template_code=CABLE_TERMINATION_PARENT,
        accessor=Accessor("termination_b"),
        orderable=False,
        verbose_name="Side B",
    )
    termination_b = tables.LinkColumn(
        accessor=Accessor("termination_b"),
        orderable=False,
        verbose_name="Termination B",
    )
    length = tables.TemplateColumn(template_code=CABLE_LENGTH, order_by="_abs_length")
    color = ColorColumn()
    tags = TagColumn(url_name="dcim:cable_list")

    class Meta(BaseTable.Meta):
        model = Cable
        fields = (
            "pk",
            "id",
            "label",
            "termination_a_parent",
            "termination_a",
            "termination_b_parent",
            "termination_b",
            "status",
            "type",
            "color",
            "length",
            "tags",
        )
        default_columns = (
            "pk",
            "id",
            "label",
            "termination_a_parent",
            "termination_a",
            "termination_b_parent",
            "termination_b",
            "status",
            "type",
        )
Exemple #18
0
class RouteTargetTable(BaseTable):
    pk = ToggleColumn()
    name = tables.LinkColumn()
    tenant = tables.TemplateColumn(template_code=COL_TENANT)
    tags = TagColumn(url_name="ipam:vrf_list")

    class Meta(BaseTable.Meta):
        model = RouteTarget
        fields = ("pk", "name", "tenant", "description", "tags")
        default_columns = ("pk", "name", "tenant", "description")
Exemple #19
0
class ProviderNetworkTable(BaseTable):
    pk = ToggleColumn()
    name = tables.Column(linkify=True)
    provider = tables.Column(linkify=True)
    tags = TagColumn(url_name="circuits:providernetwork_list")

    class Meta(BaseTable.Meta):
        model = ProviderNetwork
        fields = ("pk", "name", "provider", "description", "tags")
        default_columns = ("pk", "name", "provider", "description")
Exemple #20
0
class VirtualChassisTable(BaseTable):
    pk = ToggleColumn()
    name = tables.Column(linkify=True)
    master = tables.Column(linkify=True)
    member_count = LinkedCountColumn(
        viewname="dcim:device_list",
        url_params={"virtual_chassis_id": "pk"},
        verbose_name="Members",
    )
    tags = TagColumn(url_name="dcim:virtualchassis_list")

    class Meta(BaseTable.Meta):
        model = VirtualChassis
        fields = ("pk", "name", "domain", "master", "member_count", "tags")
        default_columns = ("pk", "name", "domain", "master", "member_count")
Exemple #21
0
class CircuitTable(StatusTableMixin, BaseTable):
    pk = ToggleColumn()
    cid = tables.LinkColumn(verbose_name="ID")
    provider = tables.LinkColumn(viewname="circuits:provider",
                                 args=[Accessor("provider__slug")])
    tenant = TenantColumn()
    tags = TagColumn(url_name="circuits:circuit_list")

    termination_a = tables.TemplateColumn(
        template_code=CIRCUIT_TERMINATION_PARENT,
        accessor=Accessor("termination_a"),
        orderable=False,
        verbose_name="Side A",
    )
    termination_z = tables.TemplateColumn(
        template_code=CIRCUIT_TERMINATION_PARENT,
        accessor=Accessor("termination_z"),
        orderable=False,
        verbose_name="Side Z",
    )

    class Meta(BaseTable.Meta):
        model = Circuit
        fields = (
            "pk",
            "cid",
            "provider",
            "type",
            "status",
            "tenant",
            "termination_a",
            "termination_z",
            "install_date",
            "commit_rate",
            "description",
            "tags",
        )
        default_columns = (
            "pk",
            "cid",
            "provider",
            "type",
            "status",
            "tenant",
            "termination_a",
            "termination_z",
            "description",
        )
Exemple #22
0
class RackDetailTable(RackTable):
    device_count = LinkedCountColumn(
        viewname="dcim:device_list",
        url_params={"rack_id": "pk"},
        verbose_name="Devices",
    )
    get_utilization = tables.TemplateColumn(template_code=UTILIZATION_GRAPH,
                                            orderable=False,
                                            verbose_name="Space")
    get_power_utilization = tables.TemplateColumn(
        template_code=UTILIZATION_GRAPH, orderable=False, verbose_name="Power")
    tags = TagColumn(url_name="dcim:rack_list")

    class Meta(RackTable.Meta):
        fields = (
            "pk",
            "name",
            "site",
            "group",
            "status",
            "facility_id",
            "tenant",
            "role",
            "serial",
            "asset_tag",
            "type",
            "width",
            "u_height",
            "device_count",
            "get_utilization",
            "get_power_utilization",
            "tags",
        )
        default_columns = (
            "pk",
            "name",
            "site",
            "group",
            "status",
            "facility_id",
            "tenant",
            "role",
            "u_height",
            "device_count",
            "get_utilization",
            "get_power_utilization",
        )
Exemple #23
0
class ConsoleServerPortTable(DeviceComponentTable, PathEndpointTable):
    tags = TagColumn(url_name="dcim:consoleserverport_list")

    class Meta(DeviceComponentTable.Meta):
        model = ConsoleServerPort
        fields = (
            "pk",
            "device",
            "name",
            "label",
            "type",
            "description",
            "cable",
            "cable_peer",
            "connection",
            "tags",
        )
        default_columns = ("pk", "device", "name", "label", "type", "description")
Exemple #24
0
class RearPortTable(DeviceComponentTable, CableTerminationTable):
    tags = TagColumn(url_name="dcim:rearport_list")

    class Meta(DeviceComponentTable.Meta):
        model = RearPort
        fields = (
            "pk",
            "device",
            "name",
            "label",
            "type",
            "positions",
            "description",
            "cable",
            "cable_peer",
            "tags",
        )
        default_columns = ("pk", "device", "name", "label", "type", "description")
Exemple #25
0
class PowerPanelTable(BaseTable):
    pk = ToggleColumn()
    name = tables.LinkColumn()
    site = tables.LinkColumn(viewname="dcim:site",
                             args=[Accessor("site__slug")])
    powerfeed_count = LinkedCountColumn(
        viewname="dcim:powerfeed_list",
        url_params={"power_panel_id": "pk"},
        verbose_name="Feeds",
    )
    tags = TagColumn(url_name="dcim:powerpanel_list")

    class Meta(BaseTable.Meta):
        model = PowerPanel
        fields = ("pk", "name", "site", "rack_group", "powerfeed_count",
                  "tags")
        default_columns = ("pk", "name", "site", "rack_group",
                           "powerfeed_count")
Exemple #26
0
class PowerFeedTable(StatusTableMixin, CableTerminationTable):
    pk = ToggleColumn()
    name = tables.LinkColumn()
    power_panel = tables.Column(linkify=True)
    rack = tables.Column(linkify=True)
    type = ChoiceFieldColumn()
    max_utilization = tables.TemplateColumn(template_code="{{ value }}%")
    available_power = tables.Column(verbose_name="Available power (VA)")
    tags = TagColumn(url_name="dcim:powerfeed_list")

    class Meta(BaseTable.Meta):
        model = PowerFeed
        fields = (
            "pk",
            "name",
            "power_panel",
            "rack",
            "status",
            "type",
            "supply",
            "voltage",
            "amperage",
            "phase",
            "max_utilization",
            "cable",
            "cable_peer",
            "connection",
            "available_power",
            "tags",
        )
        default_columns = (
            "pk",
            "name",
            "power_panel",
            "rack",
            "status",
            "type",
            "supply",
            "voltage",
            "amperage",
            "phase",
            "cable",
            "cable_peer",
        )
Exemple #27
0
class ClusterTable(BaseTable):
    pk = ToggleColumn()
    name = tables.LinkColumn()
    tenant = tables.Column(linkify=True)
    site = tables.Column(linkify=True)
    type = tables.Column(linkify=True)
    group = tables.Column(linkify=True)
    device_count = LinkedCountColumn(
        viewname="dcim:device_list",
        url_params={"cluster_id": "pk"},
        verbose_name="Devices",
    )
    vm_count = LinkedCountColumn(
        viewname="virtualization:virtualmachine_list",
        url_params={"cluster_id": "pk"},
        verbose_name="VMs",
    )
    tags = TagColumn(url_name="virtualization:cluster_list")

    class Meta(BaseTable.Meta):
        model = Cluster
        fields = (
            "pk",
            "name",
            "type",
            "group",
            "tenant",
            "site",
            "device_count",
            "vm_count",
            "tags",
        )
        default_columns = (
            "pk",
            "name",
            "type",
            "group",
            "tenant",
            "site",
            "device_count",
            "vm_count",
        )
Exemple #28
0
class ProviderTable(BaseTable):
    pk = ToggleColumn()
    name = tables.LinkColumn()
    circuit_count = tables.Column(accessor=Accessor("count_circuits"),
                                  verbose_name="Circuits")
    tags = TagColumn(url_name="circuits:provider_list")

    class Meta(BaseTable.Meta):
        model = Provider
        fields = (
            "pk",
            "name",
            "asn",
            "account",
            "portal_url",
            "noc_contact",
            "admin_contact",
            "circuit_count",
            "tags",
        )
        default_columns = ("pk", "name", "asn", "account", "circuit_count")
Exemple #29
0
class ServiceTable(BaseTable):
    pk = ToggleColumn()
    name = tables.Column(linkify=True)
    parent = tables.LinkColumn(order_by=("device", "virtual_machine"))
    ports = tables.TemplateColumn(template_code="{{ record.port_list }}",
                                  verbose_name="Ports")
    tags = TagColumn(url_name="ipam:service_list")

    class Meta(BaseTable.Meta):
        model = Service
        fields = (
            "pk",
            "name",
            "parent",
            "protocol",
            "ports",
            "ipaddresses",
            "description",
            "tags",
        )
        default_columns = ("pk", "name", "parent", "protocol", "ports",
                           "description")
Exemple #30
0
class SiteTable(StatusTableMixin, BaseTable):
    pk = ToggleColumn()
    name = tables.LinkColumn(order_by=("_name", ))
    region = tables.Column(linkify=True)
    tenant = TenantColumn()
    tags = TagColumn(url_name="dcim:site_list")

    class Meta(BaseTable.Meta):
        model = Site
        fields = (
            "pk",
            "name",
            "slug",
            "status",
            "facility",
            "region",
            "tenant",
            "asn",
            "time_zone",
            "description",
            "physical_address",
            "shipping_address",
            "latitude",
            "longitude",
            "contact_name",
            "contact_phone",
            "contact_email",
            "tags",
        )
        default_columns = (
            "pk",
            "name",
            "status",
            "facility",
            "region",
            "tenant",
            "asn",
            "description",
        )