def get_available_datastores(session, cluster=None, datastore_regex=None):
 ds = session._call_method(vutil, 'get_object_property', cluster, 'datastore')
 if (not ds):
  return []
 data_store_mors = ds.ManagedObjectReference
 data_stores = session._call_method(vim_util, 'get_properties_for_a_collection_of_objects', 'Datastore', data_store_mors, ['summary.type', 'summary.name', 'summary.accessible', 'summary.maintenanceMode'])
 allowed = []
 while data_stores:
  allowed.extend(_get_allowed_datastores(data_stores, datastore_regex))
  data_stores = session._call_method(vutil, 'continue_retrieval', data_stores)
 return allowed

def get_available_datastores ( session , cluster = None , datastore_regex = None ) : ds = session . _call_method ( vutil , 'get_object_property' , cluster , 'datastore' ) if ( not ds ) : return [ ] data_store_mors = ds . ManagedObjectReference data_stores = session . _call_method ( vim_util , 'get_properties_for_a_collection_of_objects' , 'Datastore' , data_store_mors , [ 'summary.type' , 'summary.name' , 'summary.accessible' , 'summary.maintenanceMode' ] ) allowed = [ ] while data_stores : allowed . extend ( _get_allowed_datastores ( data_stores , datastore_regex ) ) data_stores = session . _call_method ( vutil , 'continue_retrieval' , data_stores ) return allowed
get the datastore list and choose the first local storage .