)]}'
{"diskimage_builder/block_device/level0/localloop.py":[{"author":{"_account_id":27621,"name":"Vishakha Agarwal","email":"agarwalvishakha18@gmail.com","username":"Vishakha"},"change_message_id":"4acebf8d7916aabd9479c242bb0f4ee2ea247837","unresolved":false,"context_lines":[{"line_number":45,"context_line":"    # [:-1]: Cut of the newline"},{"line_number":46,"context_line":"    block_device \u003d block_device[:-1]"},{"line_number":47,"context_line":"    logger.info(\"New block device [%s]\", block_device)"},{"line_number":48,"context_line":"    return block_device"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"def loopdev_detach(loopdev):"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_49be4301","line":48,"updated":"2018-06-28 04:56:07.000000000","message":"Thanks for the patch. What if losetup fails? Don\u0027t we need to raise/handle any exception here??","commit_id":"cf9de78ecef943ab1d6bb45a8a2c27af97e8a12d"},{"author":{"_account_id":7118,"name":"Ian Wienand","email":"iwienand@redhat.com","username":"iwienand"},"change_message_id":"f0ca0c148b58a401868e8c7efc16dda1b841caf8","unresolved":false,"context_lines":[{"line_number":45,"context_line":"    # [:-1]: Cut of the newline"},{"line_number":46,"context_line":"    block_device \u003d block_device[:-1]"},{"line_number":47,"context_line":"    logger.info(\"New block device [%s]\", block_device)"},{"line_number":48,"context_line":"    return block_device"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"def loopdev_detach(loopdev):"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_6c046d15","line":48,"in_reply_to":"5f7c97a3_494e43c3","updated":"2018-06-28 05:35:04.000000000","message":"the exec_sudo() function above will raise the error if the called command fails","commit_id":"cf9de78ecef943ab1d6bb45a8a2c27af97e8a12d"},{"author":{"_account_id":7118,"name":"Ian Wienand","email":"iwienand@redhat.com","username":"iwienand"},"change_message_id":"155365b02c8c0628397dab8d7a9617c1d8d74f02","unresolved":false,"context_lines":[{"line_number":45,"context_line":"    # [:-1]: Cut of the newline"},{"line_number":46,"context_line":"    block_device \u003d block_device[:-1]"},{"line_number":47,"context_line":"    logger.info(\"New block device [%s]\", block_device)"},{"line_number":48,"context_line":"    return block_device"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"def loopdev_detach(loopdev):"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_8928db33","line":48,"in_reply_to":"5f7c97a3_49be4301","updated":"2018-06-28 05:00:11.000000000","message":"If the command fails, the exec_sudo will raise a BlockDeviceSetupException as before","commit_id":"cf9de78ecef943ab1d6bb45a8a2c27af97e8a12d"},{"author":{"_account_id":27621,"name":"Vishakha Agarwal","email":"agarwalvishakha18@gmail.com","username":"Vishakha"},"change_message_id":"2c6470390853ca00e5840ccfd058ec8d92720196","unresolved":false,"context_lines":[{"line_number":45,"context_line":"    # [:-1]: Cut of the newline"},{"line_number":46,"context_line":"    block_device \u003d block_device[:-1]"},{"line_number":47,"context_line":"    logger.info(\"New block device [%s]\", block_device)"},{"line_number":48,"context_line":"    return block_device"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"def loopdev_detach(loopdev):"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_97e47644","line":48,"in_reply_to":"5f7c97a3_6c046d15","updated":"2018-06-28 06:16:50.000000000","message":"So the same should have done in L57 of loopdev_detach()?","commit_id":"cf9de78ecef943ab1d6bb45a8a2c27af97e8a12d"},{"author":{"_account_id":27621,"name":"Vishakha Agarwal","email":"agarwalvishakha18@gmail.com","username":"Vishakha"},"change_message_id":"c4fc479ef49ef4b79851514201560e0761315b3d","unresolved":false,"context_lines":[{"line_number":45,"context_line":"    # [:-1]: Cut of the newline"},{"line_number":46,"context_line":"    block_device \u003d block_device[:-1]"},{"line_number":47,"context_line":"    logger.info(\"New block device [%s]\", block_device)"},{"line_number":48,"context_line":"    return block_device"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"def loopdev_detach(loopdev):"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_494e43c3","line":48,"in_reply_to":"5f7c97a3_8928db33","updated":"2018-06-28 05:17:39.000000000","message":"But this else part is missing from here - \n\nelse:\n        logger.error(\"losetup failed\")\n        raise BlockDeviceSetupException(\"losetup failed\")","commit_id":"cf9de78ecef943ab1d6bb45a8a2c27af97e8a12d"},{"author":{"_account_id":7118,"name":"Ian Wienand","email":"iwienand@redhat.com","username":"iwienand"},"change_message_id":"69b64c80f90787962f4633ac26c1738ba32c4c3e","unresolved":false,"context_lines":[{"line_number":45,"context_line":"    # [:-1]: Cut of the newline"},{"line_number":46,"context_line":"    block_device \u003d block_device[:-1]"},{"line_number":47,"context_line":"    logger.info(\"New block device [%s]\", block_device)"},{"line_number":48,"context_line":"    return block_device"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"def loopdev_detach(loopdev):"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_b77972fc","line":48,"in_reply_to":"5f7c97a3_97e47644","updated":"2018-06-28 06:46:13.000000000","message":"No, as the comment there says, it wants to *ignore* any failure and keep going.  which is why we catch it, and continue on with the non-zero return code","commit_id":"cf9de78ecef943ab1d6bb45a8a2c27af97e8a12d"},{"author":{"_account_id":27621,"name":"Vishakha Agarwal","email":"agarwalvishakha18@gmail.com","username":"Vishakha"},"change_message_id":"4acebf8d7916aabd9479c242bb0f4ee2ea247837","unresolved":false,"context_lines":[{"line_number":62,"context_line":"            logger.error(\"loopdev detach failed (%s)\", e.returncode)"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"    logger.debug(\"Gave up trying to detach [%s]\", loopdev)"},{"line_number":65,"context_line":"    return 1"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"class LocalLoopNode(NodeBase):"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_e94f0f33","line":65,"updated":"2018-06-28 04:56:07.000000000","message":"I don\u0027t think this return is required.","commit_id":"cf9de78ecef943ab1d6bb45a8a2c27af97e8a12d"},{"author":{"_account_id":7118,"name":"Ian Wienand","email":"iwienand@redhat.com","username":"iwienand"},"change_message_id":"155365b02c8c0628397dab8d7a9617c1d8d74f02","unresolved":false,"context_lines":[{"line_number":62,"context_line":"            logger.error(\"loopdev detach failed (%s)\", e.returncode)"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"    logger.debug(\"Gave up trying to detach [%s]\", loopdev)"},{"line_number":65,"context_line":"    return 1"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"class LocalLoopNode(NodeBase):"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_491ac318","line":65,"in_reply_to":"5f7c97a3_e94f0f33","updated":"2018-06-28 05:00:11.000000000","message":"possibly not, but the old code did return a non-zero code when it bailed out","commit_id":"cf9de78ecef943ab1d6bb45a8a2c27af97e8a12d"}]}
