)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"ef01c85b6c19992e7830267988b1f62f0d8c687f","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Move xenapi disk resizing to privsep."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"There are a couple of small side effects here:"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":" - we now use -p on the pre-resize e2fsck, not -y. This matches"},{"line_number":12,"context_line":"   how libvirt operates."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"df7087c5_d6b6753f","line":9,"range":{"start_line":9,"start_character":12,"end_line":9,"end_character":40},"updated":"2018-03-18 00:27:17.000000000","message":"These should be done in a separate change set so we can reason about (and potentially revert) them independently of the privsep move.","commit_id":"9715c99357589f38eb5f487babc3d098c0460ec0"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"936b881bf15fb8c8a04909be35443871d43038dc","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Move xenapi disk resizing to privsep."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"There are a couple of small side effects here:"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":" - we now use -p on the pre-resize e2fsck, not -y. This matches"},{"line_number":12,"context_line":"   how libvirt operates."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"df7087c5_672b3130","line":9,"range":{"start_line":9,"start_character":12,"end_line":9,"end_character":40},"in_reply_to":"df7087c5_7603e974","updated":"2018-03-18 13:26:22.000000000","message":"\u003e Could you please explain the functional difference between -p and\n \u003e -f -y to me?\n\nMe, I have no idea, but Jianghua explained it in an earlier comment.   Reading the manual doesn\u0027t satisfy.  But unless the manual explicitly said \"-f -y is exactly equivalent to -f -p\" - which it doesn\u0027t - we shouldn\u0027t combine changes like this.  It\u0027s all over the guidelines [1] (with sound reasoning).\n\n \u003e not wanting to write to basically\n \u003e identical methods in privsep land.\n\nCan we preserve the difference via a kwarg rather than a whole separate method?\n\n[1] https://wiki.openstack.org/wiki/GitCommitMessages","commit_id":"9715c99357589f38eb5f487babc3d098c0460ec0"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"b1bbec358c516bc2c1b4b4ab31205b7d215285bc","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Move xenapi disk resizing to privsep."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"There are a couple of small side effects here:"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":" - we now use -p on the pre-resize e2fsck, not -y. This matches"},{"line_number":12,"context_line":"   how libvirt operates."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"df7087c5_7603e974","line":9,"range":{"start_line":9,"start_character":12,"end_line":9,"end_character":40},"in_reply_to":"df7087c5_d6b6753f","updated":"2018-03-18 01:52:50.000000000","message":"Well, that misses the point that the side effect is _because_ of the move to privsep and me not wanting to write to basically identical methods in privsep land.\n\nCould you please explain the functional difference between -p and -f -y to me?","commit_id":"9715c99357589f38eb5f487babc3d098c0460ec0"}],"nova/privsep/fs.py":[{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"535880ebf62ee873279f21eb41477569eefed294","unresolved":false,"context_lines":[{"line_number":138,"context_line":""},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"@nova.privsep.sys_admin_pctxt.entrypoint"},{"line_number":141,"context_line":"def e2fsck(image, check_exit_code\u003dNone, flags\u003d\u0027-fp\u0027):"},{"line_number":142,"context_line":"    unprivileged_e2fsck(image, check_exit_code, flags\u003dflags)"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"bf659307_933919d8","line":141,"range":{"start_line":141,"start_character":18,"end_line":141,"end_character":33},"updated":"2018-04-03 12:09:35.000000000","message":"Drop this? see below...","commit_id":"422d92db9cc54abc1b75809431e36b6c9b3bb447"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"535880ebf62ee873279f21eb41477569eefed294","unresolved":false,"context_lines":[{"line_number":143,"context_line":""},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"# NOTE(mikal): this method is deliberately not wrapped in a privsep entrypoint"},{"line_number":146,"context_line":"def unprivileged_e2fsck(image, check_exit_code\u003dNone, flags\u003d\u0027-fp\u0027):"},{"line_number":147,"context_line":"    processutils.execute(\u0027e2fsck\u0027, flags, image,"},{"line_number":148,"context_line":"                         check_exit_code\u003d[0, 1, 2])"},{"line_number":149,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"bf659307_b89d1c0b","line":146,"range":{"start_line":146,"start_character":31,"end_line":146,"end_character":46},"updated":"2018-04-03 12:09:35.000000000","message":"Sorry I am a bit confused as to why this is here? Don\u0027t we always want the same list of check_exit_codes here, it seems XenAPI was just doing manually what was hard coded here before.","commit_id":"422d92db9cc54abc1b75809431e36b6c9b3bb447"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"6651d5bbe254795a2ff653785c58c494d698c6d3","unresolved":false,"context_lines":[{"line_number":143,"context_line":""},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"# NOTE(mikal): this method is deliberately not wrapped in a privsep entrypoint"},{"line_number":146,"context_line":"def unprivileged_e2fsck(image, check_exit_code\u003dNone, flags\u003d\u0027-fp\u0027):"},{"line_number":147,"context_line":"    processutils.execute(\u0027e2fsck\u0027, flags, image,"},{"line_number":148,"context_line":"                         check_exit_code\u003d[0, 1, 2])"},{"line_number":149,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"bf659307_d5045217","line":146,"range":{"start_line":146,"start_character":31,"end_line":146,"end_character":46},"in_reply_to":"bf659307_33584d54","updated":"2018-04-03 15:24:07.000000000","message":"Yup, we\u0027re ignoring the kwarg, so axe it.","commit_id":"422d92db9cc54abc1b75809431e36b6c9b3bb447"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"0cfac73bdffed4b576a4568f96ec0256bdd2401b","unresolved":false,"context_lines":[{"line_number":143,"context_line":""},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"# NOTE(mikal): this method is deliberately not wrapped in a privsep entrypoint"},{"line_number":146,"context_line":"def unprivileged_e2fsck(image, check_exit_code\u003dNone, flags\u003d\u0027-fp\u0027):"},{"line_number":147,"context_line":"    processutils.execute(\u0027e2fsck\u0027, flags, image,"},{"line_number":148,"context_line":"                         check_exit_code\u003d[0, 1, 2])"},{"line_number":149,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"bf659307_33584d54","line":146,"range":{"start_line":146,"start_character":31,"end_line":146,"end_character":46},"in_reply_to":"bf659307_b89d1c0b","updated":"2018-04-03 13:04:21.000000000","message":"Totally missed this. Good spot. Seems it\u0027s a remnant from when this used to call \u0027resize2fs\u0027","commit_id":"422d92db9cc54abc1b75809431e36b6c9b3bb447"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"6d310d5d44ba4ab1ecb5e955419d4a484d1166fb","unresolved":false,"context_lines":[{"line_number":143,"context_line":""},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"# NOTE(mikal): this method is deliberately not wrapped in a privsep entrypoint"},{"line_number":146,"context_line":"def unprivileged_e2fsck(image, check_exit_code\u003dNone, flags\u003d\u0027-fp\u0027):"},{"line_number":147,"context_line":"    processutils.execute(\u0027e2fsck\u0027, flags, image,"},{"line_number":148,"context_line":"                         check_exit_code\u003d[0, 1, 2])"},{"line_number":149,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"bf659307_ecb18c45","line":146,"range":{"start_line":146,"start_character":31,"end_line":146,"end_character":46},"in_reply_to":"bf659307_d5045217","updated":"2018-04-03 20:45:41.000000000","message":"This is actually fallout from the rebase error where I55cdc22ce8f95dff0cfd1a31b58582fc4b3ea48f fell out of the chain. I\u0027ve corrected that error which means this argument is functional again.","commit_id":"422d92db9cc54abc1b75809431e36b6c9b3bb447"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"413da5527b9e2e07d0c4051ab7956da099a41a24","unresolved":false,"context_lines":[{"line_number":143,"context_line":""},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"# NOTE(mikal): this method is deliberately not wrapped in a privsep entrypoint"},{"line_number":146,"context_line":"def unprivileged_e2fsck(image, check_exit_code\u003dNone, flags\u003d\u0027-fp\u0027):"},{"line_number":147,"context_line":"    processutils.execute(\u0027e2fsck\u0027, flags, image,"},{"line_number":148,"context_line":"                         check_exit_code\u003d[0, 1, 2])"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"@nova.privsep.sys_admin_pctxt.entrypoint"}],"source_content_type":"text/x-python","patch_set":8,"id":"bf659307_07de19d9","line":148,"range":{"start_line":146,"start_character":0,"end_line":148,"end_character":51},"updated":"2018-04-03 22:19:29.000000000","message":"Sorry - this method is still ignoring the check_exit_code kwarg.  Am I missing something?","commit_id":"164616f817721a4d2013378103433e0c66f9f9bc"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"38beeb6aa54a895df53edc8c50a2eecb20e98185","unresolved":false,"context_lines":[{"line_number":143,"context_line":""},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"# NOTE(mikal): this method is deliberately not wrapped in a privsep entrypoint"},{"line_number":146,"context_line":"def unprivileged_e2fsck(image, check_exit_code\u003dNone, flags\u003d\u0027-fp\u0027):"},{"line_number":147,"context_line":"    processutils.execute(\u0027e2fsck\u0027, flags, image,"},{"line_number":148,"context_line":"                         check_exit_code\u003d[0, 1, 2])"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"@nova.privsep.sys_admin_pctxt.entrypoint"}],"source_content_type":"text/x-python","patch_set":8,"id":"bf659307_62a34301","line":148,"range":{"start_line":146,"start_character":0,"end_line":148,"end_character":51},"in_reply_to":"bf659307_07de19d9","updated":"2018-04-03 22:37:43.000000000","message":"No, that\u0027s me messing up. I\u0027ll wait for the gate jobs to finish and then have another go around.","commit_id":"164616f817721a4d2013378103433e0c66f9f9bc"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"e28373cc77564cb96d3cafcfaf2702029a22db77","unresolved":false,"context_lines":[{"line_number":138,"context_line":""},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"@nova.privsep.sys_admin_pctxt.entrypoint"},{"line_number":141,"context_line":"def e2fsck(image, check_exit_code\u003dFalse, flags\u003d\u0027-fp\u0027):"},{"line_number":142,"context_line":"    unprivileged_e2fsck(image, check_exit_code\u003dcheck_exit_code, flags\u003dflags)"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"bf659307_6526ad19","line":141,"range":{"start_line":141,"start_character":18,"end_line":141,"end_character":39},"updated":"2018-04-06 13:33:03.000000000","message":"To conform most closely with the previous code,  I think this arg should go away...","commit_id":"9cf79a4f51fde7d0c36f525327c6832c1587b741"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"1f6bad57f39b7f6b9a4d4e045e74d9c3523655b2","unresolved":false,"context_lines":[{"line_number":138,"context_line":""},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"@nova.privsep.sys_admin_pctxt.entrypoint"},{"line_number":141,"context_line":"def e2fsck(image, check_exit_code\u003dFalse, flags\u003d\u0027-fp\u0027):"},{"line_number":142,"context_line":"    unprivileged_e2fsck(image, check_exit_code\u003dcheck_exit_code, flags\u003dflags)"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"bf659307_8c08ac28","line":141,"range":{"start_line":141,"start_character":18,"end_line":141,"end_character":39},"in_reply_to":"bf659307_6526ad19","updated":"2018-04-09 10:29:32.000000000","message":"Done","commit_id":"9cf79a4f51fde7d0c36f525327c6832c1587b741"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"e28373cc77564cb96d3cafcfaf2702029a22db77","unresolved":false,"context_lines":[{"line_number":143,"context_line":""},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"# NOTE(mikal): this method is deliberately not wrapped in a privsep entrypoint"},{"line_number":146,"context_line":"def unprivileged_e2fsck(image, check_exit_code\u003dFalse, flags\u003d\u0027-fp\u0027):"},{"line_number":147,"context_line":"    processutils.execute(\u0027e2fsck\u0027, flags, image,"},{"line_number":148,"context_line":"                         check_exit_code\u003dcheck_exit_code)"},{"line_number":149,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"bf659307_2520b5f7","line":146,"range":{"start_line":146,"start_character":31,"end_line":146,"end_character":52},"updated":"2018-04-06 13:33:03.000000000","message":"...and this one...","commit_id":"9cf79a4f51fde7d0c36f525327c6832c1587b741"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"1f6bad57f39b7f6b9a4d4e045e74d9c3523655b2","unresolved":false,"context_lines":[{"line_number":143,"context_line":""},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"# NOTE(mikal): this method is deliberately not wrapped in a privsep entrypoint"},{"line_number":146,"context_line":"def unprivileged_e2fsck(image, check_exit_code\u003dFalse, flags\u003d\u0027-fp\u0027):"},{"line_number":147,"context_line":"    processutils.execute(\u0027e2fsck\u0027, flags, image,"},{"line_number":148,"context_line":"                         check_exit_code\u003dcheck_exit_code)"},{"line_number":149,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"bf659307_ac0b3022","line":146,"range":{"start_line":146,"start_character":31,"end_line":146,"end_character":52},"in_reply_to":"bf659307_2520b5f7","updated":"2018-04-09 10:29:32.000000000","message":"Done","commit_id":"9cf79a4f51fde7d0c36f525327c6832c1587b741"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"e28373cc77564cb96d3cafcfaf2702029a22db77","unresolved":false,"context_lines":[{"line_number":145,"context_line":"# NOTE(mikal): this method is deliberately not wrapped in a privsep entrypoint"},{"line_number":146,"context_line":"def unprivileged_e2fsck(image, check_exit_code\u003dFalse, flags\u003d\u0027-fp\u0027):"},{"line_number":147,"context_line":"    processutils.execute(\u0027e2fsck\u0027, flags, image,"},{"line_number":148,"context_line":"                         check_exit_code\u003dcheck_exit_code)"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"@nova.privsep.sys_admin_pctxt.entrypoint"}],"source_content_type":"text/x-python","patch_set":9,"id":"bf659307_e5771d08","line":148,"range":{"start_line":148,"start_character":25,"end_line":148,"end_character":56},"updated":"2018-04-06 13:33:03.000000000","message":"...and you should instead hardcode [0, 1, 2] here.\n\nIf there arises a need for this to be configurable in the future, it should be changed at that time.","commit_id":"9cf79a4f51fde7d0c36f525327c6832c1587b741"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"1f6bad57f39b7f6b9a4d4e045e74d9c3523655b2","unresolved":false,"context_lines":[{"line_number":145,"context_line":"# NOTE(mikal): this method is deliberately not wrapped in a privsep entrypoint"},{"line_number":146,"context_line":"def unprivileged_e2fsck(image, check_exit_code\u003dFalse, flags\u003d\u0027-fp\u0027):"},{"line_number":147,"context_line":"    processutils.execute(\u0027e2fsck\u0027, flags, image,"},{"line_number":148,"context_line":"                         check_exit_code\u003dcheck_exit_code)"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"@nova.privsep.sys_admin_pctxt.entrypoint"}],"source_content_type":"text/x-python","patch_set":9,"id":"bf659307_4c12945a","line":148,"range":{"start_line":148,"start_character":25,"end_line":148,"end_character":56},"in_reply_to":"bf659307_e5771d08","updated":"2018-04-09 10:29:32.000000000","message":"Done","commit_id":"9cf79a4f51fde7d0c36f525327c6832c1587b741"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"e28373cc77564cb96d3cafcfaf2702029a22db77","unresolved":false,"context_lines":[{"line_number":149,"context_line":""},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"@nova.privsep.sys_admin_pctxt.entrypoint"},{"line_number":152,"context_line":"def resize2fs(image, check_exit_code\u003dNone, size\u003dNone):"},{"line_number":153,"context_line":"    unprivileged_resize2fs(image, check_exit_code\u003dcheck_exit_code, size\u003dsize)"},{"line_number":154,"context_line":""},{"line_number":155,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"bf659307_45728913","line":152,"range":{"start_line":152,"start_character":21,"end_line":152,"end_character":41},"updated":"2018-04-06 13:33:03.000000000","message":"To conform most closely with the previous code, I think this should be a required arg...","commit_id":"9cf79a4f51fde7d0c36f525327c6832c1587b741"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"1f6bad57f39b7f6b9a4d4e045e74d9c3523655b2","unresolved":false,"context_lines":[{"line_number":149,"context_line":""},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"@nova.privsep.sys_admin_pctxt.entrypoint"},{"line_number":152,"context_line":"def resize2fs(image, check_exit_code\u003dNone, size\u003dNone):"},{"line_number":153,"context_line":"    unprivileged_resize2fs(image, check_exit_code\u003dcheck_exit_code, size\u003dsize)"},{"line_number":154,"context_line":""},{"line_number":155,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"bf659307_6c0d1834","line":152,"range":{"start_line":152,"start_character":21,"end_line":152,"end_character":41},"in_reply_to":"bf659307_45728913","updated":"2018-04-09 10:29:32.000000000","message":"Done","commit_id":"9cf79a4f51fde7d0c36f525327c6832c1587b741"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"e28373cc77564cb96d3cafcfaf2702029a22db77","unresolved":false,"context_lines":[{"line_number":154,"context_line":""},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"# NOTE(mikal): this method is deliberately not wrapped in a privsep entrypoint"},{"line_number":157,"context_line":"def unprivileged_resize2fs(image, check_exit_code\u003dNone, size\u003dNone):"},{"line_number":158,"context_line":"    if size:"},{"line_number":159,"context_line":"        cmd \u003d [\u0027resize2fs\u0027, image, size]"},{"line_number":160,"context_line":"    else:"}],"source_content_type":"text/x-python","patch_set":9,"id":"bf659307_0566d152","line":157,"range":{"start_line":157,"start_character":34,"end_line":157,"end_character":54},"updated":"2018-04-06 13:33:03.000000000","message":"...and this one.","commit_id":"9cf79a4f51fde7d0c36f525327c6832c1587b741"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"1f6bad57f39b7f6b9a4d4e045e74d9c3523655b2","unresolved":false,"context_lines":[{"line_number":154,"context_line":""},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"# NOTE(mikal): this method is deliberately not wrapped in a privsep entrypoint"},{"line_number":157,"context_line":"def unprivileged_resize2fs(image, check_exit_code\u003dNone, size\u003dNone):"},{"line_number":158,"context_line":"    if size:"},{"line_number":159,"context_line":"        cmd \u003d [\u0027resize2fs\u0027, image, size]"},{"line_number":160,"context_line":"    else:"}],"source_content_type":"text/x-python","patch_set":9,"id":"bf659307_0c1c9c68","line":157,"range":{"start_line":157,"start_character":34,"end_line":157,"end_character":54},"in_reply_to":"bf659307_0566d152","updated":"2018-04-09 10:29:32.000000000","message":"Done","commit_id":"9cf79a4f51fde7d0c36f525327c6832c1587b741"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"8fc30df51233ec1c7a1a95890f1369977e47ba09","unresolved":false,"context_lines":[{"line_number":148,"context_line":""},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"@nova.privsep.sys_admin_pctxt.entrypoint"},{"line_number":151,"context_line":"def resize2fs(image, check_exit_code, size\u003dNone):"},{"line_number":152,"context_line":"    unprivileged_resize2fs(image, check_exit_code\u003dcheck_exit_code, size\u003dsize)"},{"line_number":153,"context_line":""},{"line_number":154,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"bf659307_91d0a0f9","line":151,"range":{"start_line":151,"start_character":37,"end_line":151,"end_character":47},"updated":"2018-04-10 12:42:35.000000000","message":"Duh, this is what I was looking for.  I was clearly not 100% yesterday.","commit_id":"9c1f621dca40dd94622d3a7a1dc20fed0dd9340a"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"9a2dfb1b37a158ef4c46e3c8824e8685e3bd29a5","unresolved":false,"context_lines":[{"line_number":153,"context_line":""},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"# NOTE(mikal): this method is deliberately not wrapped in a privsep entrypoint"},{"line_number":156,"context_line":"def unprivileged_resize2fs(image, check_exit_code, size\u003dNone):"},{"line_number":157,"context_line":"    if size:"},{"line_number":158,"context_line":"        cmd \u003d [\u0027resize2fs\u0027, image, size]"},{"line_number":159,"context_line":"    else:"}],"source_content_type":"text/x-python","patch_set":10,"id":"bf659307_dbedf5b7","line":156,"range":{"start_line":156,"start_character":49,"end_line":156,"end_character":60},"updated":"2018-04-09 13:42:39.000000000","message":"Sorry, just noticed this - where did the size arg come from?  It doesn\u0027t appear to be used atm.","commit_id":"9c1f621dca40dd94622d3a7a1dc20fed0dd9340a"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"0c8ecec40d5f3eb4e0a46c3b9cf69d62169fc5dd","unresolved":false,"context_lines":[{"line_number":153,"context_line":""},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"# NOTE(mikal): this method is deliberately not wrapped in a privsep entrypoint"},{"line_number":156,"context_line":"def unprivileged_resize2fs(image, check_exit_code, size\u003dNone):"},{"line_number":157,"context_line":"    if size:"},{"line_number":158,"context_line":"        cmd \u003d [\u0027resize2fs\u0027, image, size]"},{"line_number":159,"context_line":"    else:"}],"source_content_type":"text/x-python","patch_set":10,"id":"bf659307_02abf288","line":156,"range":{"start_line":156,"start_character":49,"end_line":156,"end_character":60},"in_reply_to":"bf659307_dbedf5b7","updated":"2018-04-09 22:55:51.000000000","message":"It\u0027s used indirectly via a call to resize2fs here:\n\nhttps://review.openstack.org/#/c/552242/10/nova/virt/xenapi/vm_utils.py@2303","commit_id":"9c1f621dca40dd94622d3a7a1dc20fed0dd9340a"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"d086084c1f871bfbb222078f474149835b48edee","unresolved":false,"context_lines":[{"line_number":153,"context_line":""},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"# NOTE(mikal): this method is deliberately not wrapped in a privsep entrypoint"},{"line_number":156,"context_line":"def unprivileged_resize2fs(image, check_exit_code, size\u003dNone):"},{"line_number":157,"context_line":"    if size:"},{"line_number":158,"context_line":"        cmd \u003d [\u0027resize2fs\u0027, image, size]"},{"line_number":159,"context_line":"    else:"}],"source_content_type":"text/x-python","patch_set":10,"id":"bf659307_b05e0c10","line":156,"range":{"start_line":156,"start_character":49,"end_line":156,"end_character":60},"in_reply_to":"bf659307_dbedf5b7","updated":"2018-04-10 01:13:41.000000000","message":"xenapi uses this argument","commit_id":"9c1f621dca40dd94622d3a7a1dc20fed0dd9340a"}],"nova/tests/unit/virt/xenapi/test_vm_utils.py":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"3092ace484b90571bcca06dcafa0da28669bc66e","unresolved":false,"context_lines":[{"line_number":349,"context_line":"    @mock.patch(\u0027nova.privsep.fs.ext_journal_disable\u0027)"},{"line_number":350,"context_line":"    @mock.patch(\u0027nova.privsep.fs.ext_journal_enable\u0027)"},{"line_number":351,"context_line":"    @mock.patch(\u0027nova.privsep.fs.resize_partition\u0027)"},{"line_number":352,"context_line":"    @mock.patch(\u0027nova.privsep.fs.resize2fs\u0027)"},{"line_number":353,"context_line":"    @mock.patch(\u0027nova.privsep.fs.e2fsck\u0027)"},{"line_number":354,"context_line":"    def test_resize_part_and_fs_down_succeeds("},{"line_number":355,"context_line":"            self, mock_fsck, mock_resize2fs, mock_resize,"},{"line_number":356,"context_line":"            mock_disable_journal, mock_enable_journal):"}],"source_content_type":"text/x-python","patch_set":12,"id":"bf659307_149b1ec9","line":353,"range":{"start_line":352,"start_character":0,"end_line":353,"end_character":41},"updated":"2018-04-10 13:39:57.000000000","message":"We\u0027ve reached a point where autospeccing these (throughout) will be useful to catch these kinds of errors.\n\n[Later] But I tried that, and it doesn\u0027t help... because @nova.privsep.sys_admin_pctxt.entrypoint makes autospec think the method accepts *args, **kwargs.\n\nSo I thought, why not mock unprivileged_* instead, and then you can autospec.  But then I get:\n\nException: You have attempted to start a privsep helper. This is not allowed in the gate, and indicates a failure to have mocked your tests.\n\nWhich is a pain, and we should probably have a fixture for that.  Meanwhile, I tried various ways of mocking just that decorator (so I could get it to return its arg unaffected, so autospec might work), all to no avail.","commit_id":"dd13e1d1aa7089038e6d9342b56d57a8d03abf5d"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"3092ace484b90571bcca06dcafa0da28669bc66e","unresolved":false,"context_lines":[{"line_number":352,"context_line":"    @mock.patch(\u0027nova.privsep.fs.resize2fs\u0027)"},{"line_number":353,"context_line":"    @mock.patch(\u0027nova.privsep.fs.e2fsck\u0027)"},{"line_number":354,"context_line":"    def test_resize_part_and_fs_down_succeeds("},{"line_number":355,"context_line":"            self, mock_fsck, mock_resize2fs, mock_resize,"},{"line_number":356,"context_line":"            mock_disable_journal, mock_enable_journal):"},{"line_number":357,"context_line":"        dev_path \u003d \u0027/dev/fake\u0027"},{"line_number":358,"context_line":"        partition_path \u003d \u0027%s1\u0027 % dev_path"}],"source_content_type":"text/x-python","patch_set":12,"id":"bf659307_3702e40a","line":355,"range":{"start_line":355,"start_character":18,"end_line":355,"end_character":27},"updated":"2018-04-10 13:39:57.000000000","message":"Add an assertion for this being called.","commit_id":"dd13e1d1aa7089038e6d9342b56d57a8d03abf5d"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"1e61e64a331f5a8686ca24d5e4b2be790f802cef","unresolved":false,"context_lines":[{"line_number":352,"context_line":"    @mock.patch(\u0027nova.privsep.fs.resize2fs\u0027)"},{"line_number":353,"context_line":"    @mock.patch(\u0027nova.privsep.fs.e2fsck\u0027)"},{"line_number":354,"context_line":"    def test_resize_part_and_fs_down_succeeds("},{"line_number":355,"context_line":"            self, mock_fsck, mock_resize2fs, mock_resize,"},{"line_number":356,"context_line":"            mock_disable_journal, mock_enable_journal):"},{"line_number":357,"context_line":"        dev_path \u003d \u0027/dev/fake\u0027"},{"line_number":358,"context_line":"        partition_path \u003d \u0027%s1\u0027 % dev_path"}],"source_content_type":"text/x-python","patch_set":12,"id":"bf659307_7ffeea38","line":355,"range":{"start_line":355,"start_character":18,"end_line":355,"end_character":27},"in_reply_to":"bf659307_3702e40a","updated":"2018-04-10 21:54:59.000000000","message":"Done","commit_id":"dd13e1d1aa7089038e6d9342b56d57a8d03abf5d"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"3092ace484b90571bcca06dcafa0da28669bc66e","unresolved":false,"context_lines":[{"line_number":394,"context_line":"                       side_effect\u003dprocessutils.ProcessExecutionError)"},{"line_number":395,"context_line":"    @mock.patch(\u0027nova.privsep.fs.e2fsck\u0027)"},{"line_number":396,"context_line":"    def test_resize_part_and_fs_down_fails_disk_too_big("},{"line_number":397,"context_line":"            self, mock_fsck, mock_resize2fs, mock_disable_journal):"},{"line_number":398,"context_line":"        self.assertRaises(exception.ResizeError,"},{"line_number":399,"context_line":"                          vm_utils._resize_part_and_fs,"},{"line_number":400,"context_line":"                          \"fake\", 0, 20, 10, \"boot\")"}],"source_content_type":"text/x-python","patch_set":12,"id":"bf659307_17280084","line":397,"range":{"start_line":397,"start_character":18,"end_line":397,"end_character":28},"updated":"2018-04-10 13:39:57.000000000","message":"ditto","commit_id":"dd13e1d1aa7089038e6d9342b56d57a8d03abf5d"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"1e61e64a331f5a8686ca24d5e4b2be790f802cef","unresolved":false,"context_lines":[{"line_number":394,"context_line":"                       side_effect\u003dprocessutils.ProcessExecutionError)"},{"line_number":395,"context_line":"    @mock.patch(\u0027nova.privsep.fs.e2fsck\u0027)"},{"line_number":396,"context_line":"    def test_resize_part_and_fs_down_fails_disk_too_big("},{"line_number":397,"context_line":"            self, mock_fsck, mock_resize2fs, mock_disable_journal):"},{"line_number":398,"context_line":"        self.assertRaises(exception.ResizeError,"},{"line_number":399,"context_line":"                          vm_utils._resize_part_and_fs,"},{"line_number":400,"context_line":"                          \"fake\", 0, 20, 10, \"boot\")"}],"source_content_type":"text/x-python","patch_set":12,"id":"bf659307_1fab2e1d","line":397,"range":{"start_line":397,"start_character":18,"end_line":397,"end_character":28},"in_reply_to":"bf659307_17280084","updated":"2018-04-10 21:54:59.000000000","message":"Done","commit_id":"dd13e1d1aa7089038e6d9342b56d57a8d03abf5d"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"3092ace484b90571bcca06dcafa0da28669bc66e","unresolved":false,"context_lines":[{"line_number":405,"context_line":"    @mock.patch(\u0027nova.privsep.fs.resize2fs\u0027)"},{"line_number":406,"context_line":"    @mock.patch(\u0027nova.privsep.fs.e2fsck\u0027)"},{"line_number":407,"context_line":"    def test_resize_part_and_fs_up_succeeds("},{"line_number":408,"context_line":"            self, mock_fsck, mock_resize2fs, mock_resize,"},{"line_number":409,"context_line":"            mock_disable_journal, mock_enable_journal):"},{"line_number":410,"context_line":"        dev_path \u003d \u0027/dev/fake\u0027"},{"line_number":411,"context_line":"        partition_path \u003d \u0027%s1\u0027 % dev_path"}],"source_content_type":"text/x-python","patch_set":12,"id":"bf659307_571c3869","line":408,"range":{"start_line":408,"start_character":18,"end_line":408,"end_character":27},"updated":"2018-04-10 13:39:57.000000000","message":"ditto","commit_id":"dd13e1d1aa7089038e6d9342b56d57a8d03abf5d"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"1e61e64a331f5a8686ca24d5e4b2be790f802cef","unresolved":false,"context_lines":[{"line_number":405,"context_line":"    @mock.patch(\u0027nova.privsep.fs.resize2fs\u0027)"},{"line_number":406,"context_line":"    @mock.patch(\u0027nova.privsep.fs.e2fsck\u0027)"},{"line_number":407,"context_line":"    def test_resize_part_and_fs_up_succeeds("},{"line_number":408,"context_line":"            self, mock_fsck, mock_resize2fs, mock_resize,"},{"line_number":409,"context_line":"            mock_disable_journal, mock_enable_journal):"},{"line_number":410,"context_line":"        dev_path \u003d \u0027/dev/fake\u0027"},{"line_number":411,"context_line":"        partition_path \u003d \u0027%s1\u0027 % dev_path"}],"source_content_type":"text/x-python","patch_set":12,"id":"bf659307_df629616","line":408,"range":{"start_line":408,"start_character":18,"end_line":408,"end_character":27},"in_reply_to":"bf659307_571c3869","updated":"2018-04-10 21:54:59.000000000","message":"Done","commit_id":"dd13e1d1aa7089038e6d9342b56d57a8d03abf5d"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"8fc30df51233ec1c7a1a95890f1369977e47ba09","unresolved":false,"context_lines":[{"line_number":411,"context_line":"        partition_path \u003d \u0027%s1\u0027 % dev_path"},{"line_number":412,"context_line":"        vm_utils._resize_part_and_fs(\u0027fake\u0027, 0, 20, 30, \u0027\u0027)"},{"line_number":413,"context_line":""},{"line_number":414,"context_line":"        mock_resize2fs.assert_has_calls(["},{"line_number":415,"context_line":"            mock.call(partition_path)])"},{"line_number":416,"context_line":"        mock_resize.assert_has_calls(["},{"line_number":417,"context_line":"            mock.call(dev_path, 0, 29, False)])"},{"line_number":418,"context_line":"        mock_disable_journal.assert_has_calls(["},{"line_number":419,"context_line":"            mock.call(partition_path)])"},{"line_number":420,"context_line":"        mock_enable_journal.assert_has_calls(["},{"line_number":421,"context_line":"            mock.call(partition_path)])"},{"line_number":422,"context_line":""},{"line_number":423,"context_line":"    def test_resize_disk_throws_on_zero_size(self):"},{"line_number":424,"context_line":"        flavor \u003d fake_flavor.fake_flavor_obj(self.context, root_gb\u003d0)"}],"source_content_type":"text/x-python","patch_set":12,"id":"bf659307_5148c8ca","line":421,"range":{"start_line":414,"start_character":0,"end_line":421,"end_character":39},"updated":"2018-04-10 12:42:35.000000000","message":"[unrelated] these could all be assert_called_once_with(...)","commit_id":"dd13e1d1aa7089038e6d9342b56d57a8d03abf5d"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"1e61e64a331f5a8686ca24d5e4b2be790f802cef","unresolved":false,"context_lines":[{"line_number":411,"context_line":"        partition_path \u003d \u0027%s1\u0027 % dev_path"},{"line_number":412,"context_line":"        vm_utils._resize_part_and_fs(\u0027fake\u0027, 0, 20, 30, \u0027\u0027)"},{"line_number":413,"context_line":""},{"line_number":414,"context_line":"        mock_resize2fs.assert_has_calls(["},{"line_number":415,"context_line":"            mock.call(partition_path)])"},{"line_number":416,"context_line":"        mock_resize.assert_has_calls(["},{"line_number":417,"context_line":"            mock.call(dev_path, 0, 29, False)])"},{"line_number":418,"context_line":"        mock_disable_journal.assert_has_calls(["},{"line_number":419,"context_line":"            mock.call(partition_path)])"},{"line_number":420,"context_line":"        mock_enable_journal.assert_has_calls(["},{"line_number":421,"context_line":"            mock.call(partition_path)])"},{"line_number":422,"context_line":""},{"line_number":423,"context_line":"    def test_resize_disk_throws_on_zero_size(self):"},{"line_number":424,"context_line":"        flavor \u003d fake_flavor.fake_flavor_obj(self.context, root_gb\u003d0)"}],"source_content_type":"text/x-python","patch_set":12,"id":"bf659307_7facaa34","line":421,"range":{"start_line":414,"start_character":0,"end_line":421,"end_character":39},"in_reply_to":"bf659307_5148c8ca","updated":"2018-04-10 21:54:59.000000000","message":"Perhaps, but re-writing other people\u0027s tests is outside the scope of this patch series.","commit_id":"dd13e1d1aa7089038e6d9342b56d57a8d03abf5d"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"092f32959b0b962370f60a1935bdcaac6435b967","unresolved":false,"context_lines":[{"line_number":411,"context_line":"        partition_path \u003d \u0027%s1\u0027 % dev_path"},{"line_number":412,"context_line":"        vm_utils._resize_part_and_fs(\u0027fake\u0027, 0, 20, 30, \u0027\u0027)"},{"line_number":413,"context_line":""},{"line_number":414,"context_line":"        mock_resize2fs.assert_has_calls(["},{"line_number":415,"context_line":"            mock.call(partition_path)])"},{"line_number":416,"context_line":"        mock_resize.assert_has_calls(["},{"line_number":417,"context_line":"            mock.call(dev_path, 0, 29, False)])"},{"line_number":418,"context_line":"        mock_disable_journal.assert_has_calls(["},{"line_number":419,"context_line":"            mock.call(partition_path)])"},{"line_number":420,"context_line":"        mock_enable_journal.assert_has_calls(["},{"line_number":421,"context_line":"            mock.call(partition_path)])"},{"line_number":422,"context_line":""},{"line_number":423,"context_line":"    def test_resize_disk_throws_on_zero_size(self):"},{"line_number":424,"context_line":"        flavor \u003d fake_flavor.fake_flavor_obj(self.context, root_gb\u003d0)"}],"source_content_type":"text/x-python","patch_set":12,"id":"bf659307_e836c303","line":421,"range":{"start_line":414,"start_character":0,"end_line":421,"end_character":39},"in_reply_to":"bf659307_7facaa34","updated":"2018-04-10 22:35:54.000000000","message":"Yup, hence [unrelated]","commit_id":"dd13e1d1aa7089038e6d9342b56d57a8d03abf5d"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"092f32959b0b962370f60a1935bdcaac6435b967","unresolved":false,"context_lines":[{"line_number":397,"context_line":"    @mock.patch(\u0027nova.privsep.fs.e2fsck\u0027)"},{"line_number":398,"context_line":"    def test_resize_part_and_fs_down_fails_disk_too_big("},{"line_number":399,"context_line":"            self, mock_fsck, mock_resize2fs, mock_disable_journal):"},{"line_number":400,"context_line":"        mock_fsck.assert_not_called()"},{"line_number":401,"context_line":"        self.assertRaises(exception.ResizeError,"},{"line_number":402,"context_line":"                          vm_utils._resize_part_and_fs,"},{"line_number":403,"context_line":"                          \"fake\", 0, 20, 10, \"boot\")"}],"source_content_type":"text/x-python","patch_set":13,"id":"bf659307_c81adf7b","line":400,"updated":"2018-04-10 22:35:54.000000000","message":"It should be called.  Move this assertion to after the assertRaises and you\u0027ll need to assert that it was called with partition_path (which you\u0027ll have to construct, sigh) and flags\u003d\u0027-fy\u0027.","commit_id":"44e73d097d863d4f99bdf9222ebb5c3a83107994"}],"nova/virt/disk/api.py":[{"author":{"_account_id":6735,"name":"Bob Ball","email":"bob.ball@citrix.com","username":"bob-ball"},"change_message_id":"0a99cf54d40c84bdf89de1482c8fe4b276fe87e9","unresolved":false,"context_lines":[{"line_number":72,"context_line":"def resize2fs(image, check_exit_code\u003dFalse, run_as_root\u003dFalse):"},{"line_number":73,"context_line":"    try:"},{"line_number":74,"context_line":"        if run_as_root:"},{"line_number":75,"context_line":"            nova.privsep.fs.e2fsck(image, check_exit_code)"},{"line_number":76,"context_line":"        else:"},{"line_number":77,"context_line":"            nova.privsep.fs.unprivileged_e2fsck(image, check_exit_code)"},{"line_number":78,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"df7087c5_1b2dc445","line":75,"updated":"2018-03-20 11:31:59.000000000","message":"I was referring to this e2fsck which is in addition to the e2fsck at line https://git.openstack.org/cgit/openstack/nova/tree/nova/virt/xenapi/vm_utils.py?h\u003drefs/changes/42/552242/4#n2294\n\nI did see in patchset 2 that there was a note in the commit message that the double e2fsck was intentional - but this note has now been removed?\n\nIs the double e2fsk still intentional here?","commit_id":"1754ad017c6d870039cbbe397cc7a0c0101e8119"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"61c5ee17f22b1cdb85ab012dcfa93fe1ae5885e6","unresolved":false,"context_lines":[{"line_number":70,"context_line":""},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"def resize2fs(image, check_exit_code\u003dFalse, run_as_root\u003dFalse):"},{"line_number":73,"context_line":"    try:"},{"line_number":74,"context_line":"        if run_as_root:"},{"line_number":75,"context_line":"            nova.privsep.fs.e2fsck(image, check_exit_code)"},{"line_number":76,"context_line":"        else:"},{"line_number":77,"context_line":"            nova.privsep.fs.unprivileged_e2fsck(image, check_exit_code)"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"    except processutils.ProcessExecutionError as exc:"},{"line_number":80,"context_line":"        LOG.debug(\"Checking the file system with e2fsck has failed, \""},{"line_number":81,"context_line":"                  \"the resize will be aborted. (%s)\", exc)"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"    else:"},{"line_number":84,"context_line":"        if run_as_root:"}],"source_content_type":"text/x-python","patch_set":6,"id":"df7087c5_625e7177","line":81,"range":{"start_line":73,"start_character":0,"end_line":81,"end_character":58},"updated":"2018-03-21 11:49:26.000000000","message":"note for self: I initially thought you were adding functionality here. However, this was actually called in \u0027resize2fs\u0027 previously and no longer is","commit_id":"7891bb13e424cc4849f50bd5bf43c57bff9cf539"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"0cfac73bdffed4b576a4568f96ec0256bdd2401b","unresolved":false,"context_lines":[{"line_number":72,"context_line":"def resize2fs(image, check_exit_code\u003dFalse, run_as_root\u003dFalse):"},{"line_number":73,"context_line":"    try:"},{"line_number":74,"context_line":"        if run_as_root:"},{"line_number":75,"context_line":"            nova.privsep.fs.e2fsck(image, check_exit_code)"},{"line_number":76,"context_line":"        else:"},{"line_number":77,"context_line":"            nova.privsep.fs.unprivileged_e2fsck(image, check_exit_code)"},{"line_number":78,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"bf659307_2e1b0673","line":75,"range":{"start_line":75,"start_character":42,"end_line":75,"end_character":57},"updated":"2018-04-03 13:04:21.000000000","message":"guess these should go too","commit_id":"422d92db9cc54abc1b75809431e36b6c9b3bb447"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"e28373cc77564cb96d3cafcfaf2702029a22db77","unresolved":false,"context_lines":[{"line_number":69,"context_line":"        CONF.default_ephemeral_format, specified_fs)"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"def resize2fs(image, check_exit_code\u003dFalse, run_as_root\u003dFalse):"},{"line_number":73,"context_line":"    # NOTE(mikal): note that the check_exit_code kwarg here only refers to"},{"line_number":74,"context_line":"    # resize2fs, not the precursor e2fsck. Yes, I agree its confusing."},{"line_number":75,"context_line":"    try:"}],"source_content_type":"text/x-python","patch_set":9,"id":"bf659307_85518165","line":72,"range":{"start_line":72,"start_character":21,"end_line":72,"end_character":42},"updated":"2018-04-06 13:33:03.000000000","message":"...because you\u0027re defaulting to False here, which isn\u0027t the same as whatever was happening before.","commit_id":"9cf79a4f51fde7d0c36f525327c6832c1587b741"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"1f6bad57f39b7f6b9a4d4e045e74d9c3523655b2","unresolved":false,"context_lines":[{"line_number":69,"context_line":"        CONF.default_ephemeral_format, specified_fs)"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"def resize2fs(image, check_exit_code\u003dFalse, run_as_root\u003dFalse):"},{"line_number":73,"context_line":"    # NOTE(mikal): note that the check_exit_code kwarg here only refers to"},{"line_number":74,"context_line":"    # resize2fs, not the precursor e2fsck. Yes, I agree its confusing."},{"line_number":75,"context_line":"    try:"}],"source_content_type":"text/x-python","patch_set":9,"id":"bf659307_6c3bd8c7","line":72,"range":{"start_line":72,"start_character":21,"end_line":72,"end_character":42},"in_reply_to":"bf659307_85518165","updated":"2018-04-09 10:29:32.000000000","message":"Done","commit_id":"9cf79a4f51fde7d0c36f525327c6832c1587b741"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"e28373cc77564cb96d3cafcfaf2702029a22db77","unresolved":false,"context_lines":[{"line_number":71,"context_line":""},{"line_number":72,"context_line":"def resize2fs(image, check_exit_code\u003dFalse, run_as_root\u003dFalse):"},{"line_number":73,"context_line":"    # NOTE(mikal): note that the check_exit_code kwarg here only refers to"},{"line_number":74,"context_line":"    # resize2fs, not the precursor e2fsck. Yes, I agree its confusing."},{"line_number":75,"context_line":"    try:"},{"line_number":76,"context_line":"        if run_as_root:"},{"line_number":77,"context_line":"            nova.privsep.fs.e2fsck(image, check_exit_code\u003d[0, 1, 2])"}],"source_content_type":"text/x-python","patch_set":9,"id":"bf659307_050a5189","line":74,"range":{"start_line":74,"start_character":56,"end_line":74,"end_character":59},"updated":"2018-04-06 13:33:03.000000000","message":"it\u0027s","commit_id":"9cf79a4f51fde7d0c36f525327c6832c1587b741"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"1f6bad57f39b7f6b9a4d4e045e74d9c3523655b2","unresolved":false,"context_lines":[{"line_number":71,"context_line":""},{"line_number":72,"context_line":"def resize2fs(image, check_exit_code\u003dFalse, run_as_root\u003dFalse):"},{"line_number":73,"context_line":"    # NOTE(mikal): note that the check_exit_code kwarg here only refers to"},{"line_number":74,"context_line":"    # resize2fs, not the precursor e2fsck. Yes, I agree its confusing."},{"line_number":75,"context_line":"    try:"},{"line_number":76,"context_line":"        if run_as_root:"},{"line_number":77,"context_line":"            nova.privsep.fs.e2fsck(image, check_exit_code\u003d[0, 1, 2])"}],"source_content_type":"text/x-python","patch_set":9,"id":"bf659307_0c4a5c54","line":74,"range":{"start_line":74,"start_character":56,"end_line":74,"end_character":59},"in_reply_to":"bf659307_050a5189","updated":"2018-04-09 10:29:32.000000000","message":"Done","commit_id":"9cf79a4f51fde7d0c36f525327c6832c1587b741"}],"nova/virt/xenapi/vm_utils.py":[{"author":{"_account_id":17920,"name":"Jianghua Wang","email":"jianghua.wang@citrix.com","username":"wjhfresh"},"change_message_id":"38ea591e399ae340bd3be397ae03ef62846e0444","unresolved":false,"context_lines":[{"line_number":2297,"context_line":"    dev_path \u003d utils.make_dev_path(dev)"},{"line_number":2298,"context_line":"    partition_path \u003d utils.make_dev_path(dev, partition\u003d1)"},{"line_number":2299,"context_line":""},{"line_number":2300,"context_line":"    # Replay journal if FS wasn\u0027t cleanly unmounted"},{"line_number":2301,"context_line":"    _repair_filesystem(partition_path)"},{"line_number":2302,"context_line":""},{"line_number":2303,"context_line":"    # Remove ext3 journal (making it ext2)"}],"source_content_type":"text/x-python","patch_set":1,"id":"df7087c5_bf5bd1f3","side":"PARENT","line":2300,"updated":"2018-03-15 09:55:56.000000000","message":"Why removed this? line 2304 will remove journal. Without this replay, journal can\u0027t help for file system problem anymore.","commit_id":"29b0fca97a5f405f632568631fd9915dbc200265"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"4f6209306562b6695ef35193828285a7a6ef89ac","unresolved":false,"context_lines":[{"line_number":2297,"context_line":"    dev_path \u003d utils.make_dev_path(dev)"},{"line_number":2298,"context_line":"    partition_path \u003d utils.make_dev_path(dev, partition\u003d1)"},{"line_number":2299,"context_line":""},{"line_number":2300,"context_line":"    # Replay journal if FS wasn\u0027t cleanly unmounted"},{"line_number":2301,"context_line":"    _repair_filesystem(partition_path)"},{"line_number":2302,"context_line":""},{"line_number":2303,"context_line":"    # Remove ext3 journal (making it ext2)"}],"source_content_type":"text/x-python","patch_set":1,"id":"df7087c5_d07ea6e2","side":"PARENT","line":2300,"in_reply_to":"df7087c5_bf5bd1f3","updated":"2018-03-15 19:49:34.000000000","message":"This is the first e2fsck, which got replaced with the one embedded in resize2fs.\n\nSo, we go from running:\n\n e2fsck -f -y\n resize\n\nTo:\n\n e2fsck -p\n resize\n\nIsn\u0027t that functionally the same?","commit_id":"29b0fca97a5f405f632568631fd9915dbc200265"},{"author":{"_account_id":17920,"name":"Jianghua Wang","email":"jianghua.wang@citrix.com","username":"wjhfresh"},"change_message_id":"3d4bb936085471dfcd620007348f96274ac5207a","unresolved":false,"context_lines":[{"line_number":2297,"context_line":"    dev_path \u003d utils.make_dev_path(dev)"},{"line_number":2298,"context_line":"    partition_path \u003d utils.make_dev_path(dev, partition\u003d1)"},{"line_number":2299,"context_line":""},{"line_number":2300,"context_line":"    # Replay journal if FS wasn\u0027t cleanly unmounted"},{"line_number":2301,"context_line":"    _repair_filesystem(partition_path)"},{"line_number":2302,"context_line":""},{"line_number":2303,"context_line":"    # Remove ext3 journal (making it ext2)"}],"source_content_type":"text/x-python","patch_set":1,"id":"df7087c5_f9006e04","side":"PARENT","line":2300,"in_reply_to":"df7087c5_d07ea6e2","updated":"2018-03-16 03:39:26.000000000","message":"the difference is that e2fsck runs *before* V.S. *after* removing removing journal (line-2304). After the change, the journal is disabled when running e2fsck. That\u0027s why I was saying \"journal can\u0027t help for file system problem anymore.\"","commit_id":"29b0fca97a5f405f632568631fd9915dbc200265"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"f43beb7aebde1ffc3b9d1bc785e1f2e9a3d5bcce","unresolved":false,"context_lines":[{"line_number":2291,"context_line":"    partition_path \u003d utils.make_dev_path(dev, partition\u003d1)"},{"line_number":2292,"context_line":""},{"line_number":2293,"context_line":"    # Replay journal if FS wasn\u0027t cleanly unmounted"},{"line_number":2294,"context_line":"    nova.privsep.fs.e2fsck(partition_path, flags\u003d\u0027-f -y\u0027,"},{"line_number":2295,"context_line":"                           check_exit_code\u003d[0, 1, 2])"},{"line_number":2296,"context_line":""},{"line_number":2297,"context_line":"    # Remove ext3 journal (making it ext2)"}],"source_content_type":"text/x-python","patch_set":3,"id":"df7087c5_1a55de1d","line":2294,"range":{"start_line":2294,"start_character":49,"end_line":2294,"end_character":56},"updated":"2018-03-19 12:55:22.000000000","message":"Pretty sure this results in e2fsck being called with \u0027-f -y\u0027  as a single argument, which is nonsensical.  Either \u0027flags\u0027 needs to take a list and be *\u0027d in the execute, or (assuming it works) this should be \u0027-fy\u0027.","commit_id":"6131bbba3e088c19bca14a049411ce0236fb07eb"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"61c5ee17f22b1cdb85ab012dcfa93fe1ae5885e6","unresolved":false,"context_lines":[{"line_number":2294,"context_line":"    nova.privsep.fs.e2fsck(partition_path, flags\u003d\u0027-fy\u0027,"},{"line_number":2295,"context_line":"                           check_exit_code\u003d[0, 1, 2])"},{"line_number":2296,"context_line":""},{"line_number":2297,"context_line":"    # Remove ext3 journal (making it ext2)"},{"line_number":2298,"context_line":"    nova.privsep.fs.ext_journal_disable(partition_path)"},{"line_number":2299,"context_line":""},{"line_number":2300,"context_line":"    if new_sectors \u003c old_sectors:"},{"line_number":2301,"context_line":"        # Resizing down, resize filesystem before partition resize"}],"source_content_type":"text/x-python","patch_set":6,"id":"df7087c5_42d00dca","line":2298,"range":{"start_line":2297,"start_character":0,"end_line":2298,"end_character":55},"updated":"2018-03-21 11:49:26.000000000","message":"Oh boy :D","commit_id":"7891bb13e424cc4849f50bd5bf43c57bff9cf539"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"535880ebf62ee873279f21eb41477569eefed294","unresolved":false,"context_lines":[{"line_number":2292,"context_line":""},{"line_number":2293,"context_line":"    # Replay journal if FS wasn\u0027t cleanly unmounted"},{"line_number":2294,"context_line":"    nova.privsep.fs.e2fsck(partition_path, flags\u003d\u0027-fy\u0027,"},{"line_number":2295,"context_line":"                           check_exit_code\u003d[0, 1, 2])"},{"line_number":2296,"context_line":""},{"line_number":2297,"context_line":"    # Remove ext3 journal (making it ext2)"},{"line_number":2298,"context_line":"    nova.privsep.fs.ext_journal_disable(partition_path)"}],"source_content_type":"text/x-python","patch_set":7,"id":"bf659307_58016005","line":2295,"range":{"start_line":2295,"start_character":27,"end_line":2295,"end_character":52},"updated":"2018-04-03 12:09:35.000000000","message":"This appears to be the libvirt default, and the param is ignored anyways, so I think you can drop this bit here.","commit_id":"422d92db9cc54abc1b75809431e36b6c9b3bb447"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"6d310d5d44ba4ab1ecb5e955419d4a484d1166fb","unresolved":false,"context_lines":[{"line_number":2292,"context_line":""},{"line_number":2293,"context_line":"    # Replay journal if FS wasn\u0027t cleanly unmounted"},{"line_number":2294,"context_line":"    nova.privsep.fs.e2fsck(partition_path, flags\u003d\u0027-fy\u0027,"},{"line_number":2295,"context_line":"                           check_exit_code\u003d[0, 1, 2])"},{"line_number":2296,"context_line":""},{"line_number":2297,"context_line":"    # Remove ext3 journal (making it ext2)"},{"line_number":2298,"context_line":"    nova.privsep.fs.ext_journal_disable(partition_path)"}],"source_content_type":"text/x-python","patch_set":7,"id":"bf659307_6c7fbc65","line":2295,"range":{"start_line":2295,"start_character":27,"end_line":2295,"end_character":52},"in_reply_to":"bf659307_58016005","updated":"2018-04-03 20:45:41.000000000","message":"See previous comment, I think this is confusing because of a rebase snafu that I just fixed.","commit_id":"422d92db9cc54abc1b75809431e36b6c9b3bb447"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"535880ebf62ee873279f21eb41477569eefed294","unresolved":false,"context_lines":[{"line_number":2313,"context_line":""},{"line_number":2314,"context_line":"    if new_sectors \u003e old_sectors:"},{"line_number":2315,"context_line":"        # Resizing up, resize filesystem after partition resize"},{"line_number":2316,"context_line":"        nova.privsep.fs.resize2fs(partition_path, [0, 1, 2])"},{"line_number":2317,"context_line":""},{"line_number":2318,"context_line":"    # Add back journal"},{"line_number":2319,"context_line":"    nova.privsep.fs.ext_journal_enable(partition_path)"}],"source_content_type":"text/x-python","patch_set":7,"id":"bf659307_d815704a","line":2316,"range":{"start_line":2316,"start_character":50,"end_line":2316,"end_character":59},"updated":"2018-04-03 12:09:35.000000000","message":"Why is this check exit code thing here? Should that not be true vs false here? I guess we want the utils default here, which is [0] i.e. True? https://github.com/openstack/oslo.concurrency/blob/e55a18c5e0392c568ce7b5073bbcdd0786a1f315/oslo_concurrency/processutils.py#L305","commit_id":"422d92db9cc54abc1b75809431e36b6c9b3bb447"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"6d310d5d44ba4ab1ecb5e955419d4a484d1166fb","unresolved":false,"context_lines":[{"line_number":2313,"context_line":""},{"line_number":2314,"context_line":"    if new_sectors \u003e old_sectors:"},{"line_number":2315,"context_line":"        # Resizing up, resize filesystem after partition resize"},{"line_number":2316,"context_line":"        nova.privsep.fs.resize2fs(partition_path, [0, 1, 2])"},{"line_number":2317,"context_line":""},{"line_number":2318,"context_line":"    # Add back journal"},{"line_number":2319,"context_line":"    nova.privsep.fs.ext_journal_enable(partition_path)"}],"source_content_type":"text/x-python","patch_set":7,"id":"bf659307_ec8aec61","line":2316,"range":{"start_line":2316,"start_character":50,"end_line":2316,"end_character":59},"in_reply_to":"bf659307_d815704a","updated":"2018-04-03 20:45:41.000000000","message":"This is a bit odd. Normally these are named kwargs, I am not sure what I was thinking here. I\u0027ll fix it up to be clearer and then we can see what you think.","commit_id":"422d92db9cc54abc1b75809431e36b6c9b3bb447"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"d086084c1f871bfbb222078f474149835b48edee","unresolved":false,"context_lines":[{"line_number":2300,"context_line":"    if new_sectors \u003c old_sectors:"},{"line_number":2301,"context_line":"        # Resizing down, resize filesystem before partition resize"},{"line_number":2302,"context_line":"        try:"},{"line_number":2303,"context_line":"            nova.privsep.fs.resize2fs(partition_path, size\u003d\u0027%ds\u0027 % size)"},{"line_number":2304,"context_line":"        except processutils.ProcessExecutionError as exc:"},{"line_number":2305,"context_line":"            LOG.error(six.text_type(exc))"},{"line_number":2306,"context_line":"            reason \u003d _(\"Shrinking the filesystem down with resize2fs \""}],"source_content_type":"text/x-python","patch_set":10,"id":"bf659307_509bf0c7","line":2303,"updated":"2018-04-10 01:13:41.000000000","message":"This is the use.","commit_id":"9c1f621dca40dd94622d3a7a1dc20fed0dd9340a"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"d086084c1f871bfbb222078f474149835b48edee","unresolved":false,"context_lines":[{"line_number":2313,"context_line":""},{"line_number":2314,"context_line":"    if new_sectors \u003e old_sectors:"},{"line_number":2315,"context_line":"        # Resizing up, resize filesystem after partition resize"},{"line_number":2316,"context_line":"        nova.privsep.fs.resize2fs(partition_path, [0, 1, 2])"},{"line_number":2317,"context_line":""},{"line_number":2318,"context_line":"    # Add back journal"},{"line_number":2319,"context_line":"    nova.privsep.fs.ext_journal_enable(partition_path)"}],"source_content_type":"text/x-python","patch_set":10,"id":"bf659307_10a57804","line":2316,"updated":"2018-04-10 01:13:41.000000000","message":"That said, this looks mangled now.","commit_id":"9c1f621dca40dd94622d3a7a1dc20fed0dd9340a"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"8fc30df51233ec1c7a1a95890f1369977e47ba09","unresolved":false,"context_lines":[{"line_number":2313,"context_line":""},{"line_number":2314,"context_line":"    if new_sectors \u003e old_sectors:"},{"line_number":2315,"context_line":"        # Resizing up, resize filesystem after partition resize"},{"line_number":2316,"context_line":"        nova.privsep.fs.resize2fs(partition_path, [0, 1, 2])"},{"line_number":2317,"context_line":""},{"line_number":2318,"context_line":"    # Add back journal"},{"line_number":2319,"context_line":"    nova.privsep.fs.ext_journal_enable(partition_path)"}],"source_content_type":"text/x-python","patch_set":10,"id":"bf659307_1106d087","line":2316,"in_reply_to":"bf659307_10a57804","updated":"2018-04-10 12:42:35.000000000","message":"How so?","commit_id":"9c1f621dca40dd94622d3a7a1dc20fed0dd9340a"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"3092ace484b90571bcca06dcafa0da28669bc66e","unresolved":false,"context_lines":[{"line_number":2292,"context_line":""},{"line_number":2293,"context_line":"    # Replay journal if FS wasn\u0027t cleanly unmounted"},{"line_number":2294,"context_line":"    nova.privsep.fs.e2fsck(partition_path, flags\u003d\u0027-fy\u0027,"},{"line_number":2295,"context_line":"                           check_exit_code\u003d[0, 1, 2])"},{"line_number":2296,"context_line":""},{"line_number":2297,"context_line":"    # Remove ext3 journal (making it ext2)"},{"line_number":2298,"context_line":"    nova.privsep.fs.ext_journal_disable(partition_path)"}],"source_content_type":"text/x-python","patch_set":12,"id":"bf659307_91dae0e6","line":2295,"range":{"start_line":2295,"start_character":27,"end_line":2295,"end_character":52},"updated":"2018-04-10 13:39:57.000000000","message":"axe this (e2fsck doesn\u0027t take a check_exit_code argument)","commit_id":"dd13e1d1aa7089038e6d9342b56d57a8d03abf5d"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"1e61e64a331f5a8686ca24d5e4b2be790f802cef","unresolved":false,"context_lines":[{"line_number":2292,"context_line":""},{"line_number":2293,"context_line":"    # Replay journal if FS wasn\u0027t cleanly unmounted"},{"line_number":2294,"context_line":"    nova.privsep.fs.e2fsck(partition_path, flags\u003d\u0027-fy\u0027,"},{"line_number":2295,"context_line":"                           check_exit_code\u003d[0, 1, 2])"},{"line_number":2296,"context_line":""},{"line_number":2297,"context_line":"    # Remove ext3 journal (making it ext2)"},{"line_number":2298,"context_line":"    nova.privsep.fs.ext_journal_disable(partition_path)"}],"source_content_type":"text/x-python","patch_set":12,"id":"bf659307_faa3e8af","line":2295,"range":{"start_line":2295,"start_character":27,"end_line":2295,"end_character":52},"in_reply_to":"bf659307_91dae0e6","updated":"2018-04-10 21:54:59.000000000","message":"Done","commit_id":"dd13e1d1aa7089038e6d9342b56d57a8d03abf5d"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"3092ace484b90571bcca06dcafa0da28669bc66e","unresolved":false,"context_lines":[{"line_number":2300,"context_line":"    if new_sectors \u003c old_sectors:"},{"line_number":2301,"context_line":"        # Resizing down, resize filesystem before partition resize"},{"line_number":2302,"context_line":"        try:"},{"line_number":2303,"context_line":"            nova.privsep.fs.resize2fs(partition_path, size\u003d\u0027%ds\u0027 % size)"},{"line_number":2304,"context_line":"        except processutils.ProcessExecutionError as exc:"},{"line_number":2305,"context_line":"            LOG.error(six.text_type(exc))"},{"line_number":2306,"context_line":"            reason \u003d _(\"Shrinking the filesystem down with resize2fs \""}],"source_content_type":"text/x-python","patch_set":12,"id":"bf659307_d1e93880","line":2303,"range":{"start_line":2303,"start_character":0,"end_line":2303,"end_character":72},"updated":"2018-04-10 13:39:57.000000000","message":"This does require the check_exit_code argument","commit_id":"dd13e1d1aa7089038e6d9342b56d57a8d03abf5d"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"1e61e64a331f5a8686ca24d5e4b2be790f802cef","unresolved":false,"context_lines":[{"line_number":2300,"context_line":"    if new_sectors \u003c old_sectors:"},{"line_number":2301,"context_line":"        # Resizing down, resize filesystem before partition resize"},{"line_number":2302,"context_line":"        try:"},{"line_number":2303,"context_line":"            nova.privsep.fs.resize2fs(partition_path, size\u003d\u0027%ds\u0027 % size)"},{"line_number":2304,"context_line":"        except processutils.ProcessExecutionError as exc:"},{"line_number":2305,"context_line":"            LOG.error(six.text_type(exc))"},{"line_number":2306,"context_line":"            reason \u003d _(\"Shrinking the filesystem down with resize2fs \""}],"source_content_type":"text/x-python","patch_set":12,"id":"bf659307_bab810e5","line":2303,"range":{"start_line":2303,"start_character":0,"end_line":2303,"end_character":72},"in_reply_to":"bf659307_d1e93880","updated":"2018-04-10 21:54:59.000000000","message":"Done","commit_id":"dd13e1d1aa7089038e6d9342b56d57a8d03abf5d"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"3092ace484b90571bcca06dcafa0da28669bc66e","unresolved":false,"context_lines":[{"line_number":2313,"context_line":""},{"line_number":2314,"context_line":"    if new_sectors \u003e old_sectors:"},{"line_number":2315,"context_line":"        # Resizing up, resize filesystem after partition resize"},{"line_number":2316,"context_line":"        nova.privsep.fs.resize2fs(partition_path)"},{"line_number":2317,"context_line":""},{"line_number":2318,"context_line":"    # Add back journal"},{"line_number":2319,"context_line":"    nova.privsep.fs.ext_journal_enable(partition_path)"}],"source_content_type":"text/x-python","patch_set":12,"id":"bf659307_71f86c48","line":2316,"range":{"start_line":2316,"start_character":8,"end_line":2316,"end_character":49},"updated":"2018-04-10 13:39:57.000000000","message":"And so does this.","commit_id":"dd13e1d1aa7089038e6d9342b56d57a8d03abf5d"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"1e61e64a331f5a8686ca24d5e4b2be790f802cef","unresolved":false,"context_lines":[{"line_number":2313,"context_line":""},{"line_number":2314,"context_line":"    if new_sectors \u003e old_sectors:"},{"line_number":2315,"context_line":"        # Resizing up, resize filesystem after partition resize"},{"line_number":2316,"context_line":"        nova.privsep.fs.resize2fs(partition_path)"},{"line_number":2317,"context_line":""},{"line_number":2318,"context_line":"    # Add back journal"},{"line_number":2319,"context_line":"    nova.privsep.fs.ext_journal_enable(partition_path)"}],"source_content_type":"text/x-python","patch_set":12,"id":"bf659307_5acf747e","line":2316,"range":{"start_line":2316,"start_character":8,"end_line":2316,"end_character":49},"in_reply_to":"bf659307_71f86c48","updated":"2018-04-10 21:54:59.000000000","message":"Done","commit_id":"dd13e1d1aa7089038e6d9342b56d57a8d03abf5d"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"092f32959b0b962370f60a1935bdcaac6435b967","unresolved":false,"context_lines":[{"line_number":2299,"context_line":"    if new_sectors \u003c old_sectors:"},{"line_number":2300,"context_line":"        # Resizing down, resize filesystem before partition resize"},{"line_number":2301,"context_line":"        try:"},{"line_number":2302,"context_line":"            nova.privsep.fs.resize2fs(partition_path, None, size\u003d\u0027%ds\u0027 % size)"},{"line_number":2303,"context_line":"        except processutils.ProcessExecutionError as exc:"},{"line_number":2304,"context_line":"            LOG.error(six.text_type(exc))"},{"line_number":2305,"context_line":"            reason \u003d _(\"Shrinking the filesystem down with resize2fs \""}],"source_content_type":"text/x-python","patch_set":13,"id":"bf659307_680b9329","line":2302,"range":{"start_line":2302,"start_character":54,"end_line":2302,"end_character":58},"updated":"2018-04-10 22:35:54.000000000","message":"Yeah, I see why you made this a kwarg now.  But this is still the right thing for this patch IMO.","commit_id":"44e73d097d863d4f99bdf9222ebb5c3a83107994"}]}
