|
|
@ -100,14 +100,14 @@ import socket
|
|
|
|
import traceback
|
|
|
|
import traceback
|
|
|
|
|
|
|
|
|
|
|
|
from ansible.module_utils.basic import AnsibleModule
|
|
|
|
from ansible.module_utils.basic import AnsibleModule
|
|
|
|
from ansible.module_utils.six.moves.urllib.parse import urlencode
|
|
|
|
from ansible.module_utils.six.moves.urllib.parse import urlencode, quote
|
|
|
|
from ansible.module_utils._text import to_native
|
|
|
|
from ansible.module_utils._text import to_native
|
|
|
|
from ansible.module_utils.urls import open_url
|
|
|
|
from ansible.module_utils.urls import open_url
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def vmware_path(datastore, datacenter, path):
|
|
|
|
def vmware_path(datastore, datacenter, path):
|
|
|
|
''' Constructs a URL path that VSphere accepts reliably '''
|
|
|
|
''' Constructs a URL path that VSphere accepts reliably '''
|
|
|
|
path = "/folder/%s" % path.lstrip("/")
|
|
|
|
path = "/folder/%s" % quote(path.lstrip("/"))
|
|
|
|
# Due to a software bug in vSphere, it fails to handle ampersand in datacenter names
|
|
|
|
# Due to a software bug in vSphere, it fails to handle ampersand in datacenter names
|
|
|
|
# The solution is to do what vSphere does (when browsing) and double-encode ampersands, maybe others ?
|
|
|
|
# The solution is to do what vSphere does (when browsing) and double-encode ampersands, maybe others ?
|
|
|
|
datacenter = datacenter.replace('&', '%26')
|
|
|
|
datacenter = datacenter.replace('&', '%26')
|
|
|
|