File: //opt/saltstack/salt/lib/python3.10/site-packages/salt/states/__pycache__/netntp.cpython-310.pyc
o
�N�g�1 � @ s� d Z ddlZddlZzddlmZ ddlmZ dZW n e y% dZY nw zddl
ZdZW n e y9 dZY nw dZ
e�e�Zdd � Zd
d� Zdd
� Zdd� Zdd� Zdd� Zdd� Zdd� Zdd� Zdd� Zdd� Zd#dd �Zd$d!d"�ZdS )%aJ
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 <ping@mirceaulinic.net> & 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/
� N)� IPAddress)�AddrFormatErrorTFZnetntpc C s t jj�ttt�S )z_
NAPALM library must be installed for this module to work and run in a (proxy) minion.
)�salt�utilsZnapalmZvirtual�__opts__�__virtualname__�__file__� r r �F/opt/saltstack/salt/lib/python3.10/site-packages/salt/states/netntp.py�__virtual__@ s r c C s | i ddd�}|S )NF� )�name�changes�result�commentr )r
�retr r r
�_default_retL s r c C �
t d � S )zRetrieves configured NTP peersz ntp.peers��__salt__r r r r
�_retrieve_ntp_peersR �
r c C r )z Retrieves configured NTP serverszntp.serversr r r r r
�_retrieve_ntp_serversX r r c C s� t | t�sdS | D ]
}t |t�s dS q tsdS g }| D ]?}z|�tt|��� W q ty[ ts4Y qg }ztj �
|�}W n tj jyL Y Y dS w |D ] }|�t|�� qOY qw |} dS )z_Checks whether the input is a valid list of peers and transforms domain names into IP AddressesFT)�
isinstance�list�str�HAS_NETADDR�appendr r �HAS_DNSRESOLVER�dnsZresolver�queryZNoAnswer)�peersZpeerZ
ip_only_peersZ dns_replyZdns_ipr r r
�_check^ s8
��
���r"