code: def image_list_detailed(request, marker=None, sort_dir='desc',
                          sort_key='created_at', filters=None, paginate=False,
                          reversed_order=False, **kwargs):
      limit = getattr(settings, 'API_RESULT_LIMIT', 1000)
      page_size = utils.get_page_size(request)
      if paginate:
          request_size = page_size + 1
      else:
          request_size = limit
      _normalize_list_input(filters, **kwargs)
      kwargs = {'filters': filters or {}}
      if marker:
          kwargs['marker'] = marker
      kwargs['sort_key'] = sort_key
      if not reversed_order:
          kwargs['sort_dir'] = sort_dir
      else:
          kwargs['sort_dir'] = 'desc' if sort_dir == 'asc' else 'asc'
      images_iter = glanceclient(request).images.list(page_size=request_size,
                                                      limit=limit,
                                                      **kwargs)
      has_prev_data = False
      has_more_data = False
      if paginate:
          images = list(itertools.islice(images_iter, request_size))
          if len(images) > page_size:
              images.pop(-1)
              has_more_data = True
              if marker is not None:
                  has_prev_data = True
          elif reversed_order and marker is not None:
              has_more_data = True
          elif marker is not None:
              has_prev_data = True
          if reversed_order:
              images = sorted(images, key=lambda image:
                              (getattr(image, sort_key) or '').lower(),
                              reverse=(sort_dir == 'desc'))
      else:
          images = list(images_iter)
      wrapped_images = []
      for image in images:
          wrapped_images.append(Image(image))
      return wrapped_images, has_more_data, has_prev_data