
    Vh                    x    d Z ddlmZ ddlZddlmZmZ ddlmZ ddl	m
Z
mZmZ  G d	 d
e      Z G d de
      Zy)z,VMware vCenter plugin for integration tests.    )annotationsN   )ApplicationErrordisplay)IntegrationConfig   )CloudEnvironmentCloudEnvironmentConfigCloudProviderc                  0     e Zd ZdZd fdZd fdZ xZS )VcenterProviderz=VMware vcenter/esx plugin. Sets up cloud resources for tests.c                2    t         |   |       d| _        y )NT)super__init__uses_config)selfargs	__class__s     i/home/dcms/DCMS/lib/python3.12/site-packages/ansible_test/_internal/commands/integration/cloud/vcenter.pyr   zVcenterProvider.__init__   s        c                r    t         |           | j                         st        d| j                  z        y)zKSetup the cloud resource before delegation and register a cleanup callback.z%Configuration file does not exist: %sN)r   setup_use_static_configr   config_static_path)r   r   s    r   r   zVcenterProvider.setup   s4    &&("#JTMdMd#dee )r   )r   r   returnNone)r   r   )__name__
__module____qualname____doc__r   r   __classcell__)r   s   @r   r   r      s    G 
f fr   r   c                      e Zd ZdZddZy)VcenterEnvironmentz]VMware vcenter/esx environment plugin. Updates integration test environment after delegation.c                   t        j                         }|j                  | j                         t	        | j
                        }|j                  t	        |j                  dd                   |j                         D ]6  \  }}|j                  d      st        j                  j                  |       8 t        |d|d   |d   |d	   |j                  d
d      |j                  dd      di      S )zRReturn environment configuration for use in the test environment after delegation.)resource_prefixDEFAULTT)raw	_passwordzgroup/vmwarevcenter_hostnamevcenter_usernamevcenter_passwordvcenter_port443vmware_validate_certsno)hostnameusernamepasswordportvalidate_certs)ansible_varsmodule_defaults)configparserConfigParserreadconfig_pathdictr%   updateitemsendswithr   	sensitiveaddr
   get)r   parserr5   keyvalues        r   get_environment_configz)VcenterEnvironment.get_environment_config)   s     **,D$$% 00
 	DiT!BCD&,,. 	-JC||K(!!%%e,	- &% ,-? @ ,-? @ ,-? @(,,^UC&2&6&67NPT&U!
 	
r   N)r   r
   )r   r   r   r    rE    r   r   r#   r#   &   s
    g
r   r#   )r    
__future__r   r7   utilr   r   configr    r	   r
   r   r   r#   rF   r   r   <module>rK      s=    2 " 
 fm f 
) 
r   