Batfish Commands

Here we describe the non-question related Batfish functions

Networks

pybatfish.client.session.Session.set_network(self, name: str | None = None, prefix: str = 'pcp') str

Configure the network used for analysis.

Parameters:
  • name (str) – name of the network to set. If None, a name will be generated

  • prefix – prefix to prepend to auto-generated network names if name is empty

Returns:

name of the configured network

Return type:

str

Raises:

BatfishException – if configuration fails

pybatfish.client.session.Session.list_networks(self) list[str]

List networks the session’s API key can access.

Returns:

network names

Return type:

list

pybatfish.client.session.Session.delete_network(self, name: str) None

Delete network by name.

Parameters:

name (str) – name of the network to delete

Snapshots

pybatfish.client.session.Session.init_snapshot(self, upload: str, name: str | None = None, overwrite: bool = False, extra_args: dict[str, Any] | None = None) str

Initialize a new snapshot.

Parameters:
  • upload (str) – path to the snapshot zip or directory

  • name (str) – name of the snapshot to initialize

  • overwrite (bool) – whether or not to overwrite an existing snapshot with the same name

  • extra_args (dict) – extra arguments to control snapshot processing: 1) “ignoremanagementinterfaces” (bool) – whether to shut management interfaces (default is True); 2) “parsereuse” (bool) – whether to reuse parsing work from prior snapshots when file content is identical (default is True)

Returns:

name of initialized snapshot

Return type:

str

pybatfish.client.session.Session.set_snapshot(self, name: str | None = None, index: int | None = None) str

Set the current snapshot by name or index.

Parameters:
  • name (str) – name of the snapshot to set as the current snapshot

  • index (int) – set the current snapshot to the index-th most recent snapshot

Returns:

the name of the successfully set snapshot

Return type:

str

pybatfish.client.session.Session.list_snapshots(self, verbose: bool = False) list[str] | list[dict[str, Any]]

List snapshots for the current network.

Parameters:

verbose (bool) – If true, return the full output of Batfish, including snapshot metadata.

Returns:

snapshot names or the full JSON response containing snapshots and metadata (if verbose=True)

Return type:

list

pybatfish.client.session.Session.delete_snapshot(self, name: str) None

Delete specified snapshot from current network.

Parameters:

name (str) – name of the snapshot to delete

pybatfish.client.session.Session.fork_snapshot(self, base_name: str, name: str | None = None, overwrite: bool = False, deactivate_interfaces: list[Interface] | None = None, deactivate_nodes: list[str] | None = None, restore_interfaces: list[Interface] | None = None, restore_nodes: list[str] | None = None, add_files: str | None = None, extra_args: dict[str, Any] | None = None) str | None

Copy an existing snapshot and deactivate or reactivate specified interfaces, nodes, and links on the copy.

Parameters:
  • base_name (str) – name of the snapshot to copy

  • name (str) – name of the snapshot to initialize

  • overwrite (bool) – whether or not to overwrite an existing snapshot with the same name

  • deactivate_interfaces (list[Interface]) – list of interfaces to deactivate in new snapshot

  • deactivate_nodes (list[str]) – list of names of nodes to deactivate in new snapshot

  • restore_interfaces (list[Interface]) – list of interfaces to reactivate

  • restore_nodes (list[str]) – list of names of nodes to reactivate

  • add_files (str) – path to zip file or directory containing files to add

  • extra_args (dict) – extra arguments to control snapshot processing: 1) “ignoremanagementinterfaces” (bool) – whether to shut management interfaces (default is True); 2) “parsereuse” (bool) – whether to reuse parsing work from prior snapshots when file content is identical (default is True)

Returns:

name of initialized snapshot or None if the call fails

Return type:

Optional[str]

Reference Library

pybatfish.client.session.Session.get_reference_library(self) ReferenceLibrary

Returns the reference library for the active network.

pybatfish.client.session.Session.get_reference_book(self, name: str) ReferenceBook

Returns the specified reference book for the active network.

Parameters:

name (str) – name of the reference book to fetch

pybatfish.client.session.Session.put_reference_book(self, book: ReferenceBook) None

Put a reference book in the active network.

If a book with the same name exists, it is overwritten.

Parameters:

book (ReferenceBook) – The ReferenceBook object to add

pybatfish.client.session.Session.delete_reference_book(self, name: str) None

Deletes the reference book with the specified name for the active network.

Parameters:

name (str) – name of the reference book to delete

Diagnostics

pybatfish.client.session.Session.upload_diagnostics(self, dry_run: bool = True, netconan_config: str | None = None, contact_info: str | None = None, proxy: str | None = None) str

Fetch, anonymize, and optionally upload snapshot diagnostics information.

This runs a series of diagnostic questions on the current snapshot (including collecting parsing and conversion information).

The information collected is anonymized with Netconan which either anonymizes passwords and IP addresses (default) or uses the settings in the provided netconan_config.

The anonymous information is then either saved locally (if dry_run is True) or uploaded to Batfish developers (if dry_run is False). The uploaded information will be accessible only to Batfish developers and will be used to help diagnose any issues you encounter.

If contact_info is supplied (e.g. email address), Batfish developers may contact you if they have follow-up questions or to update you when the issues you encountered are resolved.

Parameters:
  • dry_run (bool) – if True, upload is skipped and the anonymized files will be stored locally for review. If False, anonymized files will be uploaded to the Batfish developers

  • netconan_config (str) – path to Netconan configuration file

  • contact_info (str) – optional contact info associated with this upload

  • proxy – a proxy URL to use when uploading data.

Returns:

location of anonymized files (local directory if doing dry run, otherwise upload ID)

Return type:

str