)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"b352775823bd821d2dc6d488ef00676986660b66","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Anusha Ramineni \u003canusha.iiitm@gmail.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-04-24 16:19:47 +0530"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"in-band disk erase using shred fails"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"in-band disk erase using shred fails with error \"\u0027module\u0027 object has no"},{"line_number":10,"context_line":"attribute \u0027ProcessExecutionError\u0027\". This commit is to fix the issue"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"bab921fb_23a21faf","line":7,"updated":"2015-04-24 11:06:33.000000000","message":"please describe what you did in the commit, not what happened to you","commit_id":"d14d3eec41f5d813e15cddaac743044dae12ba35"},{"author":{"_account_id":11278,"name":"Anusha Ramineni","email":"anusha.ramineni@india.nec.com","username":"anusha08"},"change_message_id":"270ad1edcfcf7704cdbfe15a02c131397bce6357","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Anusha Ramineni \u003canusha.iiitm@gmail.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-04-24 16:19:47 +0530"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"in-band disk erase using shred fails"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"in-band disk erase using shred fails with error \"\u0027module\u0027 object has no"},{"line_number":10,"context_line":"attribute \u0027ProcessExecutionError\u0027\". This commit is to fix the issue"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"bab921fb_f28ce180","line":7,"in_reply_to":"bab921fb_23a21faf","updated":"2015-04-24 13:59:14.000000000","message":"will change it. Thanks","commit_id":"d14d3eec41f5d813e15cddaac743044dae12ba35"}],"ironic_python_agent/hardware.py":[{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"560c61bc5a4f493fc40ed86520cc743ee1fb7f2a","unresolved":false,"context_lines":[{"line_number":448,"context_line":"        try:"},{"line_number":449,"context_line":"            utils.execute(\u0027shred\u0027, \u0027--force\u0027, \u0027--zero\u0027, \u0027--verbose\u0027,"},{"line_number":450,"context_line":"                          \u0027--iterations\u0027, \u00271\u0027, block_device.name)"},{"line_number":451,"context_line":"        except processutils.ProcessExecutionError as e:"},{"line_number":452,"context_line":"            raise errors.BlockDeviceEraseError((\u0027Erasing block device %(dev)s\u0027"},{"line_number":453,"context_line":"                \u0027 failed with error %(err)s \u0027) % {\u0027dev\u0027: block_device.name,"},{"line_number":454,"context_line":"                    \u0027err\u0027: e}"}],"source_content_type":"text/x-python","patch_set":2,"id":"bab921fb_723583d8","line":451,"updated":"2015-04-24 09:55:47.000000000","message":"Can we catch OSError as well so that we catch issues like shred binary not found, not executable, etc.","commit_id":"fe232001a73f4a5d712a2c2f4781045d45c8b80d"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"560c61bc5a4f493fc40ed86520cc743ee1fb7f2a","unresolved":false,"context_lines":[{"line_number":449,"context_line":"            utils.execute(\u0027shred\u0027, \u0027--force\u0027, \u0027--zero\u0027, \u0027--verbose\u0027,"},{"line_number":450,"context_line":"                          \u0027--iterations\u0027, \u00271\u0027, block_device.name)"},{"line_number":451,"context_line":"        except processutils.ProcessExecutionError as e:"},{"line_number":452,"context_line":"            raise errors.BlockDeviceEraseError((\u0027Erasing block device %(dev)s\u0027"},{"line_number":453,"context_line":"                \u0027 failed with error %(err)s \u0027) % {\u0027dev\u0027: block_device.name,"},{"line_number":454,"context_line":"                    \u0027err\u0027: e}"},{"line_number":455,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"bab921fb_32270bb8","line":452,"updated":"2015-04-24 09:55:47.000000000","message":"nit: redundant bracket.","commit_id":"fe232001a73f4a5d712a2c2f4781045d45c8b80d"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"cc8f35c16125665e6b677b028369c970b10d2c19","unresolved":false,"context_lines":[{"line_number":443,"context_line":"        \"\"\"Erase a block device using shred."},{"line_number":444,"context_line":""},{"line_number":445,"context_line":"        :param block_device: a BlockDevice object to be erased"},{"line_number":446,"context_line":"        :returns: True if the erase succeeds, False if it fails for any reason"},{"line_number":447,"context_line":"        \"\"\""},{"line_number":448,"context_line":"        try:"},{"line_number":449,"context_line":"            utils.execute(\u0027shred\u0027, \u0027--force\u0027, \u0027--zero\u0027, \u0027--verbose\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"bab921fb_c3124309","line":446,"updated":"2015-04-24 11:04:59.000000000","message":"The methods invoking _shread_block_device() will be expecting False if it fails and not raise BlockDeviceEraseError(). This patch is changing this behavior","commit_id":"d14d3eec41f5d813e15cddaac743044dae12ba35"},{"author":{"_account_id":11278,"name":"Anusha Ramineni","email":"anusha.ramineni@india.nec.com","username":"anusha08"},"change_message_id":"270ad1edcfcf7704cdbfe15a02c131397bce6357","unresolved":false,"context_lines":[{"line_number":443,"context_line":"        \"\"\"Erase a block device using shred."},{"line_number":444,"context_line":""},{"line_number":445,"context_line":"        :param block_device: a BlockDevice object to be erased"},{"line_number":446,"context_line":"        :returns: True if the erase succeeds, False if it fails for any reason"},{"line_number":447,"context_line":"        \"\"\""},{"line_number":448,"context_line":"        try:"},{"line_number":449,"context_line":"            utils.execute(\u0027shred\u0027, \u0027--force\u0027, \u0027--zero\u0027, \u0027--verbose\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"bab921fb_773fa3d6","line":446,"in_reply_to":"bab921fb_c3124309","updated":"2015-04-24 13:59:14.000000000","message":"Lucas, yes, but raising error seems more reasonable in this case, because \n\n1) shred is linux command (equivalent to dd), so should be supported on all platforms ( doesn\u0027t depend on hardware in my opinion). So raising IncompatibleHardwareMethodError doesn\u0027t seem to be correct.\n\n2) We are hiding the actual error and throwing  \u0027IncompatibleHardwareMethodError\u0027 everytime , making it difficult to understand what the problem is.\n\n3) Making it on par with _ata_erase, as it also raises the exception as is, we are not catching the exception anywhere in def _ata_erase (L477)","commit_id":"d14d3eec41f5d813e15cddaac743044dae12ba35"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"cc8f35c16125665e6b677b028369c970b10d2c19","unresolved":false,"context_lines":[{"line_number":448,"context_line":"        try:"},{"line_number":449,"context_line":"            utils.execute(\u0027shred\u0027, \u0027--force\u0027, \u0027--zero\u0027, \u0027--verbose\u0027,"},{"line_number":450,"context_line":"                          \u0027--iterations\u0027, \u00271\u0027, block_device.name)"},{"line_number":451,"context_line":"        except (processutils.ProcessExecutionError, OSError) as e:"},{"line_number":452,"context_line":"            raise errors.BlockDeviceEraseError((\u0027Erasing block device %(dev)s\u0027"},{"line_number":453,"context_line":"                \u0027 failed with error %(err)s \u0027) % {\u0027dev\u0027: block_device.name,"},{"line_number":454,"context_line":"                    \u0027err\u0027: e})"}],"source_content_type":"text/x-python","patch_set":3,"id":"bab921fb_636db797","line":451,"updated":"2015-04-24 11:04:59.000000000","message":"OSError is a different story no?\n\nProbably it means that \"shred is not a valid command\" because it may not be installed. Is that the case here? Should we log a different message for this type of problem?","commit_id":"d14d3eec41f5d813e15cddaac743044dae12ba35"},{"author":{"_account_id":11278,"name":"Anusha Ramineni","email":"anusha.ramineni@india.nec.com","username":"anusha08"},"change_message_id":"270ad1edcfcf7704cdbfe15a02c131397bce6357","unresolved":false,"context_lines":[{"line_number":448,"context_line":"        try:"},{"line_number":449,"context_line":"            utils.execute(\u0027shred\u0027, \u0027--force\u0027, \u0027--zero\u0027, \u0027--verbose\u0027,"},{"line_number":450,"context_line":"                          \u0027--iterations\u0027, \u00271\u0027, block_device.name)"},{"line_number":451,"context_line":"        except (processutils.ProcessExecutionError, OSError) as e:"},{"line_number":452,"context_line":"            raise errors.BlockDeviceEraseError((\u0027Erasing block device %(dev)s\u0027"},{"line_number":453,"context_line":"                \u0027 failed with error %(err)s \u0027) % {\u0027dev\u0027: block_device.name,"},{"line_number":454,"context_line":"                    \u0027err\u0027: e})"}],"source_content_type":"text/x-python","patch_set":3,"id":"bab921fb_d29c3dc2","line":451,"in_reply_to":"bab921fb_636db797","updated":"2015-04-24 13:59:14.000000000","message":"yes, but anyway we are reflecting the error with block device erase failed because command is not available.So makes sense to include in the same?\n\nI\u0027m ok to make it a separate error though","commit_id":"d14d3eec41f5d813e15cddaac743044dae12ba35"},{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"aa8c7d6d4ec3e06bea73bbede0f0e37dd2838b00","unresolved":false,"context_lines":[{"line_number":449,"context_line":"            utils.execute(\u0027shred\u0027, \u0027--force\u0027, \u0027--zero\u0027, \u0027--verbose\u0027,"},{"line_number":450,"context_line":"                          \u0027--iterations\u0027, \u00271\u0027, block_device.name)"},{"line_number":451,"context_line":"        except (processutils.ProcessExecutionError, OSError) as e:"},{"line_number":452,"context_line":"            raise errors.BlockDeviceEraseError((\u0027Erasing block device %(dev)s\u0027"},{"line_number":453,"context_line":"                \u0027 failed with error %(err)s \u0027) % {\u0027dev\u0027: block_device.name,"},{"line_number":454,"context_line":"                    \u0027err\u0027: e})"},{"line_number":455,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"1aca2d91_a9bf3cfa","line":452,"updated":"2015-05-07 15:24:06.000000000","message":"This should continue to return false. If this is changed, I think we fix the bug and don\u0027t break the HardwareManager API. Everything else should be OK.","commit_id":"d14d3eec41f5d813e15cddaac743044dae12ba35"},{"author":{"_account_id":11343,"name":"Gal Sagie","email":"gal.sagie@gmail.com","username":"GalSagie"},"change_message_id":"87339cd2a21a7b4e3e38f2e6b88c15c283e8389b","unresolved":false,"context_lines":[{"line_number":455,"context_line":"        try:"},{"line_number":456,"context_line":"            utils.execute(\u0027shred\u0027, \u0027--force\u0027, \u0027--zero\u0027, \u0027--verbose\u0027,"},{"line_number":457,"context_line":"                          \u0027--iterations\u0027, \u00271\u0027, block_device.name)"},{"line_number":458,"context_line":"        except (processutils.ProcessExecutionError, OSError) as e:"},{"line_number":459,"context_line":"            msg \u003d (\"Erasing block device %(dev)s failed with error %(err)s \","},{"line_number":460,"context_line":"                  {\u0027dev\u0027: block_device.name, \u0027err\u0027: e})"},{"line_number":461,"context_line":"            LOG.error(msg)"}],"source_content_type":"text/x-python","patch_set":4,"id":"1aca2d91_344120aa","line":458,"updated":"2015-05-08 11:51:48.000000000","message":"nit: translation hint in msg text","commit_id":"8cef029d0d052df38a4f424f90b4434d230cecd0"},{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"dfef516d6ad751841e9543e2b719d58e8eca6b8e","unresolved":false,"context_lines":[{"line_number":455,"context_line":"        try:"},{"line_number":456,"context_line":"            utils.execute(\u0027shred\u0027, \u0027--force\u0027, \u0027--zero\u0027, \u0027--verbose\u0027,"},{"line_number":457,"context_line":"                          \u0027--iterations\u0027, \u00271\u0027, block_device.name)"},{"line_number":458,"context_line":"        except (processutils.ProcessExecutionError, OSError) as e:"},{"line_number":459,"context_line":"            msg \u003d (\"Erasing block device %(dev)s failed with error %(err)s \","},{"line_number":460,"context_line":"                  {\u0027dev\u0027: block_device.name, \u0027err\u0027: e})"},{"line_number":461,"context_line":"            LOG.error(msg)"}],"source_content_type":"text/x-python","patch_set":4,"id":"9af37de9_ef622116","line":458,"in_reply_to":"1aca2d91_344120aa","updated":"2015-05-09 19:49:53.000000000","message":"This project does not translate messages.","commit_id":"8cef029d0d052df38a4f424f90b4434d230cecd0"}]}
