
    Vh                    t    d Z ddlmZ ddlZddl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(Cloudscale plugin for integration tests.    )annotationsN   )display)IntegrationConfig   )CloudEnvironmentCloudEnvironmentConfigCloudProviderc                  0     e Zd ZdZd fdZd fdZ xZS )CloudscaleCloudProviderzLCloudscale cloud provider plugin. Sets up cloud resources before delegation.c                2    t         |   |       d| _        y )NT)super__init__uses_config)selfargs	__class__s     l/home/dcms/DCMS/lib/python3.12/site-packages/ansible_test/_internal/commands/integration/cloud/cloudscale.pyr   z CloudscaleCloudProvider.__init__   s        c                B    t         |           | j                          y)zKSetup the cloud resource before delegation and register a cleanup callback.N)r   setup_use_static_config)r   r   s    r   r   zCloudscaleCloudProvider.setup"   s    !r   )r   r   returnNone)r   r   )__name__
__module____qualname____doc__r   r   __classcell__)r   s   @r   r   r      s    V 
" "r   r   c                      e Zd ZdZddZy)CloudscaleCloudEnvironmentz[Cloudscale cloud environment plugin. Updates integration test environment after delegation.c                   t        j                         }|j                  | j                         t	        |j                  dd            }t        j                  j                  |d          t	        | j                        }|j                  t	        d |j                         D                     t        ||      S )zRReturn environment configuration for use in the test environment after delegation.defaultcloudscale_api_token)CLOUDSCALE_API_TOKENr%   )cloudscale_resource_prefixc              3  F   K   | ]  \  }}|j                         |f  y w)N)lower).0keyvalues      r   	<genexpr>zDCloudscaleCloudEnvironment.get_environment_config.<locals>.<genexpr>;   s      Y*#u#))+u!5 Ys   !)env_varsansible_vars)configparserConfigParserreadconfig_pathdictgetr   	sensitiveaddresource_prefixupdateitemsr	   )r   parserr-   r.   s       r   get_environment_configz1CloudscaleCloudEnvironment.get_environment_config,   s    **,D$$%!'I7M!N
 	h'=>?'+';';
 	D YHX YYZ%%
 	
r   N)r   r	   )r   r   r   r   r;    r   r   r!   r!   )   s
    e
r   r!   )r   
__future__r   r/   utilr   configr    r   r	   r
   r   r!   r<   r   r   <module>rA      s=    / "  "m "
!1 
r   