
    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"NIOS plugin for integration tests.    )annotationsN   )IntegrationConfig)run_support_container   )CloudEnvironmentCloudEnvironmentConfigCloudProviderc                  D     e Zd ZdZdZd fdZd fdZddZddZ xZ	S )	NiosProviderz0Nios plugin. Sets up NIOS mock server for tests.z)quay.io/ansible/nios-test-container:5.0.0c                    t         |   |       t        j                  j	                  d      | _        	 | j
                  xs | j                  | _        d| _        y )NANSIBLE_NIOSSIM_CONTAINERT)	super__init__osenvironget!_NiosProvider__container_from_envDOCKER_IMAGEimageuses_docker)selfargs	__class__s     f/home/dcms/DCMS/lib/python3.12/site-packages/ansible_test/_internal/commands/integration/cloud/nios.pyr   zNiosProvider.__init__!   sM    $&JJNN3N$O!	 ..C$2C2C
    c                    t         |           | j                         r| j                          y| j	                          y)z@Setup cloud resource before delegation and reg cleanup callback.N)r   setup_use_static_config_setup_static_setup_dynamic)r   r   s    r   r   zNiosProvider.setup0   s0    ""$ !r   c                    d}|g}t        | j                  | j                  | j                  d|      }|sy| j	                  d|j
                         y)z/Spawn a NIOS simulator within docker container.i  znios-simulatorN	NIOS_HOST)r   r   platformr   _set_cloud_configname)r   	nios_portports
descriptors       r   r!   zNiosProvider._setup_dynamic9   sV    	 
 +IIMMJJ

 {JOO<r   c                    t               )N)NotImplementedError)r   s    r   r    zNiosProvider._setup_staticN   s    !##r   )r   r   returnNone)r,   r-   )
__name__
__module____qualname____doc__r   r   r   r!   r    __classcell__)r   s   @r   r   r      s!    : ?L "=*$r   r   c                      e Zd ZdZddZy)NiosEnvironmentzONIOS environment plugin. Updates integration test environment after delegation.c                h    t        t        | j                  d      dd            }t        |      S )zRReturn environment configuration for use in the test environment after delegation.r#   admininfoblox)hostusernamepassword)nios_provider)ansible_vars)dict_get_cloud_configr	   )r   r<   s     r   get_environment_configz&NiosEnvironment.get_environment_configU   s:    ++K8 #
 &%
 	
r   N)r,   r	   )r.   r/   r0   r1   r?    r   r   r4   r4   R   s
    Y
r   r4   )r1   
__future__r   r   configr   
containersr    r   r	   r
   r   r4   r@   r   r   <module>rE      s<    ( " 	 :$= :$z
& 
r   