%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /usr/lib/python2.7/site-packages/salt/daemons/
Upload File :
Create Path :
Current File : //usr/lib/python2.7/site-packages/salt/daemons/__init__.pyc

�
���^c@@s%dZddlmZmZmZddlZy ddlmZmZm	Z	Wn-e
k
r}ddlmZmZm	Z	nXddlmZddl
Z
ddlmZddlmZe
je�Zejddkr�ejejfe_nd	�Zd
�Zdded�Zd
�ZdS(us
The daemons package is used to store implementations of the Salt Master and
Minion enabling different transports.
i(tabsolute_importtprint_functiontunicode_literalsN(tIterabletSequencetMapping(t
namedtuple(tOrderedDict(tsixicC@s t|tj�ot|t�S(u�
    Returns True if obj is non-string iterable, False otherwise

    Future proof way that is compatible with both Python3 and Python2 to check
    for non string iterables.
    Assumes in Python3 that, basestring = (str, bytes)
    (t
isinstanceRtstring_typesR(tobj((s9/usr/lib/python2.7/site-packages/salt/daemons/__init__.pytis_non_string_iterablescC@s t|tj�ot|t�S(u�
    Returns True if obj is non-string sequence, False otherwise

    Future proof way that is compatible with both Python3 and Python2 to check
    for non string sequences.
    Assumes in Python3 that, basestring = (str, bytes)
    (R	RR
R(R((s9/usr/lib/python2.7/site-packages/salt/daemons/__init__.pytis_non_string_sequence(sumastercC@s�|d	k	r|j|�}n|jd�}yt|�}Wntk
rVd	}nX|sd}tj|�t|��n|j|g�}|s�dj|�}tj|�|r�t|��q�ng}t|�r�x/|D]�}t|t	�r<|jdd�}	|jdd�}
|j
td|	d|
��q�t|tj
�r�|}	d}
|j
td|	d|
��q�q�Wn�t|t	�r�|jdd�}	|jdd�}
|j
td|	d|
��n=t|tj
�r|}	d}
|j
td|	d|
��ng}xq|D]i}|d}	|d}
|	rt|	|�}	|	sWqnt|
|�}
|j
td|	d|
��qqW|S(
uR

    Parses opts and generates a list of master (host,port) addresses.
    By default looks for list of masters in opts['master'] and uses
    opts['master_port'] as the default port when otherwise not provided.

    To use this function to generate the cluster master list then
    call with masters='cluster_masters' and port='raet_port' on a master
    and
    call with masters='cluster_masters' on a minion

    Use the opts key given by masters for the masters list, default is 'master'
    If parameter port is not None then uses the default port given by port


    Returns a list of host address dicts of the form

    [
        {
            'external': (host,port),
            'internal': (host, port)
        },
        ...

    ]

    When only one address is provided it is assigned to the external address field
    When not provided the internal address field is set to None.

    For a given master the syntax options are as follows:

    hostname [port]

    external: hostname [port]
    [internal: hostaddress [port]]

    Where the hostname string could be either an FQDN or host address
    in dotted number notation.
        master.example.com
        10.0.2.110

    And the hostadress is in dotted number notation

    The space delimited port is optional and if not provided a default is used.
    The internal address is optional and if not provided is set to None

    Examples showing the YAML in /etc/salt/master  conf file:

    1) Single host name string (fqdn or dotted address)
        a)
            master: me.example.com
        b)
            master: localhost
        c)
            master: 10.0.2.205

    2) Single host name string with port
        a)
            master: me.example.com 4506
        b)
            master: 10.0.2.205 4510

    3) Single master with external and optional internal host addresses for nat
       in a dict

        master:
            external: me.example.com 4506
            internal: 10.0.2.100 4506


    3) One or host host names with optional ports in a list

        master:
            - me.example.com 4506
            - you.example.com 4510
            - 8.8.8.8
            - they.example.com 4506
            - 8.8.4.4  4506

    4) One or more host name with external and optional internal host addresses
       for Nat  in a list of dicts

        master:
            -
                external: me.example.com 4506
                internal: 10.0.2.100 4506

            -
                external: you.example.com 4506
                internal: 10.0.2.101 4506

            -
                external: we.example.com

            - they.example.com
    umaster_portu'Invalid or missing opts['master_port'].uInvalid or missing opts['{0}'].uexternaluuinternaltexternaltinternalN(tNonetgettintt
ValueErrortlogterrortformatR
R	RtappendtdictRR
tparse_hostname(toptstmasterstporttraise_if_emptytmaster_porttemsgtentriesthostagestentryRRthostage((s9/usr/lib/python2.7/site-packages/salt/daemons/__init__.pytextract_masters3s^`




&


#cC@s�y�|j�jd�\}}}|s+dS|s�|}|}|jd�dkr�|jd�\}}}|stdS|s�|}q�q�n|j�}yt|�}Wntk
r�dSXWntk
r�dSX||fS(ue
    Parse hostname string and return a tuple of (host, port)
    If port missing in hostname string then use default_port
    If anything is not a valid then return None

    hostname should contain a host and an option space delimited port
    host port

    As an attempt to prevent foolish mistakes the parser also tries to identify
    the port when it is colon delimited not space delimited. As in host:port.
    This is problematic since IPV6 addresses may have colons in them.
    Consequently the use of colon delimited ports is strongly discouraged.
    An ipv6 address must have at least 2 colons.
    u u:iN(tstript
rpartitionRtcountRRtAttributeError(thostnametdefault_portthosttsepR((s9/usr/lib/python2.7/site-packages/salt/daemons/__init__.pyR�s*
	
(t__doc__t
__future__RRRtsystcollections.abcRRRtImportErrortcollectionsRtloggingtsalt.utils.odictRtsalt.extRt	getLoggert__name__Rtversion_infot	text_typetbinary_typeR
RR
RtTrueR$R(((s9/usr/lib/python2.7/site-packages/salt/daemons/__init__.pyt<module>s" 
 		�

Zerion Mini Shell 1.0