)]}'
{"ironic/common/pxe_utils.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":"1ad6a58394167f9fb36590d1c580f8dcbc59510b","unresolved":true,"context_lines":[{"line_number":156,"context_line":""},{"line_number":157,"context_line":"def _get_pxe_grub_mac_path(mac, ipxe_enabled\u003dFalse):"},{"line_number":158,"context_line":"    root_dir \u003d get_ipxe_root_dir() if ipxe_enabled else get_root_dir()"},{"line_number":159,"context_line":"    return os.path.join(root_dir, mac + \u0027.conf\u0027)"},{"line_number":160,"context_line":""},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"def _get_pxe_mac_path(mac, delimiter\u003d\u0027-\u0027, client_id\u003dNone,"}],"source_content_type":"text/x-python","patch_set":2,"id":"f78c9da6_b8ab61b0","side":"PARENT","line":159,"updated":"2021-03-16 15:21:41.000000000","message":"So, unfortunately I think we need to support multiple forms of grub2. The behavior is different in older versions, as you can see in CI the grub2 job fails, this in in part due to fragmentation and the delayed pipeline for grub patches to make it into distributions. The change which your attempting to align to was only made approximately 14 months ago, and we need to anticipate people running versions released up to a couple years ago. In fact, it *looks* like this is only going in as 2.05 or 2.06-rc1 2.04 being the version largely still being shipped.","commit_id":"f152ad370df8bf16e6d4d9ccab8be9a258dc57cf"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"18c67a89d3fc1082226913380f9b78440ef2dc45","unresolved":true,"context_lines":[{"line_number":156,"context_line":""},{"line_number":157,"context_line":"def _get_pxe_grub_mac_path(mac, ipxe_enabled\u003dFalse):"},{"line_number":158,"context_line":"    root_dir \u003d get_ipxe_root_dir() if ipxe_enabled else get_root_dir()"},{"line_number":159,"context_line":"    return os.path.join(root_dir, mac + \u0027.conf\u0027)"},{"line_number":160,"context_line":""},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"def _get_pxe_mac_path(mac, delimiter\u003d\u0027-\u0027, client_id\u003dNone,"}],"source_content_type":"text/x-python","patch_set":2,"id":"ff2deb64_ddedb0aa","side":"PARENT","line":159,"in_reply_to":"92bc9eb8_fe2761ee","updated":"2021-03-22 17:13:51.000000000","message":"So CI should be using grub2, it is just a revision of grub2 that is where the change occured. Vendors have also forked grub, so it may be a while before some of the behavior is accepted in things like ubuntu.\n\nI would only unit test and regardless generate both files moving forward. We can remove the second file generation once we no longer support any distributions still shipping grub 2.04","commit_id":"f152ad370df8bf16e6d4d9ccab8be9a258dc57cf"},{"author":{"_account_id":26580,"name":"liuzhuangzhuang","email":"vpbvmw651078@gmail.com","username":"LiuZhuangzhuang"},"change_message_id":"9e6a2bbe8fa3f4a926e603265995cc5f1c7f18cb","unresolved":true,"context_lines":[{"line_number":156,"context_line":""},{"line_number":157,"context_line":"def _get_pxe_grub_mac_path(mac, ipxe_enabled\u003dFalse):"},{"line_number":158,"context_line":"    root_dir \u003d get_ipxe_root_dir() if ipxe_enabled else get_root_dir()"},{"line_number":159,"context_line":"    return os.path.join(root_dir, mac + \u0027.conf\u0027)"},{"line_number":160,"context_line":""},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"def _get_pxe_mac_path(mac, delimiter\u003d\u0027-\u0027, client_id\u003dNone,"}],"source_content_type":"text/x-python","patch_set":2,"id":"92bc9eb8_fe2761ee","side":"PARENT","line":159,"in_reply_to":"f78c9da6_b8ab61b0","updated":"2021-03-17 11:34:50.000000000","message":"I found that the grub2 job failed, as you said, because there is no related patches in the grub2 used by CI.\nThere are two questions and I\u0027m not sure how to solve it:\n1. How to get the grub version (1 or 2) in the code?\n2. If we obtained the grub version is 2, how to judge whether it includes these patches?\nAlthough the above problems can\u0027t be handled directly, but as you mentioned above, can we generate two configuration files (grub.cfg-01-MAC and MAC.conf) at the same time to indirectly solve the above two problems.","commit_id":"f152ad370df8bf16e6d4d9ccab8be9a258dc57cf"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"1ad6a58394167f9fb36590d1c580f8dcbc59510b","unresolved":true,"context_lines":[{"line_number":160,"context_line":"    root_dir \u003d get_ipxe_root_dir() if ipxe_enabled else get_root_dir()"},{"line_number":161,"context_line":"    is_uefi_boot_mode \u003d ("},{"line_number":162,"context_line":"        boot_mode_utils.get_boot_mode_for_deploy(node) \u003d\u003d \u0027uefi\u0027)"},{"line_number":163,"context_line":"    if is_uefi_boot_mode:"},{"line_number":164,"context_line":"        mac_file_name \u003d mac.replace(\u0027:\u0027, \"-\").lower()"},{"line_number":165,"context_line":"        hw_type \u003d \u002701-\u0027"},{"line_number":166,"context_line":"        if client_id:"}],"source_content_type":"text/x-python","patch_set":2,"id":"fc3110f1_6bb435d0","line":163,"range":{"start_line":163,"start_character":0,"end_line":163,"end_character":25},"updated":"2021-03-16 15:21:41.000000000","message":"It doesn\u0027t look like it is *just* uefi mode. https://github.com/rhboot/grub2/commit/cb2f15c544895e1f3d540dd39d36c4611bdf5b7b","commit_id":"8d95af16db5693b2801b2dcd2a8f6bc286dc18cd"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"1ad6a58394167f9fb36590d1c580f8dcbc59510b","unresolved":true,"context_lines":[{"line_number":164,"context_line":"        mac_file_name \u003d mac.replace(\u0027:\u0027, \"-\").lower()"},{"line_number":165,"context_line":"        hw_type \u003d \u002701-\u0027"},{"line_number":166,"context_line":"        if client_id:"},{"line_number":167,"context_line":"            hw_type \u003d \u002720-\u0027"},{"line_number":168,"context_line":"        mac_file_name \u003d hw_type + mac_file_name"},{"line_number":169,"context_line":"        return os.path.join(root_dir,"},{"line_number":170,"context_line":"                            \"%s-%s\" % (\"grub.cfg\", mac_file_name))"}],"source_content_type":"text/x-python","patch_set":2,"id":"1c30024e_11b04c92","line":167,"updated":"2021-03-16 15:21:41.000000000","message":"fwiw, I\u0027m not sure, at least glancing at the grub code, that it even knows about anything beyond 01- for ethernet.","commit_id":"8d95af16db5693b2801b2dcd2a8f6bc286dc18cd"},{"author":{"_account_id":26580,"name":"liuzhuangzhuang","email":"vpbvmw651078@gmail.com","username":"LiuZhuangzhuang"},"change_message_id":"9e6a2bbe8fa3f4a926e603265995cc5f1c7f18cb","unresolved":true,"context_lines":[{"line_number":164,"context_line":"        mac_file_name \u003d mac.replace(\u0027:\u0027, \"-\").lower()"},{"line_number":165,"context_line":"        hw_type \u003d \u002701-\u0027"},{"line_number":166,"context_line":"        if client_id:"},{"line_number":167,"context_line":"            hw_type \u003d \u002720-\u0027"},{"line_number":168,"context_line":"        mac_file_name \u003d hw_type + mac_file_name"},{"line_number":169,"context_line":"        return os.path.join(root_dir,"},{"line_number":170,"context_line":"                            \"%s-%s\" % (\"grub.cfg\", mac_file_name))"}],"source_content_type":"text/x-python","patch_set":2,"id":"4dcd983d_5b3153e1","line":167,"in_reply_to":"1c30024e_11b04c92","updated":"2021-03-17 11:34:50.000000000","message":"I did not find the relevant basis, and then I will remove the code about client_id.","commit_id":"8d95af16db5693b2801b2dcd2a8f6bc286dc18cd"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"18c67a89d3fc1082226913380f9b78440ef2dc45","unresolved":true,"context_lines":[{"line_number":164,"context_line":"        mac_file_name \u003d mac.replace(\u0027:\u0027, \"-\").lower()"},{"line_number":165,"context_line":"        hw_type \u003d \u002701-\u0027"},{"line_number":166,"context_line":"        if client_id:"},{"line_number":167,"context_line":"            hw_type \u003d \u002720-\u0027"},{"line_number":168,"context_line":"        mac_file_name \u003d hw_type + mac_file_name"},{"line_number":169,"context_line":"        return os.path.join(root_dir,"},{"line_number":170,"context_line":"                            \"%s-%s\" % (\"grub.cfg\", mac_file_name))"}],"source_content_type":"text/x-python","patch_set":2,"id":"16c66041_cc0bfee4","line":167,"in_reply_to":"4dcd983d_5b3153e1","updated":"2021-03-22 17:13:51.000000000","message":"I *suspect* they looked at what pxelinux does and mirrored it, to be honest. 😊","commit_id":"8d95af16db5693b2801b2dcd2a8f6bc286dc18cd"},{"author":{"_account_id":4571,"name":"Steve Baker","email":"sbaker@redhat.com","username":"steve-stevebaker"},"change_message_id":"68d27c389e1558b1213c80c167aafff5455d69ca","unresolved":true,"context_lines":[{"line_number":159,"context_line":"    root_dir \u003d get_ipxe_root_dir() if ipxe_enabled else get_root_dir()"},{"line_number":160,"context_line":"    return [os.path.join(root_dir,"},{"line_number":161,"context_line":"            \"%s-%s-%s\" % (\"grub.cfg\", \"01\", mac.replace(\u0027:\u0027, \"-\").lower())),"},{"line_number":162,"context_line":"            os.path.join(root_dir, mac + \u0027.conf\u0027)]"},{"line_number":163,"context_line":""},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"def _get_pxe_mac_path(mac, delimiter\u003d\u0027-\u0027, client_id\u003dNone,"}],"source_content_type":"text/x-python","patch_set":4,"id":"4ada798b_9eea31cf","line":162,"updated":"2021-03-26 01:04:29.000000000","message":"You could just make _get_pxe_grub_mac_path a generator function, so instead of the return statement returning a real list you can do:\n\n    yield root_dir\n    yield \"%s-%s-%s\" % (\"grub.cfg\", \"01\", mac.replace(\u0027:\u0027, \"-\").lower()))\n    yield os.path.join(root_dir, mac + \u0027.conf\u0027)","commit_id":"4a2e238d4876d0a53b4c25160a80673acf0fbdf6"},{"author":{"_account_id":26580,"name":"liuzhuangzhuang","email":"vpbvmw651078@gmail.com","username":"LiuZhuangzhuang"},"change_message_id":"f989799973dcb503864a013fff0e31427268104a","unresolved":false,"context_lines":[{"line_number":159,"context_line":"    root_dir \u003d get_ipxe_root_dir() if ipxe_enabled else get_root_dir()"},{"line_number":160,"context_line":"    return [os.path.join(root_dir,"},{"line_number":161,"context_line":"            \"%s-%s-%s\" % (\"grub.cfg\", \"01\", mac.replace(\u0027:\u0027, \"-\").lower())),"},{"line_number":162,"context_line":"            os.path.join(root_dir, mac + \u0027.conf\u0027)]"},{"line_number":163,"context_line":""},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"def _get_pxe_mac_path(mac, delimiter\u003d\u0027-\u0027, client_id\u003dNone,"}],"source_content_type":"text/x-python","patch_set":4,"id":"8d3961e3_0e735700","line":162,"in_reply_to":"4ada798b_9eea31cf","updated":"2021-03-26 03:42:44.000000000","message":"Done. Thanks for your advice.","commit_id":"4a2e238d4876d0a53b4c25160a80673acf0fbdf6"}],"ironic/tests/unit/common/test_pxe_utils.py":[{"author":{"_account_id":4571,"name":"Steve Baker","email":"sbaker@redhat.com","username":"steve-stevebaker"},"change_message_id":"b9020b164708d2a7618745c3a5c42280f824d197","unresolved":true,"context_lines":[{"line_number":946,"context_line":"            task.node.properties \u003d properties"},{"line_number":947,"context_line":"            path \u003d pxe_utils._get_pxe_grub_mac_path(address, task.node)"},{"line_number":948,"context_line":"            self.assertEqual(path, \u0027/tftpboot-path/grub.cfg-01-%s\u0027 %"},{"line_number":949,"context_line":"                             address.replace(\u0027:\u0027, \u0027-\u0027))"},{"line_number":950,"context_line":""},{"line_number":951,"context_line":"    def test_get_pxe_grub_mac_path(self):"},{"line_number":952,"context_line":"        self.config(tftp_root\u003d\u0027/tftpboot-path/\u0027, group\u003d\u0027pxe\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3cc6065d_cab7f4ea","line":949,"updated":"2021-03-16 02:20:45.000000000","message":"The argument order for assertEqual is (expected, actual). Can you swap these around? Also can the expected value be a plain string of the actual value? (no substitutions)","commit_id":"62dd20b427ec50279b14bf615eec24c4bfc2504d"},{"author":{"_account_id":26580,"name":"liuzhuangzhuang","email":"vpbvmw651078@gmail.com","username":"LiuZhuangzhuang"},"change_message_id":"b213fab8d5090ede433727989d2988136766b72e","unresolved":true,"context_lines":[{"line_number":946,"context_line":"            task.node.properties \u003d properties"},{"line_number":947,"context_line":"            path \u003d pxe_utils._get_pxe_grub_mac_path(address, task.node)"},{"line_number":948,"context_line":"            self.assertEqual(path, \u0027/tftpboot-path/grub.cfg-01-%s\u0027 %"},{"line_number":949,"context_line":"                             address.replace(\u0027:\u0027, \u0027-\u0027))"},{"line_number":950,"context_line":""},{"line_number":951,"context_line":"    def test_get_pxe_grub_mac_path(self):"},{"line_number":952,"context_line":"        self.config(tftp_root\u003d\u0027/tftpboot-path/\u0027, group\u003d\u0027pxe\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f16d853_e571c306","line":949,"in_reply_to":"3cc6065d_cab7f4ea","updated":"2021-03-16 09:14:40.000000000","message":"Done","commit_id":"62dd20b427ec50279b14bf615eec24c4bfc2504d"},{"author":{"_account_id":4571,"name":"Steve Baker","email":"sbaker@redhat.com","username":"steve-stevebaker"},"change_message_id":"b9020b164708d2a7618745c3a5c42280f824d197","unresolved":true,"context_lines":[{"line_number":953,"context_line":"        address \u003d \"aa:aa:aa:aa:aa:aa\""},{"line_number":954,"context_line":"        with task_manager.acquire(self.context, self.node.uuid) as task:"},{"line_number":955,"context_line":"            path \u003d pxe_utils._get_pxe_grub_mac_path(address, task.node)"},{"line_number":956,"context_line":"            self.assertEqual(path, \u0027/tftpboot-path/%s.conf\u0027 % address)"},{"line_number":957,"context_line":""},{"line_number":958,"context_line":""},{"line_number":959,"context_line":"@mock.patch.object(ipxe.iPXEBoot, \u0027__init__\u0027, lambda self: None)"}],"source_content_type":"text/x-python","patch_set":1,"id":"53d09e2a_2a2219f6","line":956,"updated":"2021-03-16 02:20:45.000000000","message":"Same as the above comment. Also there needs to be a test for having a client_id as an argument","commit_id":"62dd20b427ec50279b14bf615eec24c4bfc2504d"},{"author":{"_account_id":26580,"name":"liuzhuangzhuang","email":"vpbvmw651078@gmail.com","username":"LiuZhuangzhuang"},"change_message_id":"b213fab8d5090ede433727989d2988136766b72e","unresolved":true,"context_lines":[{"line_number":953,"context_line":"        address \u003d \"aa:aa:aa:aa:aa:aa\""},{"line_number":954,"context_line":"        with task_manager.acquire(self.context, self.node.uuid) as task:"},{"line_number":955,"context_line":"            path \u003d pxe_utils._get_pxe_grub_mac_path(address, task.node)"},{"line_number":956,"context_line":"            self.assertEqual(path, \u0027/tftpboot-path/%s.conf\u0027 % address)"},{"line_number":957,"context_line":""},{"line_number":958,"context_line":""},{"line_number":959,"context_line":"@mock.patch.object(ipxe.iPXEBoot, \u0027__init__\u0027, lambda self: None)"}],"source_content_type":"text/x-python","patch_set":1,"id":"43c7a58f_17c6f1ea","line":956,"in_reply_to":"53d09e2a_2a2219f6","updated":"2021-03-16 09:14:40.000000000","message":"Done","commit_id":"62dd20b427ec50279b14bf615eec24c4bfc2504d"},{"author":{"_account_id":4571,"name":"Steve Baker","email":"sbaker@redhat.com","username":"steve-stevebaker"},"change_message_id":"68d27c389e1558b1213c80c167aafff5455d69ca","unresolved":true,"context_lines":[{"line_number":846,"context_line":"                mock.call(\u0027/tftpboot/10.10.0.1.conf\u0027),"},{"line_number":847,"context_line":"                mock.call(\u0027/tftpboot/pxelinux.cfg/01-aa-aa-aa-aa-aa-aa\u0027),"},{"line_number":848,"context_line":"                mock.call(\u0027/tftpboot/grub.cfg-01-%s\u0027 %"},{"line_number":849,"context_line":"                          address.replace(\u0027:\u0027, \u0027-\u0027))"},{"line_number":850,"context_line":"            ]"},{"line_number":851,"context_line":"            unlink_mock.assert_has_calls(unlink_calls)"},{"line_number":852,"context_line":"            rmtree_mock.assert_called_once_with("}],"source_content_type":"text/x-python","patch_set":4,"id":"e595e905_23f05d1c","line":849,"updated":"2021-03-26 01:04:29.000000000","message":"Can this value just be the actual string, with no substitutions or format strings?","commit_id":"4a2e238d4876d0a53b4c25160a80673acf0fbdf6"},{"author":{"_account_id":26580,"name":"liuzhuangzhuang","email":"vpbvmw651078@gmail.com","username":"LiuZhuangzhuang"},"change_message_id":"f989799973dcb503864a013fff0e31427268104a","unresolved":false,"context_lines":[{"line_number":846,"context_line":"                mock.call(\u0027/tftpboot/10.10.0.1.conf\u0027),"},{"line_number":847,"context_line":"                mock.call(\u0027/tftpboot/pxelinux.cfg/01-aa-aa-aa-aa-aa-aa\u0027),"},{"line_number":848,"context_line":"                mock.call(\u0027/tftpboot/grub.cfg-01-%s\u0027 %"},{"line_number":849,"context_line":"                          address.replace(\u0027:\u0027, \u0027-\u0027))"},{"line_number":850,"context_line":"            ]"},{"line_number":851,"context_line":"            unlink_mock.assert_has_calls(unlink_calls)"},{"line_number":852,"context_line":"            rmtree_mock.assert_called_once_with("}],"source_content_type":"text/x-python","patch_set":4,"id":"5f42c2a6_a746f3b4","line":849,"in_reply_to":"e595e905_23f05d1c","updated":"2021-03-26 03:42:44.000000000","message":"Done.","commit_id":"4a2e238d4876d0a53b4c25160a80673acf0fbdf6"},{"author":{"_account_id":4571,"name":"Steve Baker","email":"sbaker@redhat.com","username":"steve-stevebaker"},"change_message_id":"68d27c389e1558b1213c80c167aafff5455d69ca","unresolved":true,"context_lines":[{"line_number":876,"context_line":"                          address.replace(\u0027:\u0027, \u0027-\u0027)),"},{"line_number":877,"context_line":"                mock.call(\u0027/tftpboot/grub.cfg-01-%s\u0027 %"},{"line_number":878,"context_line":"                          address.replace(\u0027:\u0027, \u0027-\u0027)),"},{"line_number":879,"context_line":"                mock.call(\u0027/tftpboot/%s.conf\u0027 % address)"},{"line_number":880,"context_line":"            ]"},{"line_number":881,"context_line":""},{"line_number":882,"context_line":"            unlink_mock.assert_has_calls(unlink_calls)"}],"source_content_type":"text/x-python","patch_set":4,"id":"43cca5c7_aedc8bb7","line":879,"updated":"2021-03-26 01:04:29.000000000","message":"Can this value just be the actual string, with no substitutions or format strings?","commit_id":"4a2e238d4876d0a53b4c25160a80673acf0fbdf6"},{"author":{"_account_id":26580,"name":"liuzhuangzhuang","email":"vpbvmw651078@gmail.com","username":"LiuZhuangzhuang"},"change_message_id":"f989799973dcb503864a013fff0e31427268104a","unresolved":false,"context_lines":[{"line_number":876,"context_line":"                          address.replace(\u0027:\u0027, \u0027-\u0027)),"},{"line_number":877,"context_line":"                mock.call(\u0027/tftpboot/grub.cfg-01-%s\u0027 %"},{"line_number":878,"context_line":"                          address.replace(\u0027:\u0027, \u0027-\u0027)),"},{"line_number":879,"context_line":"                mock.call(\u0027/tftpboot/%s.conf\u0027 % address)"},{"line_number":880,"context_line":"            ]"},{"line_number":881,"context_line":""},{"line_number":882,"context_line":"            unlink_mock.assert_has_calls(unlink_calls)"}],"source_content_type":"text/x-python","patch_set":4,"id":"fbecbdde_7cd8fd72","line":879,"in_reply_to":"43cca5c7_aedc8bb7","updated":"2021-03-26 03:42:44.000000000","message":"Done","commit_id":"4a2e238d4876d0a53b4c25160a80673acf0fbdf6"},{"author":{"_account_id":4571,"name":"Steve Baker","email":"sbaker@redhat.com","username":"steve-stevebaker"},"change_message_id":"68d27c389e1558b1213c80c167aafff5455d69ca","unresolved":true,"context_lines":[{"line_number":955,"context_line":"                mock.call(\u0027/tftpboot/pxelinux.cfg/01-%s\u0027 %"},{"line_number":956,"context_line":"                          address.replace(\u0027:\u0027, \u0027-\u0027)),"},{"line_number":957,"context_line":"                mock.call(\u0027/tftpboot/grub.cfg-01-%s\u0027 %"},{"line_number":958,"context_line":"                          address.replace(\u0027:\u0027, \u0027-\u0027))"},{"line_number":959,"context_line":"            ]"},{"line_number":960,"context_line":"            unlink_mock.assert_has_calls(unlink_calls)"},{"line_number":961,"context_line":"            rmtree_mock.assert_called_once_with("}],"source_content_type":"text/x-python","patch_set":4,"id":"ee46e8cc_334ebf4e","line":958,"updated":"2021-03-26 01:04:29.000000000","message":"Same comment as above","commit_id":"4a2e238d4876d0a53b4c25160a80673acf0fbdf6"},{"author":{"_account_id":26580,"name":"liuzhuangzhuang","email":"vpbvmw651078@gmail.com","username":"LiuZhuangzhuang"},"change_message_id":"f989799973dcb503864a013fff0e31427268104a","unresolved":false,"context_lines":[{"line_number":955,"context_line":"                mock.call(\u0027/tftpboot/pxelinux.cfg/01-%s\u0027 %"},{"line_number":956,"context_line":"                          address.replace(\u0027:\u0027, \u0027-\u0027)),"},{"line_number":957,"context_line":"                mock.call(\u0027/tftpboot/grub.cfg-01-%s\u0027 %"},{"line_number":958,"context_line":"                          address.replace(\u0027:\u0027, \u0027-\u0027))"},{"line_number":959,"context_line":"            ]"},{"line_number":960,"context_line":"            unlink_mock.assert_has_calls(unlink_calls)"},{"line_number":961,"context_line":"            rmtree_mock.assert_called_once_with("}],"source_content_type":"text/x-python","patch_set":4,"id":"1c3230fb_3a3b8fbe","line":958,"in_reply_to":"ee46e8cc_334ebf4e","updated":"2021-03-26 03:42:44.000000000","message":"Done","commit_id":"4a2e238d4876d0a53b4c25160a80673acf0fbdf6"},{"author":{"_account_id":4571,"name":"Steve Baker","email":"sbaker@redhat.com","username":"steve-stevebaker"},"change_message_id":"68d27c389e1558b1213c80c167aafff5455d69ca","unresolved":true,"context_lines":[{"line_number":967,"context_line":"        actual \u003d pxe_utils._get_pxe_grub_mac_path(address)"},{"line_number":968,"context_line":"        expected \u003d [\u0027/tftpboot-path/grub.cfg-01-%s\u0027 %"},{"line_number":969,"context_line":"                    address.replace(\u0027:\u0027, \"-\").lower(),"},{"line_number":970,"context_line":"                    \u0027/tftpboot-path/%s.conf\u0027 % address]"},{"line_number":971,"context_line":"        self.assertCountEqual(expected, actual)"},{"line_number":972,"context_line":"        self.assertListEqual(expected, actual)"},{"line_number":973,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"8391b0bc_6bb4b3cc","line":970,"updated":"2021-03-26 01:04:29.000000000","message":"Same comment as above","commit_id":"4a2e238d4876d0a53b4c25160a80673acf0fbdf6"},{"author":{"_account_id":26580,"name":"liuzhuangzhuang","email":"vpbvmw651078@gmail.com","username":"LiuZhuangzhuang"},"change_message_id":"f989799973dcb503864a013fff0e31427268104a","unresolved":false,"context_lines":[{"line_number":967,"context_line":"        actual \u003d pxe_utils._get_pxe_grub_mac_path(address)"},{"line_number":968,"context_line":"        expected \u003d [\u0027/tftpboot-path/grub.cfg-01-%s\u0027 %"},{"line_number":969,"context_line":"                    address.replace(\u0027:\u0027, \"-\").lower(),"},{"line_number":970,"context_line":"                    \u0027/tftpboot-path/%s.conf\u0027 % address]"},{"line_number":971,"context_line":"        self.assertCountEqual(expected, actual)"},{"line_number":972,"context_line":"        self.assertListEqual(expected, actual)"},{"line_number":973,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"81dcd156_b90fbe7c","line":970,"in_reply_to":"8391b0bc_6bb4b3cc","updated":"2021-03-26 03:42:44.000000000","message":"Done","commit_id":"4a2e238d4876d0a53b4c25160a80673acf0fbdf6"},{"author":{"_account_id":4571,"name":"Steve Baker","email":"sbaker@redhat.com","username":"steve-stevebaker"},"change_message_id":"68d27c389e1558b1213c80c167aafff5455d69ca","unresolved":true,"context_lines":[{"line_number":1895,"context_line":"                mock.call(\"/httpboot/pxelinux.cfg/%s\""},{"line_number":1896,"context_line":"                          % address.replace(\u0027:\u0027, \u0027-\u0027)),"},{"line_number":1897,"context_line":"                mock.call(\"/httpboot/grub.cfg-01-%s\" %"},{"line_number":1898,"context_line":"                          address.replace(\u0027:\u0027, \u0027-\u0027))"},{"line_number":1899,"context_line":"            ]"},{"line_number":1900,"context_line":""},{"line_number":1901,"context_line":"            unlink_mock.assert_has_calls(ensure_calls)"}],"source_content_type":"text/x-python","patch_set":4,"id":"f60bffb4_fc5c9e0d","line":1898,"updated":"2021-03-26 01:04:29.000000000","message":"Same comment as above","commit_id":"4a2e238d4876d0a53b4c25160a80673acf0fbdf6"},{"author":{"_account_id":26580,"name":"liuzhuangzhuang","email":"vpbvmw651078@gmail.com","username":"LiuZhuangzhuang"},"change_message_id":"f989799973dcb503864a013fff0e31427268104a","unresolved":false,"context_lines":[{"line_number":1895,"context_line":"                mock.call(\"/httpboot/pxelinux.cfg/%s\""},{"line_number":1896,"context_line":"                          % address.replace(\u0027:\u0027, \u0027-\u0027)),"},{"line_number":1897,"context_line":"                mock.call(\"/httpboot/grub.cfg-01-%s\" %"},{"line_number":1898,"context_line":"                          address.replace(\u0027:\u0027, \u0027-\u0027))"},{"line_number":1899,"context_line":"            ]"},{"line_number":1900,"context_line":""},{"line_number":1901,"context_line":"            unlink_mock.assert_has_calls(ensure_calls)"}],"source_content_type":"text/x-python","patch_set":4,"id":"1bd8a608_3bd653c4","line":1898,"in_reply_to":"f60bffb4_fc5c9e0d","updated":"2021-03-26 03:42:44.000000000","message":"Done","commit_id":"4a2e238d4876d0a53b4c25160a80673acf0fbdf6"}]}
