Merge "Adds community image loading for instance index view"
This commit is contained in:
commit
d254dac067
|
@ -75,6 +75,30 @@ class InstanceTestHelperMixin(object):
|
|||
class InstanceTestBase(helpers.ResetImageAPIVersionMixin,
|
||||
InstanceTestHelperMixin,
|
||||
helpers.TestCase):
|
||||
def _assert_mock_image_list_detailed_calls(self):
|
||||
expected_calls = [
|
||||
mock.call(helpers.IsHttpRequest()),
|
||||
mock.call(
|
||||
helpers.IsHttpRequest(),
|
||||
filters={'visibility': 'community'}
|
||||
)
|
||||
]
|
||||
self.mock_image_list_detailed.assert_has_calls(expected_calls, False)
|
||||
|
||||
def _assert_mock_image_list_detailed_calls_double(self):
|
||||
expected_calls = [
|
||||
mock.call(helpers.IsHttpRequest()),
|
||||
mock.call(
|
||||
helpers.IsHttpRequest(),
|
||||
filters={'visibility': 'community'}
|
||||
),
|
||||
mock.call(helpers.IsHttpRequest()),
|
||||
mock.call(
|
||||
helpers.IsHttpRequest(),
|
||||
filters={'visibility': 'community'}
|
||||
)
|
||||
]
|
||||
self.mock_image_list_detailed.assert_has_calls(expected_calls, False)
|
||||
|
||||
def setUp(self):
|
||||
super(InstanceTestBase, self).setUp()
|
||||
|
@ -216,8 +240,8 @@ class InstanceTableTests(InstanceTestBase, InstanceTableTestMixin):
|
|||
self.mock_is_feature_available, expected_feature_count,
|
||||
mock.call(helpers.IsHttpRequest(), 'locked_attribute'))
|
||||
self.mock_flavor_list.assert_called_once_with(helpers.IsHttpRequest())
|
||||
self.mock_image_list_detailed.assert_called_once_with(
|
||||
helpers.IsHttpRequest())
|
||||
self._assert_mock_image_list_detailed_calls()
|
||||
|
||||
search_opts = {'marker': None, 'paginate': True}
|
||||
self.mock_server_list_paged.assert_called_once_with(
|
||||
helpers.IsHttpRequest(),
|
||||
|
@ -285,10 +309,9 @@ class InstanceTableTests(InstanceTestBase, InstanceTableTestMixin):
|
|||
self.assertTemplateUsed(res, INDEX_TEMPLATE)
|
||||
self.assertEqual(len(res.context['instances_table'].data), 0)
|
||||
self.assertMessageCount(res, error=1)
|
||||
|
||||
self.mock_flavor_list.assert_called_once_with(helpers.IsHttpRequest())
|
||||
self.mock_image_list_detailed.assert_called_once_with(
|
||||
helpers.IsHttpRequest())
|
||||
self._assert_mock_image_list_detailed_calls()
|
||||
|
||||
self.mock_server_list_paged.assert_called_once_with(
|
||||
helpers.IsHttpRequest(),
|
||||
sort_dir='desc',
|
||||
|
@ -345,8 +368,8 @@ class InstanceTableTests(InstanceTestBase, InstanceTableTestMixin):
|
|||
self.mock_servers_update_addresses.assert_called_once_with(
|
||||
helpers.IsHttpRequest(), servers)
|
||||
self.mock_flavor_list.assert_called_once_with(helpers.IsHttpRequest())
|
||||
self.mock_image_list_detailed.assert_called_once_with(
|
||||
helpers.IsHttpRequest())
|
||||
self._assert_mock_image_list_detailed_calls()
|
||||
|
||||
self.assert_mock_multiple_calls_with_same_arguments(
|
||||
self.mock_tenant_absolute_limits, 2,
|
||||
mock.call(helpers.IsHttpRequest(), reserved=True))
|
||||
|
@ -401,8 +424,8 @@ class InstanceTableTests(InstanceTestBase, InstanceTableTestMixin):
|
|||
self.mock_is_feature_available, 8,
|
||||
mock.call(helpers.IsHttpRequest(), 'locked_attribute'))
|
||||
self.mock_flavor_list.assert_called_once_with(helpers.IsHttpRequest())
|
||||
self.mock_image_list_detailed.assert_called_once_with(
|
||||
helpers.IsHttpRequest())
|
||||
self._assert_mock_image_list_detailed_calls()
|
||||
|
||||
search_opts = {'marker': None, 'paginate': True}
|
||||
self.mock_server_list_paged.assert_called_once_with(
|
||||
helpers.IsHttpRequest(),
|
||||
|
@ -476,8 +499,8 @@ class InstanceTableTests(InstanceTestBase, InstanceTableTestMixin):
|
|||
self.mock_servers_update_addresses.assert_called_once_with(
|
||||
helpers.IsHttpRequest(), servers)
|
||||
self.mock_flavor_list.assert_called_once_with(helpers.IsHttpRequest())
|
||||
self.mock_image_list_detailed.assert_called_once_with(
|
||||
helpers.IsHttpRequest())
|
||||
self._assert_mock_image_list_detailed_calls()
|
||||
|
||||
self.mock_server_delete.assert_called_once_with(
|
||||
helpers.IsHttpRequest(), server.id)
|
||||
|
||||
|
@ -512,8 +535,7 @@ class InstanceTableTests(InstanceTestBase, InstanceTableTestMixin):
|
|||
self.mock_servers_update_addresses.assert_called_once_with(
|
||||
helpers.IsHttpRequest(), servers)
|
||||
self.mock_flavor_list.assert_called_once_with(helpers.IsHttpRequest())
|
||||
self.mock_image_list_detailed.assert_called_once_with(
|
||||
helpers.IsHttpRequest())
|
||||
self._assert_mock_image_list_detailed_calls()
|
||||
self.mock_server_delete.assert_called_once_with(
|
||||
helpers.IsHttpRequest(), server.id)
|
||||
|
||||
|
@ -547,8 +569,7 @@ class InstanceTableTests(InstanceTestBase, InstanceTableTestMixin):
|
|||
self.mock_servers_update_addresses.assert_called_once_with(
|
||||
helpers.IsHttpRequest(), servers)
|
||||
self.mock_flavor_list.assert_called_once_with(helpers.IsHttpRequest())
|
||||
self.mock_image_list_detailed.assert_called_once_with(
|
||||
helpers.IsHttpRequest())
|
||||
self._assert_mock_image_list_detailed_calls()
|
||||
self.mock_server_delete.assert_called_once_with(
|
||||
helpers.IsHttpRequest(), server.id)
|
||||
|
||||
|
@ -580,8 +601,7 @@ class InstanceTableTests(InstanceTestBase, InstanceTableTestMixin):
|
|||
self.mock_extension_supported.assert_called_once_with(
|
||||
'AdminActions', helpers.IsHttpRequest())
|
||||
self.mock_flavor_list.assert_called_once_with(helpers.IsHttpRequest())
|
||||
self.mock_image_list_detailed.assert_called_once_with(
|
||||
helpers.IsHttpRequest())
|
||||
self._assert_mock_image_list_detailed_calls()
|
||||
search_opts = {'marker': None, 'paginate': True}
|
||||
self.mock_server_list_paged.assert_called_once_with(
|
||||
helpers.IsHttpRequest(),
|
||||
|
@ -620,8 +640,7 @@ class InstanceTableTests(InstanceTestBase, InstanceTableTestMixin):
|
|||
self.mock_extension_supported.assert_called_once_with(
|
||||
'AdminActions', helpers.IsHttpRequest())
|
||||
self.mock_flavor_list.assert_called_once_with(helpers.IsHttpRequest())
|
||||
self.mock_image_list_detailed.assert_called_once_with(
|
||||
helpers.IsHttpRequest())
|
||||
self._assert_mock_image_list_detailed_calls()
|
||||
search_opts = {'marker': None, 'paginate': True}
|
||||
self.mock_server_list_paged.assert_called_once_with(
|
||||
helpers.IsHttpRequest(),
|
||||
|
@ -660,8 +679,8 @@ class InstanceTableTests(InstanceTestBase, InstanceTableTestMixin):
|
|||
self.mock_extension_supported.assert_called_once_with(
|
||||
'AdminActions', helpers.IsHttpRequest())
|
||||
self.mock_flavor_list.assert_called_once_with(helpers.IsHttpRequest())
|
||||
self.mock_image_list_detailed.assert_called_once_with(
|
||||
helpers.IsHttpRequest())
|
||||
self._assert_mock_image_list_detailed_calls()
|
||||
|
||||
search_opts = {'marker': None, 'paginate': True}
|
||||
self.mock_server_list_paged.assert_called_once_with(
|
||||
helpers.IsHttpRequest(),
|
||||
|
@ -701,8 +720,8 @@ class InstanceTableTests(InstanceTestBase, InstanceTableTestMixin):
|
|||
self.mock_extension_supported.assert_called_once_with(
|
||||
'AdminActions', helpers.IsHttpRequest())
|
||||
self.mock_flavor_list.assert_called_once_with(helpers.IsHttpRequest())
|
||||
self.mock_image_list_detailed.assert_called_once_with(
|
||||
helpers.IsHttpRequest())
|
||||
self._assert_mock_image_list_detailed_calls()
|
||||
|
||||
search_opts = {'marker': None, 'paginate': True}
|
||||
self.mock_server_list_paged.assert_called_once_with(
|
||||
helpers.IsHttpRequest(),
|
||||
|
@ -736,8 +755,8 @@ class InstanceTableTests(InstanceTestBase, InstanceTableTestMixin):
|
|||
self.assertRedirectsNoFollow(res, INDEX_URL)
|
||||
|
||||
self.mock_flavor_list.assert_called_once_with(helpers.IsHttpRequest())
|
||||
self.mock_image_list_detailed.assert_called_once_with(
|
||||
helpers.IsHttpRequest())
|
||||
self._assert_mock_image_list_detailed_calls()
|
||||
|
||||
search_opts = {'marker': None, 'paginate': True}
|
||||
self.mock_server_list_paged.assert_called_once_with(
|
||||
helpers.IsHttpRequest(),
|
||||
|
@ -771,8 +790,8 @@ class InstanceTableTests(InstanceTestBase, InstanceTableTestMixin):
|
|||
self.assertRedirectsNoFollow(res, INDEX_URL)
|
||||
|
||||
self.mock_flavor_list.assert_called_once_with(helpers.IsHttpRequest())
|
||||
self.mock_image_list_detailed.assert_called_once_with(
|
||||
helpers.IsHttpRequest())
|
||||
self._assert_mock_image_list_detailed_calls()
|
||||
|
||||
search_opts = {'marker': None, 'paginate': True}
|
||||
self.mock_server_list_paged.assert_called_once_with(
|
||||
helpers.IsHttpRequest(),
|
||||
|
@ -806,8 +825,8 @@ class InstanceTableTests(InstanceTestBase, InstanceTableTestMixin):
|
|||
self.assertRedirectsNoFollow(res, INDEX_URL)
|
||||
|
||||
self.mock_flavor_list.assert_called_once_with(helpers.IsHttpRequest())
|
||||
self.mock_image_list_detailed.assert_called_once_with(
|
||||
helpers.IsHttpRequest())
|
||||
self._assert_mock_image_list_detailed_calls()
|
||||
|
||||
search_opts = {'marker': None, 'paginate': True}
|
||||
self.mock_server_list_paged.assert_called_once_with(
|
||||
helpers.IsHttpRequest(),
|
||||
|
@ -849,8 +868,8 @@ class InstanceTableTests(InstanceTestBase, InstanceTableTestMixin):
|
|||
'AdminActions', helpers.IsHttpRequest())
|
||||
self.mock_flavor_list.assert_called_once_with(
|
||||
helpers.IsHttpRequest())
|
||||
self.mock_image_list_detailed.assert_called_once_with(
|
||||
helpers.IsHttpRequest())
|
||||
self._assert_mock_image_list_detailed_calls()
|
||||
|
||||
search_opts = {'marker': None, 'paginate': True}
|
||||
self.mock_server_list_paged.assert_called_once_with(
|
||||
helpers.IsHttpRequest(),
|
||||
|
@ -895,8 +914,8 @@ class InstanceTableTests(InstanceTestBase, InstanceTableTestMixin):
|
|||
self.mock_extension_supported.assert_called_once_with(
|
||||
'AdminActions', helpers.IsHttpRequest())
|
||||
self.mock_flavor_list.assert_called_once_with(helpers.IsHttpRequest())
|
||||
self.mock_image_list_detailed.assert_called_once_with(
|
||||
helpers.IsHttpRequest())
|
||||
self._assert_mock_image_list_detailed_calls()
|
||||
|
||||
self.mock_server_list_paged.assert_called_once_with(
|
||||
helpers.IsHttpRequest(),
|
||||
sort_dir='desc',
|
||||
|
@ -935,8 +954,8 @@ class InstanceTableTests(InstanceTestBase, InstanceTableTestMixin):
|
|||
self.mock_extension_supported.assert_called_once_with(
|
||||
'AdminActions', helpers.IsHttpRequest())
|
||||
self.mock_flavor_list.assert_called_once_with(helpers.IsHttpRequest())
|
||||
self.mock_image_list_detailed.assert_called_once_with(
|
||||
helpers.IsHttpRequest())
|
||||
self._assert_mock_image_list_detailed_calls()
|
||||
|
||||
search_opts = {'marker': None, 'paginate': True}
|
||||
self.mock_server_list_paged.assert_called_once_with(
|
||||
helpers.IsHttpRequest(),
|
||||
|
@ -976,8 +995,8 @@ class InstanceTableTests(InstanceTestBase, InstanceTableTestMixin):
|
|||
self.mock_extension_supported.assert_called_once_with(
|
||||
'AdminActions', helpers.IsHttpRequest())
|
||||
self.mock_flavor_list.assert_called_once_with(helpers.IsHttpRequest())
|
||||
self.mock_image_list_detailed.assert_called_once_with(
|
||||
helpers.IsHttpRequest())
|
||||
self._assert_mock_image_list_detailed_calls()
|
||||
|
||||
search_opts = {'marker': None, 'paginate': True}
|
||||
self.mock_server_list_paged.assert_called_once_with(
|
||||
helpers.IsHttpRequest(),
|
||||
|
@ -1017,8 +1036,8 @@ class InstanceTableTests(InstanceTestBase, InstanceTableTestMixin):
|
|||
self.mock_extension_supported.assert_called_once_with(
|
||||
'AdminActions', helpers.IsHttpRequest())
|
||||
self.mock_flavor_list.assert_called_once_with(helpers.IsHttpRequest())
|
||||
self.mock_image_list_detailed.assert_called_once_with(
|
||||
helpers.IsHttpRequest())
|
||||
self._assert_mock_image_list_detailed_calls()
|
||||
|
||||
search_opts = {'marker': None, 'paginate': True}
|
||||
self.mock_server_list_paged.assert_called_once_with(
|
||||
helpers.IsHttpRequest(),
|
||||
|
@ -1056,8 +1075,8 @@ class InstanceTableTests(InstanceTestBase, InstanceTableTestMixin):
|
|||
self.mock_extension_supported.assert_called_once_with(
|
||||
'Shelve', helpers.IsHttpRequest())
|
||||
self.mock_flavor_list.assert_called_once_with(helpers.IsHttpRequest())
|
||||
self.mock_image_list_detailed.assert_called_once_with(
|
||||
helpers.IsHttpRequest())
|
||||
self._assert_mock_image_list_detailed_calls()
|
||||
|
||||
search_opts = {'marker': None, 'paginate': True}
|
||||
self.mock_server_list_paged.assert_called_once_with(
|
||||
helpers.IsHttpRequest(),
|
||||
|
@ -1096,8 +1115,8 @@ class InstanceTableTests(InstanceTestBase, InstanceTableTestMixin):
|
|||
self.mock_extension_supported.assert_called_once_with(
|
||||
'Shelve', helpers.IsHttpRequest())
|
||||
self.mock_flavor_list.assert_called_once_with(helpers.IsHttpRequest())
|
||||
self.mock_image_list_detailed.assert_called_once_with(
|
||||
helpers.IsHttpRequest())
|
||||
self._assert_mock_image_list_detailed_calls()
|
||||
|
||||
search_opts = {'marker': None, 'paginate': True}
|
||||
self.mock_server_list_paged.assert_called_once_with(
|
||||
helpers.IsHttpRequest(),
|
||||
|
@ -1137,8 +1156,8 @@ class InstanceTableTests(InstanceTestBase, InstanceTableTestMixin):
|
|||
self.mock_extension_supported.assert_called_once_with(
|
||||
'Shelve', helpers.IsHttpRequest())
|
||||
self.mock_flavor_list.assert_called_once_with(helpers.IsHttpRequest())
|
||||
self.mock_image_list_detailed.assert_called_once_with(
|
||||
helpers.IsHttpRequest())
|
||||
self._assert_mock_image_list_detailed_calls()
|
||||
|
||||
search_opts = {'marker': None, 'paginate': True}
|
||||
self.mock_server_list_paged.assert_called_once_with(
|
||||
helpers.IsHttpRequest(),
|
||||
|
@ -1178,8 +1197,8 @@ class InstanceTableTests(InstanceTestBase, InstanceTableTestMixin):
|
|||
self.mock_extension_supported.assert_called_once_with(
|
||||
'Shelve', helpers.IsHttpRequest())
|
||||
self.mock_flavor_list.assert_called_once_with(helpers.IsHttpRequest())
|
||||
self.mock_image_list_detailed.assert_called_once_with(
|
||||
helpers.IsHttpRequest())
|
||||
self._assert_mock_image_list_detailed_calls()
|
||||
|
||||
search_opts = {'marker': None, 'paginate': True}
|
||||
self.mock_server_list_paged.assert_called_once_with(
|
||||
helpers.IsHttpRequest(),
|
||||
|
@ -1220,8 +1239,8 @@ class InstanceTableTests(InstanceTestBase, InstanceTableTestMixin):
|
|||
self.mock_is_feature_available.assert_called_once_with(
|
||||
helpers.IsHttpRequest(), 'locked_attribute')
|
||||
self.mock_flavor_list.assert_called_once_with(helpers.IsHttpRequest())
|
||||
self.mock_image_list_detailed.assert_called_once_with(
|
||||
helpers.IsHttpRequest())
|
||||
self._assert_mock_image_list_detailed_calls()
|
||||
|
||||
search_opts = {'marker': None, 'paginate': True}
|
||||
self.mock_server_list_paged.assert_called_once_with(
|
||||
helpers.IsHttpRequest(),
|
||||
|
@ -1264,8 +1283,8 @@ class InstanceTableTests(InstanceTestBase, InstanceTableTestMixin):
|
|||
helpers.IsHttpRequest(), 'locked_attribute')
|
||||
self.mock_flavor_list.assert_called_once_with(
|
||||
helpers.IsHttpRequest())
|
||||
self.mock_image_list_detailed.assert_called_once_with(
|
||||
helpers.IsHttpRequest())
|
||||
self._assert_mock_image_list_detailed_calls()
|
||||
|
||||
search_opts = {'marker': None, 'paginate': True}
|
||||
self.mock_server_list_paged.assert_called_once_with(
|
||||
helpers.IsHttpRequest(),
|
||||
|
@ -1306,8 +1325,8 @@ class InstanceTableTests(InstanceTestBase, InstanceTableTestMixin):
|
|||
helpers.IsHttpRequest(), 'locked_attribute')
|
||||
self.mock_flavor_list.assert_called_once_with(
|
||||
helpers.IsHttpRequest())
|
||||
self.mock_image_list_detailed.assert_called_once_with(
|
||||
helpers.IsHttpRequest())
|
||||
self._assert_mock_image_list_detailed_calls()
|
||||
|
||||
search_opts = {'marker': None, 'paginate': True}
|
||||
self.mock_server_list_paged.assert_called_once_with(
|
||||
helpers.IsHttpRequest(),
|
||||
|
@ -1348,8 +1367,8 @@ class InstanceTableTests(InstanceTestBase, InstanceTableTestMixin):
|
|||
self.mock_is_feature_available.assert_called_once_with(
|
||||
helpers.IsHttpRequest(), 'locked_attribute')
|
||||
self.mock_flavor_list.assert_called_once_with(helpers.IsHttpRequest())
|
||||
self.mock_image_list_detailed.assert_called_once_with(
|
||||
helpers.IsHttpRequest())
|
||||
self._assert_mock_image_list_detailed_calls()
|
||||
|
||||
search_opts = {'marker': None, 'paginate': True}
|
||||
self.mock_server_list_paged.assert_called_once_with(
|
||||
helpers.IsHttpRequest(),
|
||||
|
@ -1875,8 +1894,8 @@ class InstanceTests(InstanceTestBase):
|
|||
self.mock_is_feature_available, 8,
|
||||
mock.call(helpers.IsHttpRequest(), 'locked_attribute'))
|
||||
self.mock_flavor_list.assert_called_once_with(helpers.IsHttpRequest())
|
||||
self.mock_image_list_detailed.assert_called_once_with(
|
||||
helpers.IsHttpRequest())
|
||||
self._assert_mock_image_list_detailed_calls()
|
||||
|
||||
search_opts = {'marker': None, 'paginate': True}
|
||||
self.mock_server_list_paged.assert_called_once_with(
|
||||
helpers.IsHttpRequest(),
|
||||
|
@ -4171,8 +4190,8 @@ class InstanceLaunchInstanceTests(InstanceTestBase,
|
|||
self.mock_is_feature_available, 8,
|
||||
mock.call(helpers.IsHttpRequest(), 'locked_attribute'))
|
||||
self.mock_flavor_list.assert_called_once_with(helpers.IsHttpRequest())
|
||||
self.mock_image_list_detailed.assert_called_once_with(
|
||||
helpers.IsHttpRequest())
|
||||
self._assert_mock_image_list_detailed_calls()
|
||||
|
||||
search_opts = {'marker': None, 'paginate': True}
|
||||
self.mock_server_list_paged.assert_called_once_with(
|
||||
helpers.IsHttpRequest(),
|
||||
|
@ -4236,8 +4255,8 @@ class InstanceLaunchInstanceTests(InstanceTestBase,
|
|||
self.mock_is_feature_available, 8,
|
||||
mock.call(helpers.IsHttpRequest(), 'locked_attribute'))
|
||||
self.mock_flavor_list.assert_called_once_with(helpers.IsHttpRequest())
|
||||
self.mock_image_list_detailed.assert_called_once_with(
|
||||
helpers.IsHttpRequest())
|
||||
self._assert_mock_image_list_detailed_calls()
|
||||
|
||||
search_opts = {'marker': None, 'paginate': True}
|
||||
self.mock_server_list_paged.assert_called_once_with(
|
||||
helpers.IsHttpRequest(),
|
||||
|
@ -4419,8 +4438,8 @@ class InstanceTests2(InstanceTestBase, InstanceTableTestMixin):
|
|||
self.mock_is_feature_available, 8,
|
||||
mock.call(helpers.IsHttpRequest(), 'locked_attribute'))
|
||||
self.mock_flavor_list.assert_called_once_with(helpers.IsHttpRequest())
|
||||
self.mock_image_list_detailed.assert_called_once_with(
|
||||
helpers.IsHttpRequest())
|
||||
self._assert_mock_image_list_detailed_calls()
|
||||
|
||||
search_opts = {'marker': None, 'paginate': True}
|
||||
self.mock_server_list_paged.assert_called_once_with(
|
||||
helpers.IsHttpRequest(),
|
||||
|
@ -5019,9 +5038,7 @@ class InstanceTests2(InstanceTestBase, InstanceTableTestMixin):
|
|||
self.assert_mock_multiple_calls_with_same_arguments(
|
||||
self.mock_flavor_list, 2,
|
||||
mock.call(helpers.IsHttpRequest()))
|
||||
self.assert_mock_multiple_calls_with_same_arguments(
|
||||
self.mock_image_list_detailed, 2,
|
||||
mock.call(helpers.IsHttpRequest()))
|
||||
self._assert_mock_image_list_detailed_calls_double()
|
||||
|
||||
self.mock_server_list_paged.assert_has_calls([
|
||||
mock.call(helpers.IsHttpRequest(),
|
||||
|
@ -5090,8 +5107,8 @@ class InstanceTests2(InstanceTestBase, InstanceTableTestMixin):
|
|||
self.mock_servers_update_addresses.assert_called_once_with(
|
||||
helpers.IsHttpRequest(), servers[page_size:])
|
||||
self.mock_flavor_list.assert_called_once_with(helpers.IsHttpRequest())
|
||||
self.mock_image_list_detailed.assert_called_once_with(
|
||||
helpers.IsHttpRequest())
|
||||
self._assert_mock_image_list_detailed_calls()
|
||||
|
||||
self.mock_server_delete.assert_called_once_with(
|
||||
helpers.IsHttpRequest(), server.id)
|
||||
|
||||
|
@ -5205,8 +5222,8 @@ class InstanceTests2(InstanceTestBase, InstanceTableTestMixin):
|
|||
self.mock_servers_update_addresses.assert_called_once_with(
|
||||
helpers.IsHttpRequest(), servers)
|
||||
self.mock_flavor_list.assert_called_once_with(helpers.IsHttpRequest())
|
||||
self.mock_image_list_detailed.assert_called_once_with(
|
||||
helpers.IsHttpRequest())
|
||||
self._assert_mock_image_list_detailed_calls()
|
||||
|
||||
self.mock_server_unrescue.assert_called_once_with(
|
||||
helpers.IsHttpRequest(), server.id)
|
||||
|
||||
|
|
|
@ -81,9 +81,22 @@ class IndexView(tables.PagedTableMixin, tables.DataTableView):
|
|||
def _get_images(self):
|
||||
# Gather our images to correlate our instances to them
|
||||
try:
|
||||
# Community images have to be retrieved separately and merged,
|
||||
# because their visibility has to be explicitly defined in the
|
||||
# API call and the Glance API currently does not support filtering
|
||||
# by multiple values in the visibility field.
|
||||
# TODO(gabriel): Handle pagination.
|
||||
images = api.glance.image_list_detailed(self.request)[0]
|
||||
return dict((str(image.id), image) for image in images)
|
||||
community_images = api.glance.image_list_detailed(
|
||||
self.request, filters={'visibility': 'community'})[0]
|
||||
image_map = {
|
||||
image.id: image for image in images
|
||||
}
|
||||
# Images have to be filtered by their uuids; some users
|
||||
# have default access to certain community images.
|
||||
for image in community_images:
|
||||
image_map.setdefault(image.id, image)
|
||||
return image_map
|
||||
except Exception:
|
||||
exceptions.handle(self.request, ignore=True)
|
||||
return {}
|
||||
|
|
Loading…
Reference in New Issue