vmware_deploy_ovf: Use correct datastore in multi-datacenter environment
Fixes: #63920 Need to pass the datacenter to assure we get the correct datastore managed object Id.
This commit is contained in:
parent
41b199a936
commit
dc59880c31
2 changed files with 7 additions and 5 deletions
|
@ -166,8 +166,8 @@ def get_parent_datacenter(obj):
|
||||||
return datacenter
|
return datacenter
|
||||||
|
|
||||||
|
|
||||||
def find_datastore_by_name(content, datastore_name):
|
def find_datastore_by_name(content, datastore_name, datacenter_name=None):
|
||||||
return find_object_by_name(content, datastore_name, [vim.Datastore])
|
return find_object_by_name(content, datastore_name, [vim.Datastore], datacenter_name)
|
||||||
|
|
||||||
|
|
||||||
def find_dvs_by_name(content, switch_name, folder=None):
|
def find_dvs_by_name(content, switch_name, folder=None):
|
||||||
|
@ -1311,16 +1311,18 @@ class PyVmomi(object):
|
||||||
return False
|
return False
|
||||||
return True
|
return True
|
||||||
|
|
||||||
def find_datastore_by_name(self, datastore_name):
|
def find_datastore_by_name(self, datastore_name, datacenter_name=None):
|
||||||
"""
|
"""
|
||||||
Get datastore managed object by name
|
Get datastore managed object by name
|
||||||
Args:
|
Args:
|
||||||
datastore_name: Name of datastore
|
datastore_name: Name of datastore
|
||||||
|
datacenter_name: Name of datacenter where the datastore resides. This is needed because Datastores can be
|
||||||
|
shared across Datacenters, so we need to specify the datacenter to assure we get the correct Managed Object Reference
|
||||||
|
|
||||||
Returns: datastore managed object if found else None
|
Returns: datastore managed object if found else None
|
||||||
|
|
||||||
"""
|
"""
|
||||||
return find_datastore_by_name(self.content, datastore_name=datastore_name)
|
return find_datastore_by_name(self.content, datastore_name=datastore_name, datacenter_name=datacenter_name)
|
||||||
|
|
||||||
# Datastore cluster
|
# Datastore cluster
|
||||||
def find_datastore_cluster_by_name(self, datastore_cluster_name):
|
def find_datastore_cluster_by_name(self, datastore_cluster_name):
|
||||||
|
|
|
@ -338,7 +338,7 @@ class VMwareDeployOvf(PyVmomi):
|
||||||
if datastore:
|
if datastore:
|
||||||
self.datastore = datastore
|
self.datastore = datastore
|
||||||
else:
|
else:
|
||||||
self.datastore = self.find_datastore_by_name(self.params['datastore'])
|
self.datastore = self.find_datastore_by_name(self.params['datastore'], self.datacenter)
|
||||||
|
|
||||||
if not self.datastore:
|
if not self.datastore:
|
||||||
self.module.fail_json(msg='%(datastore)s could not be located' % self.params)
|
self.module.fail_json(msg='%(datastore)s could not be located' % self.params)
|
||||||
|
|
Loading…
Reference in a new issue