%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/launchctl_service.pyo

�
���^c@@s�dZddlmZmZmZddlZddlZddlZddlZddl	Z	ddl
ZddlZddl
ZddlZddlZddljjZddlmZddlmZeje�ZdZead�Zd�Zej d	��Z!d
�Z"d�Z#dd�Z%d
�Z&d�Z'dd�Z(dd�Z)dd�Z*dd�Z+dd�Z,dd�Z-dS(uq
Module for the management of MacOS systems that use launchd/launchctl

.. important::
    If you feel that Salt should be using this module to manage services on a
    minion, and it is using a different module (or gives an error similar to
    *'service.start' is not available*), see :ref:`here
    <module-provider-override>`.

:depends:   - plistlib Python module
i(tabsolute_importtprint_functiontunicode_literalsN(tLooseVersion(tsixuservicecC@s�tjjj�stdfStjjd�s8tdfStt	d�td�kr^tdfStt	d�td�kr�ta
ntS(u
    Only work on MacOS
    uGFailed to load the mac_service module:
Only available on macOS systems.u/bin/launchctluRFailed to load the mac_service module:
Required binary not found: "/bin/launchctl"u	osreleaseu10.11uWFailed to load the mac_service module:
Not available on El Capitan, uses mac_service.pyu10.10(tsalttutilstplatformt	is_darwintFalsetostpathtexistst
_LooseVersiont
__grains__tBEFORE_YOSEMITEt__virtualname__(((sB/usr/lib/python2.7/site-packages/salt/modules/launchctl_service.pyt__virtual__)s


	cC@sddddgS(u3
    Paths where launchd services can be found
    u/Library/LaunchAgentsu/Library/LaunchDaemonsu/System/Library/LaunchAgentsu/System/Library/LaunchDaemons((((sB/usr/lib/python2.7/site-packages/salt/modules/launchctl_service.pyt_launchd_paths@sc
C@s�t�}x~t�D]s}xjtjjj|�D]S\}}}xA|D]9}tjj||�}tjj|�}tjj	|�s�qEny>tjj
j|��#tj
tjjj|��}WdQXWnstk
r=dj|�}	td|	dt�d}
tjrtj|
�}q>tjtjjj|
��}nXy,i|d6|d6|d6||jj�<WqEtk
r}qEXqEWq/WqW|S(	uE
    Return a dictionary of all available services on the system
    Nu+/usr/bin/plutil -convert xml1 -o - -- "{0}"ucmd.run_alltpython_shellustdoutufilenameu	file_pathuplist(tdictRRRRtos_walkR
tjointrealpathRtfilestfopentplistlibt	readPlisttdatatdecodet	Exceptiontformatt__salt__R	RtPY2treadPlistFromStringtreadPlistFromByteststringutilstto_bytestLabeltlowertAttributeError(tavailable_servicest
launch_dirtroottdirsRtfilenamet	file_patht	true_pathtplisttcmdt	plist_xml((sB/usr/lib/python2.7/site-packages/salt/modules/launchctl_service.pyt_available_servicesLs:	%
"
		
cC@s�t�}|j�}||kr)||Sxctj|�D]R}|dj�|krY|Stjj|d�\}}|j�|kr9|Sq9WtS(uJ
    Return the service info for a service by label, filename or path
    u	file_pathufilename(R3R'Rt
itervaluesR
RtsplitextR	(tnametservicestservicetbasenametext((sB/usr/lib/python2.7/site-packages/salt/modules/launchctl_service.pyt_service_by_name�s	cC@s�d}gtd|�j�D]}|jd�s|^q}g|D]}|jd�d^qE}tt�j��}tt||��S(uu
    Return all installed services

    CLI Example:

    .. code-block:: bash

        salt '*' service.get_all
    ulaunchctl listucmd.runuPIDu	i(	R t
splitlinest
startswithtsplittlistR3tkeystsortedtset(R1tlinet
service_linestservice_labels_from_listtservice_labels_from_services((sB/usr/lib/python2.7/site-packages/salt/modules/launchctl_service.pytget_all�s
&cC@sYtrdj|�}ndj|�}td|dtd|�}|drQdS|dS(Nulaunchctl list -x {0}ulaunchctl list {0}ucmd.run_allRtrunasustderrustdout(RRR R	tNone(t	job_labelRHR1tlaunchctl_data((sB/usr/lib/python2.7/site-packages/salt/modules/launchctl_service.pyt_get_launchctl_data�s
	
cC@st|�rtStS(u�
    Check that the given service is available.

    CLI Example:

    .. code-block:: bash

        salt '*' service.available com.openssh.sshd
    (R;tTrueR	(RJ((sB/usr/lib/python2.7/site-packages/salt/modules/launchctl_service.pyt	available�s
cC@st|�rtStS(u�
    The inverse of service.available
    Check that the given service is not available.

    CLI Example:

    .. code-block:: bash

        salt '*' service.missing com.openssh.sshd
    (R;R	RM(RJ((sB/usr/lib/python2.7/site-packages/salt/modules/launchctl_service.pytmissing�sc
C@s(ttjd|��}|r6tjt�|�}n	|g}i}x�|D]�}t|�}|rr|ddn|}t|d|�}|rtr�t	j
r�dtj|�k||<qdt
tj|��k||<qd}	tj|	|�r�tnt||<qLt||<qLW|r |S||S(uJ
    Return the status for a service via systemd.
    If the name contains globbing, a dict mapping service name to True/False
    values is returned.

    .. versionchanged:: 2018.3.0
        The service name can now be a glob (e.g. ``salt*``)

    Args:
        name (str): The name of the service to check
        runas (str): User to run launchctl commands

    Returns:
        bool: True if running, False otherwise
        dict: Maps service name to True if running, False otherwise

    CLI Example:

    .. code-block:: bash

        salt '*' service.status <service name>
    u\*|\?|\[.+\]uplistuLabelRHuPIDu"PID" = [0-9]+;(tbooltretsearchtfnmatchtfilterRGR;RLRRtPY3RtloadsRR"RMR	(
R6RHtcontains_globbingR7tresultsR8tservice_infotlookup_nameRKtpattern((sB/usr/lib/python2.7/site-packages/salt/modules/launchctl_service.pytstatus�s(	
	"%cC@sJt|�}|rFdj|dd|�}td|d|dt�StS(u�
    Stop the specified service

    CLI Example:

    .. code-block:: bash

        salt '*' service.stop <service label>
        salt '*' service.stop org.ntp.ntpd
        salt '*' service.stop /System/Library/LaunchDaemons/org.ntp.ntpd.plist
    ulaunchctl unload -w {0}u	file_pathRHucmd.retcodeR(R;RR R	(RJRHR8R1((sB/usr/lib/python2.7/site-packages/salt/modules/launchctl_service.pytstops	cC@sJt|�}|rFdj|dd|�}td|d|dt�StS(u�
    Start the specified service

    CLI Example:

    .. code-block:: bash

        salt '*' service.start <service label>
        salt '*' service.start org.ntp.ntpd
        salt '*' service.start /System/Library/LaunchDaemons/org.ntp.ntpd.plist
    ulaunchctl load -w {0}u	file_pathRHucmd.retcodeR(R;RR R	(RJRHR8R1((sB/usr/lib/python2.7/site-packages/salt/modules/launchctl_service.pytstart's
cC@s t|d|�t|d|�S(u�
    Restart the named service

    CLI Example:

    .. code-block:: bash

        salt '*' service.restart <service label>
    RH(R]R^(RJRH((sB/usr/lib/python2.7/site-packages/salt/modules/launchctl_service.pytrestart;s
cC@sHttjd��}|j|t�r@||dr9tStSntSdS(u�
    Return True if the named service is enabled, false otherwise

    CLI Example:

    .. code-block:: bash

        salt '*' service.enabled <service label>
    u4/var/db/launchd.db/com.apple.launchd/overrides.plistuDisabledN(RRRtgetR	RM(RJRHtoverrides_data((sB/usr/lib/python2.7/site-packages/salt/modules/launchctl_service.pytenabledIs
	cC@sHttjd��}|j|t�r@||dr9tStSntSdS(u�
    Return True if the named service is disabled, false otherwise

    CLI Example:

    .. code-block:: bash

        salt '*' service.disabled <service label>
    u4/var/db/launchd.db/com.apple.launchd/overrides.plistuDisabledN(RRRR`R	RM(RJRHRa((sB/usr/lib/python2.7/site-packages/salt/modules/launchctl_service.pytdisabled_s
	(.t__doc__t
__future__RRRtloggingR
RRSRQtsalt.utils.dataRtsalt.utils.filestsalt.utils.pathtsalt.utils.platformtsalt.utils.stringutilstsalt.utils.decoratorsRt
decoratorstsalt.utils.versionsRR
tsalt.extRt	getLoggert__name__tlogRRMRRRtmemoizeR3R;RGRIRLRNROR\R]R^R_RbRc(((sB/usr/lib/python2.7/site-packages/salt/modules/launchctl_service.pyt<module>s>		4			
	4

Zerion Mini Shell 1.0