
    Vh                         d dl mZmZmZ eZdZ	 d dlmZ d dl
mZ d dlmZ dad Zd	 Zd
 Zd Zd Zy# e	$ r dZY 'w xY w)    )absolute_importdivisionprint_functionT)VexataAPIProxyF)	to_native)env_fallbackNc                    | st        d      t        d |       }|st        d      |d   }|d   }|d   dk7  rt        d      |d|j                  d	       }t        t        |j                  d
            }t        |      S )NzInvalid IOC jsonc                     | d   S )NmgmtRole )xs    q/home/dcms/DCMS/lib/python3.12/site-packages/ansible_collections/community/general/plugins/module_utils/vexata.py<lambda>zget_version.<locals>.<lambda>   s
    a
m     zUnable to detect active IOCr   	swVersionvzIllegal version string   -.)	Exceptionfilterfindmapintsplittuple)	iocs_jsonactivevers      r   get_versionr       s    *+++Y7F566AYF

C
1v}011
a
C
c399S>
"C:r   c                 @   | j                   d   }| j                   j                  dd      }| j                   j                  dd      }| j                   j                  d      }t        s| j                  d       |r|rt	        ||||      }n| j                  d	       	 j                         rt        |j                               a|S | j                  d
       y# t        $ r4}| j                  dj                  t        |                   Y d}~yd}~ww xY w)z#Return storage array object or failarrayuserNpasswordvalidate_certszTvexatapi library is required for this module. To install, use `pip install vexatapi`)msg)verify_certzThe user/password are required to be passed in to the module as arguments or by setting the VEXATA_USER and VEXATA_PASSWORD environment variables.z Test connection to array failed.zVexata API access failed: {0})paramsgetHAS_VEXATAPI	fail_jsonr   test_connectionr    iocsVXOS_VERSIONr   formatr   )moduler"   r#   r$   validatesystemes          r   	get_arrayr4   &   s    MM'"E==VT*D}}  T2H}}  !12H F 	G tX8L V 	WS!!#&v{{}5LM!CD S<CCIaLQRRSs   "*C  C   	D)*DDc            
          t        t        dd      t        dt        dgf      t        ddt        dgf      t        dd	d	
            S )zTReturn standard base dictionary used for the argument_spec argument in AnsibleModulestrT)typerequiredVEXATA_USER)r7   fallbackVEXATA_PASSWORD)r7   no_logr:   boolF)r7   r8   default)r"   r#   r$   r%   )dictr   r   r   r   argument_specr@   B   s\     "u(=/:<5! ,/@.ABD %*$)+ r   c                      ddggS )zPReturn the default list used for the required_together argument to AnsibleModuler#   r$   r   r   r   r   required_togetherrB   R   s    Z !!r   c                     | dd }| d   }|j                         r|dvryt        |      }|dk(  r|dz  }|S |dk(  r|dz  }|S )z=Convert a '<integer>[MGT]' string to MiB, return -1 on error.NMGTG
   T   )isdigitr   )sizequantexponents      r   size_to_MiBrN   W   s`    "IEBxH==?he3JE3" L 
S"Lr   )
__future__r   r   r   r7   __metaclass__r*   vexatapi.vexata_api_proxyr   ImportError+ansible.module_utils.common.text.convertersr   ansible.module_utils.basicr   r.   r    r4   r@   rB   rN   r   r   r   <module>rU      sa    C B 8 B 3S8 "
S  Ls   4 >>