�
�Udac @ s� e Z y d d l m Z m Z Wn e k
r9 e Z n Xd d l m Z d d l m
Z
d d l m Z d � Z e d � � Z
d � Z d � Z d S(
i����( t InfiniBoxt core( t wraps( t environ( t pathc s t � � � f d � � } | S( s Catch API Errors Decoratorc s� | d } y � | | � SWnj t j j k
rI } | j d | j � n? t j j k
rt } | j d | j � n t k
r� � n Xd S( Ni t msg( R t
exceptionst APICommandExceptiont fail_jsont messaget SystemNotFoundExceptiont Exception( t argst kwargst modulet e( t func( sB /usr/lib/python2.7/site-packages/ansible/module_utils/infinibox.pyt __wrapper, s
( R ( R R ( ( R sB /usr/lib/python2.7/site-packages/ansible/module_utils/infinibox.pyt api_wrapper* s c C s | j d } | j j d d � } | j j d d � } | r^ | r^ t | d | | f �} n� t j d � r� t j d � r� t | d t j d � t j d � f �} n; t j t j d � d � r� t | � } n | j d d
� y | j � Wn! t
k
r| j d d � n X| S(
s Return System Object or Failt systemt usert passwordt autht INFINIBOX_USERt INFINIBOX_PASSWORDt ~s /.infinidat/infinisdk.iniR sr You must set INFINIBOX_USER and INFINIBOX_PASSWORD environment variables or set username/password module argumentss7 Infinibox authentication failed. Check your credentialsN( t paramst gett NoneR R R t isfilet
expanduserR t loginR ( R t boxR R R ( ( sB /usr/lib/python2.7/site-packages/ansible/module_utils/infinibox.pyt
get_system: s
-
c C s. t d t d t � d t � d t d t � � S( sT Return standard base dictionary used for the argument_spec argument in AnsibleModuleR t requiredR R t no_log( t dictt True( ( ( sB /usr/lib/python2.7/site-packages/ansible/module_utils/infinibox.pyt infinibox_argument_specQ s c C s
d d g g S( sP Return the default list used for the required_together argument to AnsibleModuleR R ( ( ( ( sB /usr/lib/python2.7/site-packages/ansible/module_utils/infinibox.pyt infinibox_required_together[ s N( R% t
HAS_INFINISDKt infinisdkR R t ImportErrort Falset functoolsR t osR R R R! R&