def test_filter_hubs_by_profile(self): pbm_client = mock.Mock() session = mock.Mock() session.pbm = pbm_client hubs = mock.Mock() profile_id = 'profile-0' pbm.filter_hubs_by_profile(session, hubs, profile_id) session.invoke_api.assert_called_once_with( pbm_client, 'PbmQueryMatchingHub', pbm_client.service_content.placementSolver, hubsToSearch=hubs, profile=profile_id)
def _filter_by_profile(self, datastores, profile_id): """Filter out input datastores that do not match the given profile.""" cf = self._session.pbm.client.factory hubs = pbm.convert_datastores_to_hubs(cf, datastores) hubs = pbm.filter_hubs_by_profile(self._session, hubs, profile_id) hub_ids = [hub.hubId for hub in hubs] return {k: v for k, v in datastores.items() if k.value in hub_ids}
def _filter_by_profile(self, datastores, profile_id): """Filter out input datastores that do not match the given profile.""" cf = self._session.pbm.client.factory hubs = pbm.convert_datastores_to_hubs(cf, datastores) filtered_hubs = pbm.filter_hubs_by_profile(self._session, hubs, profile_id) return pbm.filter_datastores_by_hubs(filtered_hubs, datastores)
def _filter_datastores_matching_storage_policy(session, datastores, storage_policy): """Get datastores matching the given storage policy. :param datastores: an iterator over objects of a RetrieveResult :param storage_policy: the storage policy name :return: an iterator to datastores conforming to the given storage policy """ profile_id = pbm.get_profile_id_by_name(session, storage_policy) if not profile_id: LOG.error("Unable to retrieve storage policy with name %s", storage_policy) return factory = session.pbm.client.factory # The hub-id is the moref-value of the datastore ds_mors = [] ref_to_oc = {} for oc in datastores: ds_mors.append(oc.obj) ref_to_oc[vim_util.get_moref_value(oc.obj)] = oc hubs = pbm.convert_datastores_to_hubs(factory, ds_mors) matching_hubs = pbm.filter_hubs_by_profile(session, hubs, profile_id) # Now we have to map back all the matching ones for hub in matching_hubs: yield ref_to_oc[hub.hubId]
def _filter_datastores_matching_storage_policy(session, data_stores, storage_policy): """Get datastores matching the given storage policy. :param data_stores: the list of retrieve result wrapped datastore objects :param storage_policy: the storage policy name :return the list of datastores conforming to the given storage policy """ profile_id = pbm.get_profile_id_by_name(session, storage_policy) if profile_id: factory = session.pbm.client.factory ds_mors = [oc.obj for oc in data_stores.objects] hubs = pbm.convert_datastores_to_hubs(factory, ds_mors) matching_hubs = pbm.filter_hubs_by_profile(session, hubs, profile_id) if matching_hubs: matching_ds = pbm.filter_datastores_by_hubs(matching_hubs, ds_mors) object_contents = [oc for oc in data_stores.objects if oc.obj in matching_ds] data_stores.objects = object_contents return data_stores LOG.error(_LE("Unable to retrieve storage policy with name %s"), storage_policy)
def _filter_datastores_matching_storage_policy(session, data_stores, storage_policy): """Get datastores matching the given storage policy. :param data_stores: the list of retrieve result wrapped datastore objects :param storage_policy: the storage policy name :return: the list of datastores conforming to the given storage policy """ profile_id = pbm.get_profile_id_by_name(session, storage_policy) if profile_id: factory = session.pbm.client.factory ds_mors = [oc.obj for oc in data_stores.objects] hubs = pbm.convert_datastores_to_hubs(factory, ds_mors) matching_hubs = pbm.filter_hubs_by_profile(session, hubs, profile_id) if matching_hubs: matching_ds = pbm.filter_datastores_by_hubs(matching_hubs, ds_mors) object_contents = [ oc for oc in data_stores.objects if oc.obj in matching_ds ] data_stores.objects = object_contents return data_stores LOG.error("Unable to retrieve storage policy with name %s", storage_policy)