)]}'
{"ironic_python_agent/hardware.py":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"9e50b80e5d6de68507e4085f55d5078e4d178dcf","unresolved":false,"context_lines":[{"line_number":181,"context_line":"            msg \u003d (\u0027Could not get holder disks of %(dev)s: %(err)s\u0027 %"},{"line_number":182,"context_line":"                   {"},{"line_number":183,"context_line":"                       \u0027dev\u0027: raid_device,"},{"line_number":184,"context_line":"                       \u0027err\u0027: \u0027unexpected pattern for partition {}\u0027.format("},{"line_number":185,"context_line":"                           part)"},{"line_number":186,"context_line":"                   })"},{"line_number":187,"context_line":"            raise errors.SoftwareRAIDError(msg)"}],"source_content_type":"text/x-python","patch_set":2,"id":"7faddb67_306e9a00","line":184,"updated":"2019-08-12 16:16:03.000000000","message":"nit: the string part of this should be embedded into the template on line 181","commit_id":"e25e8d5c3c3fa3481bedafa2e99b9ac7f2301629"},{"author":{"_account_id":15064,"name":"raphael.glon","email":"raphael.glon@corp.ovh.com","username":"raphael"},"change_message_id":"4595a977d916aac91150589a3590426f519a2712","unresolved":false,"context_lines":[{"line_number":181,"context_line":"            msg \u003d (\u0027Could not get holder disks of %(dev)s: %(err)s\u0027 %"},{"line_number":182,"context_line":"                   {"},{"line_number":183,"context_line":"                       \u0027dev\u0027: raid_device,"},{"line_number":184,"context_line":"                       \u0027err\u0027: \u0027unexpected pattern for partition {}\u0027.format("},{"line_number":185,"context_line":"                           part)"},{"line_number":186,"context_line":"                   })"},{"line_number":187,"context_line":"            raise errors.SoftwareRAIDError(msg)"}],"source_content_type":"text/x-python","patch_set":2,"id":"7faddb67_72d08f54","line":184,"in_reply_to":"7faddb67_306e9a00","updated":"2019-08-13 00:50:56.000000000","message":"Done","commit_id":"e25e8d5c3c3fa3481bedafa2e99b9ac7f2301629"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"0a6c29edabfe8f625512afc50daf70c3cd210123","unresolved":false,"context_lines":[{"line_number":179,"context_line":"        device \u003d utils.extract_device(part)"},{"line_number":180,"context_line":"        if not device:"},{"line_number":181,"context_line":"            msg \u003d (\u0027Could not get holder disks of %(dev)s: unexpected pattern \u0027"},{"line_number":182,"context_line":"                   \u0027for partition %(partition)s\u0027) % (raid_device, part)"},{"line_number":183,"context_line":"            raise errors.SoftwareRAIDError(msg)"},{"line_number":184,"context_line":"        holder_disks.append(device)"},{"line_number":185,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"7faddb67_75aab619","line":182,"updated":"2019-08-13 08:11:52.000000000","message":"formatting will not quite work this way. you either need to use plain %s with a tuple or %(named)s with a dict. better the latter, so\n\n % {\u0027dev\u0027: raid_device, \u0027partition\u0027: part}","commit_id":"0e83be6aa464a8068cf188df29d7e7e9046288d4"}],"ironic_python_agent/tests/unit/test_hardware.py":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"0a6c29edabfe8f625512afc50daf70c3cd210123","unresolved":false,"context_lines":[{"line_number":2922,"context_line":"        self.assertEqual([\u0027/dev/vde\u0027, \u0027/dev/vdf\u0027], holder_disks)"},{"line_number":2923,"context_line":""},{"line_number":2924,"context_line":"    @mock.patch.object(utils, \u0027execute\u0027, autospec\u003dTrue)"},{"line_number":2925,"context_line":"    def test_get_holder_disks_with_nvme(self, mocked_execute):"},{"line_number":2926,"context_line":"        mocked_execute.side_effect \u003d [(MDADM_DETAIL_OUTPUT_NVME, \u0027\u0027)]"},{"line_number":2927,"context_line":"        raid_device \u003d hardware.BlockDevice(\u0027/dev/md0\u0027, \u0027RAID-1\u0027,"},{"line_number":2928,"context_line":"                                           107374182400, True)"}],"source_content_type":"text/x-python","patch_set":3,"id":"7faddb67_95a5f249","line":2925,"updated":"2019-08-13 08:11:52.000000000","message":"could you add a unit test for the error as well?","commit_id":"0e83be6aa464a8068cf188df29d7e7e9046288d4"}],"ironic_python_agent/utils.py":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"9e50b80e5d6de68507e4085f55d5078e4d178dcf","unresolved":false,"context_lines":[{"line_number":446,"context_line":"    \"\"\"Extract the device and partition from a device name or path."},{"line_number":447,"context_line":""},{"line_number":448,"context_line":"    :param part: the partition"},{"line_number":449,"context_line":"    :return: a (device, partition_number) tuple if success,"},{"line_number":450,"context_line":"             None,None otherwise."},{"line_number":451,"context_line":"    \"\"\""},{"line_number":452,"context_line":"    m \u003d DEVICE_PARTITION_EXTRACTOR.match(part)"}],"source_content_type":"text/x-python","patch_set":2,"id":"7faddb67_d074e6d2","line":449,"updated":"2019-08-12 16:16:03.000000000","message":"is partition number only needed for unit testing?","commit_id":"e25e8d5c3c3fa3481bedafa2e99b9ac7f2301629"},{"author":{"_account_id":15064,"name":"raphael.glon","email":"raphael.glon@corp.ovh.com","username":"raphael"},"change_message_id":"4595a977d916aac91150589a3590426f519a2712","unresolved":false,"context_lines":[{"line_number":446,"context_line":"    \"\"\"Extract the device and partition from a device name or path."},{"line_number":447,"context_line":""},{"line_number":448,"context_line":"    :param part: the partition"},{"line_number":449,"context_line":"    :return: a (device, partition_number) tuple if success,"},{"line_number":450,"context_line":"             None,None otherwise."},{"line_number":451,"context_line":"    \"\"\""},{"line_number":452,"context_line":"    m \u003d DEVICE_PARTITION_EXTRACTOR.match(part)"}],"source_content_type":"text/x-python","patch_set":2,"id":"7faddb67_92d3cb5f","line":449,"in_reply_to":"7faddb67_d074e6d2","updated":"2019-08-13 00:50:56.000000000","message":"Right, so I removed it","commit_id":"e25e8d5c3c3fa3481bedafa2e99b9ac7f2301629"}]}
