horizon/openstack_dashboard/dashboards/project/images/views.py
manchandavishal 65d748fb25 Deprecate Django based Panel for Images, Keypair, and roles
As discussed in the horizon meetings or in horizon PTG sessions,
horizon team agreed to deprecate django version of Images, Keypair
and Roles panel as we think that feature gaps between the two
implementations have been closed. Let's mark the Django version as
deprecated for all these panels and gather more attention
from operators.

Change-Id: I965f9dbdd5e78b52a788f73b359c1c6fbc18637e
2022-05-10 05:28:28 +09:00

85 lines
2.8 KiB
Python

# Copyright 2012 United States Government as represented by the
# Administrator of the National Aeronautics and Space Administration.
# All Rights Reserved.
#
# Copyright 2012 Nebula, Inc.
# Copyright 2012 OpenStack Foundation
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
"""
Views for managing Images and Snapshots.
"""
import logging
from django.utils.translation import gettext_lazy as _
from horizon import exceptions
from horizon import messages
from horizon import tables
from openstack_dashboard import api
from openstack_dashboard import policy
from openstack_dashboard.dashboards.project.images.images \
import tables as images_tables
LOG = logging.getLogger(__name__)
class IndexView(tables.DataTableView):
table_class = images_tables.ImagesTable
page_title = _("Images")
def __init__(self):
super().__init__()
LOG.warning('The Django version of the Images panel is deprecated '
'since Zed release. Switch to the AngularJS version by '
'setting "ANGULAR_FEATURES[\'images_panel\'] = True".')
def has_prev_data(self, table):
return getattr(self, "_prev", False)
def has_more_data(self, table):
return getattr(self, "_more", False)
def get_data(self):
if not policy.check((("image", "get_images"),), self.request):
msg = _("Insufficient privilege level to retrieve image list.")
messages.info(self.request, msg)
return []
prev_marker = self.request.GET.get(
images_tables.ImagesTable._meta.prev_pagination_param, None)
if prev_marker is not None:
marker = prev_marker
else:
marker = self.request.GET.get(
images_tables.ImagesTable._meta.pagination_param, None)
reversed_order = prev_marker is not None
try:
images, self._more, self._prev = api.glance.image_list_detailed(
self.request,
marker=marker,
paginate=True,
sort_dir='asc',
sort_key='name',
reversed_order=reversed_order)
except Exception:
images = []
self._prev = self._more = False
exceptions.handle(self.request, _("Unable to retrieve images."))
return images