
    Vh@                     l    d dl mZmZmZ eZd dlZd dlmZ d dl	m
Z
 d dlmZ  e       Z G d de
      Zy)    )absolute_importdivisionprint_functionN)AnsibleError)
ActionBase)Displayc                        e Zd ZddZd Zd Zy)ActionModuleNc           	         ~i }t        j                  | j                        }| j                  |      |_        | j
                  j                         }| j                  |j                  | j
                  j                        }|sO| j
                  j                  d   rd|d<   nd|d<   d| j
                  j                  d|j                  |d<   |S ||_        | j                  j                  j                  |j                  || j                  || j                  | j                  | j                        }t        j!                  d	|z         |j#                  |
      S )Nfail_on_missing_moduleTfailedFz%Could not find implementation module z for msg)task
connectionplay_contextloadertemplarshared_loader_objz Running implementation module %s)	task_vars)copydeepcopy_play_context_get_network_os
network_os_task_get_implementation_moduleactionargs_shared_loader_objaction_loaderget_connection_loader_templardisplayvvvvrun)selftmpr   resultr   new_taskmoduler   s           m/home/dcms/DCMS/lib/python3.12/site-packages/ansible_collections/ansible/netcommon/plugins/action/net_ping.pyr'   zActionModule.run   s2   }}T%7%78"&"6"6y"A::??$001H1H$**J[J[\zz78#'x #(x  

!!''F5M M ((66::##''%<<MM"55 ; 
 	7&@AzzIz..    c                    d| j                   j                  v rI| j                   j                  d   r0t        j                  d       | j                   j                  d   }|S | j                  j
                  r-t        j                  d       | j                  j
                  }|S d|j                  di       v r'|d   d   rt        j                  d       |d   d   }|S t        d      )Nr   z%Getting network OS from task argumentz!Getting network OS from inventoryansible_factszGetting network OS from factzRansible_network_os must be specified on this host to use platform agnostic modules)r   r   r%   r&   r   r   r!   r   )r(   r   r   s      r-   r   zActionModule._get_network_os8   s    4::??*tzz|/LLL@A6J  **LL<=++66J  IMM/2>>/*<8LL78"?3LAJ 	 d r.   c                     |j                  d      d   dz   |j                  d      d   z   }d|v r,dj                  |j                  d      dd       }|dz   |z   }n|}|| j                  j                  vrd }|S )N._   r   )split	partitionjoinr   module_loader)r(   r   platform_agnostic_modulemodule_namefqcn_moduleimplementation_modules         r-   r   z'ActionModule._get_implementation_moduleL   s     &&s+B/#58P8Z8Z[^8_`a8bb*((:#3#3C#82#>?K$/#$5$C!$/! (?(?(M(MM$(!$$r.   )NN)__name__
__module____qualname__r'   r   r    r.   r-   r
   r
      s    !/F(%r.   r
   )
__future__r   r   r   type__metaclass__r   ansible.errorsr   ansible.plugins.actionr   ansible.utils.displayr   r%   r
   rA   r.   r-   <module>rH      s8   
 A @   ' - ) )C%: C%r.   