|
|
@ -34,6 +34,8 @@ try:
|
|
|
|
except ImportError:
|
|
|
|
except ImportError:
|
|
|
|
pass
|
|
|
|
pass
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import ssl
|
|
|
|
|
|
|
|
|
|
|
|
DOCUMENTATION = '''
|
|
|
|
DOCUMENTATION = '''
|
|
|
|
---
|
|
|
|
---
|
|
|
|
module: vsphere_guest
|
|
|
|
module: vsphere_guest
|
|
|
@ -48,6 +50,12 @@ options:
|
|
|
|
required: true
|
|
|
|
required: true
|
|
|
|
default: null
|
|
|
|
default: null
|
|
|
|
aliases: []
|
|
|
|
aliases: []
|
|
|
|
|
|
|
|
validate_certs:
|
|
|
|
|
|
|
|
description:
|
|
|
|
|
|
|
|
- Validate SSL certs.
|
|
|
|
|
|
|
|
required: false
|
|
|
|
|
|
|
|
default: yes
|
|
|
|
|
|
|
|
choices: ['yes', 'no']
|
|
|
|
guest:
|
|
|
|
guest:
|
|
|
|
description:
|
|
|
|
description:
|
|
|
|
- The virtual server name you wish to manage.
|
|
|
|
- The virtual server name you wish to manage.
|
|
|
@ -1577,6 +1585,7 @@ def main():
|
|
|
|
cluster=dict(required=False, default=None, type='str'),
|
|
|
|
cluster=dict(required=False, default=None, type='str'),
|
|
|
|
force=dict(required=False, type='bool', default=False),
|
|
|
|
force=dict(required=False, type='bool', default=False),
|
|
|
|
esxi=dict(required=False, type='dict', default={}),
|
|
|
|
esxi=dict(required=False, type='dict', default={}),
|
|
|
|
|
|
|
|
validate_certs=dict(required=False, type='bool', default=True),
|
|
|
|
power_on_after_clone=dict(required=False, type='bool', default=True)
|
|
|
|
power_on_after_clone=dict(required=False, type='bool', default=True)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -1618,12 +1627,20 @@ def main():
|
|
|
|
from_template = module.params['from_template']
|
|
|
|
from_template = module.params['from_template']
|
|
|
|
snapshot_to_clone = module.params['snapshot_to_clone']
|
|
|
|
snapshot_to_clone = module.params['snapshot_to_clone']
|
|
|
|
power_on_after_clone = module.params['power_on_after_clone']
|
|
|
|
power_on_after_clone = module.params['power_on_after_clone']
|
|
|
|
|
|
|
|
validate_certs = module.params['validate_certs']
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# CONNECT TO THE SERVER
|
|
|
|
# CONNECT TO THE SERVER
|
|
|
|
viserver = VIServer()
|
|
|
|
viserver = VIServer()
|
|
|
|
try:
|
|
|
|
try:
|
|
|
|
viserver.connect(vcenter_hostname, username, password)
|
|
|
|
viserver.connect(vcenter_hostname, username, password)
|
|
|
|
|
|
|
|
except ssl.SSLError as sslerr:
|
|
|
|
|
|
|
|
if '[SSL: CERTIFICATE_VERIFY_FAILED]' in sslerr.strerror and not validate_certs:
|
|
|
|
|
|
|
|
default_context = ssl._create_default_https_context
|
|
|
|
|
|
|
|
ssl._create_default_https_context = ssl._create_unverified_context
|
|
|
|
|
|
|
|
viserver.connect(vcenter_hostname, username, password)
|
|
|
|
|
|
|
|
else:
|
|
|
|
|
|
|
|
raise Exception(sslerr)
|
|
|
|
except VIApiException, err:
|
|
|
|
except VIApiException, err:
|
|
|
|
module.fail_json(msg="Cannot connect to %s: %s" %
|
|
|
|
module.fail_json(msg="Cannot connect to %s: %s" %
|
|
|
|
(vcenter_hostname, err))
|
|
|
|
(vcenter_hostname, err))
|
|
|
|