Enable the option to return the response body

As a continuation of the patch mentioned below:
https://review.opendev.org/c/openstack/python-manilaclient/+/890330

Change-Id: I4c1c1e089a726608124693c13eca73ce12fd5b8e
This commit is contained in:
lkuchlan 2023-08-08 12:17:20 +03:00
parent 47b0ac7d59
commit 2f6cd660c6
3 changed files with 18 additions and 12 deletions

View File

@ -64,7 +64,8 @@ class Manager(utils.HookableMixin):
def api_version(self):
return self.api.api_version
def _list(self, url, response_key, manager=None, body=None):
def _list(self, url, response_key, manager=None, body=None,
return_raw=None):
"""List the collection.
:param url: a partial URL, e.g., '/shares'
@ -97,6 +98,8 @@ class Manager(utils.HookableMixin):
pass
with self.completion_cache('human_id', obj_class, mode="w"):
with self.completion_cache('uuid', obj_class, mode="w"):
if return_raw:
return data
resource = [obj_class(manager, res, loaded=True)
for res in data if res]
if 'count' in body:

View File

@ -332,15 +332,15 @@ class SharesTest(utils.TestCase):
if version >= api_versions.APIVersion('2.69'):
manager.do_list.assert_called_once_with(
detailed=False, search_opts=search_opts3,
sort_key=None, sort_dir=None)
sort_key=None, sort_dir=None, return_raw=False)
elif version >= api_versions.APIVersion('2.35'):
manager.do_list.assert_called_once_with(
detailed=False, search_opts=search_opts2,
sort_key=None, sort_dir=None)
sort_key=None, sort_dir=None, return_raw=False)
else:
manager.do_list.assert_called_once_with(
detailed=False, search_opts=search_opts1,
sort_key=None, sort_dir=None)
sort_key=None, sort_dir=None, return_raw=False)
def test_list_shares_index_with_search_opts(self):
search_opts = {

View File

@ -345,31 +345,34 @@ class ShareManager(base.MetadataCapableManager):
@api_versions.wraps("1.0", "2.34")
def list(self, detailed=True, search_opts=None,
sort_key=None, sort_dir=None):
sort_key=None, sort_dir=None, return_raw=False):
"""Get a list of all shares."""
search_opts = search_opts or {}
search_opts.pop("export_location", None)
search_opts.pop("is_soft_deleted", None)
return self.do_list(detailed=detailed, search_opts=search_opts,
sort_key=sort_key, sort_dir=sort_dir)
sort_key=sort_key, sort_dir=sort_dir,
return_raw=return_raw)
@api_versions.wraps("2.35", "2.68") # noqa
def list(self, detailed=True, search_opts=None, # noqa
sort_key=None, sort_dir=None):
sort_key=None, sort_dir=None, return_raw=False):
"""Get a list of all shares."""
search_opts.pop("is_soft_deleted", None)
return self.do_list(detailed=detailed, search_opts=search_opts,
sort_key=sort_key, sort_dir=sort_dir)
sort_key=sort_key, sort_dir=sort_dir,
return_raw=return_raw)
@api_versions.wraps("2.69") # noqa
def list(self, detailed=True, search_opts=None, # noqa
sort_key=None, sort_dir=None):
sort_key=None, sort_dir=None, return_raw=False):
"""Get a list of all shares."""
return self.do_list(detailed=detailed, search_opts=search_opts,
sort_key=sort_key, sort_dir=sort_dir)
sort_key=sort_key, sort_dir=sort_dir,
return_raw=return_raw)
def do_list(self, detailed=True, search_opts=None,
sort_key=None, sort_dir=None):
sort_key=None, sort_dir=None, return_raw=False):
"""Get a list of all shares.
:param detailed: Whether to return detailed share info or not.
@ -440,7 +443,7 @@ class ShareManager(base.MetadataCapableManager):
else:
path = "/shares%s" % (query_string,)
return self._list(path, 'shares')
return self._list(path, 'shares', return_raw=return_raw)
def delete(self, share, share_group_id=None):
"""Delete a share.