%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /usr/lib/python2.7/site-packages/salt/states/
Upload File :
Create Path :
Current File : //usr/lib/python2.7/site-packages/salt/states/netntp.pyo

�
���^c@@sUdZddlmZmZmZddlZddlmZddlZ	y*ddl
mZddlm
Z
eZWnek
r�eZnXyddlZeZWnek
r�eZnXdZeje�Zd�Zd	�Zd
�Zd�Zd�Zd
�Zd�Zd�Z d�Z!d�Z"d�Z#dd�Z$ddd�Z&dS(uI
Network NTP
===========

.. versionadded: 2016.11.0

Manage the configuration of NTP peers and servers on the network devices through the NAPALM proxy.

:codeauthor: Mircea Ulinic <mircea@cloudflare.com> & Jerome Fleury <jf@cloudflare.com>
:maturity:   new
:depends:    napalm
:platform:   unix

Dependencies
------------
- Requires netaddr_ to be installed: `pip install netaddr` to check if IP
  Addresses are correctly specified
- Requires dnspython_ to be installed: `pip install dnspython` to resolve the
  nameserver entities (in case the user does not configure the peers/servers
  using their IP addresses)
- :mod:`NAPALM proxy minion <salt.proxy.napalm>`
- :mod:`NTP operational and configuration management module <salt.modules.napalm_ntp>`

.. _netaddr: https://pythonhosted.org/netaddr/
.. _dnspython: http://www.dnspython.org/
i(tabsolute_importtprint_functiontunicode_literalsN(tsix(t	IPAddress(tAddrFormatErrorunetntpcC@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__(((s6/usr/lib/python2.7/site-packages/salt/states/netntp.pyt__virtual__EscC@s&i|d6id6td6dd6}|S(Nunameuchangesuresultuucomment(tFalse(tnametret((s6/usr/lib/python2.7/site-packages/salt/states/netntp.pyt_default_retPs
cC@std�S(uRetrieves configured NTP peersu	ntp.peers(t__salt__(((s6/usr/lib/python2.7/site-packages/salt/states/netntp.pyt_retrieve_ntp_peers[scC@std�S(u Retrieves configured NTP serversuntp.servers(R(((s6/usr/lib/python2.7/site-packages/salt/states/netntp.pyt_retrieve_ntp_serversbscC@st|t�stSx$|D]}t|tj�stSqWtsDtSg}x�|D]�}y |jtjt	|���WqQt
k
r�ts�qQng}ytj
j|�}Wntj
jk
r�tSXx(|D]}|jtj|��q�WqQXqQW|}tS(u_Checks whether the input is a valid list of peers and transforms domain names into IP Addresses(t
isinstancetlistRRtstring_typestHAS_NETADDRtTruetappendt	text_typeRRtHAS_DNSRESOLVERtdnstresolvertquerytNoAnswer(tpeerstpeert
ip_only_peerst	dns_replytdns_ip((s6/usr/lib/python2.7/site-packages/salt/states/netntp.pyt_checkis.

 

"cC@sg|D]}|r|^qS(N((tlsttelem((s6/usr/lib/python2.7/site-packages/salt/states/netntp.pyt_clean�scC@stddt|�S(uCalls ntp.set_peers.u
ntp.set_peerstcommit(RR(R!((s6/usr/lib/python2.7/site-packages/salt/states/netntp.pyt_set_ntp_peers�scC@stddt|�S(uCalls ntp.set_servers.untp.set_serversR*(RR(tservers((s6/usr/lib/python2.7/site-packages/salt/states/netntp.pyt_set_ntp_servers�scC@stddt|�S(uCalls ntp.delete_peers.untp.delete_peersR*(RR(R!((s6/usr/lib/python2.7/site-packages/salt/states/netntp.pyt_delete_ntp_peers�scC@stddt|�S(uCalls ntp.delete_servers.untp.delete_serversR*(RR(R,((s6/usr/lib/python2.7/site-packages/salt/states/netntp.pyt_delete_ntp_servers�scG@s5|tt�j��kr1t�j|�|�SdS(N(RtglobalstkeystgettNone(Rtkargs((s6/usr/lib/python2.7/site-packages/salt/states/netntp.pyt	_exec_fun�supeerscC@s�t|�}ddg}||kr(|Sdjd|�}t|�}|jdt�tkr�djd|d|jd��|d<|St|jd	i��}t|�}||kr�|jid
jd|�d6td6�|St||�}	t||�}
t	|	�}	t	|
�}
i}|	r3|	|d<n|
rF|
|d<n|ji|d
6�t
dtkr�|jidd6dd6�|St}t}
d}|	rdjd|�}t||	�}|jd�r�t}qt}
|djd|d|jd��7}n|
rudjd|�}t||
�}|jd�rGt}qut}
|djd|d|jd��7}n|ji|
d6|d6|d6�|S(Nupeersuserversu_retrieve_ntp_{what}twhaturesultu4Cannot retrieve NTP {what} from the device: {reason}treasonucommentuoutu(NTP {what} already configured as needed.uaddeduremoveduchangesutestu,Testing mode: configuration was not changed!uu_set_ntp_{what}uCannot set NTP {what}: {reason}u_delete_ntp_{what}u"Cannot remove NTP {what}: {reason}usuccessfully_changeduexpected_config_change(RtformatR5R2RtsettupdateRRR)R
R3(tfun_namet
peers_serversRt_rett_optionst
_retrieve_funtntp_list_outputtconfigured_ntp_listtdesired_ntp_listtlist_to_settlist_to_deletetchangestexpected_config_changetsuccessfully_changedtcommentt_set_funt_sett_delete_funt_removed((s6/usr/lib/python2.7/site-packages/salt/states/netntp.pyt_check_diff_and_configure�sz			


					c
C@s�t|�}|jdt�}|jdd�}|jdi�}t|t�p]t|t�sd|St|t�r�t|�r�d|d<|St|t�r�t|�r�d|d<|St}t}t|t�rft||dd�}	|	jd	t�}|	jd
t�}|o!|	jdt�}|d|	jdd�7}|	jdi�}
|
rf|
|d<qfnt|t�rt||dd�}|p�|jd	t�}|o�|jd
t�}|o�|jdt�}|d|jdd�7}|jdi�}|r||d<qn|ji|d6�|p1|sS|jitd6d
d6�|St	dtkr�|jidd6dd6�|S|r�td�\}
}|
o�|}||7}n|ji|d6|d6�|S(u�
    Manages the configuration of NTP peers and servers on the device, as specified in the state SLS file.
    NTP entities not specified in these lists will be removed whilst entities not configured on the device will be set.

    SLS Example:

    .. code-block:: yaml

        netntp_example:
            netntp.managed:
                 - peers:
                    - 192.168.0.1
                    - 172.17.17.1
                 - servers:
                    - 24.124.0.251
                    - 138.236.128.36

    Output example:

    .. code-block:: python

        {
            'edge01.nrt04': {
                'netntp_|-netntp_example_|-netntp_example_|-managed': {
                    'comment': 'NTP servers already configured as needed.',
                    'name': 'netntp_example',
                    'start_time': '12:45:24.056659',
                    'duration': 2938.857,
                    'changes': {
                        'peers': {
                            'removed': [
                                '192.168.0.2',
                                '192.168.0.3'
                            ],
                            'added': [
                                '192.168.0.1',
                                '172.17.17.1'
                            ]
                        }
                    },
                    'result': None
                }
            }
        }
    uresultucommentuuchangesu>NTP peers must be a list of valid IP Addresses or Domain Namesu@NTP servers must be a list of valid IP Addresses or Domain NamesRupeersuexpected_config_changeusuccessfully_changedu
userversuDevice configured properly.utestuBThis is in testing mode, the device configuration was not changed!unet.config_controlN(RR2RRRR&RRMR:R
R3R(RR!R,RtresultRHRERGRFt
_peers_rett_changed_peerst_servers_rett_changed_serverst
config_resulttconfig_comment((s6/usr/lib/python2.7/site-packages/salt/states/netntp.pytmanagedsh0

			
	('t__doc__t
__future__RRRtloggingtsalt.extRtsalt.utils.napalmRtnetaddrRtnetaddr.coreRRRtImportErrorRtdns.resolverRRRt	getLoggert__name__tlogR
RRRR&R)R+R-R.R/R5RMR3RU(((s6/usr/lib/python2.7/site-packages/salt/states/netntp.pyt<module>s<





					(						e

Zerion Mini Shell 1.0