code: def volume_list_paged(request, search_opts=None, marker=None, paginate=False,
                        sort_dir="desc"):
      
      has_more_data = False
      has_prev_data = False
      volumes = []
  
      # To support filtering with group_id, we need to use the microversion.
      c_client = _cinderclient_with_generic_groups(request)
      if c_client is None:
          return volumes, has_more_data, has_prev_data
  
      # build a dictionary of volume_id -> transfer
      transfers = {t.volume_id: t
                   for t in transfer_list(request, search_opts=search_opts)}
  
      if VERSIONS.active > 1 and paginate:
          page_size = utils.get_page_size(request)
          # sort_key and sort_dir deprecated in kilo, use sort
          # if pagination is true, we use a single sort parameter
          # by default, it is "created_at"
          sort = 'created_at:' + sort_dir
          for v in c_client.volumes.list(search_opts=search_opts,
                                         limit=page_size + 1,
                                         marker=marker,
                                         sort=sort):
              v.transfer = transfers.get(v.id)
              volumes.append(Volume(v))
          volumes, has_more_data, has_prev_data = update_pagination(
              volumes, page_size, marker, sort_dir)
      else:
          for v in c_client.volumes.list(search_opts=search_opts):
              v.transfer = transfers.get(v.id)
              volumes.append(Volume(v))
  
      return volumes, has_more_data, has_prev_data
docs: List volumes with pagination.
  
      To see all volumes in the cloud as an admin you can pass in a special
      search option: {'all_tenants': 1}