%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /lib/python2.7/site-packages/salt/modules/
Upload File :
Create Path :
Current File : //lib/python2.7/site-packages/salt/modules/napalm_mod.pyc

�
���^c@@s�dZddlmZmZmZddlZddlZddlZddlm	Z	ddl
mZddlm
Z
ddlmZyddlmZeZWnek
r�eZnXyddlZeZWnek
r�eZnXyddlZeZWnek
reZnXyddlZeZWnek
rIeZnXyddlZeZWnek
ryeZnXd	Zd
gZ ej!e"�Z#d�Z$d�Z%d
�Z&d�Z'e	d��Z(e	ed��Z)e	d��Z*e	dddd��Z,e	d��Z-e	d��Z.e	d��Z/e	d��Z0e	d��Z1e	d��Z2e	d��Z3e	dddd��Z4e	d��Z5e	dd��Z6e	d��Z7e	dddd��Z8e	d ��Z9e	d!��Z:d"�Z;e	d#��Z<e	d$��Z=e	d%��Z>e	ddd&ddd'd(��Z?e	d)d*��Z@e	ddd&ddd'd+��ZAe	ed,��ZBe	d-��ZCe
e�d.d/��ZDe
e�d.d0��ZEe
e�d.d1��ZFe
e�d.d2��ZGd.ed3�ZHd.ddd'd4�ZId.ddd'd5�ZJd.ddd'd6�ZKd7dd.dd8�ZLd7dd.dd9�ZMe
e�d:eed;��ZNe
e�deed'd<��ZOdS(=u\
NAPALM helpers
==============

Helpers for the NAPALM modules.

.. versionadded:: 2017.7.0
i(tabsolute_importtunicode_literalstprint_functionN(tproxy_napalm_wrap(tsix(tdepends(tCommandExecutionError(tBaseConnectionunapalmu*cC@stjjjttt�S(u_
    NAPALM library must be installed for this module to work and run in a (proxy) minion.
    (tsalttutilstnapalmtvirtualt__opts__t__virtualname__t__file__(((s;/usr/lib/python2.7/site-packages/salt/modules/napalm_mod.pyt__virtual__Fsc
C@strtjjj|�Stjtj�\}}}}|j	d�}|dkrat
d��nttj
j||��}dddddd	g}x|D]}|j	|�q�Wi}xCtj|�D]2\}}	y||||<Wq�tk
r�q�Xq�W|S(
u�
    Check for Netmiko arguments that were passed in as NAPALM optional arguments.

    Return a dictionary of these optional args that will be passed into the
    Netmiko ConnectHandler call.

    .. note::

        This is a port of the NAPALM helper for backwards compatibility with
        older versions of NAPALM, and stability across Salt features.
        If the netmiko helpers module is available however, it will prefer that
        implementation nevertheless.
    iuselfu"Error processing Netmiko argumentsuipuhostuusernameupasswordudevice_typeutimeout(tHAS_NETMIKO_HELPERSR
tbasetnetmiko_helperstnetmiko_argstinspectt
getargspecRt__init__tpopt
ValueErrortdictRtmovestzipt	iteritemstKeyError(
t
optional_argsRt_tnetmiko_defaultst
check_selftnetmiko_argument_maptnetmiko_filtertktnetmiko_optional_argstv((s;/usr/lib/python2.7/site-packages/salt/modules/napalm_mod.pyt_get_netmiko_argsQs"

c@s�fd�}|td<dS(uw
    Inject the junos.conn key into the __proxy__, reusing the existing NAPALM
    connection to the Junos device.
    c@s�djS(NuDRIVER(tdevice((t
napalm_device(s;/usr/lib/python2.7/site-packages/salt/modules/napalm_mod.pyt_ret_device~su
junos.connN(t	__proxy__(R)R*((R)s;/usr/lib/python2.7/site-packages/salt/modules/napalm_mod.pyt_inject_junos_proxyyscC@s]tddkr)idd6td6dd6StsHidd6td6dd6St|�itd6S(	u%
    Prepare the Junos function.
    uosujunosuouturesultu(This function is only available on JunosucommentuSPlease install jxmlease (``pip install jxmlease``) to be able to use this function.N(t
__grains__tNonetFalsetHAS_JXMLEASER,tTrue(R)((s;/usr/lib/python2.7/site-packages/salt/modules/napalm_mod.pyt_junos_prep_fun�s
cK@stjjjtdi�S(ud
    Returns the alive status of the connection layer.
    The output is a dictionary under the usual dictionary
    output of the NAPALM modules.

    CLI Example:

    .. code-block:: bash

        salt '*' napalm.alive

    Output Example:

    .. code-block:: yaml

        result: True
        out:
            is_alive: False
        comment: ''
    uis_alive(RR	R
tcallR)(tkwargs((s;/usr/lib/python2.7/site-packages/salt/modules/napalm_mod.pytalive�scK@s.idd6td6dd6}tjjjt�s4|St�}tj	d�tj	|�|j
dt�s�|j
dt�s�|j
di�j
dt�s�|r*tj
d�p�tj
d�}tjd	|�tjjj
td
i�tjd|�tjjj
tdi�|jid
d6�|S|S(u�
    Reconnect the NAPALM proxy when the connection
    is dropped by the network device.
    The connection can be forced to be restarted
    using the ``force`` argument.

    .. note::

        This function can be used only when running proxy minions.

    CLI Example:

    .. code-block:: bash

        salt '*' napalm.reconnect
        salt '*' napalm.reconnect force=True
    uouturesultuAlready alive.ucommentuIs alive fetch:uis_aliveuproxyiduidu+Closing the NAPALM proxy connection with %sucloseu.Re-opening the NAPALM proxy connection with %suopenuConnection restarted!N(R.R1RR	R
tis_proxyRR5tlogtdebugtgetR/tinfoR3R)tupdate(tforceR4tdefault_rettis_alivetproxyid((s;/usr/lib/python2.7/site-packages/salt/modules/napalm_mod.pyt	reconnect�s8
	

	cO@s^i}x9tj|�D](\}}|jd�s|||<qqWtjjjt|||�S(u�
    Execute arbitrary methods from the NAPALM library.
    To see the expected output, please consult the NAPALM documentation.

    .. note::

        This feature is not recommended to be used in production.
        It should be used for testing only!

    CLI Example:

    .. code-block:: bash

        salt '*' napalm.call get_lldp_neighbors
        salt '*' napalm.call get_firewall_policies
        salt '*' napalm.call get_bgp_config group='my-group'
    u__pub_(RRt
startswithRR	R
R3R)(tmethodtargsR4tclean_kwargstkargtwarg((s;/usr/lib/python2.7/site-packages/salt/modules/napalm_mod.pyR3�su
jinja|yamlcK@s>tdd|d|d||�}tjjjtdd|�S(u

    Return the compliance report.

    filepath
        The absolute path to the validation file.

        .. versionchanged:: 2019.2.0

        Beginning with release codename ``2019.2.0``, this function has been
        enhanced, to be able to leverage the multi-engine template rendering
        of Salt, besides the possibility to retrieve the file source from
        remote systems, the URL schemes supported being:

        - ``salt://``
        - ``http://`` and ``https://``
        - ``ftp://``
        - ``s3://``
        - ``swift:/``

        Or on the local file system (on the Minion).

        .. note::

            The rendering result does not necessarily need to be YAML, instead
            it can be any format interpreted by Salt's rendering pipeline
            (including pure Python).

    string
        .. versionadded:: 2019.2.0

        The compliance report send as inline string, to be used as the file to
        send through the renderer system. Note, not all renderer modules can
        work with strings; the 'py' renderer requires a file, for example.

    renderer: ``jinja|yaml``
        .. versionadded:: 2019.2.0

        The renderer pipe to send the file through; this is overridden by a
        "she-bang" at the top of the file.

    kwargs
        .. versionchanged:: 2019.2.0

        Keyword args to pass to Salt's compile_template() function.

    CLI Example:

    .. code-block:: bash

        salt '*' napalm.compliance_report ~/validate.yml
        salt '*' napalm.compliance_report salt://path/to/validator.sls

    Validation File Example (pure YAML):

    .. code-block:: yaml

        - get_facts:
            os_version: 4.17

        - get_interfaces_ip:
            Management1:
              ipv4:
                10.0.2.14:
                  prefix_length: 24
                _mode: strict

    Validation File Example (as Jinja + YAML):

    .. code-block:: yaml

        - get_facts:
            os_version: {{ grains.version }}
        - get_interfaces_ip:
            Loopback0:
              ipv4:
                {{ grains.lo0.ipv4 }}:
                  prefix_length: 24
                _mode: strict
        - get_bgp_neighbors: {{ pillar.bgp.neighbors }}

    Output Example:

    .. code-block:: yaml

        device1:
            ----------
            comment:
            out:
                ----------
                complies:
                    False
                get_facts:
                    ----------
                    complies:
                        False
                    extra:
                    missing:
                    present:
                        ----------
                        os_version:
                            ----------
                            actual_value:
                                15.1F6-S1.4
                            complies:
                                False
                            nested:
                                False
                get_interfaces_ip:
                    ----------
                    complies:
                        False
                    extra:
                    missing:
                        - Management1
                    present:
                        ----------
                skipped:
            result:
                True
    uslsutil.renderertpathtstringtdefault_rendererucompliance_reporttvalidation_source(t__salt__RR	R
R3R)(tfilepathRHtrendererR4tvalidation_string((s;/usr/lib/python2.7/site-packages/salt/modules/napalm_mod.pytcompliance_reports}	cK@s"tstd��ni}tjjjtdt�}|d}t|�}|d|d<|d|d<|d|d	<|d
|d<|j	|�i
dd
6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd 6d!d"6d#d$6}|j	td%d&i��|t
d'|d(<|S()u�
    .. versionadded:: 2019.2.0

    Return the key-value arguments used for the authentication arguments for
    the netmiko module.

    When running in a non-native NAPALM driver (e.g., ``panos``, `f5``, ``mos`` -
    either from https://github.com/napalm-automation-community or defined in
    user's own environment, one can specify the Netmiko device type (the
    ``device_type`` argument) via the ``netmiko_device_type_map`` configuration
    option / Pillar key, e.g.,

    .. code-block:: yaml

        netmiko_device_type_map:
          f5: f5_ltm
          dellos10: dell_os10

    The configuration above defines the mapping between the NAPALM ``os`` Grain
    and the Netmiko ``device_type``, e.g., when the NAPALM Grain is ``f5``, it
    would use the ``f5_ltm`` SSH Netmiko driver to execute commands over SSH on
    the remote network device.

    CLI Example:

    .. code-block:: bash

        salt '*' napalm.netmiko_args
    u6Please install netmiko to be able to use this feature.tsalt_obju
OPTIONAL_ARGSuHOSTNAMEuhostuUSERNAMEuusernameuPASSWORDupassworduTIMEOUTutimeoutu
juniper_junosujunosu	cisco_iosuiosucisco_xruiosxru
arista_eosueosu
cisco_nxosunxos_sshu	cisco_asauasaufortinetufortiosupaloalto_panosupanosualcatel_aosuaosuvyosuf5_ltmuf5uhuaweiuceu
cisco_s300us350u
config.getunetmiko_device_type_mapuosudevice_type(tHAS_NETMIKORRR	R
tget_device_optsRRKR'R;R-(R4tnapalm_optsRRtnetmiko_device_type_map((s;/usr/lib/python2.7/site-packages/salt/modules/napalm_mod.pyR�s8


cO@sHd|kr!djd|�}nt�}|j|�t|||�S(uv
    .. versionadded:: 2019.2.0

    Call an arbitrary function from the :mod:`Netmiko<salt.modules.netmiko_mod>`
    module, passing the authentication details from the existing NAPALM
    connection.

    fun
        The name of the function from the :mod:`Netmiko<salt.modules.netmiko_mod>`
        to invoke.

    args
        List of arguments to send to the execution function specified in
        ``fun``.

    kwargs
        Key-value arguments to send to the execution function specified in
        ``fun``.

    CLI Example:

    .. code-block:: bash

        salt '*' napalm.netmiko_fun send_command 'show version'
    unetmiko.u
netmiko.{fun}tfun(tformatRR;RK(RURCR4tnetmiko_kwargs((s;/usr/lib/python2.7/site-packages/salt/modules/napalm_mod.pytnetmiko_fun�s
	
cO@s*t�}|j|�td|||�S(u

    .. versionadded:: 2019.2.0

    Execute an arbitrary Netmiko method, passing the authentication details from
    the existing NAPALM connection.

    method
        The name of the Netmiko method to execute.

    args
        List of arguments to send to the Netmiko method specified in ``method``.

    kwargs
        Key-value arguments to send to the execution function specified in
        ``method``.

    CLI Example:

    .. code-block:: bash

        salt '*' napalm.netmiko_call send_command 'show version'
    unetmiko.call(RR;RK(RBRCR4RW((s;/usr/lib/python2.7/site-packages/salt/modules/napalm_mod.pytnetmiko_call
s	
cO@s't�}|j|�td||�S(u|
    .. versionadded:: 2019.2.0

    Execute a list of arbitrary Netmiko methods, passing the authentication
    details from the existing NAPALM connection.

    methods
        List of dictionaries with the following keys:

        - ``name``: the name of the Netmiko function to invoke.
        - ``args``: list of arguments to send to the ``name`` method.
        - ``kwargs``: key-value arguments to send to the ``name`` method.


    CLI Example:

    .. code-block:: bash

        salt '*' napalm.netmiko_multi_call "{'name': 'send_command', 'args': ['show version']}" "{'name': 'send_command', 'args': ['show interfaces']}"
    unetmiko.multi_call(RR;RK(tmethodsR4RW((s;/usr/lib/python2.7/site-packages/salt/modules/napalm_mod.pytnetmiko_multi_call*s	
cO@s=t|�}g}x$|D]}|j|j|��qW|S(u
    .. versionadded:: 2019.2.0

    Invoke one or more commands to be executed on the remote device, via Netmiko.
    Returns a list of strings, with the output from each command.

    commands
        A list of commands to be executed.

    expect_string
        Regular expression pattern to use for determining end of output.
        If left blank will default to being based on router prompt.

    delay_factor: ``1``
        Multiplying factor used to adjust delays (default: ``1``).

    max_loops: ``500``
        Controls wait time in conjunction with delay_factor. Will default to be
        based upon self.timeout.

    auto_find_prompt: ``True``
        Whether it should try to auto-detect the prompt (default: ``True``).

    strip_prompt: ``True``
        Remove the trailing router prompt from the output (default: ``True``).

    strip_command: ``True``
        Remove the echo of the command from the output (default: ``True``).

    normalize: ``True``
        Ensure the proper enter is sent at end of command (default: ``True``).

    use_textfsm: ``False``
        Process command output through TextFSM template (default: ``False``).

    CLI Example:

    .. code-block:: bash

        salt '*' napalm.netmiko_commands 'show version' 'show interfaces'
    (tnetmiko_conntappendtsend_command(tcommandsR4tconntrettcmd((s;/usr/lib/python2.7/site-packages/salt/modules/napalm_mod.pytnetmiko_commandsEs
+
cO@s*t�}|j|�tdd||�S(u�
    .. versionadded:: 2019.2.0

    Load a list of configuration commands on the remote device, via Netmiko.

    .. warning::

        Please remember that ``netmiko`` does not have any rollback safeguards
        and any configuration change will be directly loaded into the running
        config if the platform doesn't have the concept of ``candidate`` config.

        On Junos, or other platforms that have this capability, the changes will
        not be loaded into the running config, and the user must set the
        ``commit`` argument to ``True`` to transfer the changes from the
        candidate into the running config before exiting.

    config_commands
        A list of configuration commands to be loaded on the remote device.

    config_file
        Read the configuration commands from a file. The file can equally be a
        template that can be rendered using the engine of choice (see
        ``template_engine``).

        This can be specified using the absolute path to the file, or using one
        of the following URL schemes:

        - ``salt://``, to fetch the file from the Salt fileserver.
        - ``http://`` or ``https://``
        - ``ftp://``
        - ``s3://``
        - ``swift://``

    exit_config_mode: ``True``
        Determines whether or not to exit config mode after complete.

    delay_factor: ``1``
        Factor to adjust delays.

    max_loops: ``150``
        Controls wait time in conjunction with delay_factor (default: ``150``).

    strip_prompt: ``False``
        Determines whether or not to strip the prompt (default: ``False``).

    strip_command: ``False``
        Determines whether or not to strip the command (default: ``False``).

    config_mode_command
        The command to enter into config mode.

    commit: ``False``
        Commit the configuration changes before exiting the config mode. This
        option is by default disabled, as many platforms don't have this
        capability natively.

    CLI Example:

    .. code-block:: bash

        salt '*' napalm.netmiko_config 'set system ntp peer 1.2.3.4' commit=True
        salt '*' napalm.netmiko_config https://bit.ly/2sgljCB
    unetmiko.send_configtconfig_commands(RR;RK(RdR4RW((s;/usr/lib/python2.7/site-packages/salt/modules/napalm_mod.pytnetmiko_configwsA	

cK@s$t�}|j|�td|�S(u�
    .. versionadded:: 2019.2.0

    Return the connection object with the network device, over Netmiko, passing
    the authentication details from the existing NAPALM connection.

    .. warning::

        This function is not suitable for CLI usage, more rather to be used
        in various Salt modules.

    USAGE Example:

    .. code-block:: python

        conn = __salt__['napalm.netmiko_conn']()
        res = conn.send_command('show interfaces')
        conn.disconnect()
    unetmiko.get_connection(RR;RK(R4RW((s;/usr/lib/python2.7/site-packages/salt/modules/napalm_mod.pyR\�s	
cK@s�tt�}|ds|S|s)d}ntdd|d|d||�}|jdd�|d	<|jd
t�|d<|jdd�|d
<|S(
u�
    .. versionadded:: 2019.2.0

    Execute an RPC request on the remote Junos device.

    cmd
        The RPC request to the executed. To determine the RPC request, you can
        check the from the command line of the device, by executing the usual
        command followed by ``| display xml rpc``, e.g.,
        ``show lldp neighbors | display xml rpc``.

    dest
        Destination file where the RPC output is stored. Note that the file will
        be stored on the Proxy Minion. To push the files to the Master, use
        :mod:`cp.push <salt.modules.cp.push>` Execution function.

    format: ``xml``
        The format in which the RPC reply is received from the device.

    dev_timeout: ``30``
        The NETCONF RPC timeout.

    filter
        Used with the ``get-config`` RPC request to filter out the config tree.

    terse: ``False``
        Whether to return terse output.

        .. note::

            Some RPC requests may not support this argument.

    interface_name
        Name of the interface to query.

    CLI Example:

    .. code-block:: bash

        salt '*' napalm.junos_rpc get-lldp-neighbors-information
        salt '*' napalm.junos_rcp get-config <configuration><system><ntp/></system></configuration>
    uresultuxmlu	junos.rpcRbtdestRVumessageuucommentuoutu	rpc_replyN(R2R)RKRR/R.(RbRfRVR4tpreptrpc_ret((s;/usr/lib/python2.7/site-packages/salt/modules/napalm_mod.pyt	junos_rpc�s,
		cK@s(tt�}|ds|Std|�S(u�
    .. versionadded:: 2019.2.0

    Commit the changes loaded in the candidate configuration.

    dev_timeout: ``30``
        The NETCONF RPC timeout (in seconds).

    comment
      Provide a comment for the commit.

    confirm
      Provide time in minutes for commit confirmation. If this option is
      specified, the commit will be rolled back in the specified amount of time
      unless the commit is confirmed.

    sync: ``False``
      When ``True``, on dual control plane systems, requests that the candidate
      configuration on one control plane be copied to the other control plane,
      checked for correct syntax, and committed on both Routing Engines.

    force_sync: ``False``
      When ``True``, on dual control plane systems, force the candidate
      configuration on one control plane to be copied to the other control
      plane.

    full
      When ``True``, requires all the daemons to check and evaluate the new
      configuration.

    detail
      When ``True``, return commit detail.

    CLI Examples:

    .. code-block:: bash

        salt '*' napalm.junos_commit comment='Commitiing via Salt' detail=True
        salt '*' napalm.junos_commit dev_timeout=60 confirm=10
        salt '*' napalm.junos_commit sync=True dev_timeout=90
    uresultujunos.commit(R2R)RK(R4Rg((s;/usr/lib/python2.7/site-packages/salt/modules/napalm_mod.pytjunos_commits+
cK@s.tt�}|ds|Stdd||�S(u
    .. versionadded:: 2019.2.0

    Installs the given image on the device.

    path
        The image file source. This argument supports the following URIs:

        - Absolute path on the Minion.
        - ``salt://`` to fetch from the Salt fileserver.
        - ``http://`` and ``https://``
        - ``ftp://``
        - ``swift:/``
        - ``s3://``

    dev_timeout: ``30``
        The NETCONF RPC timeout (in seconds)

    reboot: ``False``
        Whether to reboot the device after the installation is complete.

    no_copy: ``False``
        If ``True`` the software package will not be copied to the remote
        device.

    CLI Example:

    .. code-block:: bash

        salt '*' napalm.junos_install_os salt://images/junos_16_1.tgz reboot=True
    uresultujunos.install_osRG(R2R)RK(RGR4Rg((s;/usr/lib/python2.7/site-packages/salt/modules/napalm_mod.pytjunos_install_osEs!
cK@s�tt�}|ds|Sttdjj�}d|krSt|d�|d<nd|kr�x9|dD]*}t|d|d�|d|d<qjWn|S(u�
    .. versionadded:: 2019.2.0

    The complete list of Junos facts collected by ``junos-eznc``.

    CLI Example:

    .. code-block:: bash

        salt '*' napalm.junos_facts
    uresultuDRIVERuversion_infou
junos_infouobject(R2R)RR(tfacts(R4RgRltre((s;/usr/lib/python2.7/site-packages/salt/modules/napalm_mod.pytjunos_factsls

+c	K@s=tt�}|ds|Std|d|d|d||�S(u�
    .. versionadded:: 2019.2.0

    Execute a CLI command and return the output in the specified format.

    command
        The command to execute on the Junos CLI.

    format: ``text``
        Format in which to get the CLI output (either ``text`` or ``xml``).

    dev_timeout: ``30``
        The NETCONF RPC timeout (in seconds).

    dest
        Destination file where the RPC output is stored. Note that the file will
        be stored on the Proxy Minion. To push the files to the Master, use
        :mod:`cp.push <salt.modules.cp.push>`.

    CLI Example:

    .. code-block:: bash

        salt '*' napalm.junos_cli 'show lldp neighbors'
    uresultu	junos.cliRVtdev_timeoutRf(R2R)RK(tcommandRVRoRfR4Rg((s;/usr/lib/python2.7/site-packages/salt/modules/napalm_mod.pyt	junos_cli�s

cK@s;tt�}|ds|Std|�}td||�S(u�
    .. versionadded:: 2019.2.0

    Copies the file on the remote Junos device.

    src
        The source file path. This argument accepts the usual Salt URIs (e.g.,
        ``salt://``, ``http://``, ``https://``, ``s3://``, ``ftp://``, etc.).

    dst
        The destination path on the device where to copy the file.

    CLI Example:

    .. code-block:: bash

        salt '*' napalm.junos_copy_file https://example.com/junos.cfg /var/tmp/myjunos.cfg
    uresultu
cp.cache_fileujunos.file_copy(R2R)RK(tsrctdstR4Rgt
cached_src((s;/usr/lib/python2.7/site-packages/salt/modules/napalm_mod.pytjunos_copy_file�s

cO@s}tt�}|ds|Sd|kr8dj|�}n|}|tkrlidd6td6dj|�d6St|||�S(ud
    .. versionadded:: 2019.2.0

    Execute an arbitrary function from the
    :mod:`junos execution module <salt.module.junos>`. To check what ``args``
    and ``kwargs`` you must send to the function, please consult the appropriate
    documentation.

    fun
        The name of the function. E.g., ``set_hostname``.

    args
        List of arguments to send to the ``junos`` function invoked.

    kwargs
        Dictionary of key-value arguments to send to the ``juno`` function
        invoked.

    CLI Example:

    .. code-block:: bash

        salt '*' napalm.junos_fun cli 'show system commit'
    uresultujunos.ujunos.{}uoutu{} is not a valid functionucommentN(R2R)RVRKR.R/(RURCR4Rgtmod_fun((s;/usr/lib/python2.7/site-packages/salt/modules/napalm_mod.pyt
junos_call�s
cK@s�i}tjjjtdt�}|d}|d|d<|d|d<|d|d<|d	|d
<|jd�|d<|jd�|d<|jd
�|d
<|j|�|S(u
    .. versionadded:: 2019.2.0

    Return the key-value arguments used for the authentication arguments for the
    :mod:`pyeapi execution module <salt.module.arista_pyeapi>`.

    CLI Example:

    .. code-block:: bash

        salt '*' napalm.pyeapi_nxos_api_args
    RPu
OPTIONAL_ARGSuHOSTNAMEuhostuUSERNAMEuusernameuPASSWORDupassworduTIMEOUTutimeoutu	transportuportuverify(RR	R
RRRRKR9R;(tprev_kwargsR4RSR((s;/usr/lib/python2.7/site-packages/salt/modules/napalm_mod.pytpyeapi_nxos_api_args�s


cO@st|�}td||�S(u{
    Execute a list of commands on the Arista switch, via the ``pyeapi`` library.
    This function forwards the existing connection details to the
    :mod:`pyeapi.run_commands <salt.module.arista_pyeapi.run_commands>`
    execution function.

    commands
        A list of commands to execute.

    encoding: ``json``
        The requested encoding of the command output. Valid values for encoding
        are ``json`` (default) or ``text``.

    CLI Example:

    .. code-block:: bash

        salt '*' napalm.pyeapi_run_commands 'show version' encoding=text
        salt '*' napalm.pyeapi_run_commands 'show ip bgp neighbors'
    upyeapi.run_commands(RyRK(R_R4t
pyeapi_kwargs((s;/usr/lib/python2.7/site-packages/salt/modules/napalm_mod.pytpyeapi_run_commandsscO@s t|�}td|||�S(uF
    .. versionadded:: 2019.2.0

    Invoke an arbitrary method from the ``pyeapi`` library.
    This function forwards the existing connection details to the
    :mod:`pyeapi.run_commands <salt.module.arista_pyeapi.run_commands>`
    execution function.

    method
        The name of the ``pyeapi`` method to invoke.

    kwargs
        Key-value arguments to send to the ``pyeapi`` method.

    CLI Example:

    .. code-block:: bash

        salt '*' napalm.pyeapi_call run_commands 'show version' encoding=text
        salt '*' napalm.pyeapi_call get_config as_string=True
   upyeapi.call(RyRK(RBRCR4Rz((s;/usr/lib/python2.7/site-packages/salt/modules/napalm_mod.pytpyeapi_call(scK@st|�}td|�S(ud
    .. versionadded:: 2019.2.0

    Return the connection object with the Arista switch, over ``pyeapi``,
    passing the authentication details from the existing NAPALM connection.

    .. warning::
        This function is not suitable for CLI usage, more rather to be used in
        various Salt modules, to reusing the established connection, as in
        opposite to opening a new connection for each task.

    Usage example:

    .. code-block:: python

        conn = __salt__['napalm.pyeapi_conn']()
        res1 = conn.run_commands('show version')
        res2 = conn.get_config(as_string=True)
    upyeapi.get_connection(RyRK(R4Rz((s;/usr/lib/python2.7/site-packages/salt/modules/napalm_mod.pytpyeapi_connCsujinjaubasecK@s>t|�}tdd|d|d|d|d|d||�S(u�
    .. versionadded:: 2019.2.0

    Configures the Arista switch with the specified commands, via the ``pyeapi``
    library. This function forwards the existing connection details to the
    :mod:`pyeapi.run_commands <salt.module.arista_pyeapi.run_commands>`
    execution function.

    commands
        The list of configuration commands to load on the Arista switch.

        .. note::
            This argument is ignored when ``config_file`` is specified.

    config_file
        The source file with the configuration commands to be sent to the device.

        The file can also be a template that can be rendered using the template
        engine of choice. This can be specified using the absolute path to the
        file, or using one of the following URL schemes:

        - ``salt://``
        - ``https://``
        - ``ftp:/``
        - ``s3:/``
        - ``swift://``

    template_engine: ``jinja``
        The template engine to use when rendering the source file. Default:
        ``jinja``. To simply fetch the file without attempting to render, set
        this argument to ``None``.

    context: ``None``
        Variables to add to the template context.

    defaults: ``None``
        Default values of the ``context`` dict.

    saltenv: ``base``
        Salt fileserver environment from which to retrieve the file. Ignored if
        ``config_file`` is not a ``salt://`` URL.

    CLI Example:

    .. code-block:: bash

        salt '*' napalm.pyeapi_config 'ntp server 1.2.3.4'
   u
pyeapi.configR_tconfig_filettemplate_enginetcontexttdefaultstsaltenv(RyRK(R_R~RR�R�R�R4Rz((s;/usr/lib/python2.7/site-packages/salt/modules/napalm_mod.pyt
pyeapi_config\s8uclicK@s#t|�}td|d||�S(u�
    .. versionadded:: 2019.2.0

    Execute an arbitrary RPC request via the Nexus API.

    commands
        The RPC commands to be executed.

    method: ``cli``
        The type of the response, i.e., raw text (``cli_ascii``) or structured
        document (``cli``). Defaults to ``cli`` (structured data).

    CLI Example:

    .. code-block:: bash

        salt '*' napalm.nxos_api_rpc 'show version'
    unxos_api.rpcRB(RyRK(R_RBR4tnxos_api_kwargs((s;/usr/lib/python2.7/site-packages/salt/modules/napalm_mod.pytnxos_api_rpc�scK@s>t|�}tdd|d|d|d|d|d||�S(u�
     .. versionadded:: 2019.2.0

    Configures the Nexus switch with the specified commands, via the NX-API.

    commands
        The list of configuration commands to load on the Nexus switch.

        .. note::
            This argument is ignored when ``config_file`` is specified.

    config_file
        The source file with the configuration commands to be sent to the device.

        The file can also be a template that can be rendered using the template
        engine of choice. This can be specified using the absolute path to the
        file, or using one of the following URL schemes:

        - ``salt://``
        - ``https://``
        - ``ftp:/``
        - ``s3:/``
        - ``swift://``

    template_engine: ``jinja``
        The template engine to use when rendering the source file. Default:
        ``jinja``. To simply fetch the file without attempting to render, set
        this argument to ``None``.

    context: ``None``
        Variables to add to the template context.

    defaults: ``None``
        Default values of the ``context`` dict.

    saltenv: ``base``
        Salt fileserver environment from which to retrieve the file. Ignored if
        ``config_file`` is not a ``salt://`` URL.

    CLI Example:

    .. code-block:: bash

        salt '*' napalm.nxos_api_config 'spanning-tree mode mstp'
        salt '*' napalm.nxos_api_config config_file=https://bit.ly/2LGLcDy context="{'servers': ['1.2.3.4']}"
    unxos_api.configR_R~RR�R�R�(RyRK(R_R~RR�R�R�R4R�((s;/usr/lib/python2.7/site-packages/salt/modules/napalm_mod.pytnxos_api_config�s6cK@s#t|�}td|d||�S(u�
    .. versionadded:: 2019.2.0

    Execute one or more show (non-configuration) commands.

    commands
        The commands to be executed.

    raw_text: ``True``
        Whether to return raw text or structured data.

    CLI Example:

    .. code-block:: bash

        salt '*' napalm.nxos_api_show 'show version'
        salt '*' napalm.nxos_api_show 'show bgp sessions' 'show processes' raw_text=False
    u
nxos_api.showtraw_text(RyRK(R_R�R4R�((s;/usr/lib/python2.7/site-packages/salt/modules/napalm_mod.pyt
nxos_api_show�s
cK@sbidd6dd6dd6}tddi�}|j|�|jtd	d
�}t|||�S(u�
    .. versionadded:: 2019.2.0

    This is a wrapper to execute RPC requests on various network operating
    systems supported by NAPALM, invoking the following functions for the NAPALM
    native drivers:

    - :py:func:`napalm.junos_rpc <salt.modules.napalm_mod.junos_rpc>` for ``junos``
    - :py:func:`napalm.pyeapi_run_commands <salt.modules.napalm_mod.pyeapi_run_commands>`
      for ``eos``
    - :py:func:`napalm.nxos_api_rpc <salt.modules.napalm_mod.nxos_api_rpc>` for
      ``nxos``
    - :py:func:`napalm.netmiko_commands <salt.modules.napalm_mod.netmiko_commands>`
      for ``ios``, ``iosxr``, and ``nxos_ssh``

    command
        The RPC command to execute. This depends on the nature of the operating
        system.

    kwargs
        Key-value arguments to be sent to the underlying Execution function.

    The function capabilities are extensible in the user environment via the
    ``napalm_rpc_map`` configuration option / Pillar, e.g.,

    .. code-block:: yaml

        napalm_rpc_map:
          f5: napalm.netmiko_commands
          panos: panos.call

    The mapping above reads: when the NAPALM ``os`` Grain is ``f5``, then call
    ``napalm.netmiko_commands`` for RPC requests.

    By default, if the user does not specify any map, non-native NAPALM drivers
    will invoke the ``napalm.netmiko_commands`` Execution function.

    CLI Example:

    .. code-block:: bash

        salt '*' napalm.rpc 'show version'
        salt '*' napalm.rpc get-interfaces
    unapalm.junos_rpcujunosunapalm.pyeapi_run_commandsueosunapalm.nxos_api_rpcunxosu
config.getunapalm_rpc_mapuosunapalm.netmiko_commands(RKR;R9R-(RpR4tdefault_mapt
napalm_mapRU((s;/usr/lib/python2.7/site-packages/salt/modules/napalm_mod.pytrpcs.

urunningcC@s2tdd|�d|}tdd|d|�S(uK
    .. versionadded:: 2019.2.0

    Return the configuration lines that match the regular expressions from the
    ``regex`` argument. The configuration is read from the network device
    interrogated.

    regex
        The regular expression to match the configuration lines against.

    source: ``running``
        The configuration type to retrieve from the network device. Default:
        ``running``. Available options: ``running``, ``startup``, ``candidate``.

    CLI Example:

    .. code-block:: bash

        salt '*' napalm.config_find_lines '^interface Ethernet1\d'
    u
net.configtsourceuoutuciscoconfparse.find_linestconfigtregex(RK(R�R�t
config_txt((s;/usr/lib/python2.7/site-packages/salt/modules/napalm_mod.pytconfig_find_linesKscC@s8tdd|�d|}tdd|d|d|�S(ur
     .. versionadded:: 2019.2.0

    Return the configuration lines that match the regular expressions from the
    ``parent_regex`` argument, having child lines matching ``child_regex``.
    The configuration is read from the network device interrogated.

    .. note::
        This function is only available only when the underlying library
        `ciscoconfparse <http://www.pennington.net/py/ciscoconfparse/index.html>`_
        is installed. See
        :py:func:`ciscoconfparse module <salt.modules.ciscoconfparse_mod>` for
        more details.

    parent_regex
        The regular expression to match the parent configuration lines against.

    child_regex
        The regular expression to match the child configuration lines against.

    source: ``running``
        The configuration type to retrieve from the network device. Default:
        ``running``. Available options: ``running``, ``startup``, ``candidate``.

    CLI Example:

    .. code-block:: bash

        salt '*' napalm.config_lines_w_child '^interface' 'ip address'
        salt '*' napalm.config_lines_w_child '^interface' 'shutdown' source=candidate
    u
net.configR�uoutu!ciscoconfparse.find_lines_w_childR�tparent_regextchild_regex(RK(R�R�R�R�((s;/usr/lib/python2.7/site-packages/salt/modules/napalm_mod.pytconfig_lines_w_childfs!cC@s8tdd|�d|}tdd|d|d|�S(u�
      .. versionadded:: 2019.2.0

    Return the configuration lines that match the regular expressions from the
    ``parent_regex`` argument, having the child lines *not* matching
    ``child_regex``.
    The configuration is read from the network device interrogated.

    .. note::
        This function is only available only when the underlying library
        `ciscoconfparse <http://www.pennington.net/py/ciscoconfparse/index.html>`_
        is installed. See
        :py:func:`ciscoconfparse module <salt.modules.ciscoconfparse_mod>` for
        more details.

    parent_regex
        The regular expression to match the parent configuration lines against.

    child_regex
        The regular expression to match the child configuration lines against.

    source: ``running``
        The configuration type to retrieve from the network device. Default:
        ``running``. Available options: ``running``, ``startup``, ``candidate``.

    CLI Example:

    .. code-block:: bash

        salt '*' napalm.config_lines_wo_child '^interface' 'ip address'
        salt '*' napalm.config_lines_wo_child '^interface' 'shutdown' source=candidate
    u
net.configR�uoutu"ciscoconfparse.find_lines_wo_childR�R�R�(RK(R�R�R�R�((s;/usr/lib/python2.7/site-packages/salt/modules/napalm_mod.pytconfig_lines_wo_child�s"cC@s8tdd|�d|}tdd|d|d|�S(u�
    .. versionadded:: 2019.2.0

    Return a list of detailed matches, for the configuration blocks (parent-child
    relationship) whose parent respects the regular expressions configured via
    the ``parent_regex`` argument, and the child matches the ``child_regex``
    regular expression. The result is a list of dictionaries with the following
    keys:

    - ``match``: a boolean value that tells whether ``child_regex`` matched any
      children lines.
    - ``parent``: the parent line (as text).
    - ``child``: the child line (as text). If no child line matched, this field
      will be ``None``.

    .. note::
        This function is only available only when the underlying library
        `ciscoconfparse <http://www.pennington.net/py/ciscoconfparse/index.html>`_
        is installed. See
        :py:func:`ciscoconfparse module <salt.modules.ciscoconfparse_mod>` for
        more details.

    parent_regex
        The regular expression to match the parent configuration lines against.

    child_regex
        The regular expression to match the child configuration lines against.

    source: ``running``
        The configuration type to retrieve from the network device. Default:
        ``running``. Available options: ``running``, ``startup``, ``candidate``.

    CLI Example:

    .. code-block:: bash

        salt '*' napalm.config_filter_lines '^interface' 'ip address'
        salt '*' napalm.config_filter_lines '^interface' 'shutdown' source=candidate
    u
net.configR�uoutuciscoconfparse.filter_linesR�R�R�(RK(R�R�R�R�((s;/usr/lib/python2.7/site-packages/salt/modules/napalm_mod.pytconfig_filter_lines�s)cC@s,tdd|�d|}tdd|�S(ug
    .. versionadded:: 2019.2.0

    Transform Cisco IOS style configuration to structured Python dictionary.
    Depending on the value of the ``with_tags`` argument, this function may
    provide different views, valuable in different situations.

    source: ``running``
        The configuration type to retrieve from the network device. Default:
        ``running``. Available options: ``running``, ``startup``, ``candidate``.

    with_tags: ``False``
        Whether this function should return a detailed view, with tags.

    CLI Example:

    .. code-block:: bash

        salt '*' napalm.config_tree
    u
net.configR�uoutuiosconfig.treeR�(RK(R�t	with_tagsR�((s;/usr/lib/python2.7/site-packages/salt/modules/napalm_mod.pytconfig_tree�sc	C@s>tdd|�d|}tdd|d|d|d|�S(	u
    .. versionadded:: 2019.2.0

    Return the merge tree of the ``initial_config`` with the ``merge_config``,
    as a Python dictionary.

    source: ``running``
        The configuration type to retrieve from the network device. Default:
        ``running``. Available options: ``running``, ``startup``, ``candidate``.

    merge_config
        The config to be merged into the initial config, sent as text. This
        argument is ignored when ``merge_path`` is set.

    merge_path
        Absolute or remote path from where to load the merge configuration
        text. This argument allows any URI supported by
        :py:func:`cp.get_url <salt.modules.cp.get_url>`), e.g., ``salt://``,
        ``https://``, ``s3://``, ``ftp:/``, etc.

    saltenv: ``base``
        Salt fileserver environment from which to retrieve the file.
        Ignored if ``merge_path`` is not a ``salt://`` URL.

    CLI Example:

    .. code-block:: bash

        salt '*' napalm.config_merge_tree merge_path=salt://path/to/merge.cfg
    u
net.configR�uoutuiosconfig.merge_treetinitial_configtmerge_configt
merge_pathR�(RK(R�R�R�R�R�((s;/usr/lib/python2.7/site-packages/salt/modules/napalm_mod.pytconfig_merge_tree�s
"c	C@s>tdd|�d|}tdd|d|d|d|�S(	u7
    .. versionadded:: 2019.2.0

    Return the merge result of the configuration from ``source`` with the
    merge configuration, as plain text (without loading the config on the
    device).

    source: ``running``
        The configuration type to retrieve from the network device. Default:
        ``running``. Available options: ``running``, ``startup``, ``candidate``.

    merge_config
        The config to be merged into the initial config, sent as text. This
        argument is ignored when ``merge_path`` is set.

    merge_path
        Absolute or remote path from where to load the merge configuration
        text. This argument allows any URI supported by
        :py:func:`cp.get_url <salt.modules.cp.get_url>`), e.g., ``salt://``,
        ``https://``, ``s3://``, ``ftp:/``, etc.

    saltenv: ``base``
        Salt fileserver environment from which to retrieve the file.
        Ignored if ``merge_path`` is not a ``salt://`` URL.

    CLI Example:

    .. code-block:: bash

        salt '*' napalm.config_merge_text merge_path=salt://path/to/merge.cfg
    u
net.configR�uoutuiosconfig.merge_textR�R�R�R�(RK(R�R�R�R�R�((s;/usr/lib/python2.7/site-packages/salt/modules/napalm_mod.pytconfig_merge_text&s
#c	C@s>tdd|�d|}tdd|d|d|d|�S(	u1
    .. versionadded:: 2019.2.0

    Return the merge diff, as text, after merging the merge config into the
    configuration source requested (without loading the config on the device).

    source: ``running``
        The configuration type to retrieve from the network device. Default:
        ``running``. Available options: ``running``, ``startup``, ``candidate``.

    merge_config
        The config to be merged into the initial config, sent as text. This
        argument is ignored when ``merge_path`` is set.

    merge_path
        Absolute or remote path from where to load the merge configuration
        text. This argument allows any URI supported by
        :py:func:`cp.get_url <salt.modules.cp.get_url>`), e.g., ``salt://``,
        ``https://``, ``s3://``, ``ftp:/``, etc.

    saltenv: ``base``
        Salt fileserver environment from which to retrieve the file.
        Ignored if ``merge_path`` is not a ``salt://`` URL.

    CLI Example:

    .. code-block:: bash

        salt '*' napalm.config_merge_diff merge_path=salt://path/to/merge.cfg
    u
net.configR�uoutuiosconfig.merge_diffR�R�R�R�(RK(R�R�R�R�R�((s;/usr/lib/python2.7/site-packages/salt/modules/napalm_mod.pytconfig_merge_diffPs
"u	candidatec	C@sHtd�d}||}||}tdd|d|d|d|�S(u
    .. versionadded:: 2019.2.0

    Return the diff, as Python dictionary, between two different sources.
    The sources can be either specified using the ``source1`` and ``source2``
    arguments when retrieving from the managed network device.

    source1: ``candidate``
        The source from where to retrieve the configuration to be compared with.
        Available options: ``candidate``, ``running``, ``startup``. Default:
        ``candidate``.

    candidate_path
        Absolute or remote path from where to load the candidate configuration
        text. This argument allows any URI supported by
        :py:func:`cp.get_url <salt.modules.cp.get_url>`), e.g., ``salt://``,
        ``https://``, ``s3://``, ``ftp:/``, etc.

    source2: ``running``
        The source from where to retrieve the configuration to compare with.
        Available options: ``candidate``, ``running``, ``startup``. Default:
        ``running``.

    running_path
        Absolute or remote path from where to load the runing configuration
        text. This argument allows any URI supported by
        :py:func:`cp.get_url <salt.modules.cp.get_url>`), e.g., ``salt://``,
        ``https://``, ``s3://``, ``ftp:/``, etc.

    saltenv: ``base``
        Salt fileserver environment from which to retrieve the file.
        Ignored if ``candidate_path`` or ``running_path`` is not a
        ``salt://`` URL.

    CLI Example:

    .. code-block:: bash

        salt '*' napalm.config_diff_text
        salt '*' napalm.config_diff_text candidate_path=https://bit.ly/2mAdq7z
        # Would compare the running config with the configuration available at
        # https://bit.ly/2mAdq7z

    CLI Example:

    .. code-block:: bash

        salt '*' napalm.config_diff_tree
        salt '*' napalm.config_diff_tree running startup
    u
net.configuoutuiosconfig.diff_treetcandidate_configtcandidate_pathtrunning_configtrunning_path(RK(tsource1R�tsource2R�t
get_configt
candidate_cfgtrunning_cfg((s;/usr/lib/python2.7/site-packages/salt/modules/napalm_mod.pytconfig_diff_treeys6

c	C@sHtd�d}||}||}tdd|d|d|d|�S(u�
    .. versionadded:: 2019.2.0

    Return the diff, as text, between the two different configuration sources.
    The sources can be either specified using the ``source1`` and ``source2``
    arguments when retrieving from the managed network device.

    source1: ``candidate``
        The source from where to retrieve the configuration to be compared with.
        Available options: ``candidate``, ``running``, ``startup``. Default:
        ``candidate``.

    candidate_path
        Absolute or remote path from where to load the candidate configuration
        text. This argument allows any URI supported by
        :py:func:`cp.get_url <salt.modules.cp.get_url>`), e.g., ``salt://``,
        ``https://``, ``s3://``, ``ftp:/``, etc.

    source2: ``running``
        The source from where to retrieve the configuration to compare with.
        Available options: ``candidate``, ``running``, ``startup``. Default:
        ``running``.

    running_path
        Absolute or remote path from where to load the runing configuration
        text. This argument allows any URI supported by
        :py:func:`cp.get_url <salt.modules.cp.get_url>`), e.g., ``salt://``,
        ``https://``, ``s3://``, ``ftp:/``, etc.

    saltenv: ``base``
        Salt fileserver environment from which to retrieve the file.
        Ignored if ``candidate_path`` or ``running_path`` is not a
        ``salt://`` URL.

    CLI Example:

    .. code-block:: bash

        salt '*' napalm.config_diff_text
        salt '*' napalm.config_diff_text candidate_path=https://bit.ly/2mAdq7z
        # Would compare the running config with the configuration available at
        # https://bit.ly/2mAdq7z
    u
net.configuoutuiosconfig.diff_textR�R�R�R�(RK(R�R�R�R�R�R�R�((s;/usr/lib/python2.7/site-packages/salt/modules/napalm_mod.pytconfig_diff_text�s/

uc	K@sJt|�}|d|d<|j|�td|d|d|d||�S(u[
    .. versionadded:: 2019.2.0

    Transfer files and directories from remote network device to the localhost
    of the Minion.

    .. note::
        This function is only available only when the underlying library
        `scp <https://github.com/jbardin/scp.py>`_
        is installed. See
        :mod:`scp module <salt.modules.scp_mod>` for
        more details.

    remote_path
        Path to retrieve from remote host. Since this is evaluated by scp on the
        remote host, shell wildcards and environment variables may be used.

    recursive: ``False``
        Transfer files and directories recursively.

    preserve_times: ``False``
        Preserve ``mtime`` and ``atime`` of transferred files and directories.

    passphrase
        Used for decrypting private keys.

    pkey
        An optional private key to use for authentication.

    key_filename
        The filename, or list of filenames, of optional private key(s) and/or
        certificates to try for authentication.

    timeout
        An optional timeout (in seconds) for the TCP connect.

    socket_timeout: ``10``
        The channel socket timeout in seconds.

    buff_size: ``16384``
        The size of the SCP send buffer.

    allow_agent: ``True``
        Set to ``False`` to disable connecting to the SSH agent.

    look_for_keys: ``True``
        Set to ``False`` to disable searching for discoverable private key
        files in ``~/.ssh/``

    banner_timeout
        An optional timeout (in seconds) to wait for the SSH banner to be
        presented.

    auth_timeout
        An optional timeout (in seconds) to wait for an authentication
        response.

    auto_add_policy: ``False``
        Automatically add the host to the ``known_hosts``.

    CLI Example:

    .. code-block:: bash

        salt '*' napalm.scp_get /var/tmp/file /tmp/file auto_add_policy=True
    uhostuhostnameuscp.gett
local_patht	recursivetpreserve_times(RR;RK(tremote_pathR�R�R�R4t	conn_args((s;/usr/lib/python2.7/site-packages/salt/modules/napalm_mod.pytscp_get�sH

cK@sPt|�}|d|d<|j|�td|d|d|d|d||�S(u�
    .. versionadded:: 2019.2.0

    Transfer files and directories to remote network device.

    .. note::
        This function is only available only when the underlying library
        `scp <https://github.com/jbardin/scp.py>`_
        is installed. See
        :mod:`scp module <salt.modules.scp_mod>` for
        more details.

    files
        A single path or a list of paths to be transferred.

    remote_path
        The path on the remote device where to store the files.

    recursive: ``True``
        Transfer files and directories recursively.

    preserve_times: ``False``
        Preserve ``mtime`` and ``atime`` of transferred files and directories.

    saltenv: ``base``
        The name of the Salt environment. Ignored when ``files`` is not a
        ``salt://`` URL.

    hostname
        The hostname of the remote device.

    port: ``22``
        The port of the remote device.

    username
        The username required for SSH authentication on the device.

    password
        Used for password authentication. It is also used for private key
        decryption if ``passphrase`` is not given.

    passphrase
        Used for decrypting private keys.

    pkey
        An optional private key to use for authentication.

    key_filename
        The filename, or list of filenames, of optional private key(s) and/or
        certificates to try for authentication.

    timeout
        An optional timeout (in seconds) for the TCP connect.

    socket_timeout: ``10``
        The channel socket timeout in seconds.

    buff_size: ``16384``
        The size of the SCP send buffer.

    allow_agent: ``True``
        Set to ``False`` to disable connecting to the SSH agent.

    look_for_keys: ``True``
        Set to ``False`` to disable searching for discoverable private key
        files in ``~/.ssh/``

    banner_timeout
        An optional timeout (in seconds) to wait for the SSH banner to be
        presented.

    auth_timeout
        An optional timeout (in seconds) to wait for an authentication
        response.

    auto_add_policy: ``False``
        Automatically add the host to the ``known_hosts``.

    CLI Example:

    .. code-block:: bash

        salt '*' napalm.scp_put /path/to/file /var/tmp/file auto_add_policy=True
    uhostuhostnameuscp.putR�R�R�R�(RR;RK(tfilesR�R�R�R�R4R�((s;/usr/lib/python2.7/site-packages/salt/modules/napalm_mod.pytscp_putBs[

(Pt__doc__t
__future__RRRRtloggingtsalt.utils.napalmRRtsalt.extRtsalt.utils.decoratorsRtsalt.exceptionsRtnetmikoRR1RQtImportErrorR/tnapalm.base.netmiko_helpersR
RtjxmleaseR0tciscoconfparsetHAS_CISCOCONFPARSEtscptHAS_SCPR
t__proxyenabled__t	getLoggerRR7RR'R,R2R5R@R3R.RORRXRYR[RcReR\RiRjRkRnRqRuRwRyR{R|R}R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�(((s;/usr/lib/python2.7/site-packages/salt/modules/napalm_mod.pyt<module>	s�














			(		9 �G"2G;1&$*	<:9		&	'	.&'&<5	N	

Zerion Mini Shell 1.0