
    Vh                         d dl mZmZmZ eZdZdZ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 d
 Zedk(  r e        yy# e$ r Y .w xY w)    )absolute_importdivisionprint_functiona  
---
module: vcenter_extension
short_description: Register/deregister vCenter Extensions
description:
    - This module can be used to register/deregister vCenter Extensions.
author:
    - Michael Tipton (@castawayegr)
options:
  extension_key:
    description:
    - The extension key of the extension to install or uninstall.
    required: true
    type: str
  version:
    description:
    - The version of the extension you are installing or uninstalling.
    required: true
    type: str
  name:
    description:
    - Required for O(state=present). The name of the extension you are installing.
    type: str
  company:
    description:
    - Required for O(state=present). The name of the company that makes the extension.
    type: str
  description:
    description:
    - Required for O(state=present). A short description of the extension.
    type: str
  email:
    description:
    - Required for O(state=present). Administrator email to use for extension.
    type: str
  url:
    description:
    - Required for O(state=present). Link to server hosting extension zip file to install.
    type: str
  ssl_thumbprint:
    description:
    - Required for O(state=present). SSL thumbprint of the extension hosting server.
    type: str
  server_type:
    description:
    - Required for O(state=present). Type of server being used to install the extension (SOAP, REST, HTTP, etc.).
    default: vsphere-client-serenity
    type: str
  client_type:
    description:
    - Required for O(state=present). Type of client the extension is (win32, .net, linux, etc.).
    default: vsphere-client-serenity
    type: str
  visible:
    description:
    - Show the extension in solution manager inside vCenter.
    default: true
    type: bool
  state:
    description:
    - Add or remove vCenter Extension.
    choices: [absent, present]
    default: present
    type: str
extends_documentation_fragment:
- community.vmware.vmware.documentation

a  
    - name: Register vCenter Extension
      community.vmware.vcenter_extension:
         hostname: "{{ groups['vcsa'][0] }}"
         username: "{{ vcenter_username }}"
         password: "{{ site_password }}"
         extension_key: "{{ extension_key }}"
         version: "1.0"
         company: "Acme"
         name: "Acme Extension"
         description: "acme management"
         email: "user@example.com"
         url: "https://10.0.0.1/ACME-vSphere-web-plugin-1.0.zip"
         ssl_thumbprint: "{{ ssl_thumbprint }}"
         state: present
      delegate_to: localhost
      register: register_extension

    - name: Deregister vCenter Extension
      community.vmware.vcenter_extension:
         hostname: "{{ groups['vcsa'][0] }}"
         username: "{{ vcenter_username }}"
         password: "{{ site_password }}"
         extension_key: "{{ extension_key }}"
         version: "1.0"
         state: absent
      delegate_to: localhost
      register: deregister_extension
z
result:
    description: information about performed operation
    returned: always
    type: str
    sample: "'com.acme.Extension' installed."
)vimN)AnsibleModule)base_argument_spec)PyvmomiClientc                     t               } | j                  t        t        ddd      t        dd      t        dd      t        dd      t        dd      t        dd      t        dd      t        dd      t        ddd      t        ddd      t        dd	d      t        dd
dd
g                   t        | ddd
g dgg      }|j                  d   }|j                  d   }|j                  d   }|j                  d   }|j                  d   }|j                  d   }|j                  d   }|j                  d   }	|j                  d   }
|j                  d   }|j                  d   }|j                  d   }t        |j                  j                  d      |j                  j                  d      |j                  j                  d      |j                  j                  d      |j                  j                  d       !      }|j                  j                  }|j                  |      }t        dt               "      }|d
k(  r|rd|d#<   d$|z  |d%<   nw|d
k(  r7|s4t        j                         }||_        ||_        ||_        t        j                  j!                         |_        t        j$                         }||_        ||_        ||_        ||_        t        j                  j/                         }||_        ||_        ||_        |	|_        ||_        |g|_        t        j                  j7                         }||_        ||_        |
|_        ||_        ||_        ||_        |g|_        |j?                  |       d|d#<   d&|z  |d%<   n:|dk(  r!|r|jA                  |       d|d#<   d'|z  |d%<   n|dk(  r|sd|d#<   d(|z  |d%<    |jB                  d)i | y )*NstrTF)typerequiredno_log)r   r   zvsphere-client-serenity)r   defaultr   boolTruepresentabsent)r   r   choices)extension_keyversionemaildescriptioncompanynameurlssl_thumbprintclient_typeserver_typevisiblestater    )r   r   r   r   r   r   r   r   )argument_specsupports_check_moderequired_ifr   r   r   r   r   r   r   r   r   r   r   hostnameusernamepasswordportvalidate_certs)r$   r%   r&   r'   r(   )changed	installedr)   z'%s' is already installedr*   z'%s' installed.z'%s' uninstalled.z'%s' is not installed. )"r   updatedictr   paramsr	   getcontentextensionManagerFindExtensionr   	Extensionkeyr   r   datetimenowlastHeartbeatTimeDescriptionlabelsummaryr   shownInSolutionManager
ClientInfor   r   client
ServerInfo
adminEmailserverThumbprintserverRegisterExtensionUnregisterExtension	exit_json)r!   moduler    r   r   r   descr   r   r   r   r   r   
thumbprintpyvmomi_clientem	key_checkresults	extensionr   r=   rA   s                         v/home/dcms/DCMS/lib/python3.12/site-packages/ansible_collections/community/vmware/plugins/modules/vcenter_extension.pymainrN      s   &(MUC%$/.ee4%%0uu-ee,7e-FQVWe-FQVW&&5Ay8Y:OP  #!i  "D  E
F MM'"EMM/2MmmI&GMM'"E=='D== DmmI&G--.K--.K
--
CmmI&G/0J""":."":."":.]]v&}}(()9:N 
			0	0B  /I5DF3G	i"	:mL	)	IMMO	%	#	#	&.&7&7&;&;&=	#oo' " +	+2	())+  (!
"8	))+ (!!",
"8	
Y'!	0MB	(	y
}-!	2mD	(	9"	7=IFw    __main__)
__future__r   r   r   r   __metaclass__DOCUMENTATIONEXAMPLESRETURNpyVmomir   ImportErrorr5   ansible.module_utils.basicr   Hansible_collections.community.vmware.plugins.module_utils._argument_specr   Iansible_collections.community.vmware.plugins.module_utils.clients._vmwarer	   rN   __name__r+   rO   rM   <module>r\      sp    A @CJ<
	  4 g c_ D zF Y  		s   A A	A	