Add utility function to get profiles by IDs

This patch adds a utility function to pbm module to
retrieve SPBM storage profiles by IDs.

Change-Id: I16eb4503707fdd1500151f41d9dad6b8d153531f
This commit is contained in:
Vipin Balachandran 2015-04-27 14:46:28 +05:30
parent 32c61ee8b0
commit 25ec49da50
2 changed files with 39 additions and 0 deletions

View File

@ -216,3 +216,21 @@ def get_profiles(session, vm):
return session.invoke_api(pbm, 'PbmQueryAssociatedProfile',
profile_manager, entity=object_ref)
def get_profiles_by_ids(session, profile_ids):
"""Get storage profiles by IDs.
:param session: VMwareAPISession instance
:param profile_ids: profile IDs
:return: profile objects
"""
profiles = []
if profile_ids:
pbm = session.pbm
profile_manager = pbm.service_content.profileManager
profiles = session.invoke_api(pbm,
'PbmRetrieveContent',
profile_manager,
profileIds=profile_ids)
return profiles

View File

@ -194,3 +194,24 @@ class PBMUtilityTest(base.TestCase):
entity=object_ref)
self.assertEqual(value, object_ref.key)
self.assertEqual('virtualMachine', object_ref.objectType)
def test_get_profiles_by_ids(self):
pbm_service = mock.Mock()
session = mock.Mock(pbm=pbm_service)
profiles = mock.sentinel.profiles
session.invoke_api.return_value = profiles
profile_ids = mock.sentinel.profile_ids
ret = pbm.get_profiles_by_ids(session, profile_ids)
self.assertEqual(profiles, ret)
session.invoke_api.assert_called_once_with(
pbm_service,
'PbmRetrieveContent',
pbm_service.service_content.profileManager,
profileIds=profile_ids)
def test_get_profiles_by_empty_ids(self):
session = mock.Mock()
self.assertEqual([], pbm.get_profiles_by_ids(session, []))