)]}'
{"ironic_python_agent/hardware.py":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"635420070cd78b212f588b1cf2b2060fe9921f26","unresolved":false,"context_lines":[{"line_number":58,"context_line":"    \"\"\""},{"line_number":59,"context_line":"    try:"},{"line_number":60,"context_line":"        utils.execute(\u0027udevadm\u0027, \u0027trigger\u0027, \u0027--dry-run\u0027, \u0027--type\u003ddevices\u0027,"},{"line_number":61,"context_line":"                      \u0027--subsystem-match\u003dscsi_disk\u0027)"},{"line_number":62,"context_line":"        utils.execute(\u0027udevadm\u0027, \u0027settle\u0027)"},{"line_number":63,"context_line":"    except processutils.ProcessExecutionError as e:"},{"line_number":64,"context_line":"        LOG.warning(\u0027Failed to rescan the SCSI devices. Error: %s\u0027, e)"}],"source_content_type":"text/x-python","patch_set":3,"id":"7af24918_4879502f","line":61,"updated":"2016-03-01 13:03:11.000000000","message":"could you please leave a comment stating what every command does? I\u0027m particularly confused by the 1st command, especially its --dry-run part?","commit_id":"6cc2d77b71aea73d293c152f844b2293c7730972"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"6ca3af58077dc15ef20a489955e87a91fe3b2e87","unresolved":false,"context_lines":[{"line_number":58,"context_line":"    \"\"\""},{"line_number":59,"context_line":"    try:"},{"line_number":60,"context_line":"        utils.execute(\u0027udevadm\u0027, \u0027trigger\u0027, \u0027--dry-run\u0027, \u0027--type\u003ddevices\u0027,"},{"line_number":61,"context_line":"                      \u0027--subsystem-match\u003dscsi_disk\u0027)"},{"line_number":62,"context_line":"        utils.execute(\u0027udevadm\u0027, \u0027settle\u0027)"},{"line_number":63,"context_line":"    except processutils.ProcessExecutionError as e:"},{"line_number":64,"context_line":"        LOG.warning(\u0027Failed to rescan the SCSI devices. Error: %s\u0027, e)"}],"source_content_type":"text/x-python","patch_set":3,"id":"7af24918_8f007aac","line":61,"in_reply_to":"7af24918_4879502f","updated":"2016-03-01 14:08:48.000000000","message":"++ will do\n\nI think we can remove the --dry-run since it will not actually trigger anything. (It was mostly a c\u0026p example of the usage of udevmadm command)","commit_id":"6cc2d77b71aea73d293c152f844b2293c7730972"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"bf71d5ed0f365d8d094a28425582907cbe3fb5ee","unresolved":false,"context_lines":[{"line_number":58,"context_line":"    \"\"\""},{"line_number":59,"context_line":"    try:"},{"line_number":60,"context_line":"        utils.execute(\u0027udevadm\u0027, \u0027trigger\u0027, \u0027--dry-run\u0027, \u0027--type\u003ddevices\u0027,"},{"line_number":61,"context_line":"                      \u0027--subsystem-match\u003dscsi_disk\u0027)"},{"line_number":62,"context_line":"        utils.execute(\u0027udevadm\u0027, \u0027settle\u0027)"},{"line_number":63,"context_line":"    except processutils.ProcessExecutionError as e:"},{"line_number":64,"context_line":"        LOG.warning(\u0027Failed to rescan the SCSI devices. Error: %s\u0027, e)"}],"source_content_type":"text/x-python","patch_set":3,"id":"7af24918_a1c10231","line":61,"in_reply_to":"7af24918_8f007aac","updated":"2016-03-01 15:59:18.000000000","message":"By default --type\u003d already points to \"devices\" as well... So I will be omitting it in the next patch set.\n\nhttps://www.freedesktop.org/software/systemd/man/udevadm.html#-t","commit_id":"6cc2d77b71aea73d293c152f844b2293c7730972"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"42028108aaad4a7829d8e8b9c780898b8ab86d98","unresolved":false,"context_lines":[{"line_number":58,"context_line":"    \"\"\""},{"line_number":59,"context_line":"    try:"},{"line_number":60,"context_line":"        # Triggers the events that match the iscsi_disk subsystem"},{"line_number":61,"context_line":"        utils.execute(\u0027udevadm\u0027, \u0027trigger\u0027, \u0027--subsystem-match\u003dscsi_disk\u0027)"},{"line_number":62,"context_line":"        utils.execute(\u0027udevadm\u0027, \u0027settle\u0027)"},{"line_number":63,"context_line":"    except processutils.ProcessExecutionError as e:"},{"line_number":64,"context_line":"        LOG.warning(\u0027Failed to rescan the SCSI devices. Error: %s\u0027, e)"}],"source_content_type":"text/x-python","patch_set":4,"id":"7af24918_2ecca834","line":61,"updated":"2016-03-01 22:07:45.000000000","message":"Apparently we don\u0027t need to trigger anything, we can just need to make sure udev is settled before we try to find the disks","commit_id":"82cac7ad4316db8904a52315a92ad983256616e2"},{"author":{"_account_id":10697,"name":"Thiago Paiva Brito","email":"thiagop@lsd.ufcg.edu.br","username":"thiagop","inactive":true},"change_message_id":"cc8b394ad28603ed14c21deda5ed1b632506d0ff","unresolved":false,"context_lines":[{"line_number":59,"context_line":"    try:"},{"line_number":60,"context_line":"        utils.execute(\u0027udevadm\u0027, \u0027settle\u0027)"},{"line_number":61,"context_line":"    except processutils.ProcessExecutionError as e:"},{"line_number":62,"context_line":"        LOG.warning(\u0027Something went wrong when waiting for udev \u0027"},{"line_number":63,"context_line":"                    \u0027to settle. Error: %s\u0027, e)"},{"line_number":64,"context_line":"        return"},{"line_number":65,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"7af24918_fdc0877e","line":62,"range":{"start_line":62,"start_character":12,"end_line":62,"end_character":19},"updated":"2016-03-02 14:56:08.000000000","message":"Shouldn\u0027t this be a LOG.error? Is there a possibility that the following process on list_all_block_devices can continue even if the wait fails?","commit_id":"055998c81217ededacc95f0f96a4a8bf684fbfe0"},{"author":{"_account_id":10697,"name":"Thiago Paiva Brito","email":"thiagop@lsd.ufcg.edu.br","username":"thiagop","inactive":true},"change_message_id":"2ec2042167b66758146a97e6692dc63c8904a301","unresolved":false,"context_lines":[{"line_number":59,"context_line":"    try:"},{"line_number":60,"context_line":"        utils.execute(\u0027udevadm\u0027, \u0027settle\u0027)"},{"line_number":61,"context_line":"    except processutils.ProcessExecutionError as e:"},{"line_number":62,"context_line":"        LOG.warning(\u0027Something went wrong when waiting for udev \u0027"},{"line_number":63,"context_line":"                    \u0027to settle. Error: %s\u0027, e)"},{"line_number":64,"context_line":"        return"},{"line_number":65,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"7af24918_e06f3ac3","line":62,"range":{"start_line":62,"start_character":12,"end_line":62,"end_character":19},"in_reply_to":"7af24918_bd39df43","updated":"2016-03-02 15:06:11.000000000","message":"Alright then.","commit_id":"055998c81217ededacc95f0f96a4a8bf684fbfe0"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"3c52560b764cbff38c8abe1ce6864365359c4c1a","unresolved":false,"context_lines":[{"line_number":59,"context_line":"    try:"},{"line_number":60,"context_line":"        utils.execute(\u0027udevadm\u0027, \u0027settle\u0027)"},{"line_number":61,"context_line":"    except processutils.ProcessExecutionError as e:"},{"line_number":62,"context_line":"        LOG.warning(\u0027Something went wrong when waiting for udev \u0027"},{"line_number":63,"context_line":"                    \u0027to settle. Error: %s\u0027, e)"},{"line_number":64,"context_line":"        return"},{"line_number":65,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"7af24918_9d7a23f0","line":62,"range":{"start_line":62,"start_character":12,"end_line":62,"end_character":19},"in_reply_to":"7af24918_fdc0877e","updated":"2016-03-02 14:58:27.000000000","message":"Error means we can\u0027t proceed. Here it works, but not for all hardware. So dunno..","commit_id":"055998c81217ededacc95f0f96a4a8bf684fbfe0"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"68bfca06e4edeff9dc2aaaa6e79148a2715c850f","unresolved":false,"context_lines":[{"line_number":59,"context_line":"    try:"},{"line_number":60,"context_line":"        utils.execute(\u0027udevadm\u0027, \u0027settle\u0027)"},{"line_number":61,"context_line":"    except processutils.ProcessExecutionError as e:"},{"line_number":62,"context_line":"        LOG.warning(\u0027Something went wrong when waiting for udev \u0027"},{"line_number":63,"context_line":"                    \u0027to settle. Error: %s\u0027, e)"},{"line_number":64,"context_line":"        return"},{"line_number":65,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"7af24918_bd39df43","line":62,"range":{"start_line":62,"start_character":12,"end_line":62,"end_character":19},"in_reply_to":"7af24918_fdc0877e","updated":"2016-03-02 15:03:14.000000000","message":"I think warning should be good enough. Most of the time the devices will be all sorted even before IPA starts running, so, I believe this code safeguard some edge cases where the host os (or hardware I believe) is slow.\n\nIf you look at the bug ticket you will see that this problem was found internally (at Red Hat) and I can only reproduce when I use some old model of DELL machines, so I believe for most cases this won\u0027t be a problem, therefore a warning.","commit_id":"055998c81217ededacc95f0f96a4a8bf684fbfe0"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"13d44e5cf38a571d56f131d8d68201f148d47794","unresolved":false,"context_lines":[{"line_number":61,"context_line":"    except processutils.ProcessExecutionError as e:"},{"line_number":62,"context_line":"        LOG.warning(\u0027Something went wrong when waiting for udev \u0027"},{"line_number":63,"context_line":"                    \u0027to settle. Error: %s\u0027, e)"},{"line_number":64,"context_line":"        return"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"def list_all_block_devices(block_type\u003d\u0027disk\u0027):"}],"source_content_type":"text/x-python","patch_set":6,"id":"7af24918_64f8704a","line":64,"range":{"start_line":64,"start_character":8,"end_line":64,"end_character":14},"updated":"2016-03-02 10:57:05.000000000","message":"nit: return is not needed","commit_id":"055998c81217ededacc95f0f96a4a8bf684fbfe0"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"a0e9ce81fd7cb2b0a1182d7b75908b638ae3d17e","unresolved":false,"context_lines":[{"line_number":61,"context_line":"    except processutils.ProcessExecutionError as e:"},{"line_number":62,"context_line":"        LOG.warning(\u0027Something went wrong when waiting for udev \u0027"},{"line_number":63,"context_line":"                    \u0027to settle. Error: %s\u0027, e)"},{"line_number":64,"context_line":"        return"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"def list_all_block_devices(block_type\u003d\u0027disk\u0027):"}],"source_content_type":"text/x-python","patch_set":6,"id":"7af24918_874c9e71","line":64,"range":{"start_line":64,"start_character":8,"end_line":64,"end_character":14},"in_reply_to":"7af24918_64f8704a","updated":"2016-03-02 11:02:09.000000000","message":":-( indeed, if I happen to submit a new patch set I will fix it","commit_id":"055998c81217ededacc95f0f96a4a8bf684fbfe0"}],"ironic_python_agent/tests/unit/test_hardware.py":[{"author":{"_account_id":10697,"name":"Thiago Paiva Brito","email":"thiagop@lsd.ufcg.edu.br","username":"thiagop","inactive":true},"change_message_id":"cc8b394ad28603ed14c21deda5ed1b632506d0ff","unresolved":false,"context_lines":[{"line_number":890,"context_line":"                         self.hardware.get_system_vendor_info().manufacturer)"},{"line_number":891,"context_line":""},{"line_number":892,"context_line":""},{"line_number":893,"context_line":"@mock.patch.object(utils, \u0027execute\u0027, autospec\u003dTrue)"},{"line_number":894,"context_line":"class TestModuleFunctions(test_base.BaseTestCase):"},{"line_number":895,"context_line":""},{"line_number":896,"context_line":"    @mock.patch.object(hardware, \u0027_get_device_vendor\u0027, lambda x: \"FooTastic\")"}],"source_content_type":"text/x-python","patch_set":6,"id":"7af24918_dd278b62","line":893,"updated":"2016-03-02 14:56:08.000000000","message":"Good catch. :)","commit_id":"055998c81217ededacc95f0f96a4a8bf684fbfe0"}]}
