def test_filter_murano_images(self, mock_log): mock_blank_img = \ mock.MagicMock(id=13, properties={"murano_image_info": "info"}) images = [mock_blank_img] msg = _('Invalid metadata for image: {0}').format(images[0].id) self.assertEqual(images, forms.filter_murano_images(images, self.mock_request)) mock_log.warning.assert_called_once_with(msg) images = [self.mock_img] self.assertEqual(images, forms.filter_murano_images(images))
def test_filter_murano_images(self, mock_log): mock_blank_img = \ mock.MagicMock(id=13, murano_image_info="info") images = [mock_blank_img] msg = _('Invalid metadata for image: {0}').format(images[0].id) self.assertEqual(images, forms.filter_murano_images(images, self.mock_request)) mock_log.warning.assert_called_once_with(msg) images = [self.mock_img] self.assertEqual(images, forms.filter_murano_images(images)) murano_meta = '{"title": "title", "type": "type"}' mock_snapshot_img = mock.MagicMock( id=14, murano_image_info=murano_meta, image_type='snapshot') images = [mock_snapshot_img] self.assertEqual([], forms.filter_murano_images(images, self.mock_request))
def get_data(self): prev_marker = self.request.GET.get( tables.MarkedImagesTable._meta.prev_pagination_param, None) if prev_marker is not None: sort_dir = 'asc' marker = prev_marker else: sort_dir = 'desc' marker = self.request.GET.get( tables.MarkedImagesTable._meta.pagination_param, None) page_size = utils.get_page_size(self.request) request_size = page_size + 1 kwargs = {'filters': {}} if marker: kwargs['marker'] = marker kwargs['sort_dir'] = sort_dir images = [] self._prev = False self._more = False glance_v2_client = glance.glanceclient(self.request, "2") try: images_iter = glance_v2_client.images.list( **kwargs) except Exception: msg = _('Unable to retrieve list of images') uri = reverse('horizon:app-catalog:catalog:index') exceptions.handle(self.request, msg, redirect=uri) marked_images_iter = forms.filter_murano_images( images_iter, request=self.request) images = list(itertools.islice(marked_images_iter, request_size)) # first and middle page condition if len(images) > page_size: images.pop(-1) self._more = True # middle page condition if marker is not None: self._prev = True # first page condition when reached via prev back elif sort_dir == 'asc' and marker is not None: self._more = True # last page condition elif marker is not None: self._prev = True if prev_marker is not None: images.reverse() return images
def test_filter_murano_images(self, mock_log): mock_blank_img = \ mock.MagicMock(id=13, murano_image_info="info") images = [mock_blank_img] msg = _('Invalid metadata for image: {0}').format(images[0].id) self.assertEqual(images, forms.filter_murano_images(images, self.mock_request)) mock_log.warning.assert_called_once_with(msg) images = [self.mock_img] self.assertEqual(images, forms.filter_murano_images(images)) murano_meta = '{"title": "title", "type": "type"}' mock_snapshot_img = mock.MagicMock(id=14, murano_image_info=murano_meta, image_type='snapshot') images = [mock_snapshot_img] self.assertEqual([], forms.filter_murano_images(images, self.mock_request))
def get_data(self): prev_marker = self.request.GET.get( tables.MarkedImagesTable._meta.prev_pagination_param, None) if prev_marker is not None: sort_dir = 'asc' marker = prev_marker else: sort_dir = 'desc' marker = self.request.GET.get( tables.MarkedImagesTable._meta.pagination_param, None) page_size = utils.get_page_size(self.request) request_size = page_size + 1 kwargs = {'filters': {}} if marker: kwargs['marker'] = marker kwargs['sort_dir'] = sort_dir images = [] self._prev = False self._more = False glance_v2_client = glance.glanceclient(self.request, "2") try: images_iter = glance_v2_client.images.list(**kwargs) except Exception: msg = _('Unable to retrieve list of images') uri = reverse('horizon:app-catalog:catalog:index') exceptions.handle(self.request, msg, redirect=uri) marked_images_iter = forms.filter_murano_images(images_iter, request=self.request) images = list(itertools.islice(marked_images_iter, request_size)) # first and middle page condition if len(images) > page_size: images.pop(-1) self._more = True # middle page condition if marker is not None: self._prev = True # first page condition when reached via prev back elif sort_dir == 'asc' and marker is not None: self._more = True # last page condition elif marker is not None: self._prev = True if prev_marker is not None: images.reverse() return images
def get_data(self): images = [] try: # https://bugs.launchpad.net/murano/+bug/1339261 - glance # client version change alters the API. Other tuple values # are _more and _prev (in recent glance client) images = glance.image_list_detailed(self.request)[0] except Exception: msg = _('Unable to retrieve list of images') uri = reverse('horizon:murano:images:index') exceptions.handle(self.request, msg, redirect=uri) return forms.filter_murano_images(images, request=self.request)
def get_data(self): prev_marker = self.request.GET.get( tables.MarkedImagesTable._meta.prev_pagination_param, None) if prev_marker is not None: sort_dir = 'asc' marker = prev_marker else: sort_dir = 'desc' marker = self.request.GET.get( tables.MarkedImagesTable._meta.pagination_param, None) page_size = utils.get_page_size(self.request) request_size = page_size + 1 kwargs = {'filters': {}} if marker: kwargs['marker'] = marker kwargs['sort_dir'] = sort_dir images = [] self._prev = False self._more = False # TODO(kzaitsev) add v2 client support for marking images try: glance_v1_client = glance.glanceclient(self.request, "1") except Exception: # Horizon seems to raise ImportError which doesn't look # specific enough. Let's catch any exceptions. msg = _('Unable to create v1 glance client. Marking images ' 'from murano-dashboard will be unavailable.') uri = reverse('horizon:app-catalog:catalog:index') exceptions.handle(self.request, msg, redirect=uri) try: images_iter = glance_v1_client.images.list(**kwargs) except Exception: msg = _('Unable to retrieve list of images') uri = reverse('horizon:app-catalog:catalog:index') exceptions.handle(self.request, msg, redirect=uri) marked_images_iter = forms.filter_murano_images(images_iter, request=self.request) images = list(itertools.islice(marked_images_iter, request_size)) # first and middle page condition if len(images) > page_size: images.pop(-1) self._more = True # middle page condition if marker is not None: self._prev = True # first page condition when reached via prev back elif sort_dir == 'asc' and marker is not None: self._more = True # last page condition elif marker is not None: self._prev = True if prev_marker is not None: images.reverse() return images