%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /lib/python2.7/site-packages/salt/states/
Upload File :
Create Path :
Current File : //lib/python2.7/site-packages/salt/states/pagerduty_schedule.pyo

�
���^c@@s\dZddlmZmZmZd�Zdddd�Zdddd�Zd�Z	dS(	ut
Manage PagerDuty schedules.

Example:

.. code-block:: yaml

    ensure test schedule:
        pagerduty_schedule.present:
            - name: 'bruce test schedule level1'
            - schedule:
                name: 'bruce test schedule level1'
                time_zone: 'Pacific Time (US & Canada)'
                schedule_layers:
                    - name: 'Schedule Layer 1'
                      start: '2015-01-01T00:00:00'
                      users:
                        - user:
                            'id': 'Bruce TestUser1'
                          member_order: 1
                        - user:
                            'id': 'Bruce TestUser2'
                          member_order: 2
                        - user:
                            'id': 'bruce+test3@lyft.com'
                          member_order: 3
                        - user:
                            'id': 'bruce+test4@lyft.com'
                          member_order: 4
                      rotation_virtual_start: '2015-01-01T00:00:00'
                      priority: 1
                      rotation_turn_length_seconds: 604800

i(tabsolute_importtprint_functiontunicode_literalscC@sdtkrdStS(uD
    Only load if the pygerduty module is available in __salt__
    upagerduty_util.get_resourceupagerduty_schedule(t__salt__tFalse(((sB/usr/lib/python2.7/site-packages/salt/states/pagerduty_schedule.pyt__virtual__)su	pagerdutycK@s�|d|dd<x�|ddD]�}x�|dD]u}tdd|dddddgd	|d
|d|�}|dkr�tdj|���n|d|dd<q2Wq!Wtd
dddgt||||�}|S(u4
    Ensure that a pagerduty schedule exists.
    This method accepts as args everything defined in
    https://developer.pagerduty.com/documentation/rest/schedules/create.
    This means that most arguments are in a dict called "schedule."

    User id's can be pagerduty id, or name, or email address.
    unameuscheduleuschedule_layersuusersupagerduty_util.get_resourceuuseruiduemailtprofilet	subdomaintapi_keyuunknown user: {0}upagerduty_util.resource_presentu	schedulesN(RtNonet	Exceptiontformatt_diff(RRRtkwargstschedule_layertusertutr((sB/usr/lib/python2.7/site-packages/salt/states/pagerduty_schedule.pytpresent0s(

	
		cK@s)tddddg||||�}|S(u|
    Ensure that a pagerduty schedule does not exist.
    Name can be pagerduty schedule id or pagerduty schedule name.
    upagerduty_util.resource_absentu	schedulesunameuid(R(RRRR
R((sB/usr/lib/python2.7/site-packages/salt/states/pagerduty_schedule.pytabsentPs
		c
C@s�|dd|d<d}xe|dj�D]S\}}|dkrGq)n||d|kr)dj|||d|�}Pq)q)W|s�x#|ddD]}d}x:|ddD]*}t}|d|dkr�t}Pq�q�W|s�dj|d�}Pn|d|d<xr|j�D]d\}}|dkr4qn|dkrFqn|||krd	j|d||||�}PqqW|r�Pnt|d�t|d�kr�d
j|dt|d�t|d��}Pnx�|dD]�}t}d}	x4|dD](}	|d|	ddkrt}PqqW|sQd
j|d|d�}Pn|dd|	ddkr�dj|d|d|dd|	dd�}Pq�q�Wq�Wn|r�|SiSdS(u�helper method to compare salt state info with the PagerDuty API json structure,
    and determine if we need to update.

    returns the dict to pass to the PD API to perform the update, or empty dict if no update.
    uscheduleuiduschedule_layersu{0} {1} {2}unameulayer {0} missinguusersustartulayer {0} key {1} {2} != {3}u!num users in layer {0} {1} != {2}umember_orderiu&layer {0} no one with member_order {1}uuseru-layer {0} user at member_order {1} {2} != {3}N(R	titemsRRtTruetlen(
t
state_datatresource_objecttobjects_differtktvtlayertresource_layertfoundtuser1tuser2((sB/usr/lib/python2.7/site-packages/salt/states/pagerduty_schedule.pyR^sh  -
N(
t__doc__t
__future__RRRRR	RRR(((sB/usr/lib/python2.7/site-packages/salt/states/pagerduty_schedule.pyt<module>#s
	 

Zerion Mini Shell 1.0