Skip to main content

configuration

switchmap classes that manage various configurations.

ConfigDashboard Objects​

class ConfigDashboard(ConfigAPIClient, ConfigAPI)

Class gathers all configuration information.

__init__​

def __init__()

Intialize the class.

Arguments:

None

Returns:

None

api_bind_port​

def api_bind_port()

Get api_bind_port.

Arguments:

None

Returns:

  • result - result

username​

def username()

Get username.

Arguments:

None

Returns:

  • result - result

uri

switchmap dashboard URIs.

dashboard​

def dashboard()

Create the dashboard page URI.

Arguments:

None

Returns:

  • result - result

historical_dashboard​

def historical_dashboard(idx_root=1)

Create the dashboard page URI.

Arguments:

  • idx_root - Root index

Returns:

  • result - result

devices​

def devices(idx_device)

Create the device page URI.

Arguments:

  • idx_device - IDX of the device in the database

Returns:

  • result - result

events​

def events()

Create the event page URI.

Arguments:

None

Returns:

  • result - result

events_by_idx_root​

def events_by_idx_root(idx_root=1)

Create the filtered event page URI.

Arguments:

  • idx_root - Index of the root in the DB

Returns:

  • result - result

search_dashboard_server​

def search_dashboard_server()

Create the device page URI.

Arguments:

None

Returns:

  • result - result

search_api_server​

def search_api_server()

Create the device page URI.

Arguments:

None

Returns:

  • result - result

graphql_filters

switchmap GraphQL filter operators.

or_operator​

def or_operator(key, items)

Create a GraphQL filter string for OR operations.

Arguments:

  • key - GraphQL key to run the OR operation against
  • items - List of iitems for filtering

Returns:

  • result - result

__init__

Module of switchmap DASHBOARD routes.

Contains all routes that switchmap.s Flask webserver uses

inject​

@DASHBOARD.context_processor
def inject()

Inject global variables for use by templates.

Arguments:

None

Returns:

  • result - Dict of url_home and url_static values for Flask to porcess

data

Define the switchmap.dashboard.data package.

Arguments:

None

Returns:

None

data.interface

Module for parsing interface data from GraphQL JSON.

Interface Objects​

class Interface()

Class to create an InterfaceDataRow data.

__init__​

def __init__(interface)

Instantiate the class.

Arguments:

  • interface - Interface dict

Returns:

None

row​

def row()

Get Row data.

Arguments:

None

Returns:

  • result - InterfaceDataRow object

cdp​

def cdp()

Return port CDP HTML string.

Arguments:

None

Returns:

  • value - required string

duplex​

def duplex()

Return port duplex string.

Arguments:

None

Returns:

  • duplex - Duplex string

lldp​

def lldp()

Return port LLDP HTML string.

Arguments:

None

Returns:

  • value - required string

speed​

def speed()

Return port speed.

Arguments:

None

Returns:

  • result - Port speed

state​

def state()

Return InterfaceState object.

Arguments:

None

Returns:

  • state - InterfaceState object

ts_idle​

def ts_idle()

Return idle time.

Arguments:

None

Returns:

  • result - idle time

vlan​

def vlan()

Return VLAN number.

Arguments:

None

Returns:

  • result - VlanState object

data.mac

Module for parsing Mac address related data from GraphQL JSON.

Mac Objects​

class Mac()

Class to create an InterfaceDataRow data.

__init__​

def __init__(interface)

Instantiate the class.

Arguments:

  • interface - Interface dict

Returns:

None

macs​

def macs()

Get the MacState of the interface.

Arguments:

None

Returns:

  • result - List of MacState objects

ips​

def ips()

Get the IpState of the interface.

Arguments:

None

Returns:

  • result - List of IpState objects

macips​

def macips()

Get the MacIpState of the interface.

Arguments:

None

Returns:

  • result - List of MacIpState objects

macips​

def macips(interface)

Get the MacIpState of the interface.

Arguments:

  • interface - IDX of the interface in the DB

Returns:

  • result - List of MacIpState objects

data.system

Class for creating device web pages.

System Objects​

class System()

Class that creates the data to be presented for the device's ports.

__init__​

def __init__(system_data)

Instantiate the class.

Arguments:

  • system_data - Dictionary of system data

Returns:

None

rows​

def rows()

Return data for the device's system information.

Arguments:

None

Returns:

  • rows - List of Col objects

hostname​

def hostname()

Return hostname.

Arguments:

None

Returns:

  • result - hostname

last_polled​

def last_polled()

Return last_polled.

Arguments:

None

Returns:

  • result - last_polled

sysdescription​

def sysdescription()

Return sysdescription.

Arguments:

None

Returns:

  • result - sysdescription

sysname​

def sysname()

Return sysname.

Arguments:

None

Returns:

  • result - sysname

sysobjectid​

def sysobjectid()

Return sysobjectid.

Arguments:

None

Returns:

  • result - sysobjectid

sysuptime​

def sysuptime()

Return sysuptime.

Arguments:

None

Returns:

  • result - sysuptime

net

Define the switchmap.dashboard.net package.

Arguments:

None

Returns:

None

net.routes.pages.search

Module of switchmap.webserver routes.

Contains all routes that switchmap.s Flask webserver uses

@SEARCH.route("/search", methods=["POST"])
def search()

Create the search page.

Arguments:

None

Returns:

  • render_template - HTML

get_tables​

def get_tables(_interfaces)

Convert interface information to HTML.

Arguments:

  • _interfaces - List of interface data dicts

Returns:

  • result - HTML

net.routes.pages.events

Module of switchmap.webserver routes.

Contains all routes that switchmap.s Flask webserver uses

events​

@EVENT.route("/events")
def events()

Create the events page.

Arguments:

None

Returns:

  • render_template - HTML

net.routes.pages.devices

Module of switchmap.webserver routes.

Contains all routes that switchmap.s Flask webserver uses

devices​

@DEVICES.route("/devices/<int:idx_device>")
def devices(idx_device)

Crerate device tables.

Arguments:

  • idx_device - Device index

Returns:

  • render_template - HTML

net.routes.pages

Define the switchmap.dashboard.net.routes.pages package.

Arguments:

None

Returns:

None

net.routes.pages.index

Module of switchmap.webserver routes.

Contains all routes that switchmap.s Flask webserver uses

dashboard​

@INDEX.route("/")
def dashboard()

Create the dashboard home page.

Arguments:

None

Returns:

  • _dashboard - HTML via function

historical_dashboard​

@INDEX.route("/<int:idx_root>")
def historical_dashboard(idx_root)

Create the dashboard home page for a specific event index.

Arguments:

  • idx_root - Event index

Returns:

  • _dashboard - HTML via function

net.routes

Define the switchmap.dashboard.net.routes package.

Arguments:

None

Returns:

None

net.routes.api.api

Module of switchmap.webserver routes.

Contains all routes that switchmap.s Flask webserver uses

dashboard​

@API.route("/dashboard", methods=["GET"])
def dashboard()

Get dashboard data.

Arguments:

None

Returns:

  • html - Webpage HTML

historical_dashboard​

@API.route("/dashboard/<int:idx_root>", methods=["GET"])
def historical_dashboard(idx_root)

Get dashboard data.

Arguments:

  • idx_root - IDX of the root in the DB

Returns:

  • html - Webpage HTML

event_by_idx_root​

@API.route("/events/<int:idx_root>", methods=["GET"])
def event_by_idx_root(idx_root)

Get event data.

Arguments:

  • idx_root - IDX of the root in the DB

Returns:

  • result - JSON of zone data

events​

@API.route("/events", methods=["GET"])
def events()

Get event data.

Arguments:

None

Returns:

  • result - JSON of zone data

devices​

@API.route("/devices/<int:idx_device>", methods=["GET"])
def devices(idx_device)

Get device data.

Arguments:

  • idx_device - IDX of the DB device table

Returns:

  • result - JSON of zone data

search​

@API.route("/search", methods=["POST"])
def search()

Get device data.

Arguments:

None

Returns:

  • result - JSON of zone data

roots_filter​

def roots_filter(idx_root=False)

Get event data.

Arguments:

  • idx_root - IDX of the DB root

Returns:

  • roots - JSON of zone data

net.routes.api

Define the switchmap.dashboard.net.routes.api package.

Arguments:

None

Returns:

None

net.html.pages.device

Class for creating device web pages.

Device Objects​

class Device()

Class that creates the device's various HTML tables.

__init__​

def __init__(data)

Initialize the class.

Arguments:

  • data - Device dictionary

Returns:

None

hostname​

def hostname()

Get the system hostname.

Arguments:

None

Returns:

  • result - The system hostname

interfaces​

def interfaces()

Create the ports table for the device.

Arguments:

None

Returns:

  • html - HTML table string

system​

def system()

Create summary table for the devie.

Arguments:

None

Returns:

  • html - HTML table string

net.html.pages.search

Class for creating search web pages.

SearchPage Objects​

class SearchPage()

Class that creates the search's various HTML tables.

__init__​

def __init__(data, hostname=None)

Initialize the class.

Arguments:

  • data - Search dictionary
  • hostname - The name of the Device

Returns:

None

html​

def html()

Create the ports table for the search.

Arguments:

None

Returns:

  • html - HTML table string

net.html.pages.events

Class for creating home web pages.

EventPage Objects​

class EventPage()

Class that creates the homepages's various HTML tables.

__init__​

def __init__(_events)

Initialize the class.

Arguments:

  • _events - Events to process

Returns:

None

html​

def html()

Create HTML table for the events.

Arguments:

None

Returns:

  • result - HTML table string

net.html.pages.layouts

Module of page layout functions.

table_wrapper​

def table_wrapper(title, table, strip=True)

Wrap the data in HTML stuff.

Arguments:

  • title - title
  • table - Table HTML
  • strip - Strip the thead if True

Returns:

  • result - HTML

remove_thead​

def remove_thead(data)

Remove line in HTML code containing the 'thead'.

Arguments:

  • data - HTML code

Returns:

  • result - HTML

net.html.pages

Define the switchmap.dashboard.net.html.pages package.

Arguments:

None

Returns:

None

net.html.pages.index

Class for creating home web pages.

IndexPage Objects​

class IndexPage()

Class that creates the homepages's various HTML tables.

__init__​

def __init__(zones)

Initialize the class.

Arguments:

  • zones - List of zones

Returns:

None

html​

def html()

Create HTML table for the devices.

Arguments:

None

Returns:

  • result - HTML table string

net.html

Define the switchmap.dashboard.net.html package.

Arguments:

None

Returns:

None

table

Define the switchmap.dashboard.table package.

Arguments:

None

Returns:

None

table.device

Class for creating device web pages.

Device Objects​

class Device()

Class that creates the device's various HTML tables.

__init__​

def __init__(data)

Initialize the class.

Arguments:

  • data - Device dictionary

Returns:

None

interfaces​

def interfaces()

Create the ports table for the device.

Arguments:

None

Returns:

  • table - Interface table

system​

def system()

Create summary table for the devie.

Arguments:

None

Returns:

  • table - System table

table.search

Class for creating search web pages.

Search Objects​

class Search()

Class that creates the search's various HTML tables.

__init__​

def __init__(data)

Initialize the class.

Arguments:

  • data - Search dictionary

Returns:

None

interfaces​

def interfaces()

Create the ports table for the search.

Arguments:

None

Returns:

  • table - Interface table

table.interfaces

Class for creating device web pages.

_RawCol Objects​

class _RawCol(Col)

Class outputs whatever it is given and will not escape it.

td_format​

def td_format(content)

Format the column content without escaping.

Arguments:

  • content - The content to be displayed in the column

Returns:

  • content - The unmodified content

InterfaceTable Objects​

class InterfaceTable(Table)

Declaration of the columns in the Ports table.

get_tr_attrs​

def get_tr_attrs(item)

Apply CSS class attributes to regular table row.

Arguments:

  • item - Row data object containing interface information

Returns:

  • dict - CSS class mapping based on interface state

InterfaceRow Objects​

class InterfaceRow()

Declaration of the rows in the Interfaces table.

__init__​

def __init__(row)

Initialize the class.

Arguments:

  • row - List of row values
  • port - Interface name string
  • vlan - VLAN of port string
  • state - State of port string
  • days_inactive - Number of days the port's inactive string
  • speed - Speed of port string
  • duplex - Duplex of port string
  • label - Label given to the port by the network manager
  • trunk - Whether a trunk or not
  • cdp - CDP data string
  • lldp - LLDP data string
  • mac_address - MAC Address
  • organization - Name of the organization

Returns:

None

active​

def active()

Determine if the interface is active.

Arguments:

None

Returns:

  • bool - True if interface state is 'Active', False otherwise

enabled​

def enabled()

Determine if the interface is enabled.

Arguments:

None

Returns:

  • bool - True if interface state is not 'Disabled', False otherwise boolean value of state if is not Disabled.

table​

def table(_interfaces)

Get Interface data from the device.

Arguments:

  • _interfaces - Interface dict

Returns:

  • table - InterfaceTable object

table.events

Class for creating home web pages.

_RawCol Objects​

class _RawCol(Col)

Class outputs whatever it is given and will not escape it.

Extends the Col class to provide raw HTML output without escaping.

td_format​

def td_format(content)

Format the column content without escaping.

Arguments:

  • content - The content to be displayed in the column

Returns:

  • content - The unmodified content

EventTable Objects​

class EventTable(Table)

Declaration of the columns in the Events table.

EventsRow Objects​

class EventsRow()

Declaration of the rows in the Events table.

__init__​

def __init__(row_data)

Initialize the class.

Arguments:

  • row_data - List containing the data for each column in the row

Returns:

None

table​

def table(events)

Return data for the event's information.

Creates a formatted table object from a list of events.

Arguments:

  • events - List of EventMeta objects

Returns:

  • result - EventTable object or False if no valid rows

table.system

Class for creating device web pages.

_RawCol Objects​

class _RawCol(Col)

Class outputs whatever it is given and will not escape it.

td_format​

def td_format(content)

Format the column content without escaping.

Arguments:

  • content - The content to be displayed in the column

Returns:

  • content - The unmodified content

SystemTable Objects​

class SystemTable(Table)

Declaration of the columns in the Systems table.

SystemRow Objects​

class SystemRow()

Declaration of the rows in the Systems table.

__init__​

def __init__(row)

Initialize the class.

Arguments:

  • row - SystemDataRow object containing parameter and value

Returns:

None

table​

def table(data)

Create summary table for the devie.

Arguments:

  • data - Dictionary containing system information data

Returns:

  • html - HTML table string or None if no rows are present

table.index

Class for creating home web pages.

_RawCol Objects​

class _RawCol(Col)

Class outputs whatever it is given and will not escape it.

td_format​

def td_format(content)

Fix the column formatting.

Arguments:

  • content - Content to parse

Returns:

  • content - Content to parse

tables​

def tables(zones)

Create HTML table for the devices.

Arguments:

  • zones - List of Zones

Returns:

  • results - List of ZoneTable objects

ZoneTable Objects​

class ZoneTable(Table)

Declaration of the columns in the Devices table.

ZoneRow Objects​

class ZoneRow()

Declaration of the rows in the Devices table.

__init__​

def __init__(row_data)

Initialize the class.

Arguments:

  • row_data - Row data

Returns:

None

rows​

def rows(devices)

Return data for the device's system information.

Arguments:

  • devices - List of DeviceMeta objects

Returns:

  • rows - List of Col objects