
    VhhF                     .   d dl mZmZmZ eZd dlmZ 	 d dlm	Z	 dZ
d dlmZ d dlmZmZmZmZ d dlmZ  e       Zej-                   ed?i d	 ed
dddg      d ed      d ed
      d edd      d ed      d ed      d ed      d ed
      d ed      d ed      d ed
      d ed
      d edd      d ed
      d  ed
      d! ed      d" ed
      d# ed
      d$ ed
      d% ed
      d& ed
      d' ed
      d( ed
      d) ed
      d* ed
      d+ ed
      d, ed
      d- ed      d. ed      d/ ed
      d0 ed      d1 ed
      d2 ed
      d3 ed
      d4 ed5      d6 ed      d7 ed
      d8 ed      d9 ed5             d	dd/dgdfd	dd/dgdfgZg Zg Zg Z G d: d;e      Z G d< d=e      Zy># e$ r dZ
Y w xY w)@    )absolute_importdivisionprint_function)
ActionBase)AnsibleArgSpecValidatorTF)AnsibleActionFail)DNACSDKdnac_argument_specdnac_compare_equalityget_dict_result)InconsistentParametersstatestrpresentabsent)typedefaultchoicescdpLevelint)r   discoveryTypeenablePasswordListlist)r   no_logglobalCredentialIdListhttpReadCredentialdicthttpWriteCredentialipAddressListipFilterList	lldpLevelnamenetconfPortpasswordListpreferredMgmtIPMethodprotocolOrderretrysnmpAuthPassphrasesnmpAuthProtocolsnmpModesnmpPrivPassphrasesnmpPrivProtocolsnmpRoCommunitysnmpRoCommunityDescsnmpRwCommunitysnmpRwCommunityDescsnmpUserNamesnmpVersiontimeOutuserNameListidattributeInfo	deviceIdsdiscoveryConditiondiscoveryStatus	isAutoCdpbool
numDevicesparentDiscoveryId
retryCountupdateMgmtIpc                   N    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zy)DiscoveryV1c                    || _         t        d)i d|j                  d      d|j                  d      d|j                  d      d|j                  d      d|j                  d      d|j                  d      d|j                  d      d|j                  d      d	|j                  d	      d
|j                  d
      d|j                  d      d|j                  d      d|j                  d      d|j                  d      d|j                  d      d|j                  d      d|j                  d      d|j                  d      d|j                  d      d|j                  d      d|j                  d      d|j                  d      d|j                  d      d|j                  d      d|j                  d      d|j                  d      d|j                  d      d|j                  d      d|j                  d      d |j                  d       d!|j                  d!      d"|j                  d"      d#|j                  d#      d$|j                  d$      d%|j                  d%      d&|j                  d&      d'|j                  d'      d(|j                  d(      | _        y )*Nr   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   snmpROCommunityr.   snmpROCommunityDescr/   r0   r1   r2   r4   r5   r6   r7   r8   r9   r:   r<   r=   r>   r3   r?    )dnacr   get
new_object)selfparamsrF   s      j/home/dcms/DCMS/lib/python3.12/site-packages/ansible_collections/cisco/dnac/plugins/action/discovery_v1.py__init__zDiscoveryV1.__init__T   s   	 '
ZZ
+'
 **_5'
  &zz*>?'
 $*::.F#G	'

  &zz*>?'
 !'

+@ A'
 !**_5'
  N3'
 jj-'
 F#'
 

=1'
  N3'
 #)**-D"E'
 !**_5'
 **W%'
   &zz*>?!'
" $ZZ(:;#'
$ ZZ
+%'
&  &zz*>?''
( $ZZ(:;)'
* #JJ'89+'
, !'

+@ A-'
. #JJ'89/'
0 !'

+@ A1'
2  N33'
4 

=15'
6  N37'
8 zz$9'
: !**_5;'
< jj-='
>  &zz*>??'
@ #JJ'89A'
B jj-C'
D zz,/E'
F %jj)<=G'
H zz,/I'
J JJy)K'
L  N3M'
    c                    i }| j                   j                  d      |d<   | j                   j                  d      |d<   | j                   j                  d      |d<   | j                   j                  d      |d<   | j                   j                  d      |d<   | j                   j                  d      |d<   | j                   j                  d      |d<   | j                   j                  d      |d<   | j                   j                  d	      |d	<   | j                   j                  d
      |d
<   | j                   j                  d      |d<   | j                   j                  d      |d<   | j                   j                  d      |d<   | j                   j                  d      |d<   | j                   j                  d      |d<   | j                   j                  d      |d<   | j                   j                  d      |d<   | j                   j                  d      |d<   | j                   j                  d      |d<   | j                   j                  d      |d<   | j                   j                  d      |d<   | j                   j                  d      |d<   | j                   j                  d      |d<   | j                   j                  d      |d<   | j                   j                  d      |d<   | j                   j                  d      |d<   | j                   j                  d      |d<   | j                   j                  d      |d<   |S )Nr   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   timeoutr4   rH   rG   rI   new_object_paramss     rK   create_paramszDiscoveryV1.create_params   s    (,(;(;J(G*%-1__-@-@-Q/*26//2E2EFZ2[./6:oo6I6IJb6c2326//2E2EFZ2[./37??3F3FG\3]/0-1__-@-@-Q/*,0OO,?,?,O.))-)<)<[)I+&$(OO$7$7$?&!+/??+>+>}+M-(,0OO,?,?,O.)59__5H5HI`5a12-1__-@-@-Q/*%)__%8%8%A'"26//2E2EFZ2[./040C0CDV0W,-(,(;(;J(G*%26//2E2EFZ2[./040C0CDV0W,-/3/B/BCT/U+,37??3F3FG\3]/0/3/B/BCT/U+,37??3F3FG\3]/0,0OO,?,?,O.)+/??+>+>}+M-('+':':9'E)$,0OO,?,?,O.)  rM   c                 F    i }| j                   j                  d      |d<   |S )Nr5   rP   rQ   s     rK   delete_by_id_paramszDiscoveryV1.delete_by_id_params   s(    "&//"5"5d";$  rM   c                 z   i }| j                   j                  d      |d<   | j                   j                  d      |d<   | j                   j                  d      |d<   | j                   j                  d      |d<   | j                   j                  d      |d<   | j                   j                  d      |d<   | j                   j                  d      |d<   | j                   j                  d      |d<   | j                   j                  d	      |d	<   | j                   j                  d
      |d
<   | j                   j                  d      |d<   | j                   j                  d      |d<   | j                   j                  d      |d<   | j                   j                  d      |d<   | j                   j                  d      |d<   | j                   j                  d      |d<   | j                   j                  d      |d<   | j                   j                  d      |d<   | j                   j                  d      |d<   | j                   j                  d      |d<   | j                   j                  d      |d<   | j                   j                  d      |d<   | j                   j                  d      |d<   | j                   j                  d      |d<   | j                   j                  d      |d<   | j                   j                  d      |d<   | j                   j                  d      |d<   | j                   j                  d      |d<   | j                   j                  d      |d<   | j                   j                  d      |d<   | j                   j                  d      |d<   | j                   j                  d       |d <   | j                   j                  d!      |d!<   | j                   j                  d"      |d"<   | j                   j                  d#      |d#<   | j                   j                  d$      |d$<   |S )%Nr6   r   r7   r8   r9   r   r   r   r   r   r5   r   r    r:   r!   r"   r#   r<   r=   r$   r%   r&   r>   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r3   r?   r4   rP   rQ   s     rK   update_all_paramszDiscoveryV1.update_all_params   s   -1__-@-@-Q/*(,(;(;J(G*%)-)<)<[)I+&26//2E2EFZ2[.//3/B/BCT/U+,-1__-@-@-Q/*26//2E2EFZ2[./6:oo6I6IJb6c2326//2E2EFZ2[./37??3F3FG\3]/0"&//"5"5d";$-1__-@-@-Q/*,0OO,?,?,O.))-)<)<[)I+&)-)<)<[)I+&$(OO$7$7$?&!+/??+>+>}+M-(*.//*=*=l*K,'151D1DEX1Y-.,0OO,?,?,O.)59__5H5HI`5a12-1__-@-@-Q/**.//*=*=l*K,'26//2E2EFZ2[./040C0CDV0W,-(,(;(;J(G*%26//2E2EFZ2[./040C0CDV0W,-/3/B/BCT/U+,37??3F3FG\3]/0/3/B/BCT/U+,37??3F3FG\3]/0,0OO,?,?,O.)'+':':9'E)$,0OO,?,?,O.),0OO,?,?,O.)  rM   c                 
    d }|S NrE   )rI   r"   results      rK   get_object_by_namezDiscoveryV1.get_object_by_name   s     rM   c                     d }	 | j                   j                  ddd|i      }t        |t              rd|v r|j	                  d      }t        |d|      }|S # t        $ r d }Y |S w xY w)N	discoveryget_discovery_by_id_v1r5   familyfunctionrJ   response)rF   exec
isinstancer   rG   r   	Exception)rI   r5   rZ   itemss       rK   get_object_by_idzDiscoveryV1.get_object_by_id   s    	IINN"1bz # E
 %&&!IIj1E$UD"5F   	F	s   AA A'&A'c                    d}d}d }| j                   j                  d      }| j                   j                  d      }|r'| j                  |      }|d uxr t        |t              }|s)|r'| j                  |      }|d uxr t        |t              }|r_|j                  d      }|r|r||k7  rt        d      |r%| j                   j                  t	        |             |r| j                  |      }|d uxr t        |t              }||fS )NFr5   r"   z9The 'id' and 'name' params don't refer to the same objectr5   )rH   rG   rg   rd   r   r[   r   update)rI   	id_existsname_existsprev_objo_idr"   _id	it_existss           rK   existszDiscoveryV1.exists   s   	""4(""6*,,T2H ,KHd1KIT..t4H"$.M:h3MK,,t$C[TS[,-hii&&ts|4005D(GZ$-G	8$$rM   c                 P    | j                   g d}t        fd|D              S )N)%)r   r   )r   r   )r   r   )r   r   )r   r   )r   r   )r   r   )r    r    )r!   r!   )r"   r"   )r#   r#   )r%   r%   )r&   r&   )r'   r'   )r(   r(   )r)   r)   )r*   r*   )r+   r+   )r,   r,   )r1   r1   )r2   r2   )r4   r4   )r5   r5   )r6   r6   )r7   r7   )r8   r8   )r9   r9   )r:   r:   )r<   r<   )r=   r=   )r>   r>   )r-   r-   )r.   r.   )r/   r/   )r0   r0   )r3   r3   )r?   r?   c              3   z   K   | ]2  \  }}t        j                  |      j                  |              4 y wrY   )r   rG   ).0
dnac_paramansible_paramcurrent_objrequested_objs      rK   	<genexpr>z.DiscoveryV1.requires_update.<locals>.<genexpr>%  sD      B2
M -[__Z-H-:->->}-MO O Bs   8;)rH   any)rI   rw   
obj_paramsrx   s    ` @rK   requires_updatezDiscoveryV1.requires_update   s4    &

R  B6@B B 	BrM   c                 `    | j                   j                  dd| j                         d      }|S )Nr]   start_discovery_v1Tr`   ra   rJ   op_modifies)rF   rc   rS   )rI   rZ   s     rK   createzDiscoveryV1.create)  s5    )%%'	   
 rM   c                     | j                   j                  d      }| j                   j                  d      }d }| j                  j                  dd| j	                         d      }|S )Nr5   r"   r]   updates_discovery_by_idTr   )rH   rG   rF   rc   rW   )rI   r5   r"   rZ   s       rK   rj   zDiscoveryV1.update2  sb    __  &""6*.))+	   
 rM   c                 l   | j                   j                  d      }| j                   j                  d      }d }|sM| j                  |      }d }|r|j                  d      }|r%| j                   j                  t	        |             | j
                  j                  dd| j                               }|S )Nr5   r"   ri   r]   delete_discovery_by_id_v1r_   )rH   rG   r[   rj   r   rF   rc   rU   )rI   r5   r"   rZ   prev_obj_nameid_s         rK   deletezDiscoveryV1.delete>  s    __  &""6* 33D9MC#''-&&ts|40++-   

 rM   N)__name__
__module____qualname__rL   rS   rU   rW   r[   rg   rq   r|   r   rj   r   rE   rM   rK   rA   rA   S   s>    )
V!@!
&!P %..B`
rM   rA   c                   0     e Zd Z fdZd Zd fd	Z xZS )ActionModulec                 x    t         st        d      t        t        |   |i | d| _        d| _        d | _        y )NzYansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'F)ANSIBLE_UTILS_IS_INSTALLEDr   superr   rL   _supports_async_supports_check_mode_result)rI   argskwargs	__class__s      rK   rL   zActionModule.__init__R  sC    )#$  A  AlD*D;F;$$)!rM   c                 *   t        | j                  j                  t        t              dt        t
        t        t        t              | j                  j                        }|j                         \  }}| j                  _        |st        |      y )N)argument_specargspec)required_ifrequired_one_ofmutually_exclusiverequired_together)dataschemaschema_formatschema_conditionalsr"   )r   _taskr   r   r   r   r   r   r   actionvalidater   )rI   aavvaliderrorss       rK   _check_argspeczActionModule._check_argspec[  sr    %m4# $' /#5"3	! ""
 *-&vtzz#F++ rM   c                    d| j                   _        t        t        |   ||      | _        d| j
                  d<   | j                          t        | j                   j                        }t        | j                   j                  |      }| j                   j                  j                  d      }d }|dk(  r{|j                         \  }}|rE|j                  |      r!|j                         }|j                          n|}|j                          nl|j!                         }|j#                          nK|dk(  rF|j                         \  }}|r!|j%                         }|j'                          n|j)                          | j
                  j                  t+        |             | j
                  j                  |j-                                | j
                  S )NFchangedr   r   r   )dnac_response)r   diffr   r   runr   r   r	   r   rA   rG   rq   r|   rj   object_updatedobject_already_presentr   object_createdr   object_deletedobject_already_absentr   	exit_json)
rI   tmp	task_varsrF   objr   rb   
obj_existsrm   r   s
            rK   r   zActionModule.runl  s`   

\44S)D"'Ytzz'$**//40

##G,I%(ZZ\"Z&&x0"zz|H'')'H//1::<##%h%(ZZ\"Z::<##%**,Dx89DNN,-||rM   )NN)r   r   r   rL   r   r   __classcell__)r   s   @rK   r   r   Q  s    ,"$ $rM   r   NrE   )
__future__r   r   r   r   __metaclass__ansible.plugins.actionr   Nansible_collections.ansible.utils.plugins.module_utils.common.argspec_validater   r   ImportErroransible.errorsr   8ansible_collections.cisco.dnac.plugins.plugin_utils.dnacr	   r
   r   r   >ansible_collections.cisco.dnac.plugins.plugin_utils.exceptionsr   r   rj   r   r   r   r   r   objectrA   r   rE   rM   rK   <module>r      s+   C B -& "& , 
 #$   T (
E9y(6K
L(u( E"( 5	(
  V,( (( &)( E"( 6"( ( 
5	( % ( 6$/( E*( E"(  E
!(" '#($ u%%(& u'(( ')(* u%+(, e$-(. %(/(0 e$1(2 %(3(4 5!5(6 % 7(8 e9(: 6";(< =(> F#?(@ A(B 'C(D e$E(F G(H I(J &K(L M(N 6"O( (V i$.hv-   {& {|?: ?G
  '!&'s   H	 	HH