|
|
@ -311,12 +311,11 @@ instance:
|
|
|
|
sample: None
|
|
|
|
sample: None
|
|
|
|
'''
|
|
|
|
'''
|
|
|
|
|
|
|
|
|
|
|
|
import os
|
|
|
|
|
|
|
|
import time
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import time
|
|
|
|
from ansible.module_utils.basic import AnsibleModule
|
|
|
|
from ansible.module_utils.basic import AnsibleModule
|
|
|
|
from ansible.module_utils.pycompat24 import get_exception
|
|
|
|
from ansible.module_utils.pycompat24 import get_exception
|
|
|
|
from ansible.module_utils.vmware import connect_to_api, find_obj, gather_vm_facts, get_all_objs, compile_folder_path_for_object
|
|
|
|
from ansible.module_utils.vmware import connect_to_api, find_obj, gather_vm_facts, get_all_objs, compile_folder_path_for_object, vmware_argument_spec
|
|
|
|
from ansible.module_utils.vmware import serialize_spec
|
|
|
|
from ansible.module_utils.vmware import serialize_spec
|
|
|
|
|
|
|
|
|
|
|
|
try:
|
|
|
|
try:
|
|
|
@ -1461,42 +1460,40 @@ class PyVmomiHelper(object):
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def main():
|
|
|
|
def main():
|
|
|
|
module = AnsibleModule(
|
|
|
|
argument_spec = vmware_argument_spec()
|
|
|
|
argument_spec=dict(
|
|
|
|
argument_spec.update(
|
|
|
|
hostname=dict(type='str', default=os.environ.get('VMWARE_HOST')),
|
|
|
|
state=dict(type='str', default='present',
|
|
|
|
username=dict(type='str', default=os.environ.get('VMWARE_USER')),
|
|
|
|
choices=['absent', 'poweredoff', 'poweredon', 'present', 'rebootguest', 'restarted', 'shutdownguest', 'suspended']),
|
|
|
|
password=dict(type='str', default=os.environ.get('VMWARE_PASSWORD'), no_log=True),
|
|
|
|
template=dict(type='str', aliases=['template_src']),
|
|
|
|
state=dict(type='str', default='present',
|
|
|
|
is_template=dict(type='bool', default=False),
|
|
|
|
choices=['absent', 'poweredoff', 'poweredon', 'present', 'rebootguest', 'restarted', 'shutdownguest', 'suspended']),
|
|
|
|
annotation=dict(type='str', aliases=['notes']),
|
|
|
|
validate_certs=dict(type='bool', default=True),
|
|
|
|
customvalues=dict(type='list', default=[]),
|
|
|
|
template=dict(type='str', aliases=['template_src']),
|
|
|
|
name=dict(type='str', required=True),
|
|
|
|
is_template=dict(type='bool', default=False),
|
|
|
|
name_match=dict(type='str', default='first'),
|
|
|
|
annotation=dict(type='str', aliases=['notes']),
|
|
|
|
uuid=dict(type='str'),
|
|
|
|
customvalues=dict(type='list', default=[]),
|
|
|
|
folder=dict(type='str', default='/vm'),
|
|
|
|
name=dict(type='str', required=True),
|
|
|
|
guest_id=dict(type='str'),
|
|
|
|
name_match=dict(type='str', default='first'),
|
|
|
|
disk=dict(type='list', default=[]),
|
|
|
|
uuid=dict(type='str'),
|
|
|
|
hardware=dict(type='dict', default={}),
|
|
|
|
folder=dict(type='str', default='/vm'),
|
|
|
|
force=dict(type='bool', default=False),
|
|
|
|
guest_id=dict(type='str'),
|
|
|
|
datacenter=dict(type='str', default='ha-datacenter'),
|
|
|
|
disk=dict(type='list', default=[]),
|
|
|
|
esxi_hostname=dict(type='str'),
|
|
|
|
hardware=dict(type='dict', default={}),
|
|
|
|
cluster=dict(type='str'),
|
|
|
|
force=dict(type='bool', default=False),
|
|
|
|
wait_for_ip_address=dict(type='bool', default=False),
|
|
|
|
datacenter=dict(type='str', default='ha-datacenter'),
|
|
|
|
snapshot_src=dict(type='str'),
|
|
|
|
esxi_hostname=dict(type='str'),
|
|
|
|
linked_clone=dict(type='bool', default=False),
|
|
|
|
cluster=dict(type='str'),
|
|
|
|
networks=dict(type='list', default=[]),
|
|
|
|
wait_for_ip_address=dict(type='bool', default=False),
|
|
|
|
resource_pool=dict(type='str'),
|
|
|
|
snapshot_src=dict(type='str'),
|
|
|
|
customization=dict(type='dict', default={}, no_log=True),
|
|
|
|
linked_clone=dict(type='bool', default=False),
|
|
|
|
|
|
|
|
networks=dict(type='list', default=[]),
|
|
|
|
|
|
|
|
resource_pool=dict(type='str'),
|
|
|
|
|
|
|
|
customization=dict(type='dict', default={}, no_log=True),
|
|
|
|
|
|
|
|
),
|
|
|
|
|
|
|
|
supports_check_mode=True,
|
|
|
|
|
|
|
|
mutually_exclusive=[
|
|
|
|
|
|
|
|
['cluster', 'esxi_hostname'],
|
|
|
|
|
|
|
|
],
|
|
|
|
|
|
|
|
)
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
module = AnsibleModule(argument_spec=argument_spec,
|
|
|
|
|
|
|
|
supports_check_mode=True,
|
|
|
|
|
|
|
|
mutually_exclusive=[
|
|
|
|
|
|
|
|
['cluster', 'esxi_hostname'],
|
|
|
|
|
|
|
|
],
|
|
|
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
result = {'failed': False, 'changed': False}
|
|
|
|
result = {'failed': False, 'changed': False}
|
|
|
|
|
|
|
|
|
|
|
|
# FindByInventoryPath() does not require an absolute path
|
|
|
|
# FindByInventoryPath() does not require an absolute path
|
|
|
|