The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

App::Netdisco::Util::Graph

SYNOPSIS

$ brew install graphviz   <-- install graphviz on your system

$ ~/bin/localenv bash
$ cpanm --notest Graph GraphViz
$ mkdir ~/graph

use App::Netdisco::Util::Graph;
graph;

DESCRIPTION

Generate GraphViz output from Netdisco data. Requires that the Graph and GraphViz distributions be installed.

Requires the same config as for Netdisco 1, but within a graph key. See share/config.yml in the source distribution for an example.

The graph subroutine is exported by default. The :all tag will export all subroutines.

EXPORT

graph()

Creates netmap of network.

EXPORT_OK

graph_each($graph_obj, $name)

Generates subgraph. Does actual GraphViz calls.

graph_addnode($graphviz_obj, $node_ip)

Checks for mapping settings in config file and adds node to the GraphViz object.

make_graph()

Returns Graph::Undirected object that represents the discovered network.

Graph is made by loading all the device_port entries that have a neighbor, using them as edges. Then each device seen in those entries is added as a vertex.

Nodes without topology information are not included.