jnpr.junos.device.
Device
(*vargs, **kvargs)[source]¶Bases: object
Junos Device class.
ON_JUNOS
:True
when this code is running on a Junos device,
vs. running on a local-server remotely connecting to a device.auto_probe
:When non-zero the call to open()
will probe for NETCONF
reachability before proceeding with the NETCONF session establishment.
If you want to enable this behavior by default, you could do the
following in your code:
from jnpr.junos import Device
# set all device open to auto-probe with timeout of 10 sec
Device.auto_probe = 10
dev = Device( ... )
dev.open() # this will probe before attempting NETCONF connect
ON_JUNOS
= False¶Template
(filename, parent=None, gvars=None)[source]¶Used to return a Jinja2 Template
.
Parameters: | filename (str) – file-path to Jinja2 template file on local device |
---|---|
Returns: | Jinja2 Template give filename. |
__init__
(*vargs, **kvargs)[source]¶Device object constructor.
Parameters: |
|
---|
auto_probe
= 0¶bind
(*vargs, **kvargs)[source]¶Used to attach things to this Device instance and make them a property of the :class:Device instance. The most common use for bind is attaching Utility instances to a :class:Device. For example:
from jnpr.junos.utils.config import Config
dev.bind( cu=Config )
dev.cu.lock()
# ... load some changes
dev.cu.commit()
dev.cu.unlock()
Parameters: |
|
---|
cli
(command, format='text', warning=True)[source]¶Executes the CLI command and returns the CLI text output by default.
Parameters: |
---|
Note
You can also use this method to obtain the XML RPC command for a
given CLI command by using the pipe filter | display xml rpc
. When
you do this, the return value is the XML RPC command. For example if
you provide as the command show version | display xml rpc
, you will
get back the XML Element <get-software-information>
.
Warning
This function is provided for DEBUG purposes only! DO NOT use this method for general automation purposes as that puts you in the realm of “screen-scraping the CLI”. The purpose of the PyEZ framework is to migrate away from that tooling pattern. Interaction with the device should be done via the RPC function.
Warning
You cannot use “pipe” filters with command such as | match
or | count
, etc. The only value use of the “pipe” is for the
| display xml rpc
as noted above.
display_xml_rpc
(command, format='xml')[source]¶Executes the CLI command and returns the CLI text output by default.
Parameters: |
---|
execute
(*args, **kwargs)[source]¶Executes an XML RPC and returns results as either XML or native python
Parameters: |
|
---|---|
Raises: |
|
Returns: | RPC-reply as XML object. If to_py is provided, then
that function is called, and return of that function is
provided back to the caller; presumably to convert the XML to
native python data-types (e.g. |
facts
¶Returns: | Device fact dictionary |
---|
hostname
¶Returns: | the host-name of the Junos device. |
---|
logfile
¶Returns: | exsiting logfile file object. |
---|
manages
¶Returns: | list of Resource Managers/Utilities attached to this
instance using the bind() method. |
---|
open
(*vargs, **kvargs)[source]¶Opens a connection to the device using existing login/auth information.
Parameters: |
|
---|---|
Returns Device: | Device instance (self). |
Raises: |
|
password
¶Returns: | None - do not provide the password |
---|
probe
(timeout=5, intvtimeout=1)[source]¶Probe the device to determine if the Device can accept a remote connection. This method is meant to be called prior to :open(): This method will not work with ssh-jumphost environments.
Parameters: |
|
---|---|
Returns: |
|
timeout
¶Returns: | the current RPC timeout value (int) in seconds. |
---|
transform
¶Returns: | the current RPC XML Transformation. |
---|
user
¶Returns: | the login user (str) accessing the Junos device |
---|
jnpr.junos.exception.
CommitError
(rsp, cmd=None, errs=None)[source]¶Bases: jnpr.junos.exception.RpcError
Generated in response to a commit-check or a commit action.
jnpr.junos.exception.
ConfigLoadError
(rsp, cmd=None, errs=None)[source]¶Bases: jnpr.junos.exception.RpcError
Generated in response to a failure when loading a configuration.
jnpr.junos.exception.
ConnectAuthError
(dev, msg=None)[source]¶Bases: jnpr.junos.exception.ConnectError
Generated if the user-name, password is invalid
jnpr.junos.exception.
ConnectClosedError
(dev)[source]¶Bases: jnpr.junos.exception.ConnectError
Generated if connection unexpectedly closed
jnpr.junos.exception.
ConnectError
(dev, msg=None)[source]¶Bases: exceptions.Exception
Parent class for all connection related exceptions
host
¶login host name/ipaddr
msg
¶login SSH port
port
¶login SSH port
user
¶login user-name
jnpr.junos.exception.
ConnectNotMasterError
(dev, msg=None)[source]¶Bases: jnpr.junos.exception.ConnectError
Generated if the connection is made to a non-master routing-engine. This could be a backup RE on an MX device, or a virtual-chassis member (linecard), for example
jnpr.junos.exception.
ConnectRefusedError
(dev, msg=None)[source]¶Bases: jnpr.junos.exception.ConnectError
Generated if the specified host denies the NETCONF; could be that the services is not enabled, or the host has too many connections already.
jnpr.junos.exception.
ConnectTimeoutError
(dev, msg=None)[source]¶Bases: jnpr.junos.exception.ConnectError
Generated if the NETCONF session fails to connect, could be due to the fact the device is not ip reachable; bad ipaddr or just due to routing
jnpr.junos.exception.
ConnectUnknownHostError
(dev, msg=None)[source]¶Bases: jnpr.junos.exception.ConnectError
Generated if the specific hostname does not DNS resolve
jnpr.junos.exception.
LockError
(rsp)[source]¶Bases: jnpr.junos.exception.RpcError
Generated in response to attempting to take an exclusive lock on the configuration database.
jnpr.junos.exception.
PermissionError
(rsp, cmd=None)[source]¶Bases: jnpr.junos.exception.RpcError
Generated in response to invoking an RPC for which the auth user does not have user-class permissions.
PermissionError.message gives you the specific RPC that cause the exceptions
jnpr.junos.exception.
ProbeError
(dev, msg=None)[source]¶Bases: jnpr.junos.exception.ConnectError
Generated if auto_probe is enabled and the probe action fails
jnpr.junos.exception.
RpcError
(cmd=None, rsp=None, errs=None, dev=None, timeout=None, re=None)[source]¶Bases: exceptions.Exception
Parent class for all junos-pyez RPC Exceptions
__init__
(cmd=None, rsp=None, errs=None, dev=None, timeout=None, re=None)[source]¶Cmd: | is the rpc command |
---|---|
Rsp: | is the rpc response (after <rpc-reply>) |
Errs: | is a list of <rpc-error> elements |
Dev: | is the device rpc was executed on |
Timeout: | is the timeout value of the device |
Re: | is the RE or member exception occured on |
jnpr.junos.exception.
RpcTimeoutError
(dev, cmd, timeout)[source]¶Bases: jnpr.junos.exception.RpcError
Generated in response to a RPC execution timeout.
jnpr.junos.exception.
SwRollbackError
(rsp, re=None)[source]¶Bases: jnpr.junos.exception.RpcError
Generated in response to a SW rollback error.
jnpr.junos.exception.
UnlockError
(rsp)[source]¶Bases: jnpr.junos.exception.RpcError
Generated in response to attempting to unlock the configuration database.
jnpr.junos.rpcmeta.
_RpcMetaExec
(junos)[source]¶Bases: object
__init__
(junos)[source]¶~PRIVATE CLASS~ creates an RPC meta-executor object bound to the provided ez-netconf :junos: object
get_config
(filter_xml=None, options={})[source]¶retrieve configuration from the Junos device
Filter_xml: | is options, defines what to retrieve. if omitted then the entire configuration is returned |
---|---|
Options: | is a dict, creates attributes for the RPC |
load_config
(contents, **options)[source]¶loads :contents: onto the Junos device, does not commit the change.
Options: | is a dictionary of XML attributes to set within the <load-configuration> RPC. |
---|
The :contents: are interpreted by the :options: as follows:
format=’text’ and action=’set’, then :contents: is a string containing a series of “set” commands
format=’text’, then :contents: is a string containing Junos configuration in curly-brace/text format
<otherwise> :contents: is XML structure