VIRL 2 API Client¶
Subpackages¶
Exceptions¶
-
exception
virl2_client.exceptions.
InterfaceNotFound
¶ Bases:
Exception
-
exception
virl2_client.exceptions.
LabNotFound
¶ Bases:
Exception
-
exception
virl2_client.exceptions.
LinkNotFound
¶ Bases:
Exception
-
exception
virl2_client.exceptions.
NodeNotFound
¶ Bases:
Exception
Utils¶
-
exception
virl2_client.utils.
TextFsmNotInstalled
¶ Bases:
Exception
-
class
virl2_client.utils.
TextFsmTemplateHelper
¶ Bases:
object
-
add_line
(line)¶
-
add_numeric_token
(name)¶
-
add_token
(name, pattern)¶
-
clear
()¶
-
render
()¶
-
-
virl2_client.utils.
get_offsets_for_keywords
(title)¶
-
virl2_client.utils.
parse_interfaces
(get_offsets_for_keywords, parse_line, result)¶
-
virl2_client.utils.
parse_line
(line, keys, offsets)¶
-
virl2_client.utils.
parse_ping
(result)¶
-
virl2_client.utils.
parse_with_textfsm_template
(template, cli_result)¶
-
virl2_client.utils.
splice_interface_ip_into_config
(config, remote, ip_address, netmask)¶
ClientLibrary¶
-
class
virl2_client.virl2_client.
ClientLibrary
(url=None, username=None, password=None, ssl_verify=True, raise_for_auth_failure=False, allow_http=False)¶ Bases:
object
Initializes a ClientLibrary instance. Note that ssl_verify can also be a string that points to a cert (see class documentation).
- Parameters
url (str) – URL of controller. It’s also possible to pass the URL via the
VIRL2_URL
environment variable. If no protocol scheme is provided, “https:” is used.username (str) – Username of the user to authenticate
password (str) – Password of the user to authenticate
ssl_verify (bool) – SSL controller certificate verification
raise_for_auth_failure (bool) – Raise an exception if unable to connect to server (use for scripting scenarios)
allow_http (bool) – If set, a https URL will not be enforced
- Raises
InitializationError – If no URL is provided or authentication fails or host can’t be reasched
-
all_labs
()¶ Retrieves a list of all defined labs.
- Returns
A list of lab objects
- Return type
list[models.Lab]
-
create_lab
(title=None)¶ Creates an empty lab with the given name. If no name is given, then the created lab ID is set as the name.
Note that the lab will be auto-syncing according to the Client Librarie’s auto-sync setting when created. The lab has a property to override this on a per-lab basis.
Example:
lab = client_library.create_lab() print(lab.id) lab.create_node("r1", "iosv", 50, 100)
- Parameters
title (str) – The Lab name (or title)
- Returns
A Lab instance
- Return type
-
find_labs_by_title
(title)¶ Return a list of labs which match the given title
- Parameters
title (str) – The title to search for
- Returns
A list of lab objects which match the title specified
- Return type
list[models.Lab]
-
get_diagnostics
()¶ Returns the controller diagnostic data as JSON
- Returns
diagnostic data
- Return type
str
-
get_host
()¶ Returns the hostname of the session to the controller.
- Returns
A hostname
- Return type
str
-
get_lab_list
()¶ Returns list of all lab IDs.
- Returns
a list of Lab IDs
- Return type
list[str]
-
get_local_lab
(lab_id)¶
-
import_lab
(topology, title, offline=False)¶ Imports an existing topology from a string.
- Parameters
topology (str) – Topology representation as a string
title (str) – Title of the lab
offline (bool) – whether the ClientLibrary should import the lab locally. The topology parameter has to be a JSON string in this case. This can not be XML or YAML representation of the lab.
- Returns
A Lab instance
- Return type
- Raises
ValueError – if there’s no lab ID in the API response
requests.exceptions.HTTPError – if there was a transport error
-
import_lab_from_path
(topology, title=None)¶ Imports an existing topology from a file / path.
- Parameters
topology (str) – Topology filename / path
title (str) – Title of the lab
- Returns
A Lab instance
- Return type
-
import_sample_lab
(title)¶ Imports a built-in sample lab (this will be going away in the future).
- Parameters
title (str) – Sample lab name with extension
- Returns
A Lab instance
- Return type
-
join_existing_lab
(lab_id, sync_lab=True)¶ Creates a new ClientLibrary lab instance that is retrieved from the controller.
If sync_lab is set to true, then synchronize current lab by applying the changes that were done in UI or in another ClientLibrary session.
Join preexisting lab:
lab = client_library.join_existing_lab("2e6a18")
- Parameters
lab_id (str) – The lab ID to be removed.
sync_lab (bool) – Syncronize changes.
- Returns
A Lab instance
- Return type
-
local_labs
()¶
-
remove_lab
(lab_id)¶ Use carefully, it removes a given lab:
client_library.remove_lab("1f6cd7")
- Parameters
lab_id (str) – The lab ID to be removed.
-
property
session
¶ Returns the used Requests session object
- Returns
The Requests session object
- Return type
Requests.Session
-
wait_for_lld_connected
()¶ Waits until the controller has a compute node connected.
-
exception
virl2_client.virl2_client.
InitializationError
¶ Bases:
Exception