�
�Udac @` s� d d l m Z m Z m Z e Z d d l m Z d d l m Z d d l m Z d d l m
Z
d d l m Z d e f d � � YZ
d S(
i ( t absolute_importt divisiont print_function( t FAZ_RC( t FAZBaseException( t FAZCommon( t
scrub_dict( t
FAZMethodst FortiAnalyzerHandlerc B` s e Z d � Z d � Z d � Z d � Z d d � Z d d � Z d d � Z d e
d � Z d d d d d d d d d d d d � Z d d e
e
e
e
e
e
e
e
d d � Z e d � � Z e d
� � Z e j d � � Z e d � � Z e j d � � Z d � Z d � Z RS( c C` sv | | _ | | _ t | _ d | _ d | _ t � | _ d | _ | j
� | j rr | j d | j j d � n d S( Nt adom(
t _connt _moduleR t _toolst Nonet _uses_workspacet _uses_adomst listt _locked_adom_listt
_lock_infot workspace_checkt
get_lock_infot paramgram( t selft connt module( ( s\ /usr/lib/python2.7/site-packages/ansible/module_utils/network/fortianalyzer/fortianalyzer.pyt __init__8 s
c C` s! yN | j j d } | j rM | | j k rM | t j k rM | j d | � n Wn t k
ro } t | � � n X| j j
| | | � } | j j | | � } y^ | j j d } | j r� | | j k r� | d d k r� | t j k r� | j
d | � n Wn t k
r} t | � � n X| S( s
Formats and Runs the API Request via Connection Plugin. Streamlined for use from Modules.
:param url: Connection URL to access
:type url: string
:param datagram: The prepared payload for the API Request in dictionary format
:type datagram: dict
:param method: The preferred API Request method (GET, ADD, POST, etc....)
:type method: basestring
:return: Dictionary containing results of the API Request via Connection Plugin.
:rtype: dict
R i ( R R t uses_workspaceR R t GETt lock_adomt
BaseExceptionR R t format_requestR
t send_requestt commit_changes( R t urlt datagramt methodR t errt datat response( ( s\ /usr/lib/python2.7/site-packages/ansible/module_utils/network/fortianalyzer/fortianalyzer.pyt process_requestE s 'c C` s6 d } i d d g d 6} | j | | t j � } yD | d d d k rT t | _ n | d d d k rt t | _ n WnE t k
r� t | _ n, t k
r� } t d d
t | � � � n Xy- | d d d k r� t | _
n t | _
WnE t k
rt | _
n, t k
r1} t d d t | � � � n Xd
S( sC
Checks FortiAnalyzer for the use of Workspace mode.
s /cli/global/system/globals workspace-modes adom-statust fieldsi t workflowt normalt disabledt msgs8 Couldn't determine workspace-mode in the plugin. Error: t enables5 Couldn't determine adom-status in the plugin. Error: N( R) R* ( i R- ( R'