Ejemplo n.º 1
0
 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
     ]
Ejemplo n.º 2
0
    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)
Ejemplo n.º 3
0
    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)
Ejemplo n.º 4
0
 def setUp(self):
     super(TestVolumesAPIDeprecation, self).setUp()
     self.controller = volumes_v21.VolumeController()
     self.req = fakes.HTTPRequest.blank('', version='2.36')
Ejemplo n.º 5
0
 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)