コード例 #1
0
ファイル: minionutil.py プロジェクト: wrtcoder/autopi-core
def master_status(master=None, **kwargs):
    """
    Get status of connection to master.
    Implementation originates from the 'status.master' command but without the logic to trigger events.
    """

    ret = {"online": False, "ip": None}

    if master == None:
        master = __salt__["config.get"]("master", default="hub")

    master_ips = None
    if master:
        master_ips = _host_to_ips(master)

    if not master_ips:
        return ret

    port = __salt__["config.get"]("publish_port", default=4505)
    connected_ips = _remote_port_tcp(port)

    # Get connection status for master
    for master_ip in master_ips:
        if master_ip in connected_ips:
            ret["online"] = True
            ret["ip"] = master_ip

            break

    return ret
コード例 #2
0
ファイル: status.py プロジェクト: DavideyLee/salt
def master(master_ip=None, connected=True):
    '''
    .. versionadded:: 2014.7.0

    Fire an event if the minion gets disconnected from its master. This
    function is meant to be run via a scheduled job from the minion

    CLI Example:

    .. code-block:: bash

        salt '*' status.master
    '''

    # the default publishing port
    port = 4505

    if __salt__['config.get']('publish_port') != '':
        port = int(__salt__['config.get']('publish_port'))

    ips = _remote_port_tcp(port)

    if connected:
        if master_ip not in ips:
            event = salt.utils.event.get_event('minion', opts=__opts__, listen=False)
            event.fire_event({'master': master_ip}, '__master_disconnected')
    else:
        if master_ip in ips:
            event = salt.utils.event.get_event('minion', opts=__opts__, listen=False)
            event.fire_event({'master': master_ip}, '__master_connected')
コード例 #3
0
def master(master_ip=None, connected=True):
    '''
    .. versionadded:: 2014.7.0

    Fire an event if the minion gets disconnected from its master. This
    function is meant to be run via a scheduled job from the minion

    CLI Example:

    .. code-block:: bash

        salt '*' status.master
    '''

    # the default publishing port
    port = 4505

    if __salt__['config.get']('publish_port') != '':
        port = int(__salt__['config.get']('publish_port'))

    ips = _remote_port_tcp(port)

    if connected:
        if master_ip not in ips:
            event = salt.utils.event.get_event('minion',
                                               opts=__opts__,
                                               listen=False)
            event.fire_event({'master': master_ip}, '__master_disconnected')
    else:
        if master_ip in ips:
            event = salt.utils.event.get_event('minion',
                                               opts=__opts__,
                                               listen=False)
            event.fire_event({'master': master_ip}, '__master_connected')
コード例 #4
0
ファイル: minion.py プロジェクト: bryson/salt
def connected_masters():
    '''
    Return current connected masters
    '''
    # default port
    port = 4505

    config_port = __salt__['config.get']('publish_port')
    if config_port:
        port = config_port

    connected_masters_ips = _remote_port_tcp(port)

    return connected_masters_ips
コード例 #5
0
def connected_masters():
    '''
    Return current connected masters
    '''
    # default port
    port = 4505

    config_port = __salt__['config.get']('publish_port')
    if config_port:
        port = config_port

    connected_masters_ips = _remote_port_tcp(port)

    return connected_masters_ips
コード例 #6
0
def master(master=None, connected=True):
    '''
    .. versionadded:: 2014.7.0

    Return the connection status with master. Fire an event if the
    connection to master is not as expected. This function is meant to be
    run via a scheduled job from the minion. If master_ip is an FQDN/Hostname,
    it must be resolvable to a valid IPv4 address.

    CLI Example:

    .. code-block:: bash

        salt '*' status.master
    '''

    # the default publishing port
    port = 4505
    master_ips = None

    if __salt__['config.get']('publish_port') != '':
        port = int(__salt__['config.get']('publish_port'))

    # Check if we have FQDN/hostname defined as master
    # address and try resolving it first. _remote_port_tcp
    # only works with IP-addresses.
    if master is not None:
        master_ips = _host_to_ips(master)

    master_connection_status = False
    if master_ips:
        ips = _remote_port_tcp(port)
        for master_ip in master_ips:
            if master_ip in ips:
                master_connection_status = True
                break

    if master_connection_status is not connected:
        event = salt.utils.event.get_event('minion',
                                           opts=__opts__,
                                           listen=False)
        if master_connection_status:
            event.fire_event({'master': master},
                             salt.minion.master_event(type='connected'))
        else:
            event.fire_event({'master': master},
                             salt.minion.master_event(type='disconnected'))

    return master_connection_status
コード例 #7
0
ファイル: status.py プロジェクト: joshbenner/salt
def master(master=None, connected=True):
    '''
    .. versionadded:: 2014.7.0

    Return the connection status with master. Fire an event if the
    connection to master is not as expected. This function is meant to be
    run via a scheduled job from the minion. If master_ip is an FQDN/Hostname,
    it must be resolvable to a valid IPv4 address.

    CLI Example:

    .. code-block:: bash

        salt '*' status.master
    '''
    master_ips = None

    if master:
        master_ips = _host_to_ips(master)

    if not master_ips:
        return

    master_connection_status = False
    port = __salt__['config.get']('publish_port', default=4505)
    connected_ips = _remote_port_tcp(port)

    # Get connection status for master
    for master_ip in master_ips:
        if master_ip in connected_ips:
            master_connection_status = True
            break

    # Connection to master is not as expected
    if master_connection_status is not connected:
        event = salt.utils.event.get_event('minion',
                                           opts=__opts__,
                                           listen=False)
        if master_connection_status:
            event.fire_event({'master': master},
                             salt.minion.master_event(type='connected'))
        else:
            event.fire_event({'master': master},
                             salt.minion.master_event(type='disconnected'))

    return master_connection_status
コード例 #8
0
def master(master=None, connected=True):
    '''
    .. versionadded:: 2014.7.0

    Fire an event if the minion gets disconnected from its master. This
    function is meant to be run via a scheduled job from the minion. If
    master_ip is an FQDN/Hostname, it must be resolvable to a valid IPv4
    address.

    CLI Example:

    .. code-block:: bash

        salt '*' status.master
    '''

    # the default publishing port
    port = 4505
    master_ip = None

    if __salt__['config.get']('publish_port') != '':
        port = int(__salt__['config.get']('publish_port'))

    # Check if we have FQDN/hostname defined as master
    # address and try resolving it first. _remote_port_tcp
    # only works with IP-addresses.
    if master is not None:
        tmp_ip = _host_to_ip(master)
        if tmp_ip is not None:
            master_ip = tmp_ip

    ips = _remote_port_tcp(port)

    if connected:
        if master_ip not in ips:
            event = salt.utils.event.get_event('minion',
                                               opts=__opts__,
                                               listen=False)
            event.fire_event({'master': master}, '__master_disconnected')
    else:
        if master_ip in ips:
            event = salt.utils.event.get_event('minion',
                                               opts=__opts__,
                                               listen=False)
            event.fire_event({'master': master}, '__master_connected')
コード例 #9
0
ファイル: status.py プロジェクト: qzchenwl/saltstack-verify
def master(master=None, connected=True):
    '''
    .. versionadded:: 2014.7.0

    Fire an event if the minion gets disconnected from its master. This
    function is meant to be run via a scheduled job from the minion. If
    master_ip is an FQDN/Hostname, is must be resolvable to a valid IPv4
    address.

    CLI Example:

    .. code-block:: bash

        salt '*' status.master
    '''

    # the default publishing port
    port = 4505
    master_ip = None

    if __salt__['config.get']('publish_port') != '':
        port = int(__salt__['config.get']('publish_port'))

    # Check if we have FQDN/hostname defined as master
    # address and try resolving it first. _remote_port_tcp
    # only works with IP-addresses.
    if master is not None:
        tmp_ip = _host_to_ip(master)
        if tmp_ip is not None:
            master_ip = tmp_ip

    ips = _remote_port_tcp(port)

    if connected:
        if master_ip not in ips:
            event = salt.utils.event.get_event('minion', opts=__opts__, listen=False)
            event.fire_event({'master': master}, '__master_disconnected')
    else:
        if master_ip in ips:
            event = salt.utils.event.get_event('minion', opts=__opts__, listen=False)
            event.fire_event({'master': master}, '__master_connected')
コード例 #10
0
def master():
    '''
    .. versionadded:: Helium

    Fire an event if the minion gets disconnected from its master. This
    function is meant to be run via a scheduled job from the minion

    CLI Example:

    .. code-block:: bash

        salt '*' status.master
    '''
    ip = __salt__['config.option']('master')
    port = int(__salt__['config.option']('publish_port'))
    ips = _remote_port_tcp(port)

    if ip not in ips:
        event = salt.utils.event.get_event('minion',
                                           opts=__opts__,
                                           listen=False)
        event.fire_event({'master': ip}, '__master_disconnected')