From da62d04eff03e1347ec9c5ba5a3b6f75bb228633 Mon Sep 17 00:00:00 2001 From: Vyronas Tsingaras Date: Fri, 19 Jun 2015 13:04:19 +0300 Subject: [PATCH] This enable one to find a datastore with no config_target supplied Signed-off-by: Vyronas Tsingaras --- cloud/vmware/vsphere_guest.py | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/cloud/vmware/vsphere_guest.py b/cloud/vmware/vsphere_guest.py index 33d8fc4abc0..eba8466dd2b 100644 --- a/cloud/vmware/vsphere_guest.py +++ b/cloud/vmware/vsphere_guest.py @@ -417,13 +417,21 @@ def add_nic(module, s, nfmor, config, devices, nic_type="vmxnet3", network_name= def find_datastore(module, s, datastore, config_target): # Verify the datastore exists and put it in brackets if it does. ds = None - for d in config_target.Datastore: - if (d.Datastore.Accessible and - (datastore and d.Datastore.Name == datastore) - or (not datastore)): - ds = d.Datastore.Datastore - datastore = d.Datastore.Name - break + if config_target: + for d in config_target.Datastore: + if (d.Datastore.Accessible and + (datastore and d.Datastore.Name == datastore) + or (not datastore)): + ds = d.Datastore.Datastore + datastore = d.Datastore.Name + break + else: + for ds_mor, ds_name in server.get_datastores().items(): + ds_props = VIProperty(s, ds_mor) + if (ds_props.summary.accessible and (datastore and ds_name == datastore) + or (not datastore)): + ds = ds_mor + datastore = ds_name if not ds: s.disconnect() module.fail_json(msg="Datastore: %s does not appear to exist" %