)]}'
{"nova/privsep/fs.py":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"a001dfd082ca4f579f3b8b970652cf26867cf8d1","unresolved":false,"context_lines":[{"line_number":232,"context_line":"# to load that configuration at startup."},{"line_number":233,"context_line":""},{"line_number":234,"context_line":"# NOTE(mikal): I really feel like this whole thing should be deprecated, I"},{"line_number":235,"context_line":"# just don\u0027t think its a great idea to let people specify a command in a flag"},{"line_number":236,"context_line":"# to run a root."},{"line_number":237,"context_line":""},{"line_number":238,"context_line":"_MKFS_COMMAND \u003d {}"},{"line_number":239,"context_line":"_DEFAULT_MKFS_COMMAND \u003d None"}],"source_content_type":"text/x-python","patch_set":5,"id":"df7087c5_1ef044c9","line":236,"range":{"start_line":235,"start_character":71,"end_line":236,"end_character":15},"updated":"2018-03-20 20:29:04.000000000","message":"?\n\n...a conf option to run as root.  ?","commit_id":"3fb544880ef5a560ca8a60228ef27221ee5b18a7"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"3ab8ff07e1d47d306569e37e107454adb46f9fce","unresolved":false,"context_lines":[{"line_number":232,"context_line":"# to load that configuration at startup."},{"line_number":233,"context_line":""},{"line_number":234,"context_line":"# NOTE(mikal): I really feel like this whole thing should be deprecated, I"},{"line_number":235,"context_line":"# just don\u0027t think its a great idea to let people specify a command in a flag"},{"line_number":236,"context_line":"# to run a root."},{"line_number":237,"context_line":""},{"line_number":238,"context_line":"_MKFS_COMMAND \u003d {}"},{"line_number":239,"context_line":"_DEFAULT_MKFS_COMMAND \u003d None"}],"source_content_type":"text/x-python","patch_set":5,"id":"bf659307_e2cb5e6f","line":236,"range":{"start_line":235,"start_character":71,"end_line":236,"end_character":15},"in_reply_to":"df7087c5_1ef044c9","updated":"2018-03-27 22:57:25.000000000","message":"Done","commit_id":"3fb544880ef5a560ca8a60228ef27221ee5b18a7"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"a001dfd082ca4f579f3b8b970652cf26867cf8d1","unresolved":false,"context_lines":[{"line_number":343,"context_line":"                      default_ephemeral_format, specified_fs\u003dNone):"},{"line_number":344,"context_line":"    # Format a file or block device using a user provided command for each"},{"line_number":345,"context_line":"    # os type. If user has not provided any configuration, format type will"},{"line_number":346,"context_line":"    # be used according to a default_ephemeral_format configuration or a"},{"line_number":347,"context_line":"    # system defaults."},{"line_number":348,"context_line":"    global _MKFS_COMMAND"},{"line_number":349,"context_line":"    global _DEFAULT_MKFS_COMMAND"},{"line_number":350,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"df7087c5_5e76bcda","line":347,"range":{"start_line":346,"start_character":71,"end_line":347,"end_character":21},"updated":"2018-03-20 20:29:04.000000000","message":"\"a system default\" or \"system defaults\"","commit_id":"3fb544880ef5a560ca8a60228ef27221ee5b18a7"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"3ab8ff07e1d47d306569e37e107454adb46f9fce","unresolved":false,"context_lines":[{"line_number":343,"context_line":"                      default_ephemeral_format, specified_fs\u003dNone):"},{"line_number":344,"context_line":"    # Format a file or block device using a user provided command for each"},{"line_number":345,"context_line":"    # os type. If user has not provided any configuration, format type will"},{"line_number":346,"context_line":"    # be used according to a default_ephemeral_format configuration or a"},{"line_number":347,"context_line":"    # system defaults."},{"line_number":348,"context_line":"    global _MKFS_COMMAND"},{"line_number":349,"context_line":"    global _DEFAULT_MKFS_COMMAND"},{"line_number":350,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"bf659307_a2c5665d","line":347,"range":{"start_line":346,"start_character":71,"end_line":347,"end_character":21},"in_reply_to":"df7087c5_5e76bcda","updated":"2018-03-27 22:57:25.000000000","message":"This is cut and pasted from the previous code, but sure.","commit_id":"3fb544880ef5a560ca8a60228ef27221ee5b18a7"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"a001dfd082ca4f579f3b8b970652cf26867cf8d1","unresolved":false,"context_lines":[{"line_number":357,"context_line":"            processutils.execute(*mkfs_command.split())"},{"line_number":358,"context_line":""},{"line_number":359,"context_line":"    else:"},{"line_number":360,"context_line":"        if not specified_fs:"},{"line_number":361,"context_line":"            specified_fs \u003d default_ephemeral_format"},{"line_number":362,"context_line":"            if not specified_fs:"},{"line_number":363,"context_line":"                specified_fs \u003d _DEFAULT_FS_BY_OSTYPE.get(os_type,"},{"line_number":364,"context_line":"                                                         _DEFAULT_FILE_SYSTEM)"},{"line_number":365,"context_line":""},{"line_number":366,"context_line":"        if run_as_root:"},{"line_number":367,"context_line":"            mkfs(specified_fs, target, fs_label)"}],"source_content_type":"text/x-python","patch_set":5,"id":"df7087c5_fe65501e","line":364,"range":{"start_line":360,"start_character":0,"end_line":364,"end_character":78},"updated":"2018-03-20 20:29:04.000000000","message":"This is convoluted enough to be worth splitting into a common private helper method, since it\u0027s used twice.","commit_id":"3fb544880ef5a560ca8a60228ef27221ee5b18a7"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"57ff6d74e883625f769aca4b00d4adabf66a38e9","unresolved":false,"context_lines":[{"line_number":357,"context_line":"            processutils.execute(*mkfs_command.split())"},{"line_number":358,"context_line":""},{"line_number":359,"context_line":"    else:"},{"line_number":360,"context_line":"        if not specified_fs:"},{"line_number":361,"context_line":"            specified_fs \u003d default_ephemeral_format"},{"line_number":362,"context_line":"            if not specified_fs:"},{"line_number":363,"context_line":"                specified_fs \u003d _DEFAULT_FS_BY_OSTYPE.get(os_type,"},{"line_number":364,"context_line":"                                                         _DEFAULT_FILE_SYSTEM)"},{"line_number":365,"context_line":""},{"line_number":366,"context_line":"        if run_as_root:"},{"line_number":367,"context_line":"            mkfs(specified_fs, target, fs_label)"}],"source_content_type":"text/x-python","patch_set":5,"id":"bf659307_fdf0cd69","line":364,"range":{"start_line":360,"start_character":0,"end_line":364,"end_character":78},"in_reply_to":"bf659307_62a50eb5","updated":"2018-03-28 12:55:07.000000000","message":"Okay, fair enough","commit_id":"3fb544880ef5a560ca8a60228ef27221ee5b18a7"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"3ab8ff07e1d47d306569e37e107454adb46f9fce","unresolved":false,"context_lines":[{"line_number":357,"context_line":"            processutils.execute(*mkfs_command.split())"},{"line_number":358,"context_line":""},{"line_number":359,"context_line":"    else:"},{"line_number":360,"context_line":"        if not specified_fs:"},{"line_number":361,"context_line":"            specified_fs \u003d default_ephemeral_format"},{"line_number":362,"context_line":"            if not specified_fs:"},{"line_number":363,"context_line":"                specified_fs \u003d _DEFAULT_FS_BY_OSTYPE.get(os_type,"},{"line_number":364,"context_line":"                                                         _DEFAULT_FILE_SYSTEM)"},{"line_number":365,"context_line":""},{"line_number":366,"context_line":"        if run_as_root:"},{"line_number":367,"context_line":"            mkfs(specified_fs, target, fs_label)"}],"source_content_type":"text/x-python","patch_set":5,"id":"bf659307_62a50eb5","line":364,"range":{"start_line":360,"start_character":0,"end_line":364,"end_character":78},"in_reply_to":"df7087c5_fe65501e","updated":"2018-03-27 22:57:25.000000000","message":"This is a cut and paste from the previous implementation. We have previously avoided refactors as part of the transition to reduce the risk of introducing bugs. If we want to simplify this code, I\u0027d rather see that happen in a separate later patch.","commit_id":"3fb544880ef5a560ca8a60228ef27221ee5b18a7"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"8be41d52f23429eb90428b388ea7505f8531ffd0","unresolved":false,"context_lines":[{"line_number":233,"context_line":""},{"line_number":234,"context_line":"# NOTE(mikal): I really feel like this whole thing should be deprecated, I"},{"line_number":235,"context_line":"# just don\u0027t think its a great idea to let people specify a command in a flag"},{"line_number":236,"context_line":"# to run a root."},{"line_number":237,"context_line":""},{"line_number":238,"context_line":"_MKFS_COMMAND \u003d {}"},{"line_number":239,"context_line":"_DEFAULT_MKFS_COMMAND \u003d None"}],"source_content_type":"text/x-python","patch_set":6,"id":"df7087c5_a26249ac","line":236,"range":{"start_line":236,"start_character":9,"end_line":236,"end_character":10},"updated":"2018-03-29 14:48:09.000000000","message":"as","commit_id":"294dfc7d94e4347f731b1390400940ac0a64d264"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"57ff6d74e883625f769aca4b00d4adabf66a38e9","unresolved":false,"context_lines":[{"line_number":233,"context_line":""},{"line_number":234,"context_line":"# NOTE(mikal): I really feel like this whole thing should be deprecated, I"},{"line_number":235,"context_line":"# just don\u0027t think its a great idea to let people specify a command in a"},{"line_number":236,"context_line":"# configuration option to run a root."},{"line_number":237,"context_line":""},{"line_number":238,"context_line":"_MKFS_COMMAND \u003d {}"},{"line_number":239,"context_line":"_DEFAULT_MKFS_COMMAND \u003d None"}],"source_content_type":"text/x-python","patch_set":7,"id":"bf659307_3de5e5a8","line":236,"range":{"start_line":236,"start_character":30,"end_line":236,"end_character":31},"updated":"2018-03-28 12:55:07.000000000","message":"as","commit_id":"c5922e41e9f913dfb2e82c626de958b63f3c3cee"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"8be41d52f23429eb90428b388ea7505f8531ffd0","unresolved":false,"context_lines":[{"line_number":255,"context_line":"                         \u0027windows\u0027: FS_FORMAT_NTFS}"},{"line_number":256,"context_line":""},{"line_number":257,"context_line":""},{"line_number":258,"context_line":"def load_mkfs_command(os_type, command):"},{"line_number":259,"context_line":"    global _MKFS_COMMAND"},{"line_number":260,"context_line":"    global _DEFAULT_MKFS_COMMAND"},{"line_number":261,"context_line":""},{"line_number":262,"context_line":"    _MKFS_COMMAND[os_type] \u003d command"},{"line_number":263,"context_line":"    if os_type \u003d\u003d \u0027default\u0027:"},{"line_number":264,"context_line":"        _DEFAULT_MKFS_COMMAND \u003d command"},{"line_number":265,"context_line":""},{"line_number":266,"context_line":""},{"line_number":267,"context_line":"def get_fs_type_for_os_type(os_type):"}],"source_content_type":"text/x-python","patch_set":7,"id":"bf659307_cf9c0f10","line":264,"range":{"start_line":258,"start_character":0,"end_line":264,"end_character":39},"updated":"2018-03-29 14:48:09.000000000","message":"Oh, lovely :/","commit_id":"c5922e41e9f913dfb2e82c626de958b63f3c3cee"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"8be41d52f23429eb90428b388ea7505f8531ffd0","unresolved":false,"context_lines":[{"line_number":339,"context_line":""},{"line_number":340,"context_line":""},{"line_number":341,"context_line":"# NOTE(mikal): this method is deliberately not wrapped in a privsep entrypoint"},{"line_number":342,"context_line":"def configurable_mkfs(os_type, fs_label, target, run_as_root,"},{"line_number":343,"context_line":"                      default_ephemeral_format, specified_fs\u003dNone):"},{"line_number":344,"context_line":"    # Format a file or block device using a user provided command for each"},{"line_number":345,"context_line":"    # os type. If user has not provided any configuration, format type will"}],"source_content_type":"text/x-python","patch_set":7,"id":"bf659307_4f7ebfaf","line":342,"range":{"start_line":342,"start_character":49,"end_line":342,"end_character":60},"updated":"2018-03-29 14:48:09.000000000","message":"How come there isn\u0027t an \u0027unprivileged_configurable_mkfs\u0027 function here? That seemed to be the pattern you were using elsewhere","commit_id":"c5922e41e9f913dfb2e82c626de958b63f3c3cee"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"920a5774511845cd62ddf61564f511c2a075c115","unresolved":false,"context_lines":[{"line_number":339,"context_line":""},{"line_number":340,"context_line":""},{"line_number":341,"context_line":"# NOTE(mikal): this method is deliberately not wrapped in a privsep entrypoint"},{"line_number":342,"context_line":"def configurable_mkfs(os_type, fs_label, target, run_as_root,"},{"line_number":343,"context_line":"                      default_ephemeral_format, specified_fs\u003dNone):"},{"line_number":344,"context_line":"    # Format a file or block device using a user provided command for each"},{"line_number":345,"context_line":"    # os type. If user has not provided any configuration, format type will"}],"source_content_type":"text/x-python","patch_set":7,"id":"bf659307_67a2c0b0","line":342,"range":{"start_line":342,"start_character":49,"end_line":342,"end_character":60},"in_reply_to":"bf659307_4f7ebfaf","updated":"2018-03-29 21:12:54.000000000","message":"I only create those if there is a caller. If the only caller is one who wants root privs, you only get one method. It seems neater this way.","commit_id":"c5922e41e9f913dfb2e82c626de958b63f3c3cee"}],"nova/virt/disk/api.py":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"a001dfd082ca4f579f3b8b970652cf26867cf8d1","unresolved":false,"context_lines":[{"line_number":60,"context_line":"    #                 So item.partition(\u0027\u003d\u0027) doesn\u0027t work here"},{"line_number":61,"context_line":"    os_type, mkfs_command \u003d s.split(\u0027\u003d\u0027, 1)"},{"line_number":62,"context_line":"    if os_type:"},{"line_number":63,"context_line":"        nova.privsep.fs.load_mkfs_command(os_type, mkfs_command)"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"def mkfs(os_type, fs_label, target, run_as_root\u003dTrue, specified_fs\u003dNone):"}],"source_content_type":"text/x-python","patch_set":5,"id":"df7087c5_39176248","line":63,"range":{"start_line":63,"start_character":0,"end_line":63,"end_character":64},"updated":"2018-03-20 20:29:04.000000000","message":"Yup, this is freakin crazy.","commit_id":"3fb544880ef5a560ca8a60228ef27221ee5b18a7"}],"nova/virt/libvirt/driver.py":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"a001dfd082ca4f579f3b8b970652cf26867cf8d1","unresolved":false,"context_lines":[{"line_number":3474,"context_line":"        # Generate a file extension based on the file system"},{"line_number":3475,"context_line":"        # type and the mkfs commands configured if any"},{"line_number":3476,"context_line":"        file_extension \u003d nova.privsep.fs.get_file_extension_for_os_type("},{"line_number":3477,"context_line":"            os_type_with_default, CONF.default_ephemeral_format)"},{"line_number":3478,"context_line":""},{"line_number":3479,"context_line":"        vm_mode \u003d fields.VMMode.get_from_instance(instance)"},{"line_number":3480,"context_line":"        ephemeral_gb \u003d instance.flavor.ephemeral_gb"}],"source_content_type":"text/x-python","patch_set":5,"id":"df7087c5_593b36d0","line":3477,"range":{"start_line":3477,"start_character":33,"end_line":3477,"end_character":63},"updated":"2018-03-20 20:29:04.000000000","message":"name kwargs","commit_id":"3fb544880ef5a560ca8a60228ef27221ee5b18a7"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"57ff6d74e883625f769aca4b00d4adabf66a38e9","unresolved":false,"context_lines":[{"line_number":3474,"context_line":"        # Generate a file extension based on the file system"},{"line_number":3475,"context_line":"        # type and the mkfs commands configured if any"},{"line_number":3476,"context_line":"        file_extension \u003d nova.privsep.fs.get_file_extension_for_os_type("},{"line_number":3477,"context_line":"            os_type_with_default, CONF.default_ephemeral_format)"},{"line_number":3478,"context_line":""},{"line_number":3479,"context_line":"        vm_mode \u003d fields.VMMode.get_from_instance(instance)"},{"line_number":3480,"context_line":"        ephemeral_gb \u003d instance.flavor.ephemeral_gb"}],"source_content_type":"text/x-python","patch_set":5,"id":"bf659307_fd952de5","line":3477,"range":{"start_line":3477,"start_character":33,"end_line":3477,"end_character":63},"in_reply_to":"bf659307_82adc289","updated":"2018-03-28 12:55:07.000000000","message":"Oh, yeah, my bad.","commit_id":"3fb544880ef5a560ca8a60228ef27221ee5b18a7"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"3ab8ff07e1d47d306569e37e107454adb46f9fce","unresolved":false,"context_lines":[{"line_number":3474,"context_line":"        # Generate a file extension based on the file system"},{"line_number":3475,"context_line":"        # type and the mkfs commands configured if any"},{"line_number":3476,"context_line":"        file_extension \u003d nova.privsep.fs.get_file_extension_for_os_type("},{"line_number":3477,"context_line":"            os_type_with_default, CONF.default_ephemeral_format)"},{"line_number":3478,"context_line":""},{"line_number":3479,"context_line":"        vm_mode \u003d fields.VMMode.get_from_instance(instance)"},{"line_number":3480,"context_line":"        ephemeral_gb \u003d instance.flavor.ephemeral_gb"}],"source_content_type":"text/x-python","patch_set":5,"id":"bf659307_82adc289","line":3477,"range":{"start_line":3477,"start_character":33,"end_line":3477,"end_character":63},"in_reply_to":"df7087c5_593b36d0","updated":"2018-03-27 22:57:25.000000000","message":"CONF.default_ephemeral_args does not fill a kwarg though, its the second compulsory arg in this method.","commit_id":"3fb544880ef5a560ca8a60228ef27221ee5b18a7"}]}
