)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"3b07e745c2ee981971edc576155a812eb4f3bc59","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Convert ext filesystem resizes to privsep."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Note: this patch is interesting because its the first time that we\u0027ve"},{"line_number":10,"context_line":"implemented an _optional_ escalation in privsep, and I want to make"},{"line_number":11,"context_line":"sure we\u0027re happy with this pattern before I do any more like this."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Its potentially confusing that something inside the privsep directory"},{"line_number":14,"context_line":"isn\u0027t escalated, but its a security requirement of escalated methods"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"1f485f77_d26dde32","line":11,"range":{"start_line":9,"start_character":0,"end_line":11,"end_character":66},"updated":"2017-11-14 15:39:49.000000000","message":"Should remove this if we\u0027re going to go forward here.","commit_id":"5af73e8396e58d3df2006ec9decd7c958667f9a1"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"3b07e745c2ee981971edc576155a812eb4f3bc59","unresolved":false,"context_lines":[{"line_number":14,"context_line":"isn\u0027t escalated, but its a security requirement of escalated methods"},{"line_number":15,"context_line":"that they only call code within their own subpath of nova."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"I\u0027d appreciate comments on this approach."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Change-Id: Ie09e40d6476dcabda2d599e96701d419e3e8bdf0"},{"line_number":20,"context_line":"blueprint: hurrah-for-privsep"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"1f485f77_92776603","line":17,"updated":"2017-11-14 15:39:49.000000000","message":"Reword all of this to say \"I hereby declare this to be the pattern for things like this\" ?","commit_id":"5af73e8396e58d3df2006ec9decd7c958667f9a1"}],"nova/privsep/fs.py":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"7624c6506fdd5bd491c479d32477fdf7c4845328","unresolved":false,"context_lines":[{"line_number":130,"context_line":""},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"@nova.privsep.sys_admin_pctxt.entrypoint"},{"line_number":133,"context_line":"def resize2fs_escalated(image, check_exit_code):"},{"line_number":134,"context_line":"    resize2fs(image, check_exit_code)"},{"line_number":135,"context_line":""},{"line_number":136,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3f4b6375_9306ff85","line":133,"range":{"start_line":133,"start_character":4,"end_line":133,"end_character":23},"updated":"2017-11-03 10:35:53.000000000","message":"Just to start the discussion:\nIf everything is by default escalated under privsep module then I would add the extra name postfix to the method that is the exception under the general rule. I.e.\n* resize2fs() for the normal, escalated function \n* resize2fs_non_escalated() for the excpetional not escalated function","commit_id":"cd80cdf49d7bc176ed690fc1d18de30bb2d98d76"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"06ca3cf164075900e78ecc83b99cee976d919e48","unresolved":false,"context_lines":[{"line_number":130,"context_line":""},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"@nova.privsep.sys_admin_pctxt.entrypoint"},{"line_number":133,"context_line":"def resize2fs_escalated(image, check_exit_code):"},{"line_number":134,"context_line":"    resize2fs(image, check_exit_code)"},{"line_number":135,"context_line":""},{"line_number":136,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3f4b6375_26124f63","line":133,"range":{"start_line":133,"start_character":4,"end_line":133,"end_character":23},"in_reply_to":"3f4b6375_9306ff85","updated":"2017-11-06 02:23:06.000000000","message":"Yes, agree. If it\u0027s an exception, then give it an exceptional name suffix/prefix.","commit_id":"cd80cdf49d7bc176ed690fc1d18de30bb2d98d76"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"3b07e745c2ee981971edc576155a812eb4f3bc59","unresolved":false,"context_lines":[{"line_number":135,"context_line":""},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"# NOTE(mikal): this method is deliberately not wrapped in a privsep entrypoint"},{"line_number":138,"context_line":"def undecorated_resize2fs(image, check_exit_code):"},{"line_number":139,"context_line":"    try:"},{"line_number":140,"context_line":"        processutils.execute(\u0027e2fsck\u0027,"},{"line_number":141,"context_line":"                             \u0027-fp\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"1f485f77_52156e9b","line":138,"range":{"start_line":138,"start_character":4,"end_line":138,"end_character":15},"updated":"2017-11-14 15:39:49.000000000","message":"I think I would have called this \"unprivileged\" but it doesn\u0027t matter that much.","commit_id":"5af73e8396e58d3df2006ec9decd7c958667f9a1"}],"nova/tests/unit/virt/disk/test_api.py":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"50bf4aa3a3b7883f00c0c3e953e82190fc8b87ca","unresolved":false,"context_lines":[{"line_number":76,"context_line":"                       check_exit_code\u003dFalse)])"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"    @mock.patch(\u0027oslo_concurrency.processutils.execute\u0027, autospec\u003dTrue,"},{"line_number":79,"context_line":"                       side_effect\u003dprocessutils.ProcessExecutionError("},{"line_number":80,"context_line":"                           \"fs error\"))"},{"line_number":81,"context_line":"    def test_resize2fs_e2fsck_fails(self, mock_exec):"},{"line_number":82,"context_line":"        imgfile \u003d tempfile.NamedTemporaryFile()"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f4b6375_c6eda225","line":79,"updated":"2017-11-07 02:29:24.000000000","message":"fugly indentification","commit_id":"b74fded3dc13fe1e767dd68923c106547f61a078"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"46c498d50902ad527cb61f56ee4a25874639e95e","unresolved":false,"context_lines":[{"line_number":76,"context_line":"                       check_exit_code\u003dFalse)])"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"    @mock.patch(\u0027oslo_concurrency.processutils.execute\u0027, autospec\u003dTrue,"},{"line_number":79,"context_line":"                       side_effect\u003dprocessutils.ProcessExecutionError("},{"line_number":80,"context_line":"                           \"fs error\"))"},{"line_number":81,"context_line":"    def test_resize2fs_e2fsck_fails(self, mock_exec):"},{"line_number":82,"context_line":"        imgfile \u003d tempfile.NamedTemporaryFile()"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f4b6375_cc7811c2","line":79,"in_reply_to":"3f4b6375_c6eda225","updated":"2017-11-07 21:12:28.000000000","message":"Done","commit_id":"b74fded3dc13fe1e767dd68923c106547f61a078"}],"nova/virt/disk/api.py":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"50bf4aa3a3b7883f00c0c3e953e82190fc8b87ca","unresolved":false,"context_lines":[{"line_number":121,"context_line":""},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"def resize2fs(image, check_exit_code\u003dFalse, run_as_root\u003dFalse):"},{"line_number":124,"context_line":"    if run_as_root:"},{"line_number":125,"context_line":"        nova.privsep.fs.resize2fs(image, check_exit_code)"},{"line_number":126,"context_line":"    else:"},{"line_number":127,"context_line":"        nova.privsep.fs.undecorated_resize2fs(image, check_exit_code)"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f4b6375_b4c9acac","line":124,"updated":"2017-11-07 02:29:24.000000000","message":"Hmm, do we have a test that verifies this branch? I don\u0027t see it in the set you had to change, so I suspect not.","commit_id":"b74fded3dc13fe1e767dd68923c106547f61a078"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"46c498d50902ad527cb61f56ee4a25874639e95e","unresolved":false,"context_lines":[{"line_number":121,"context_line":""},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"def resize2fs(image, check_exit_code\u003dFalse, run_as_root\u003dFalse):"},{"line_number":124,"context_line":"    if run_as_root:"},{"line_number":125,"context_line":"        nova.privsep.fs.resize2fs(image, check_exit_code)"},{"line_number":126,"context_line":"    else:"},{"line_number":127,"context_line":"        nova.privsep.fs.undecorated_resize2fs(image, check_exit_code)"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f4b6375_27145e43","line":124,"in_reply_to":"3f4b6375_b4c9acac","updated":"2017-11-07 21:12:28.000000000","message":"Done","commit_id":"b74fded3dc13fe1e767dd68923c106547f61a078"}]}
