)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"74764143840323b693d543cca303235756b5e8c1","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Add initial privsep structure"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"- requirements"},{"line_number":10,"context_line":"- lowe-constraints"},{"line_number":11,"context_line":"- init for privsep"},{"line_number":12,"context_line":"- update base test"},{"line_number":13,"context_line":"- fixture"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"9f560f44_35cf6758","line":10,"range":{"start_line":10,"start_character":2,"end_line":10,"end_character":18},"updated":"2020-08-13 21:32:55.000000000","message":"lowe? ;)","commit_id":"88f245bda0853e178136c6b09201e95db12385ac"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"74764143840323b693d543cca303235756b5e8c1","unresolved":false,"context_lines":[{"line_number":10,"context_line":"- lowe-constraints"},{"line_number":11,"context_line":"- init for privsep"},{"line_number":12,"context_line":"- update base test"},{"line_number":13,"context_line":"- fixture"},{"line_number":14,"context_line":"- Move qemu-img, dd, mkfs and mkswap to privsep"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Depends-On: https://review.opendev.org/745706"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"9f560f44_15cce35f","line":13,"updated":"2020-08-13 21:32:55.000000000","message":"s/e/es/? :)","commit_id":"88f245bda0853e178136c6b09201e95db12385ac"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":4571,"name":"Steve Baker","email":"sbaker@redhat.com","username":"steve-stevebaker"},"change_message_id":"e784660d2ee1c1c652b2c9e42ea98f204acc6eb2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":21,"id":"2f30ca1b_90dd7e6f","updated":"2021-12-21 01:42:22.000000000","message":"How about the following as a proposal to move forward with this. I suggest ironic-lib becomes agnostic to how operations get the required privileges to run. IPA can call them directly because it is root already. Other projects will need to wrap the functions in their own privsep context decorated functions, which will allow them to come up with their own privsep context policy (one very privileged context? fine grained?...)\n\nFor the ironic case I have a change which adds privsep[1]. We could build on that to wrap ironic-lib calls with ironic.privsep.* functions and contexts appropriate for the ironic service.\n\nSo actions for this plan could be:\n- in ironic-lib functions, don\u0027t hardcode run_as_root\u003dTrue ever. Add run_as_root to function arguments\n- make changes to consuming projects to wrap required functions with their own privsep\n- remove rootwrap.d/ironic-lib.filters entries whenever all consumers have moved over\n- once all projects are handling their own privileges, deprecate and detach run_as_root arguments\n\n[1] https://review.opendev.org/c/openstack/ironic/+/821363","commit_id":"2baf0a672bbcc91c7aaf7b0686122ae6ad157f1b"}],"ironic_lib/disk_partitioner.py":[{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"74764143840323b693d543cca303235756b5e8c1","unresolved":false,"context_lines":[{"line_number":71,"context_line":"        #                    need to log it again here."},{"line_number":72,"context_line":"        utils.execute(\u0027parted\u0027, \u0027-a\u0027, self._alignment, \u0027-s\u0027, self._device,"},{"line_number":73,"context_line":"                      \u0027--\u0027, \u0027unit\u0027, \u0027MiB\u0027, *args, check_exit_code\u003d[0],"},{"line_number":74,"context_line":"                      use_standard_locale\u003dTrue, run_as_root\u003dTrue)"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"    def add_partition(self, size, part_type\u003d\u0027primary\u0027, fs_type\u003d\u0027\u0027,"},{"line_number":77,"context_line":"                      boot_flag\u003dNone, extra_flags\u003dNone):"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f560f44_15d6a3c4","side":"PARENT","line":74,"updated":"2020-08-13 21:32:55.000000000","message":"I am soooooooo confused why this was a method on it\u0027s own.....","commit_id":"4e0846d208bef7042df274e90e8b0da8fa69d1e8"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"2367f301a6fba6bc0775eb7313293fb6cdbd83f8","unresolved":true,"context_lines":[{"line_number":118,"context_line":"            start \u003d end"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"        utils.execute(\u0027parted\u0027, \u0027-a\u0027, self._alignment, \u0027-s\u0027, self._device,"},{"line_number":121,"context_line":"                      \u0027--\u0027, \u0027unit\u0027, \u0027MiB\u0027, *cmd_args, check_exit_code\u003d[0],"},{"line_number":122,"context_line":"                      use_standard_locale\u003dTrue, run_as_root\u003dTrue)"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":16,"id":"795cd133_5e90a791","line":121,"range":{"start_line":121,"start_character":53,"end_line":121,"end_character":73},"updated":"2021-02-24 13:37:14.000000000","message":"this is the default behavior, no need to keep it here","commit_id":"099ef23081b96566b1dd696af8b8c471018f732d"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"a207fcec08859f09d6534e66fe2d7427f784a23d","unresolved":false,"context_lines":[{"line_number":118,"context_line":"            start \u003d end"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"        utils.execute(\u0027parted\u0027, \u0027-a\u0027, self._alignment, \u0027-s\u0027, self._device,"},{"line_number":121,"context_line":"                      \u0027--\u0027, \u0027unit\u0027, \u0027MiB\u0027, *cmd_args, check_exit_code\u003d[0],"},{"line_number":122,"context_line":"                      use_standard_locale\u003dTrue, run_as_root\u003dTrue)"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":16,"id":"2347acb7_a6d2c0f7","line":121,"range":{"start_line":121,"start_character":53,"end_line":121,"end_character":73},"in_reply_to":"795cd133_5e90a791","updated":"2021-04-12 21:15:07.000000000","message":"Done","commit_id":"099ef23081b96566b1dd696af8b8c471018f732d"}],"ironic_lib/privsep/__init__.py":[{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"74764143840323b693d543cca303235756b5e8c1","unresolved":false,"context_lines":[{"line_number":23,"context_line":"                  capabilities.CAP_DAC_OVERRIDE,"},{"line_number":24,"context_line":"                  capabilities.CAP_DAC_READ_SEARCH,"},{"line_number":25,"context_line":"                  capabilities.CAP_FOWNER,"},{"line_number":26,"context_line":"                  capabilities.CAP_NET_ADMIN,"},{"line_number":27,"context_line":"                  capabilities.CAP_SYS_ADMIN],"},{"line_number":28,"context_line":")"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f560f44_95c113e8","line":26,"updated":"2020-08-13 21:32:55.000000000","message":"I guess we need net_admin only for mdns?","commit_id":"88f245bda0853e178136c6b09201e95db12385ac"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"8cee39c1380ea11e9182f8d7ac6d2481f9ef659b","unresolved":false,"context_lines":[{"line_number":23,"context_line":"                  capabilities.CAP_DAC_OVERRIDE,"},{"line_number":24,"context_line":"                  capabilities.CAP_DAC_READ_SEARCH,"},{"line_number":25,"context_line":"                  capabilities.CAP_FOWNER,"},{"line_number":26,"context_line":"                  capabilities.CAP_NET_ADMIN,"},{"line_number":27,"context_line":"                  capabilities.CAP_SYS_ADMIN],"},{"line_number":28,"context_line":")"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f560f44_075f8be5","line":26,"in_reply_to":"9f560f44_95c113e8","updated":"2020-08-15 14:39:31.000000000","message":"Yeah, we can also just create a separate context for it","commit_id":"88f245bda0853e178136c6b09201e95db12385ac"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"74764143840323b693d543cca303235756b5e8c1","unresolved":false,"context_lines":[{"line_number":24,"context_line":"                  capabilities.CAP_DAC_READ_SEARCH,"},{"line_number":25,"context_line":"                  capabilities.CAP_FOWNER,"},{"line_number":26,"context_line":"                  capabilities.CAP_NET_ADMIN,"},{"line_number":27,"context_line":"                  capabilities.CAP_SYS_ADMIN],"},{"line_number":28,"context_line":")"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f560f44_d5bb8b6f","line":27,"updated":"2020-08-13 21:32:55.000000000","message":"This worries me since it is effectively root.","commit_id":"88f245bda0853e178136c6b09201e95db12385ac"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"88378e9e649677b5404285572ad3d57bfab4bb9b","unresolved":false,"context_lines":[{"line_number":22,"context_line":"    capabilities\u003d[capabilities.CAP_CHOWN,"},{"line_number":23,"context_line":"                  capabilities.CAP_DAC_OVERRIDE,"},{"line_number":24,"context_line":"                  capabilities.CAP_DAC_READ_SEARCH,"},{"line_number":25,"context_line":"                  capabilities.CAP_FOWNER],"},{"line_number":26,"context_line":")"}],"source_content_type":"text/x-python","patch_set":6,"id":"9f560f44_e6ed1eb8","line":25,"updated":"2020-08-18 10:13:40.000000000","message":"if you want equivalency to sudo you also need CAP_NET_ADMIN and CAP_SYS_ADMIN","commit_id":"3fb8c2eb407751f9d560f6a348b92b38cf1075d7"}],"ironic_lib/privsep/fs.py":[{"author":{"_account_id":4571,"name":"Steve Baker","email":"sbaker@redhat.com","username":"steve-stevebaker"},"change_message_id":"067f32fc4336e1a0194f8fecd4b47e67862cc268","unresolved":false,"context_lines":[{"line_number":37,"context_line":""},{"line_number":38,"context_line":"@ironic_lib.privsep.sys_admin_pctxt.entrypoint"},{"line_number":39,"context_line":"def mkfs(*args):"},{"line_number":40,"context_line":"    utils.execute(*args, run_as_root\u003dTrue, use_standard_locale\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":8,"id":"9f560f44_273b81ea","line":40,"updated":"2020-10-05 21:58:36.000000000","message":"It would be nice if *args could be avoided and each function argument maps to a specific command argument. I realize this might not be possible in some cases though","commit_id":"8e56445cf39dcaeef75c8bfa6dd9985f56889854"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"2367f301a6fba6bc0775eb7313293fb6cdbd83f8","unresolved":true,"context_lines":[{"line_number":21,"context_line":"@ironic_lib.privsep.sys_admin_pctxt.entrypoint"},{"line_number":22,"context_line":"def dd(src, dst, *args):"},{"line_number":23,"context_line":"    utils.execute(\u0027dd\u0027, \u0027if\u003d%s\u0027 % src, \u0027of\u003d%s\u0027 % dst, *args,"},{"line_number":24,"context_line":"                  use_standard_locale\u003dTrue, run_as_root\u003dTrue,"},{"line_number":25,"context_line":"                  check_exit_code\u003d[0])"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"59fb60cf_d277412b","line":24,"range":{"start_line":24,"start_character":44,"end_line":24,"end_character":60},"updated":"2021-02-24 13:37:14.000000000","message":"we\u0027re already running this in privileged mode, we can remove run_as_root","commit_id":"099ef23081b96566b1dd696af8b8c471018f732d"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"a207fcec08859f09d6534e66fe2d7427f784a23d","unresolved":false,"context_lines":[{"line_number":21,"context_line":"@ironic_lib.privsep.sys_admin_pctxt.entrypoint"},{"line_number":22,"context_line":"def dd(src, dst, *args):"},{"line_number":23,"context_line":"    utils.execute(\u0027dd\u0027, \u0027if\u003d%s\u0027 % src, \u0027of\u003d%s\u0027 % dst, *args,"},{"line_number":24,"context_line":"                  use_standard_locale\u003dTrue, run_as_root\u003dTrue,"},{"line_number":25,"context_line":"                  check_exit_code\u003d[0])"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"a05c715d_abc941f5","line":24,"range":{"start_line":24,"start_character":44,"end_line":24,"end_character":60},"in_reply_to":"59fb60cf_d277412b","updated":"2021-04-12 21:15:07.000000000","message":"Done","commit_id":"099ef23081b96566b1dd696af8b8c471018f732d"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"2367f301a6fba6bc0775eb7313293fb6cdbd83f8","unresolved":true,"context_lines":[{"line_number":22,"context_line":"def dd(src, dst, *args):"},{"line_number":23,"context_line":"    utils.execute(\u0027dd\u0027, \u0027if\u003d%s\u0027 % src, \u0027of\u003d%s\u0027 % dst, *args,"},{"line_number":24,"context_line":"                  use_standard_locale\u003dTrue, run_as_root\u003dTrue,"},{"line_number":25,"context_line":"                  check_exit_code\u003d[0])"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"@ironic_lib.privsep.sys_admin_pctxt.entrypoint"}],"source_content_type":"text/x-python","patch_set":16,"id":"43c4317d_243229fc","line":25,"range":{"start_line":25,"start_character":18,"end_line":25,"end_character":37},"updated":"2021-02-24 13:37:14.000000000","message":"default is already [0], let\u0027s remove this","commit_id":"099ef23081b96566b1dd696af8b8c471018f732d"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"a207fcec08859f09d6534e66fe2d7427f784a23d","unresolved":false,"context_lines":[{"line_number":22,"context_line":"def dd(src, dst, *args):"},{"line_number":23,"context_line":"    utils.execute(\u0027dd\u0027, \u0027if\u003d%s\u0027 % src, \u0027of\u003d%s\u0027 % dst, *args,"},{"line_number":24,"context_line":"                  use_standard_locale\u003dTrue, run_as_root\u003dTrue,"},{"line_number":25,"context_line":"                  check_exit_code\u003d[0])"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"@ironic_lib.privsep.sys_admin_pctxt.entrypoint"}],"source_content_type":"text/x-python","patch_set":16,"id":"df3d397d_347bc1bf","line":25,"range":{"start_line":25,"start_character":18,"end_line":25,"end_character":37},"in_reply_to":"43c4317d_243229fc","updated":"2021-04-12 21:15:07.000000000","message":"Done","commit_id":"099ef23081b96566b1dd696af8b8c471018f732d"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"2367f301a6fba6bc0775eb7313293fb6cdbd83f8","unresolved":true,"context_lines":[{"line_number":29,"context_line":"def dd_bs(device, count, seek\u003dNone):"},{"line_number":30,"context_line":"    if seek is not None:"},{"line_number":31,"context_line":"        utils.execute(\u0027dd\u0027, \u0027bs\u003d512\u0027, \u0027if\u003d/dev/zero\u0027, device, count, seek,"},{"line_number":32,"context_line":"                      run_as_root\u003dTrue, use_standard_locale\u003dTrue)"},{"line_number":33,"context_line":"    else:"},{"line_number":34,"context_line":"        utils.execute(\u0027dd\u0027, \u0027bs\u003d512\u0027, \u0027if\u003d/dev/zero\u0027, device, count,"},{"line_number":35,"context_line":"                      run_as_root\u003dTrue, use_standard_locale\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":16,"id":"cb33ca79_2bbe9fa9","line":32,"range":{"start_line":32,"start_character":22,"end_line":32,"end_character":38},"updated":"2021-02-24 13:37:14.000000000","message":"same as above, let\u0027s remove this","commit_id":"099ef23081b96566b1dd696af8b8c471018f732d"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"a207fcec08859f09d6534e66fe2d7427f784a23d","unresolved":false,"context_lines":[{"line_number":29,"context_line":"def dd_bs(device, count, seek\u003dNone):"},{"line_number":30,"context_line":"    if seek is not None:"},{"line_number":31,"context_line":"        utils.execute(\u0027dd\u0027, \u0027bs\u003d512\u0027, \u0027if\u003d/dev/zero\u0027, device, count, seek,"},{"line_number":32,"context_line":"                      run_as_root\u003dTrue, use_standard_locale\u003dTrue)"},{"line_number":33,"context_line":"    else:"},{"line_number":34,"context_line":"        utils.execute(\u0027dd\u0027, \u0027bs\u003d512\u0027, \u0027if\u003d/dev/zero\u0027, device, count,"},{"line_number":35,"context_line":"                      run_as_root\u003dTrue, use_standard_locale\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":16,"id":"b5cfd714_f30965b4","line":32,"range":{"start_line":32,"start_character":22,"end_line":32,"end_character":38},"in_reply_to":"cb33ca79_2bbe9fa9","updated":"2021-04-12 21:15:07.000000000","message":"Done","commit_id":"099ef23081b96566b1dd696af8b8c471018f732d"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"2367f301a6fba6bc0775eb7313293fb6cdbd83f8","unresolved":true,"context_lines":[{"line_number":32,"context_line":"                      run_as_root\u003dTrue, use_standard_locale\u003dTrue)"},{"line_number":33,"context_line":"    else:"},{"line_number":34,"context_line":"        utils.execute(\u0027dd\u0027, \u0027bs\u003d512\u0027, \u0027if\u003d/dev/zero\u0027, device, count,"},{"line_number":35,"context_line":"                      run_as_root\u003dTrue, use_standard_locale\u003dTrue)"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"@ironic_lib.privsep.sys_admin_pctxt.entrypoint"}],"source_content_type":"text/x-python","patch_set":16,"id":"2faa34a9_341fe24c","line":35,"range":{"start_line":35,"start_character":22,"end_line":35,"end_character":38},"updated":"2021-02-24 13:37:14.000000000","message":"ditto","commit_id":"099ef23081b96566b1dd696af8b8c471018f732d"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"a207fcec08859f09d6534e66fe2d7427f784a23d","unresolved":false,"context_lines":[{"line_number":32,"context_line":"                      run_as_root\u003dTrue, use_standard_locale\u003dTrue)"},{"line_number":33,"context_line":"    else:"},{"line_number":34,"context_line":"        utils.execute(\u0027dd\u0027, \u0027bs\u003d512\u0027, \u0027if\u003d/dev/zero\u0027, device, count,"},{"line_number":35,"context_line":"                      run_as_root\u003dTrue, use_standard_locale\u003dTrue)"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"@ironic_lib.privsep.sys_admin_pctxt.entrypoint"}],"source_content_type":"text/x-python","patch_set":16,"id":"0b2c101d_0d86f4f0","line":35,"range":{"start_line":35,"start_character":22,"end_line":35,"end_character":38},"in_reply_to":"2faa34a9_341fe24c","updated":"2021-04-12 21:15:07.000000000","message":"Done","commit_id":"099ef23081b96566b1dd696af8b8c471018f732d"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"2367f301a6fba6bc0775eb7313293fb6cdbd83f8","unresolved":true,"context_lines":[{"line_number":37,"context_line":""},{"line_number":38,"context_line":"@ironic_lib.privsep.sys_admin_pctxt.entrypoint"},{"line_number":39,"context_line":"def mkfs(*args):"},{"line_number":40,"context_line":"    utils.execute(*args, run_as_root\u003dTrue, use_standard_locale\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":16,"id":"1cd3e518_2c1ee7ba","line":40,"range":{"start_line":40,"start_character":25,"end_line":40,"end_character":41},"updated":"2021-02-24 13:37:14.000000000","message":"ditto","commit_id":"099ef23081b96566b1dd696af8b8c471018f732d"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"a207fcec08859f09d6534e66fe2d7427f784a23d","unresolved":false,"context_lines":[{"line_number":37,"context_line":""},{"line_number":38,"context_line":"@ironic_lib.privsep.sys_admin_pctxt.entrypoint"},{"line_number":39,"context_line":"def mkfs(*args):"},{"line_number":40,"context_line":"    utils.execute(*args, run_as_root\u003dTrue, use_standard_locale\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":16,"id":"dcfe54db_71b38d93","line":40,"range":{"start_line":40,"start_character":25,"end_line":40,"end_character":41},"in_reply_to":"1cd3e518_2c1ee7ba","updated":"2021-04-12 21:15:07.000000000","message":"Done","commit_id":"099ef23081b96566b1dd696af8b8c471018f732d"}],"ironic_lib/privsep/qemu.py":[{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"2367f301a6fba6bc0775eb7313293fb6cdbd83f8","unresolved":true,"context_lines":[{"line_number":21,"context_line":"@ironic_lib.privsep.sys_admin_pctxt.entrypoint"},{"line_number":22,"context_line":"def convert(out_format, source, dest, memory_limit):"},{"line_number":23,"context_line":"    utils.execute(\u0027qemu-img\u0027, \u0027convert\u0027, \u0027-O\u0027, out_format, source, dest,"},{"line_number":24,"context_line":"                  run_as_root\u003dTrue,"},{"line_number":25,"context_line":"                  prlimit\u003dutils._qemu_img_limits(memory_limit),"},{"line_number":26,"context_line":"                  use_standard_locale\u003dTrue)"},{"line_number":27,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"418bb581_2aad701d","line":24,"range":{"start_line":24,"start_character":18,"end_line":24,"end_character":34},"updated":"2021-02-24 13:37:14.000000000","message":"remove this as it\u0027s in privileged mode already","commit_id":"099ef23081b96566b1dd696af8b8c471018f732d"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"a207fcec08859f09d6534e66fe2d7427f784a23d","unresolved":false,"context_lines":[{"line_number":21,"context_line":"@ironic_lib.privsep.sys_admin_pctxt.entrypoint"},{"line_number":22,"context_line":"def convert(out_format, source, dest, memory_limit):"},{"line_number":23,"context_line":"    utils.execute(\u0027qemu-img\u0027, \u0027convert\u0027, \u0027-O\u0027, out_format, source, dest,"},{"line_number":24,"context_line":"                  run_as_root\u003dTrue,"},{"line_number":25,"context_line":"                  prlimit\u003dutils._qemu_img_limits(memory_limit),"},{"line_number":26,"context_line":"                  use_standard_locale\u003dTrue)"},{"line_number":27,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"ad293877_e473fcd9","line":24,"range":{"start_line":24,"start_character":18,"end_line":24,"end_character":34},"in_reply_to":"418bb581_2aad701d","updated":"2021-04-12 21:15:07.000000000","message":"Done","commit_id":"099ef23081b96566b1dd696af8b8c471018f732d"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"4a26708422a5689bef8c19ace54f5e1279cea695","unresolved":false,"context_lines":[{"line_number":34,"context_line":""},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"def convert(out_format, source, dest, memory_limit):"},{"line_number":37,"context_line":"    processutils.execute(\u0027qemu-img\u0027, \u0027convert\u0027, \u0027-O\u0027, out_format, source,"},{"line_number":38,"context_line":"                         dest, prlimit\u003d_qemu_img_limits(memory_limit))"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":""}],"source_content_type":"text/x-python","patch_set":19,"id":"b483741c_6a2f97b7","line":37,"updated":"2021-05-10 11:09:50.000000000","message":"Why not utils.execute?","commit_id":"c2642fe4214e74e368425a5960fc48bc0dec5f0f"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"34acc2c1e56c5ab2bce3a1bff21d9c4e8fb6f192","unresolved":false,"context_lines":[{"line_number":34,"context_line":""},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"def convert(out_format, source, dest, memory_limit):"},{"line_number":37,"context_line":"    processutils.execute(\u0027qemu-img\u0027, \u0027convert\u0027, \u0027-O\u0027, out_format, source,"},{"line_number":38,"context_line":"                         dest, prlimit\u003d_qemu_img_limits(memory_limit))"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":""}],"source_content_type":"text/x-python","patch_set":19,"id":"d6322dd3_ea2d47ba","line":37,"in_reply_to":"b483741c_6a2f97b7","updated":"2021-05-24 11:52:26.000000000","message":"Ops!","commit_id":"c2642fe4214e74e368425a5960fc48bc0dec5f0f"}],"ironic_lib/privsep/utils.py":[{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"db6faf058c5304a939193026f200b0663ccd149a","unresolved":true,"context_lines":[{"line_number":60,"context_line":"    return result"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"def _qemu_img_limits(memory_limit):"},{"line_number":64,"context_line":"    global QEMU_IMG_LIMITS"},{"line_number":65,"context_line":"    if QEMU_IMG_LIMITS is None:"},{"line_number":66,"context_line":"        QEMU_IMG_LIMITS \u003d processutils.ProcessLimits("}],"source_content_type":"text/x-python","patch_set":16,"id":"8956c8a9_8160b958","line":63,"updated":"2021-02-24 13:50:43.000000000","message":"let\u0027s move this to the qemu module as it\u0027s used only there","commit_id":"099ef23081b96566b1dd696af8b8c471018f732d"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"a207fcec08859f09d6534e66fe2d7427f784a23d","unresolved":false,"context_lines":[{"line_number":60,"context_line":"    return result"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"def _qemu_img_limits(memory_limit):"},{"line_number":64,"context_line":"    global QEMU_IMG_LIMITS"},{"line_number":65,"context_line":"    if QEMU_IMG_LIMITS is None:"},{"line_number":66,"context_line":"        QEMU_IMG_LIMITS \u003d processutils.ProcessLimits("}],"source_content_type":"text/x-python","patch_set":16,"id":"797a95b8_a5c0de2c","line":63,"in_reply_to":"8956c8a9_8160b958","updated":"2021-04-12 21:15:07.000000000","message":"Done","commit_id":"099ef23081b96566b1dd696af8b8c471018f732d"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"4a26708422a5689bef8c19ace54f5e1279cea695","unresolved":false,"context_lines":[{"line_number":20,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"def execute(*cmd, **kwargs):"},{"line_number":24,"context_line":"    \"\"\"Convenience wrapper around oslo\u0027s execute() method."},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    Executes and logs results from a system command. See docs for"}],"source_content_type":"text/x-python","patch_set":19,"id":"a3ef1d04_a63a4337","line":23,"updated":"2021-05-10 11:09:50.000000000","message":"Why is it different from ironic_lib.utils.execute?","commit_id":"c2642fe4214e74e368425a5960fc48bc0dec5f0f"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"e688415e841ec912e4aec6755c61dbf5467ca371","unresolved":false,"context_lines":[{"line_number":20,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"def execute(*cmd, **kwargs):"},{"line_number":24,"context_line":"    \"\"\"Convenience wrapper around oslo\u0027s execute() method."},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    Executes and logs results from a system command. See docs for"}],"source_content_type":"text/x-python","patch_set":19,"id":"28df309d_49ca50f6","line":23,"in_reply_to":"8d364d6d_d614b299","updated":"2021-05-24 11:57:07.000000000","message":"Nonetheless, let\u0027s have only one call.","commit_id":"c2642fe4214e74e368425a5960fc48bc0dec5f0f"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"34acc2c1e56c5ab2bce3a1bff21d9c4e8fb6f192","unresolved":false,"context_lines":[{"line_number":20,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"def execute(*cmd, **kwargs):"},{"line_number":24,"context_line":"    \"\"\"Convenience wrapper around oslo\u0027s execute() method."},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    Executes and logs results from a system command. See docs for"}],"source_content_type":"text/x-python","patch_set":19,"id":"8d364d6d_d614b299","line":23,"in_reply_to":"a3ef1d04_a63a4337","updated":"2021-05-24 11:52:26.000000000","message":"I\u0027m creating this one just because we don\u0027t need to worry about running commands as non-privileged user.","commit_id":"c2642fe4214e74e368425a5960fc48bc0dec5f0f"}],"ironic_lib/tests/test_disk_partitioner.py":[{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"2367f301a6fba6bc0775eb7313293fb6cdbd83f8","unresolved":true,"context_lines":[{"line_number":95,"context_line":"            \u0027mkpart\u0027, \u0027fake-type\u0027, \u0027fake-fs-type\u0027, \u00274\u0027, \u00275\u0027,"},{"line_number":96,"context_line":"            \u0027set\u0027, \u00274\u0027, \u0027boot\u0027, \u0027on\u0027, \u0027set\u0027, \u00274\u0027, \u0027prep\u0027, \u0027on\u0027,"},{"line_number":97,"context_line":"            \u0027set\u0027, \u00274\u0027, \u0027fake-flag\u0027, \u0027on\u0027,"},{"line_number":98,"context_line":"            check_exit_code\u003d[0], use_standard_locale\u003dTrue, run_as_root\u003dTrue)"},{"line_number":99,"context_line":"        fuser_exec \u003d mock.call(\u0027fuser\u0027, \u0027/dev/fake\u0027, run_as_root\u003dTrue,"},{"line_number":100,"context_line":"                               check_exit_code\u003d[0, 1])"},{"line_number":101,"context_line":"        self.assertEqual(2, mock_utils_exc.call_count)"}],"source_content_type":"text/x-python","patch_set":16,"id":"61c2d862_a2750d92","line":98,"range":{"start_line":98,"start_character":59,"end_line":98,"end_character":75},"updated":"2021-02-24 13:37:14.000000000","message":"also remove call from tests","commit_id":"099ef23081b96566b1dd696af8b8c471018f732d"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"2367f301a6fba6bc0775eb7313293fb6cdbd83f8","unresolved":true,"context_lines":[{"line_number":95,"context_line":"            \u0027mkpart\u0027, \u0027fake-type\u0027, \u0027fake-fs-type\u0027, \u00274\u0027, \u00275\u0027,"},{"line_number":96,"context_line":"            \u0027set\u0027, \u00274\u0027, \u0027boot\u0027, \u0027on\u0027, \u0027set\u0027, \u00274\u0027, \u0027prep\u0027, \u0027on\u0027,"},{"line_number":97,"context_line":"            \u0027set\u0027, \u00274\u0027, \u0027fake-flag\u0027, \u0027on\u0027,"},{"line_number":98,"context_line":"            check_exit_code\u003d[0], use_standard_locale\u003dTrue, run_as_root\u003dTrue)"},{"line_number":99,"context_line":"        fuser_exec \u003d mock.call(\u0027fuser\u0027, \u0027/dev/fake\u0027, run_as_root\u003dTrue,"},{"line_number":100,"context_line":"                               check_exit_code\u003d[0, 1])"},{"line_number":101,"context_line":"        self.assertEqual(2, mock_utils_exc.call_count)"}],"source_content_type":"text/x-python","patch_set":16,"id":"7f0e8b7d_9f802fe7","line":98,"range":{"start_line":98,"start_character":12,"end_line":98,"end_character":31},"updated":"2021-02-24 13:37:14.000000000","message":"no need of this in the tests also","commit_id":"099ef23081b96566b1dd696af8b8c471018f732d"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"a207fcec08859f09d6534e66fe2d7427f784a23d","unresolved":false,"context_lines":[{"line_number":95,"context_line":"            \u0027mkpart\u0027, \u0027fake-type\u0027, \u0027fake-fs-type\u0027, \u00274\u0027, \u00275\u0027,"},{"line_number":96,"context_line":"            \u0027set\u0027, \u00274\u0027, \u0027boot\u0027, \u0027on\u0027, \u0027set\u0027, \u00274\u0027, \u0027prep\u0027, \u0027on\u0027,"},{"line_number":97,"context_line":"            \u0027set\u0027, \u00274\u0027, \u0027fake-flag\u0027, \u0027on\u0027,"},{"line_number":98,"context_line":"            check_exit_code\u003d[0], use_standard_locale\u003dTrue, run_as_root\u003dTrue)"},{"line_number":99,"context_line":"        fuser_exec \u003d mock.call(\u0027fuser\u0027, \u0027/dev/fake\u0027, run_as_root\u003dTrue,"},{"line_number":100,"context_line":"                               check_exit_code\u003d[0, 1])"},{"line_number":101,"context_line":"        self.assertEqual(2, mock_utils_exc.call_count)"}],"source_content_type":"text/x-python","patch_set":16,"id":"b741ef70_0a110549","line":98,"range":{"start_line":98,"start_character":59,"end_line":98,"end_character":75},"in_reply_to":"61c2d862_a2750d92","updated":"2021-04-12 21:15:07.000000000","message":"Done","commit_id":"099ef23081b96566b1dd696af8b8c471018f732d"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"a207fcec08859f09d6534e66fe2d7427f784a23d","unresolved":false,"context_lines":[{"line_number":95,"context_line":"            \u0027mkpart\u0027, \u0027fake-type\u0027, \u0027fake-fs-type\u0027, \u00274\u0027, \u00275\u0027,"},{"line_number":96,"context_line":"            \u0027set\u0027, \u00274\u0027, \u0027boot\u0027, \u0027on\u0027, \u0027set\u0027, \u00274\u0027, \u0027prep\u0027, \u0027on\u0027,"},{"line_number":97,"context_line":"            \u0027set\u0027, \u00274\u0027, \u0027fake-flag\u0027, \u0027on\u0027,"},{"line_number":98,"context_line":"            check_exit_code\u003d[0], use_standard_locale\u003dTrue, run_as_root\u003dTrue)"},{"line_number":99,"context_line":"        fuser_exec \u003d mock.call(\u0027fuser\u0027, \u0027/dev/fake\u0027, run_as_root\u003dTrue,"},{"line_number":100,"context_line":"                               check_exit_code\u003d[0, 1])"},{"line_number":101,"context_line":"        self.assertEqual(2, mock_utils_exc.call_count)"}],"source_content_type":"text/x-python","patch_set":16,"id":"4118366c_582f58fb","line":98,"range":{"start_line":98,"start_character":12,"end_line":98,"end_character":31},"in_reply_to":"7f0e8b7d_9f802fe7","updated":"2021-04-12 21:15:07.000000000","message":"Done","commit_id":"099ef23081b96566b1dd696af8b8c471018f732d"}],"requirements.txt":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"4a26708422a5689bef8c19ace54f5e1279cea695","unresolved":false,"context_lines":[{"line_number":8,"context_line":"oslo.i18n\u003e\u003d3.15.3 # Apache-2.0"},{"line_number":9,"context_line":"oslo.privsep\u003e\u003d2.4.0 # Apache-2.0"},{"line_number":10,"context_line":"oslo.utils\u003e\u003d3.33.0 # Apache-2.0"},{"line_number":11,"context_line":"cffi\u003e\u003d1.14.0 # MIT"},{"line_number":12,"context_line":"requests\u003e\u003d2.14.2 # Apache-2.0"},{"line_number":13,"context_line":"oslo.log\u003e\u003d3.36.0 # Apache-2.0"},{"line_number":14,"context_line":"zeroconf\u003e\u003d0.24.0 # LGPL"}],"source_content_type":"text/plain","patch_set":19,"id":"dc03dee7_dcd0a096","line":11,"updated":"2021-05-10 11:09:50.000000000","message":"Why do we need this? Doesn\u0027t look like something we should really depend on.","commit_id":"c2642fe4214e74e368425a5960fc48bc0dec5f0f"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"34acc2c1e56c5ab2bce3a1bff21d9c4e8fb6f192","unresolved":false,"context_lines":[{"line_number":8,"context_line":"oslo.i18n\u003e\u003d3.15.3 # Apache-2.0"},{"line_number":9,"context_line":"oslo.privsep\u003e\u003d2.4.0 # Apache-2.0"},{"line_number":10,"context_line":"oslo.utils\u003e\u003d3.33.0 # Apache-2.0"},{"line_number":11,"context_line":"cffi\u003e\u003d1.14.0 # MIT"},{"line_number":12,"context_line":"requests\u003e\u003d2.14.2 # Apache-2.0"},{"line_number":13,"context_line":"oslo.log\u003e\u003d3.36.0 # Apache-2.0"},{"line_number":14,"context_line":"zeroconf\u003e\u003d0.24.0 # LGPL"}],"source_content_type":"text/plain","patch_set":19,"id":"e14a58b6_7cee66db","line":11,"in_reply_to":"dc03dee7_dcd0a096","updated":"2021-05-24 11:52:26.000000000","message":"I will double check, I think requirements job was complaining.","commit_id":"c2642fe4214e74e368425a5960fc48bc0dec5f0f"}],"zuul.d/ironic-lib-jobs.yaml":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"4a26708422a5689bef8c19ace54f5e1279cea695","unresolved":false,"context_lines":[{"line_number":19,"context_line":"        BUILD_TIMEOUT: 900"},{"line_number":20,"context_line":"        IRONIC_BUILD_DEPLOY_RAMDISK: True"},{"line_number":21,"context_line":"        IRONIC_TEMPEST_BUILD_TIMEOUT: 900"},{"line_number":22,"context_line":"        PYOPTIMIZE_TINYIPA: False"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"- job:"},{"line_number":25,"context_line":"    name: ironic-lib-wholedisk-bios-ipmi-direct-src"}],"source_content_type":"text/x-yaml","patch_set":19,"id":"940c4c01_c7324a0d","line":22,"updated":"2021-05-10 11:09:50.000000000","message":"This looks like we\u0027re breaking tinyIPA really. This change affects only this job, what will happen to other jobs when this merges?","commit_id":"c2642fe4214e74e368425a5960fc48bc0dec5f0f"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"99a65f8619aa92f2169b1013be12e960c3782567","unresolved":true,"context_lines":[{"line_number":19,"context_line":"        BUILD_TIMEOUT: 900"},{"line_number":20,"context_line":"        IRONIC_BUILD_DEPLOY_RAMDISK: True"},{"line_number":21,"context_line":"        IRONIC_TEMPEST_BUILD_TIMEOUT: 900"},{"line_number":22,"context_line":"        PYOPTIMIZE_TINYIPA: False"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"- job:"},{"line_number":25,"context_line":"    name: ironic-lib-wholedisk-bios-ipmi-direct-src"}],"source_content_type":"text/x-yaml","patch_set":19,"id":"fba0b3e8_313478c8","line":22,"in_reply_to":"940c4c01_c7324a0d","updated":"2021-05-11 14:08:36.000000000","message":"FYI PYOPTIMIZE_TINYIPA is False by default\nhttps://opendev.org/openstack/ironic-python-agent-builder/src/branch/master/tinyipa/finalise-tinyipa.sh#L14\nbecause of issues with privsep","commit_id":"c2642fe4214e74e368425a5960fc48bc0dec5f0f"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"34acc2c1e56c5ab2bce3a1bff21d9c4e8fb6f192","unresolved":false,"context_lines":[{"line_number":19,"context_line":"        BUILD_TIMEOUT: 900"},{"line_number":20,"context_line":"        IRONIC_BUILD_DEPLOY_RAMDISK: True"},{"line_number":21,"context_line":"        IRONIC_TEMPEST_BUILD_TIMEOUT: 900"},{"line_number":22,"context_line":"        PYOPTIMIZE_TINYIPA: False"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"- job:"},{"line_number":25,"context_line":"    name: ironic-lib-wholedisk-bios-ipmi-direct-src"}],"source_content_type":"text/x-yaml","patch_set":19,"id":"274daa3c_25a6ab15","line":22,"in_reply_to":"fba0b3e8_313478c8","updated":"2021-05-24 11:52:26.000000000","message":"Yeah we had to add this option because it was breaking the privsep change\nhttps://opendev.org/openstack/ironic-python-agent-builder/commit/c66244ff555f9a364dc344073051861bbe74dc02\nI think I can just remove the variable now ( I added for testing )","commit_id":"c2642fe4214e74e368425a5960fc48bc0dec5f0f"}]}
