def setUp(self): super(VolumesPolicyTest, self).setUp() self.controller = volumes_v21.VolumeController() self.snapshot_ctlr = volumes_v21.SnapshotController() self.req = fakes.HTTPRequest.blank('') self.controller._translate_volume_summary_view = mock.MagicMock() # Everyone will be able to perform crud operations # on volume and volume snapshots. # NOTE: Nova cannot verify the volume/snapshot owner during nova policy # enforcement so will be passing context's project_id as target to # policy and always pass. If requester is not admin or owner # of volume/snapshot then cinder will be returning the appropriate # error. self.project_member_authorized_contexts = [ self.legacy_admin_context, self.system_admin_context, self.project_admin_context, self.project_member_context, self.project_reader_context, self.project_foo_context, self.other_project_reader_context, self.system_member_context, self.system_reader_context, self.system_foo_context, self.other_project_member_context ] self.project_reader_authorized_contexts = [ self.legacy_admin_context, self.system_admin_context, self.project_admin_context, self.project_member_context, self.project_reader_context, self.project_foo_context, self.other_project_reader_context, self.system_member_context, self.system_reader_context, self.system_foo_context, self.other_project_member_context ]
def test_volume_create_bad_snapshot_id(self, mock_create, mock_get): vol = {"snapshot_id": '1', "size": 10} body = {"volume": vol} mock_get.side_effect = exception.SnapshotNotFound(snapshot_id='1') req = fakes.HTTPRequest.blank(self.url_prefix + '/os-volumes') self.assertRaises(webob.exc.HTTPNotFound, volumes_v21.VolumeController().create, req, body=body)
def _test_volume_translate_exception(self, cinder_exc, api_exc): """Tests that cinder exceptions are correctly translated""" def fake_volume_create(self, context, size, name, description, snapshot, **param): raise cinder_exc self.stubs.Set(cinder.API, "create", fake_volume_create) vol = {"size": '10', "display_name": "Volume Test Name", "display_description": "Volume Test Desc", "availability_zone": "zone1:host1"} body = {"volume": vol} req = fakes.HTTPRequest.blank(self.url_prefix + '/os-volumes') self.assertRaises(api_exc, volumes_v21.VolumeController().create, req, body=body)
def setUp(self): super(TestVolumesAPIDeprecation, self).setUp() self.controller = volumes_v21.VolumeController() self.req = fakes.HTTPRequest.blank('', version='2.36')
def _test_list_with_invalid_filter(self, url): prefix = '/os-volumes' req = fakes.HTTPRequest.blank(prefix + url) self.assertRaises(exception.ValidationError, volumes_v21.VolumeController().index, req)