Commands are the basis of interacting with data in SuzieQ.
The format of each SuzieQ CLI command is the following <command> <verb> <filters>
.
To get a stripped down description of the commands, there is the help
command directly inside the CLI.
Commands
Each SuzieQ service collects specific informations from the devices and collect them inside a table. Each command access one or more of these tables and prompt devices data to the user. The list of commands currently supported is the following:
- arpnd
- bgp
- device
- evpnVni
- fs
- interface
- lldp
- mac
- mlag
- ospf
- path
- route
- sqpoller
- table
- topology (alpha)
- vlan
Verbs
For each one of the commands above there are the following verbs:
describe
: gives a description of the table associated with the command and its fieldshelp
: prints an help message for the commandshow
: prints the data relative to the table associated with the commandsummarize
: produce a summarization of the data inside the tabletop
: find the top n values for a field specified with thewhat
argument. This argument is mandatoryunique
: find the list of unique items associated with a column specified withcolumns
argument.
To get the list of command verbs, it's possible to type help <command>
or <command> help
.
Command specific verbs
bgp, evpnVni, interface and ospf contains a specific verb called assert
which will run predefined set of assertions on these tables.
For further details about predefined assertions click here.
network command offers a unique verb find
. It can be used to find a either an IP or a mac address inside the dataset using the argument address
(f.e. network find address='10.0.0.21'
).
the show
verb of path command needs namespace
, src
and dest
arguments in order to return the path between src
and dest
.
Filters
Filters can be used to visualize a subset of the network. There are a set of filters which are common and others which are specific to some commands and/or verbs. The common filters are the following:
columns
: space separeted list of table columns to show.end_time
: all the data polled are associated with a timestamp. It's possible to get the status of the network until end_time timestamp.engine
: select the engine for the command. The supported engines arepandas
andrest
format
: select the output format. The supported formats aretext
(default),json
,csv
andmarkdown
.hostname
: filter a subset of hostnames. Multiple hostnames can be specified separating them with a blank. It's also possible to filter using a regex adding a~
at the beginning of the filter (f.e.bgp show hostname='~spine.*'
)namespace
: filter a subset of the namespaces. As hostname, it's possible to specify multiple space separated namespaces and~
for regex.query_str
: use a pandas query to create a complex query on data. Check Pandas Query Examples section for more details about pandas queries.start_time
: similarly toend_time
, also this command is used to get the status of the network starting fromstart_time
timestamp.view
: this filter is used to decide whether showing the state of the network (view=latest
(default)) or the changes happened (view=all
)
To get verbs filters, it's possible to use the command help <command> <verb>
.