)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"b81c774112cf1630dc1b5dc5c43e0ac466d80e11","unresolved":false,"context_lines":[{"line_number":10,"context_line":"out-of-band clean step for sanitize disk erase on ilo5 based"},{"line_number":11,"context_line":"Proliant Servers."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: I7b9fc6add6f6a616bdee4d94cb577e7a27a794e5"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":13,"id":"7faddb67_4ad573e4","line":13,"range":{"start_line":13,"start_character":0,"end_line":13,"end_character":10},"updated":"2019-07-12 03:32:41.000000000","message":"Aslso add \u0027Depends-On\u0027 indicating dependency on proliantutils.","commit_id":"70edd67c1dc1d830a16bec2e46733055a48b64c9"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"dc1fa26d1ca8c5f71b8ceb176eddb8f3808bf622","unresolved":false,"context_lines":[{"line_number":10,"context_line":"out-of-band clean step for sanitize disk erase on ilo5 based"},{"line_number":11,"context_line":"Proliant Servers."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: I7b9fc6add6f6a616bdee4d94cb577e7a27a794e5"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":16,"id":"7faddb67_d259405b","line":13,"range":{"start_line":13,"start_character":0,"end_line":13,"end_character":10},"updated":"2019-08-13 06:50:04.000000000","message":"Add Story/ Task here.","commit_id":"b9fab3d7bef4793bbcad0fc8240b281da963493c"},{"author":{"_account_id":22271,"name":"paresh","email":"paresh.sao@hpe.com","username":"kesper"},"change_message_id":"76d1fd8cff7ebb187ec8e824634fae5ec4cedf9c","unresolved":false,"context_lines":[{"line_number":10,"context_line":"out-of-band clean step for sanitize disk erase on ilo5 based"},{"line_number":11,"context_line":"Proliant Servers."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: I7b9fc6add6f6a616bdee4d94cb577e7a27a794e5"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":16,"id":"7faddb67_7534f6de","line":13,"range":{"start_line":13,"start_character":0,"end_line":13,"end_character":10},"in_reply_to":"7faddb67_d259405b","updated":"2019-08-13 08:26:25.000000000","message":"Done","commit_id":"b9fab3d7bef4793bbcad0fc8240b281da963493c"}],"driver-requirements.txt":[{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"0d6720205600a8925ecaab55eff5338d183c7dd4","unresolved":false,"context_lines":[{"line_number":4,"context_line":"# python projects they should package as optional dependencies for Ironic."},{"line_number":5,"context_line":""},{"line_number":6,"context_line":"# These are available on pypi"},{"line_number":7,"context_line":"proliantutils\u003e\u003d2.9.0"},{"line_number":8,"context_line":"pysnmp\u003e\u003d4.3.0,\u003c5.0.0"},{"line_number":9,"context_line":"python-scciclient\u003e\u003d0.8.0"},{"line_number":10,"context_line":"python-dracclient\u003e\u003d3.0.0,\u003c4.0.0"}],"source_content_type":"text/plain","patch_set":21,"id":"7faddb67_7131b159","line":7,"updated":"2019-08-23 11:47:42.000000000","message":"Note: this has been released.","commit_id":"c0799c95eddd1e870b4c6ce195cbee66fe104674"},{"author":{"_account_id":22271,"name":"paresh","email":"paresh.sao@hpe.com","username":"kesper"},"change_message_id":"3f6abec7d90c0e69a9c159141d0cf1427c74df89","unresolved":false,"context_lines":[{"line_number":4,"context_line":"# python projects they should package as optional dependencies for Ironic."},{"line_number":5,"context_line":""},{"line_number":6,"context_line":"# These are available on pypi"},{"line_number":7,"context_line":"proliantutils\u003e\u003d2.9.0"},{"line_number":8,"context_line":"pysnmp\u003e\u003d4.3.0,\u003c5.0.0"},{"line_number":9,"context_line":"python-scciclient\u003e\u003d0.8.0"},{"line_number":10,"context_line":"python-dracclient\u003e\u003d3.0.0,\u003c4.0.0"}],"source_content_type":"text/plain","patch_set":21,"id":"7faddb67_227bbe29","line":7,"in_reply_to":"7faddb67_7131b159","updated":"2019-08-27 04:28:21.000000000","message":"Yes this has released","commit_id":"c0799c95eddd1e870b4c6ce195cbee66fe104674"}],"ironic/conf/conductor.py":[{"author":{"_account_id":10206,"name":"Madhuri Kumari","email":"madhuri.kumari@intel.com","username":"Madhuri"},"change_message_id":"037732c0c1ea6a3693a6947bd52dad2aea48edac","unresolved":false,"context_lines":[{"line_number":50,"context_line":"                      \u0027of a conductor. A conductor is considered inactive \u0027"},{"line_number":51,"context_line":"                      \u0027when this time has been exceeded.\u0027)),"},{"line_number":52,"context_line":"    cfg.IntOpt(\u0027sync_power_state_interval\u0027,"},{"line_number":53,"context_line":"               default\u003d5,"},{"line_number":54,"context_line":"               help\u003d_(\u0027Interval between syncing the node power state to the \u0027"},{"line_number":55,"context_line":"                      \u0027database, in seconds. Set to 0 to disable syncing.\u0027)),"},{"line_number":56,"context_line":"    cfg.IntOpt(\u0027check_provision_state_interval\u0027,"}],"source_content_type":"text/x-python","patch_set":13,"id":"7faddb67_0f3b1b9c","line":53,"range":{"start_line":53,"start_character":23,"end_line":53,"end_character":24},"updated":"2019-07-11 10:47:45.000000000","message":"Why is this value changed?","commit_id":"70edd67c1dc1d830a16bec2e46733055a48b64c9"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"b81c774112cf1630dc1b5dc5c43e0ac466d80e11","unresolved":false,"context_lines":[{"line_number":50,"context_line":"                      \u0027of a conductor. A conductor is considered inactive \u0027"},{"line_number":51,"context_line":"                      \u0027when this time has been exceeded.\u0027)),"},{"line_number":52,"context_line":"    cfg.IntOpt(\u0027sync_power_state_interval\u0027,"},{"line_number":53,"context_line":"               default\u003d5,"},{"line_number":54,"context_line":"               help\u003d_(\u0027Interval between syncing the node power state to the \u0027"},{"line_number":55,"context_line":"                      \u0027database, in seconds. Set to 0 to disable syncing.\u0027)),"},{"line_number":56,"context_line":"    cfg.IntOpt(\u0027check_provision_state_interval\u0027,"}],"source_content_type":"text/x-python","patch_set":13,"id":"7faddb67_cab883e6","line":53,"range":{"start_line":53,"start_character":23,"end_line":53,"end_character":24},"in_reply_to":"7faddb67_0f3b1b9c","updated":"2019-07-12 03:32:41.000000000","message":"+1","commit_id":"70edd67c1dc1d830a16bec2e46733055a48b64c9"},{"author":{"_account_id":22271,"name":"paresh","email":"paresh.sao@hpe.com","username":"kesper"},"change_message_id":"ab93103c6ef0dcf99e59eff9aa28e904f0528c20","unresolved":false,"context_lines":[{"line_number":50,"context_line":"                      \u0027of a conductor. A conductor is considered inactive \u0027"},{"line_number":51,"context_line":"                      \u0027when this time has been exceeded.\u0027)),"},{"line_number":52,"context_line":"    cfg.IntOpt(\u0027sync_power_state_interval\u0027,"},{"line_number":53,"context_line":"               default\u003d5,"},{"line_number":54,"context_line":"               help\u003d_(\u0027Interval between syncing the node power state to the \u0027"},{"line_number":55,"context_line":"                      \u0027database, in seconds. Set to 0 to disable syncing.\u0027)),"},{"line_number":56,"context_line":"    cfg.IntOpt(\u0027check_provision_state_interval\u0027,"}],"source_content_type":"text/x-python","patch_set":13,"id":"7faddb67_05320c60","line":53,"range":{"start_line":53,"start_character":23,"end_line":53,"end_character":24},"in_reply_to":"7faddb67_0f3b1b9c","updated":"2019-07-12 06:45:35.000000000","message":"Sorry, mistakenly i did, I corrected now.","commit_id":"70edd67c1dc1d830a16bec2e46733055a48b64c9"},{"author":{"_account_id":22271,"name":"paresh","email":"paresh.sao@hpe.com","username":"kesper"},"change_message_id":"ab93103c6ef0dcf99e59eff9aa28e904f0528c20","unresolved":false,"context_lines":[{"line_number":50,"context_line":"                      \u0027of a conductor. A conductor is considered inactive \u0027"},{"line_number":51,"context_line":"                      \u0027when this time has been exceeded.\u0027)),"},{"line_number":52,"context_line":"    cfg.IntOpt(\u0027sync_power_state_interval\u0027,"},{"line_number":53,"context_line":"               default\u003d5,"},{"line_number":54,"context_line":"               help\u003d_(\u0027Interval between syncing the node power state to the \u0027"},{"line_number":55,"context_line":"                      \u0027database, in seconds. Set to 0 to disable syncing.\u0027)),"},{"line_number":56,"context_line":"    cfg.IntOpt(\u0027check_provision_state_interval\u0027,"}],"source_content_type":"text/x-python","patch_set":13,"id":"7faddb67_a532185d","line":53,"range":{"start_line":53,"start_character":23,"end_line":53,"end_character":24},"in_reply_to":"7faddb67_cab883e6","updated":"2019-07-12 06:45:35.000000000","message":"Done","commit_id":"70edd67c1dc1d830a16bec2e46733055a48b64c9"},{"author":{"_account_id":10206,"name":"Madhuri Kumari","email":"madhuri.kumari@intel.com","username":"Madhuri"},"change_message_id":"037732c0c1ea6a3693a6947bd52dad2aea48edac","unresolved":false,"context_lines":[{"line_number":179,"context_line":"                       \u0027trusted (eg, because there is only one tenant), \u0027"},{"line_number":180,"context_line":"                       \u0027this option could be safely disabled.\u0027)),"},{"line_number":181,"context_line":"    cfg.IntOpt(\u0027clean_callback_timeout\u0027,"},{"line_number":182,"context_line":"               default\u003d0,"},{"line_number":183,"context_line":"               help\u003d_(\u0027Timeout (seconds) to wait for a callback from the \u0027"},{"line_number":184,"context_line":"                      \u0027ramdisk doing the cleaning. If the timeout is reached \u0027"},{"line_number":185,"context_line":"                      \u0027the node will be put in the \"clean failed\" provision \u0027"}],"source_content_type":"text/x-python","patch_set":13,"id":"7faddb67_ef60ffa7","line":182,"range":{"start_line":182,"start_character":23,"end_line":182,"end_character":24},"updated":"2019-07-11 10:47:45.000000000","message":"Doesn\u0027t it mean that we aren\u0027t waiting for the callback at all?","commit_id":"70edd67c1dc1d830a16bec2e46733055a48b64c9"},{"author":{"_account_id":22271,"name":"paresh","email":"paresh.sao@hpe.com","username":"kesper"},"change_message_id":"ab93103c6ef0dcf99e59eff9aa28e904f0528c20","unresolved":false,"context_lines":[{"line_number":179,"context_line":"                       \u0027trusted (eg, because there is only one tenant), \u0027"},{"line_number":180,"context_line":"                       \u0027this option could be safely disabled.\u0027)),"},{"line_number":181,"context_line":"    cfg.IntOpt(\u0027clean_callback_timeout\u0027,"},{"line_number":182,"context_line":"               default\u003d0,"},{"line_number":183,"context_line":"               help\u003d_(\u0027Timeout (seconds) to wait for a callback from the \u0027"},{"line_number":184,"context_line":"                      \u0027ramdisk doing the cleaning. If the timeout is reached \u0027"},{"line_number":185,"context_line":"                      \u0027the node will be put in the \"clean failed\" provision \u0027"}],"source_content_type":"text/x-python","patch_set":13,"id":"7faddb67_254628c2","line":182,"range":{"start_line":182,"start_character":23,"end_line":182,"end_character":24},"in_reply_to":"7faddb67_4ac4935f","updated":"2019-07-12 06:45:35.000000000","message":"Done","commit_id":"70edd67c1dc1d830a16bec2e46733055a48b64c9"},{"author":{"_account_id":22271,"name":"paresh","email":"paresh.sao@hpe.com","username":"kesper"},"change_message_id":"ab93103c6ef0dcf99e59eff9aa28e904f0528c20","unresolved":false,"context_lines":[{"line_number":179,"context_line":"                       \u0027trusted (eg, because there is only one tenant), \u0027"},{"line_number":180,"context_line":"                       \u0027this option could be safely disabled.\u0027)),"},{"line_number":181,"context_line":"    cfg.IntOpt(\u0027clean_callback_timeout\u0027,"},{"line_number":182,"context_line":"               default\u003d0,"},{"line_number":183,"context_line":"               help\u003d_(\u0027Timeout (seconds) to wait for a callback from the \u0027"},{"line_number":184,"context_line":"                      \u0027ramdisk doing the cleaning. If the timeout is reached \u0027"},{"line_number":185,"context_line":"                      \u0027the node will be put in the \"clean failed\" provision \u0027"}],"source_content_type":"text/x-python","patch_set":13,"id":"7faddb67_853d9c2c","line":182,"range":{"start_line":182,"start_character":23,"end_line":182,"end_character":24},"in_reply_to":"7faddb67_ef60ffa7","updated":"2019-07-12 06:45:35.000000000","message":"Done","commit_id":"70edd67c1dc1d830a16bec2e46733055a48b64c9"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"b81c774112cf1630dc1b5dc5c43e0ac466d80e11","unresolved":false,"context_lines":[{"line_number":179,"context_line":"                       \u0027trusted (eg, because there is only one tenant), \u0027"},{"line_number":180,"context_line":"                       \u0027this option could be safely disabled.\u0027)),"},{"line_number":181,"context_line":"    cfg.IntOpt(\u0027clean_callback_timeout\u0027,"},{"line_number":182,"context_line":"               default\u003d0,"},{"line_number":183,"context_line":"               help\u003d_(\u0027Timeout (seconds) to wait for a callback from the \u0027"},{"line_number":184,"context_line":"                      \u0027ramdisk doing the cleaning. If the timeout is reached \u0027"},{"line_number":185,"context_line":"                      \u0027the node will be put in the \"clean failed\" provision \u0027"}],"source_content_type":"text/x-python","patch_set":13,"id":"7faddb67_4ac4935f","line":182,"range":{"start_line":182,"start_character":23,"end_line":182,"end_character":24},"in_reply_to":"7faddb67_ef60ffa7","updated":"2019-07-12 03:32:41.000000000","message":"We should not be changing the value here. It should go into documenatation. Disk erase is a long running task. This needs to be set appropriately to avoid clean failure resulting from timeout.","commit_id":"70edd67c1dc1d830a16bec2e46733055a48b64c9"}],"ironic/conf/ilo.py":[{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"b81c774112cf1630dc1b5dc5c43e0ac466d80e11","unresolved":false,"context_lines":[{"line_number":66,"context_line":"               default\u003d2,"},{"line_number":67,"context_line":"               help\u003d_(\u0027Amount of time in seconds to wait in between power \u0027"},{"line_number":68,"context_line":"                      \u0027operations\u0027)),"},{"line_number":69,"context_line":"    cfg.IntOpt(\u0027erase_devices_job_status_interval\u0027,"},{"line_number":70,"context_line":"               min\u003d10,"},{"line_number":71,"context_line":"               default\u003d30,"},{"line_number":72,"context_line":"               help\u003d_(\u0027Interval (in seconds) between periodic erase-devices \u0027"}],"source_content_type":"text/x-python","patch_set":13,"id":"7faddb67_eab9bfcb","line":69,"range":{"start_line":69,"start_character":16,"end_line":69,"end_character":49},"updated":"2019-07-12 03:32:41.000000000","message":"Dont this need the upper timeout limit after which this step would be marked as failed?","commit_id":"70edd67c1dc1d830a16bec2e46733055a48b64c9"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"b81c774112cf1630dc1b5dc5c43e0ac466d80e11","unresolved":false,"context_lines":[{"line_number":66,"context_line":"               default\u003d2,"},{"line_number":67,"context_line":"               help\u003d_(\u0027Amount of time in seconds to wait in between power \u0027"},{"line_number":68,"context_line":"                      \u0027operations\u0027)),"},{"line_number":69,"context_line":"    cfg.IntOpt(\u0027erase_devices_job_status_interval\u0027,"},{"line_number":70,"context_line":"               min\u003d10,"},{"line_number":71,"context_line":"               default\u003d30,"},{"line_number":72,"context_line":"               help\u003d_(\u0027Interval (in seconds) between periodic erase-devices \u0027"}],"source_content_type":"text/x-python","patch_set":13,"id":"7faddb67_ea8bff1b","line":69,"range":{"start_line":69,"start_character":16,"end_line":69,"end_character":49},"updated":"2019-07-12 03:32:41.000000000","message":"may be the config name can have \u0027oob\u0027 somewhere to indicate its used only for OOB. Say \u0027oob_erase_devices_job_status_interval\u0027","commit_id":"70edd67c1dc1d830a16bec2e46733055a48b64c9"},{"author":{"_account_id":22271,"name":"paresh","email":"paresh.sao@hpe.com","username":"kesper"},"change_message_id":"ab93103c6ef0dcf99e59eff9aa28e904f0528c20","unresolved":false,"context_lines":[{"line_number":66,"context_line":"               default\u003d2,"},{"line_number":67,"context_line":"               help\u003d_(\u0027Amount of time in seconds to wait in between power \u0027"},{"line_number":68,"context_line":"                      \u0027operations\u0027)),"},{"line_number":69,"context_line":"    cfg.IntOpt(\u0027erase_devices_job_status_interval\u0027,"},{"line_number":70,"context_line":"               min\u003d10,"},{"line_number":71,"context_line":"               default\u003d30,"},{"line_number":72,"context_line":"               help\u003d_(\u0027Interval (in seconds) between periodic erase-devices \u0027"}],"source_content_type":"text/x-python","patch_set":13,"id":"7faddb67_8526fc14","line":69,"range":{"start_line":69,"start_character":16,"end_line":69,"end_character":49},"in_reply_to":"7faddb67_ea8bff1b","updated":"2019-07-12 06:45:35.000000000","message":"Done","commit_id":"70edd67c1dc1d830a16bec2e46733055a48b64c9"},{"author":{"_account_id":22271,"name":"paresh","email":"paresh.sao@hpe.com","username":"kesper"},"change_message_id":"ab93103c6ef0dcf99e59eff9aa28e904f0528c20","unresolved":false,"context_lines":[{"line_number":66,"context_line":"               default\u003d2,"},{"line_number":67,"context_line":"               help\u003d_(\u0027Amount of time in seconds to wait in between power \u0027"},{"line_number":68,"context_line":"                      \u0027operations\u0027)),"},{"line_number":69,"context_line":"    cfg.IntOpt(\u0027erase_devices_job_status_interval\u0027,"},{"line_number":70,"context_line":"               min\u003d10,"},{"line_number":71,"context_line":"               default\u003d30,"},{"line_number":72,"context_line":"               help\u003d_(\u0027Interval (in seconds) between periodic erase-devices \u0027"}],"source_content_type":"text/x-python","patch_set":13,"id":"7faddb67_652980e4","line":69,"range":{"start_line":69,"start_character":16,"end_line":69,"end_character":49},"in_reply_to":"7faddb67_eab9bfcb","updated":"2019-07-12 06:45:35.000000000","message":"There is no upper timeout in disk erase case, since there is no way to figure out, it fails.","commit_id":"70edd67c1dc1d830a16bec2e46733055a48b64c9"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"b81c774112cf1630dc1b5dc5c43e0ac466d80e11","unresolved":false,"context_lines":[{"line_number":68,"context_line":"                      \u0027operations\u0027)),"},{"line_number":69,"context_line":"    cfg.IntOpt(\u0027erase_devices_job_status_interval\u0027,"},{"line_number":70,"context_line":"               min\u003d10,"},{"line_number":71,"context_line":"               default\u003d30,"},{"line_number":72,"context_line":"               help\u003d_(\u0027Interval (in seconds) between periodic erase-devices \u0027"},{"line_number":73,"context_line":"                      \u0027status checks to determine whether the asynchronous \u0027"},{"line_number":74,"context_line":"                      \u0027erase-devices was successfully finished or not.\u0027)),"}],"source_content_type":"text/x-python","patch_set":13,"id":"7faddb67_8a936b5b","line":71,"range":{"start_line":71,"start_character":15,"end_line":71,"end_character":26},"updated":"2019-07-12 03:32:41.000000000","message":"Given that disk erase takes hours together, this looks too fast. May be we should check every 5 mins or so.","commit_id":"70edd67c1dc1d830a16bec2e46733055a48b64c9"},{"author":{"_account_id":22271,"name":"paresh","email":"paresh.sao@hpe.com","username":"kesper"},"change_message_id":"ab93103c6ef0dcf99e59eff9aa28e904f0528c20","unresolved":false,"context_lines":[{"line_number":68,"context_line":"                      \u0027operations\u0027)),"},{"line_number":69,"context_line":"    cfg.IntOpt(\u0027erase_devices_job_status_interval\u0027,"},{"line_number":70,"context_line":"               min\u003d10,"},{"line_number":71,"context_line":"               default\u003d30,"},{"line_number":72,"context_line":"               help\u003d_(\u0027Interval (in seconds) between periodic erase-devices \u0027"},{"line_number":73,"context_line":"                      \u0027status checks to determine whether the asynchronous \u0027"},{"line_number":74,"context_line":"                      \u0027erase-devices was successfully finished or not.\u0027)),"}],"source_content_type":"text/x-python","patch_set":13,"id":"7faddb67_856b5c1c","line":71,"range":{"start_line":71,"start_character":15,"end_line":71,"end_character":26},"in_reply_to":"7faddb67_8a936b5b","updated":"2019-07-12 06:45:35.000000000","message":"Done","commit_id":"70edd67c1dc1d830a16bec2e46733055a48b64c9"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"b81c774112cf1630dc1b5dc5c43e0ac466d80e11","unresolved":false,"context_lines":[{"line_number":71,"context_line":"               default\u003d30,"},{"line_number":72,"context_line":"               help\u003d_(\u0027Interval (in seconds) between periodic erase-devices \u0027"},{"line_number":73,"context_line":"                      \u0027status checks to determine whether the asynchronous \u0027"},{"line_number":74,"context_line":"                      \u0027erase-devices was successfully finished or not.\u0027)),"},{"line_number":75,"context_line":"    cfg.StrOpt(\u0027ca_file\u0027,"},{"line_number":76,"context_line":"               help\u003d_(\u0027CA certificate file to validate iLO.\u0027)),"},{"line_number":77,"context_line":"    cfg.StrOpt(\u0027default_boot_mode\u0027,"}],"source_content_type":"text/x-python","patch_set":13,"id":"7faddb67_aa8187fd","line":74,"range":{"start_line":74,"start_character":23,"end_line":74,"end_character":36},"updated":"2019-07-12 03:32:41.000000000","message":"s/ \u0027erase-devices\u0027 / \u0027out-of-band erase devices\u0027/","commit_id":"70edd67c1dc1d830a16bec2e46733055a48b64c9"},{"author":{"_account_id":22271,"name":"paresh","email":"paresh.sao@hpe.com","username":"kesper"},"change_message_id":"ab93103c6ef0dcf99e59eff9aa28e904f0528c20","unresolved":false,"context_lines":[{"line_number":71,"context_line":"               default\u003d30,"},{"line_number":72,"context_line":"               help\u003d_(\u0027Interval (in seconds) between periodic erase-devices \u0027"},{"line_number":73,"context_line":"                      \u0027status checks to determine whether the asynchronous \u0027"},{"line_number":74,"context_line":"                      \u0027erase-devices was successfully finished or not.\u0027)),"},{"line_number":75,"context_line":"    cfg.StrOpt(\u0027ca_file\u0027,"},{"line_number":76,"context_line":"               help\u003d_(\u0027CA certificate file to validate iLO.\u0027)),"},{"line_number":77,"context_line":"    cfg.StrOpt(\u0027default_boot_mode\u0027,"}],"source_content_type":"text/x-python","patch_set":13,"id":"7faddb67_2574e8fd","line":74,"range":{"start_line":74,"start_character":23,"end_line":74,"end_character":36},"in_reply_to":"7faddb67_aa8187fd","updated":"2019-07-12 06:45:35.000000000","message":"Done","commit_id":"70edd67c1dc1d830a16bec2e46733055a48b64c9"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"6a5db93e9918e8f323b75fed419e8e4cf603400d","unresolved":false,"context_lines":[{"line_number":72,"context_line":"               help\u003d_(\u0027Interval (in seconds) between periodic erase-devices \u0027"},{"line_number":73,"context_line":"                      \u0027status checks to determine whether the asynchronous \u0027"},{"line_number":74,"context_line":"                      \u0027out-of-band erase-devices was successfully finished or \u0027"},{"line_number":75,"context_line":"                      \u0027not.\u0027)),"},{"line_number":76,"context_line":"    cfg.StrOpt(\u0027ca_file\u0027,"},{"line_number":77,"context_line":"               help\u003d_(\u0027CA certificate file to validate iLO.\u0027)),"},{"line_number":78,"context_line":"    cfg.StrOpt(\u0027default_boot_mode\u0027,"}],"source_content_type":"text/x-python","patch_set":21,"id":"7faddb67_a57d6ab3","line":75,"updated":"2019-08-27 18:14:03.000000000","message":"It might be good to indicate what this should take on ilo gear time wise... in general. Or how it might vary.","commit_id":"c0799c95eddd1e870b4c6ce195cbee66fe104674"}],"ironic/drivers/ilo.py":[{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"b81c774112cf1630dc1b5dc5c43e0ac466d80e11","unresolved":false,"context_lines":[{"line_number":86,"context_line":"    @property"},{"line_number":87,"context_line":"    def supported_management_interfaces(self):"},{"line_number":88,"context_line":"        \"\"\"List of supported management interfaces.\"\"\""},{"line_number":89,"context_line":"        return [management.Ilo5Management, management.IloManagement]"}],"source_content_type":"text/x-python","patch_set":13,"id":"7faddb67_6a7f0f15","line":89,"range":{"start_line":89,"start_character":43,"end_line":89,"end_character":67},"updated":"2019-07-12 03:32:41.000000000","message":"Do we need this? All the methods of management.IloManagement would be available to Ilo5Management.","commit_id":"70edd67c1dc1d830a16bec2e46733055a48b64c9"},{"author":{"_account_id":22271,"name":"paresh","email":"paresh.sao@hpe.com","username":"kesper"},"change_message_id":"ab93103c6ef0dcf99e59eff9aa28e904f0528c20","unresolved":false,"context_lines":[{"line_number":86,"context_line":"    @property"},{"line_number":87,"context_line":"    def supported_management_interfaces(self):"},{"line_number":88,"context_line":"        \"\"\"List of supported management interfaces.\"\"\""},{"line_number":89,"context_line":"        return [management.Ilo5Management, management.IloManagement]"}],"source_content_type":"text/x-python","patch_set":13,"id":"7faddb67_0569ac1f","line":89,"range":{"start_line":89,"start_character":43,"end_line":89,"end_character":67},"in_reply_to":"7faddb67_6a7f0f15","updated":"2019-07-12 06:45:35.000000000","message":"Done","commit_id":"70edd67c1dc1d830a16bec2e46733055a48b64c9"}],"ironic/drivers/modules/ilo/management.py":[{"author":{"_account_id":10206,"name":"Madhuri Kumari","email":"madhuri.kumari@intel.com","username":"Madhuri"},"change_message_id":"037732c0c1ea6a3693a6947bd52dad2aea48edac","unresolved":false,"context_lines":[{"line_number":618,"context_line":""},{"line_number":619,"context_line":"class Ilo5Management(IloManagement):"},{"line_number":620,"context_line":""},{"line_number":621,"context_line":"    def _set_driver_internal_true_value(self, task, *keys):"},{"line_number":622,"context_line":"        driver_internal_info \u003d task.node.driver_internal_info"},{"line_number":623,"context_line":"        for key in keys:"},{"line_number":624,"context_line":"            driver_internal_info[key] \u003d True"},{"line_number":625,"context_line":"        task.node.driver_internal_info \u003d driver_internal_info"},{"line_number":626,"context_line":"        task.node.save()"},{"line_number":627,"context_line":""},{"line_number":628,"context_line":"    def _set_driver_internal_false_value(self, task, *keys):"},{"line_number":629,"context_line":"        driver_internal_info \u003d task.node.driver_internal_info"},{"line_number":630,"context_line":"        for key in keys:"},{"line_number":631,"context_line":"            driver_internal_info[key] \u003d False"},{"line_number":632,"context_line":"        task.node.driver_internal_info \u003d driver_internal_info"},{"line_number":633,"context_line":"        task.node.save()"},{"line_number":634,"context_line":""},{"line_number":635,"context_line":"    def _pop_driver_internal_values(self, task, *keys):"},{"line_number":636,"context_line":"        driver_internal_info \u003d task.node.driver_internal_info"}],"source_content_type":"text/x-python","patch_set":13,"id":"7faddb67_cf2bc32d","line":633,"range":{"start_line":621,"start_character":4,"end_line":633,"end_character":24},"updated":"2019-07-11 10:47:45.000000000","message":"We can merge this two methods in one::\n\n  def _set_driver_internal_value(self, task, value, *keys):","commit_id":"70edd67c1dc1d830a16bec2e46733055a48b64c9"},{"author":{"_account_id":22271,"name":"paresh","email":"paresh.sao@hpe.com","username":"kesper"},"change_message_id":"ab93103c6ef0dcf99e59eff9aa28e904f0528c20","unresolved":false,"context_lines":[{"line_number":618,"context_line":""},{"line_number":619,"context_line":"class Ilo5Management(IloManagement):"},{"line_number":620,"context_line":""},{"line_number":621,"context_line":"    def _set_driver_internal_true_value(self, task, *keys):"},{"line_number":622,"context_line":"        driver_internal_info \u003d task.node.driver_internal_info"},{"line_number":623,"context_line":"        for key in keys:"},{"line_number":624,"context_line":"            driver_internal_info[key] \u003d True"},{"line_number":625,"context_line":"        task.node.driver_internal_info \u003d driver_internal_info"},{"line_number":626,"context_line":"        task.node.save()"},{"line_number":627,"context_line":""},{"line_number":628,"context_line":"    def _set_driver_internal_false_value(self, task, *keys):"},{"line_number":629,"context_line":"        driver_internal_info \u003d task.node.driver_internal_info"},{"line_number":630,"context_line":"        for key in keys:"},{"line_number":631,"context_line":"            driver_internal_info[key] \u003d False"},{"line_number":632,"context_line":"        task.node.driver_internal_info \u003d driver_internal_info"},{"line_number":633,"context_line":"        task.node.save()"},{"line_number":634,"context_line":""},{"line_number":635,"context_line":"    def _pop_driver_internal_values(self, task, *keys):"},{"line_number":636,"context_line":"        driver_internal_info \u003d task.node.driver_internal_info"}],"source_content_type":"text/x-python","patch_set":13,"id":"7faddb67_8554bc54","line":633,"range":{"start_line":621,"start_character":4,"end_line":633,"end_character":24},"in_reply_to":"7faddb67_cf2bc32d","updated":"2019-07-12 06:45:35.000000000","message":"Done","commit_id":"70edd67c1dc1d830a16bec2e46733055a48b64c9"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"b81c774112cf1630dc1b5dc5c43e0ac466d80e11","unresolved":false,"context_lines":[{"line_number":640,"context_line":"        task.node.save()"},{"line_number":641,"context_line":""},{"line_number":642,"context_line":"    def _set_clean_failed(self, task, msg):"},{"line_number":643,"context_line":"        LOG.error(\"erase_devices job failed for node %(node)s. \""},{"line_number":644,"context_line":"                  \"Message: \u0027%(message)s\u0027.\","},{"line_number":645,"context_line":"                  {\u0027node\u0027: task.node.uuid, \u0027message\u0027: msg})"},{"line_number":646,"context_line":"        task.node.last_error \u003d msg"}],"source_content_type":"text/x-python","patch_set":13,"id":"7faddb67_ea90df45","line":643,"range":{"start_line":643,"start_character":19,"end_line":643,"end_character":32},"updated":"2019-07-12 03:32:41.000000000","message":"s/\u0027erase_devices\u0027/ \u0027Out-of-band sanitize disk erase\u0027 /","commit_id":"70edd67c1dc1d830a16bec2e46733055a48b64c9"},{"author":{"_account_id":22271,"name":"paresh","email":"paresh.sao@hpe.com","username":"kesper"},"change_message_id":"ab93103c6ef0dcf99e59eff9aa28e904f0528c20","unresolved":false,"context_lines":[{"line_number":640,"context_line":"        task.node.save()"},{"line_number":641,"context_line":""},{"line_number":642,"context_line":"    def _set_clean_failed(self, task, msg):"},{"line_number":643,"context_line":"        LOG.error(\"erase_devices job failed for node %(node)s. \""},{"line_number":644,"context_line":"                  \"Message: \u0027%(message)s\u0027.\","},{"line_number":645,"context_line":"                  {\u0027node\u0027: task.node.uuid, \u0027message\u0027: msg})"},{"line_number":646,"context_line":"        task.node.last_error \u003d msg"}],"source_content_type":"text/x-python","patch_set":13,"id":"7faddb67_254dc8c3","line":643,"range":{"start_line":643,"start_character":19,"end_line":643,"end_character":32},"in_reply_to":"7faddb67_ea90df45","updated":"2019-07-12 06:45:35.000000000","message":"Done","commit_id":"70edd67c1dc1d830a16bec2e46733055a48b64c9"},{"author":{"_account_id":10206,"name":"Madhuri Kumari","email":"madhuri.kumari@intel.com","username":"Madhuri"},"change_message_id":"037732c0c1ea6a3693a6947bd52dad2aea48edac","unresolved":false,"context_lines":[{"line_number":650,"context_line":"        \"\"\"Wait for out-of-band sanitize disk erase to be completed.\"\"\""},{"line_number":651,"context_line":"        interval \u003d CONF.ilo.erase_devices_job_status_interval"},{"line_number":652,"context_line":"        ilo_object \u003d ilo_common.get_ilo_object(node)"},{"line_number":653,"context_line":"        time_elps \u003d [0]"},{"line_number":654,"context_line":"        time_elps[0] \u003d 0"},{"line_number":655,"context_line":""},{"line_number":656,"context_line":"        def _wait():"}],"source_content_type":"text/x-python","patch_set":13,"id":"7faddb67_efbc7fdd","line":653,"range":{"start_line":653,"start_character":8,"end_line":653,"end_character":23},"updated":"2019-07-11 10:47:45.000000000","message":"List is not required here. Please use int type for time_elps.","commit_id":"70edd67c1dc1d830a16bec2e46733055a48b64c9"},{"author":{"_account_id":22271,"name":"paresh","email":"paresh.sao@hpe.com","username":"kesper"},"change_message_id":"ab93103c6ef0dcf99e59eff9aa28e904f0528c20","unresolved":false,"context_lines":[{"line_number":650,"context_line":"        \"\"\"Wait for out-of-band sanitize disk erase to be completed.\"\"\""},{"line_number":651,"context_line":"        interval \u003d CONF.ilo.erase_devices_job_status_interval"},{"line_number":652,"context_line":"        ilo_object \u003d ilo_common.get_ilo_object(node)"},{"line_number":653,"context_line":"        time_elps \u003d [0]"},{"line_number":654,"context_line":"        time_elps[0] \u003d 0"},{"line_number":655,"context_line":""},{"line_number":656,"context_line":"        def _wait():"}],"source_content_type":"text/x-python","patch_set":13,"id":"7faddb67_25e2a8a1","line":653,"range":{"start_line":653,"start_character":8,"end_line":653,"end_character":23},"in_reply_to":"7faddb67_efbc7fdd","updated":"2019-07-12 06:45:35.000000000","message":"int type wont work here, since the value going to update inside the nested function, and python had some scope problem in nested function.","commit_id":"70edd67c1dc1d830a16bec2e46733055a48b64c9"},{"author":{"_account_id":10206,"name":"Madhuri Kumari","email":"madhuri.kumari@intel.com","username":"Madhuri"},"change_message_id":"037732c0c1ea6a3693a6947bd52dad2aea48edac","unresolved":false,"context_lines":[{"line_number":651,"context_line":"        interval \u003d CONF.ilo.erase_devices_job_status_interval"},{"line_number":652,"context_line":"        ilo_object \u003d ilo_common.get_ilo_object(node)"},{"line_number":653,"context_line":"        time_elps \u003d [0]"},{"line_number":654,"context_line":"        time_elps[0] \u003d 0"},{"line_number":655,"context_line":""},{"line_number":656,"context_line":"        def _wait():"},{"line_number":657,"context_line":"            if ilo_object.has_disk_erase_completed():"}],"source_content_type":"text/x-python","patch_set":13,"id":"7faddb67_4f17d3ee","line":654,"range":{"start_line":654,"start_character":8,"end_line":654,"end_character":24},"updated":"2019-07-11 10:47:45.000000000","message":"This line has no change to time_elps. Already the value is 0.","commit_id":"70edd67c1dc1d830a16bec2e46733055a48b64c9"},{"author":{"_account_id":22271,"name":"paresh","email":"paresh.sao@hpe.com","username":"kesper"},"change_message_id":"ab93103c6ef0dcf99e59eff9aa28e904f0528c20","unresolved":false,"context_lines":[{"line_number":651,"context_line":"        interval \u003d CONF.ilo.erase_devices_job_status_interval"},{"line_number":652,"context_line":"        ilo_object \u003d ilo_common.get_ilo_object(node)"},{"line_number":653,"context_line":"        time_elps \u003d [0]"},{"line_number":654,"context_line":"        time_elps[0] \u003d 0"},{"line_number":655,"context_line":""},{"line_number":656,"context_line":"        def _wait():"},{"line_number":657,"context_line":"            if ilo_object.has_disk_erase_completed():"}],"source_content_type":"text/x-python","patch_set":13,"id":"7faddb67_05f76c61","line":654,"range":{"start_line":654,"start_character":8,"end_line":654,"end_character":24},"in_reply_to":"7faddb67_4f17d3ee","updated":"2019-07-12 06:45:35.000000000","message":"Done","commit_id":"70edd67c1dc1d830a16bec2e46733055a48b64c9"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"b81c774112cf1630dc1b5dc5c43e0ac466d80e11","unresolved":false,"context_lines":[{"line_number":653,"context_line":"        time_elps \u003d [0]"},{"line_number":654,"context_line":"        time_elps[0] \u003d 0"},{"line_number":655,"context_line":""},{"line_number":656,"context_line":"        def _wait():"},{"line_number":657,"context_line":"            if ilo_object.has_disk_erase_completed():"},{"line_number":658,"context_line":"                raise loopingcall.LoopingCallDone()"},{"line_number":659,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"7faddb67_0abf7bb0","line":656,"range":{"start_line":656,"start_character":8,"end_line":656,"end_character":20},"updated":"2019-07-12 03:32:41.000000000","message":"We also need to check if the timeout has reached while waiting for this task to complete.","commit_id":"70edd67c1dc1d830a16bec2e46733055a48b64c9"},{"author":{"_account_id":22271,"name":"paresh","email":"paresh.sao@hpe.com","username":"kesper"},"change_message_id":"ab93103c6ef0dcf99e59eff9aa28e904f0528c20","unresolved":false,"context_lines":[{"line_number":653,"context_line":"        time_elps \u003d [0]"},{"line_number":654,"context_line":"        time_elps[0] \u003d 0"},{"line_number":655,"context_line":""},{"line_number":656,"context_line":"        def _wait():"},{"line_number":657,"context_line":"            if ilo_object.has_disk_erase_completed():"},{"line_number":658,"context_line":"                raise loopingcall.LoopingCallDone()"},{"line_number":659,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"7faddb67_c5ecf490","line":656,"range":{"start_line":656,"start_character":8,"end_line":656,"end_character":20},"in_reply_to":"7faddb67_0abf7bb0","updated":"2019-07-12 06:45:35.000000000","message":"there is no upper bound time limit in sanitize disk erase, since there is no way to figure that out.","commit_id":"70edd67c1dc1d830a16bec2e46733055a48b64c9"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"b81c774112cf1630dc1b5dc5c43e0ac466d80e11","unresolved":false,"context_lines":[{"line_number":655,"context_line":""},{"line_number":656,"context_line":"        def _wait():"},{"line_number":657,"context_line":"            if ilo_object.has_disk_erase_completed():"},{"line_number":658,"context_line":"                raise loopingcall.LoopingCallDone()"},{"line_number":659,"context_line":""},{"line_number":660,"context_line":"            time_elps[0] +\u003d interval"},{"line_number":661,"context_line":"            LOG.debug(\"%(tim)s secs elapsed while waiting for out-of-band \""}],"source_content_type":"text/x-python","patch_set":13,"id":"7faddb67_cae963b7","line":658,"range":{"start_line":658,"start_character":16,"end_line":658,"end_character":51},"updated":"2019-07-12 03:32:41.000000000","message":"Better to add a info message here based on \u0027ilo_disk_erase_hdd_check\u0027 and                         \u0027ilo_disk_erase_ssd_check\u0027 which disk erase is completed as it would be running twice.","commit_id":"70edd67c1dc1d830a16bec2e46733055a48b64c9"},{"author":{"_account_id":22271,"name":"paresh","email":"paresh.sao@hpe.com","username":"kesper"},"change_message_id":"ab93103c6ef0dcf99e59eff9aa28e904f0528c20","unresolved":false,"context_lines":[{"line_number":655,"context_line":""},{"line_number":656,"context_line":"        def _wait():"},{"line_number":657,"context_line":"            if ilo_object.has_disk_erase_completed():"},{"line_number":658,"context_line":"                raise loopingcall.LoopingCallDone()"},{"line_number":659,"context_line":""},{"line_number":660,"context_line":"            time_elps[0] +\u003d interval"},{"line_number":661,"context_line":"            LOG.debug(\"%(tim)s secs elapsed while waiting for out-of-band \""}],"source_content_type":"text/x-python","patch_set":13,"id":"7faddb67_a59c580e","line":658,"range":{"start_line":658,"start_character":16,"end_line":658,"end_character":51},"in_reply_to":"7faddb67_cae963b7","updated":"2019-07-12 06:45:35.000000000","message":"After both flag would set then only this function will be called and ilo call \u0027has_disk_erase_completed\u0027 not give specific out that which disk erase completed, there is no way to figure out the same, so can\u0027t pass any message regarding.","commit_id":"70edd67c1dc1d830a16bec2e46733055a48b64c9"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"b81c774112cf1630dc1b5dc5c43e0ac466d80e11","unresolved":false,"context_lines":[{"line_number":703,"context_line":"                  {\u0027node\u0027: node.uuid})"},{"line_number":704,"context_line":"        try:"},{"line_number":705,"context_line":"            ilo_object \u003d ilo_common.get_ilo_object(node)"},{"line_number":706,"context_line":"            disk_types \u003d ilo_object.get_disk_types()"},{"line_number":707,"context_line":""},{"line_number":708,"context_line":"            if disk_types:"},{"line_number":709,"context_line":"                # First disk-erase will execute for HDD\u0027s and after reboot only"}],"source_content_type":"text/x-python","patch_set":13,"id":"7faddb67_6ad2af02","line":706,"range":{"start_line":706,"start_character":12,"end_line":706,"end_character":52},"updated":"2019-07-12 03:32:41.000000000","message":"Add a info message here indicating type of disks detected and inform that it would be exercised for both disks one after another.","commit_id":"70edd67c1dc1d830a16bec2e46733055a48b64c9"},{"author":{"_account_id":22271,"name":"paresh","email":"paresh.sao@hpe.com","username":"kesper"},"change_message_id":"ab93103c6ef0dcf99e59eff9aa28e904f0528c20","unresolved":false,"context_lines":[{"line_number":703,"context_line":"                  {\u0027node\u0027: node.uuid})"},{"line_number":704,"context_line":"        try:"},{"line_number":705,"context_line":"            ilo_object \u003d ilo_common.get_ilo_object(node)"},{"line_number":706,"context_line":"            disk_types \u003d ilo_object.get_disk_types()"},{"line_number":707,"context_line":""},{"line_number":708,"context_line":"            if disk_types:"},{"line_number":709,"context_line":"                # First disk-erase will execute for HDD\u0027s and after reboot only"}],"source_content_type":"text/x-python","patch_set":13,"id":"7faddb67_056a0ced","line":706,"range":{"start_line":706,"start_character":12,"end_line":706,"end_character":52},"in_reply_to":"7faddb67_6ad2af02","updated":"2019-07-12 06:45:35.000000000","message":"Done","commit_id":"70edd67c1dc1d830a16bec2e46733055a48b64c9"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"993e61ea82c54e16dbaad69a05635165a1662918","unresolved":false,"context_lines":[{"line_number":648,"context_line":"        ilo_object \u003d ilo_common.get_ilo_object(node)"},{"line_number":649,"context_line":"        time_elps \u003d [0]"},{"line_number":650,"context_line":""},{"line_number":651,"context_line":"        def _wait():"},{"line_number":652,"context_line":"            if ilo_object.has_disk_erase_completed():"},{"line_number":653,"context_line":"                raise loopingcall.LoopingCallDone()"},{"line_number":654,"context_line":""},{"line_number":655,"context_line":"            time_elps[0] +\u003d interval"},{"line_number":656,"context_line":"            LOG.debug(\"%(tim)s secs elapsed while waiting for out-of-band \""},{"line_number":657,"context_line":"                      \"sanitize disk erase to complete for node %(node)s.\","},{"line_number":658,"context_line":"                      {\u0027tim\u0027: time_elps[0], \u0027node\u0027: node.uuid})"},{"line_number":659,"context_line":""},{"line_number":660,"context_line":"        # Start a timer and wait for the operation to complete."},{"line_number":661,"context_line":"        timer \u003d loopingcall.FixedIntervalLoopingCall(_wait)"}],"source_content_type":"text/x-python","patch_set":16,"id":"7faddb67_d2662056","line":658,"range":{"start_line":651,"start_character":8,"end_line":658,"end_character":63},"updated":"2019-08-13 06:48:22.000000000","message":"This will loop indefinitely till erase is complete. Better to add a comment indicating the same.","commit_id":"b9fab3d7bef4793bbcad0fc8240b281da963493c"},{"author":{"_account_id":22271,"name":"paresh","email":"paresh.sao@hpe.com","username":"kesper"},"change_message_id":"76d1fd8cff7ebb187ec8e824634fae5ec4cedf9c","unresolved":false,"context_lines":[{"line_number":648,"context_line":"        ilo_object \u003d ilo_common.get_ilo_object(node)"},{"line_number":649,"context_line":"        time_elps \u003d [0]"},{"line_number":650,"context_line":""},{"line_number":651,"context_line":"        def _wait():"},{"line_number":652,"context_line":"            if ilo_object.has_disk_erase_completed():"},{"line_number":653,"context_line":"                raise loopingcall.LoopingCallDone()"},{"line_number":654,"context_line":""},{"line_number":655,"context_line":"            time_elps[0] +\u003d interval"},{"line_number":656,"context_line":"            LOG.debug(\"%(tim)s secs elapsed while waiting for out-of-band \""},{"line_number":657,"context_line":"                      \"sanitize disk erase to complete for node %(node)s.\","},{"line_number":658,"context_line":"                      {\u0027tim\u0027: time_elps[0], \u0027node\u0027: node.uuid})"},{"line_number":659,"context_line":""},{"line_number":660,"context_line":"        # Start a timer and wait for the operation to complete."},{"line_number":661,"context_line":"        timer \u003d loopingcall.FixedIntervalLoopingCall(_wait)"}],"source_content_type":"text/x-python","patch_set":16,"id":"7faddb67_15590234","line":658,"range":{"start_line":651,"start_character":8,"end_line":658,"end_character":63},"in_reply_to":"7faddb67_d2662056","updated":"2019-08-13 08:26:25.000000000","message":"Done","commit_id":"b9fab3d7bef4793bbcad0fc8240b281da963493c"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"993e61ea82c54e16dbaad69a05635165a1662918","unresolved":false,"context_lines":[{"line_number":666,"context_line":"    @base.clean_step(priority\u003d0, abortable\u003dFalse, argsinfo\u003d{"},{"line_number":667,"context_line":"        \u0027erase_pattern\u0027: {"},{"line_number":668,"context_line":"            \u0027description\u0027: ("},{"line_number":669,"context_line":"                \u0027Erase pattern to perform specific out-of-band sanitize disk\u0027"},{"line_number":670,"context_line":"                \u0027erase.\u0027"},{"line_number":671,"context_line":"            ),"},{"line_number":672,"context_line":"            \u0027required\u0027: False"}],"source_content_type":"text/x-python","patch_set":16,"id":"7faddb67_921bc8c8","line":669,"range":{"start_line":669,"start_character":72,"end_line":669,"end_character":76},"updated":"2019-08-13 06:48:22.000000000","message":"nit: Add space at end.","commit_id":"b9fab3d7bef4793bbcad0fc8240b281da963493c"},{"author":{"_account_id":22271,"name":"paresh","email":"paresh.sao@hpe.com","username":"kesper"},"change_message_id":"76d1fd8cff7ebb187ec8e824634fae5ec4cedf9c","unresolved":false,"context_lines":[{"line_number":666,"context_line":"    @base.clean_step(priority\u003d0, abortable\u003dFalse, argsinfo\u003d{"},{"line_number":667,"context_line":"        \u0027erase_pattern\u0027: {"},{"line_number":668,"context_line":"            \u0027description\u0027: ("},{"line_number":669,"context_line":"                \u0027Erase pattern to perform specific out-of-band sanitize disk\u0027"},{"line_number":670,"context_line":"                \u0027erase.\u0027"},{"line_number":671,"context_line":"            ),"},{"line_number":672,"context_line":"            \u0027required\u0027: False"}],"source_content_type":"text/x-python","patch_set":16,"id":"7faddb67_b53fceb3","line":669,"range":{"start_line":669,"start_character":72,"end_line":669,"end_character":76},"in_reply_to":"7faddb67_921bc8c8","updated":"2019-08-13 08:26:25.000000000","message":"Done","commit_id":"b9fab3d7bef4793bbcad0fc8240b281da963493c"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"993e61ea82c54e16dbaad69a05635165a1662918","unresolved":false,"context_lines":[{"line_number":667,"context_line":"        \u0027erase_pattern\u0027: {"},{"line_number":668,"context_line":"            \u0027description\u0027: ("},{"line_number":669,"context_line":"                \u0027Erase pattern to perform specific out-of-band sanitize disk\u0027"},{"line_number":670,"context_line":"                \u0027erase.\u0027"},{"line_number":671,"context_line":"            ),"},{"line_number":672,"context_line":"            \u0027required\u0027: False"},{"line_number":673,"context_line":"        }"}],"source_content_type":"text/x-python","patch_set":16,"id":"7faddb67_3261b43a","line":670,"range":{"start_line":670,"start_character":16,"end_line":670,"end_character":24},"updated":"2019-08-13 06:48:22.000000000","message":"Can we add supported value here? Also mention the default pattern used.","commit_id":"b9fab3d7bef4793bbcad0fc8240b281da963493c"},{"author":{"_account_id":22271,"name":"paresh","email":"paresh.sao@hpe.com","username":"kesper"},"change_message_id":"76d1fd8cff7ebb187ec8e824634fae5ec4cedf9c","unresolved":false,"context_lines":[{"line_number":667,"context_line":"        \u0027erase_pattern\u0027: {"},{"line_number":668,"context_line":"            \u0027description\u0027: ("},{"line_number":669,"context_line":"                \u0027Erase pattern to perform specific out-of-band sanitize disk\u0027"},{"line_number":670,"context_line":"                \u0027erase.\u0027"},{"line_number":671,"context_line":"            ),"},{"line_number":672,"context_line":"            \u0027required\u0027: False"},{"line_number":673,"context_line":"        }"}],"source_content_type":"text/x-python","patch_set":16,"id":"7faddb67_352d1e46","line":670,"range":{"start_line":670,"start_character":16,"end_line":670,"end_character":24},"in_reply_to":"7faddb67_3261b43a","updated":"2019-08-13 08:26:25.000000000","message":"Done","commit_id":"b9fab3d7bef4793bbcad0fc8240b281da963493c"},{"author":{"_account_id":10206,"name":"Madhuri Kumari","email":"madhuri.kumari@intel.com","username":"Madhuri"},"change_message_id":"8a0b1440f7d2c1ab6e882a54a328f43256449f3c","unresolved":false,"context_lines":[{"line_number":685,"context_line":"        \"\"\""},{"line_number":686,"context_line":"        erase_pattern \u003d kwargs.get(\u0027erase_pattern\u0027)"},{"line_number":687,"context_line":"        node \u003d task.node"},{"line_number":688,"context_line":"        if not (erase_pattern is None or isinstance(erase_pattern,"},{"line_number":689,"context_line":"                                                    six.string_types)):"},{"line_number":690,"context_line":"            msg \u003d (_(\"Value of \u0027erase_pattern\u0027 must be a string instead of \""},{"line_number":691,"context_line":"                     \"\u0027%(value)s\u0027. Clean step \u0027erase_devices\u0027 is not executed \""},{"line_number":692,"context_line":"                     \"for %(node)s.\")"}],"source_content_type":"text/x-python","patch_set":16,"id":"7faddb67_64353bdb","line":689,"range":{"start_line":688,"start_character":8,"end_line":689,"end_character":71},"updated":"2019-08-12 10:34:10.000000000","message":"This condition will not hold true if erase_pattern is None. Is it expected?","commit_id":"b9fab3d7bef4793bbcad0fc8240b281da963493c"},{"author":{"_account_id":22271,"name":"paresh","email":"paresh.sao@hpe.com","username":"kesper"},"change_message_id":"d0db4745ee9620fe2706c927a3cf639567060058","unresolved":false,"context_lines":[{"line_number":685,"context_line":"        \"\"\""},{"line_number":686,"context_line":"        erase_pattern \u003d kwargs.get(\u0027erase_pattern\u0027)"},{"line_number":687,"context_line":"        node \u003d task.node"},{"line_number":688,"context_line":"        if not (erase_pattern is None or isinstance(erase_pattern,"},{"line_number":689,"context_line":"                                                    six.string_types)):"},{"line_number":690,"context_line":"            msg \u003d (_(\"Value of \u0027erase_pattern\u0027 must be a string instead of \""},{"line_number":691,"context_line":"                     \"\u0027%(value)s\u0027. Clean step \u0027erase_devices\u0027 is not executed \""},{"line_number":692,"context_line":"                     \"for %(node)s.\")"}],"source_content_type":"text/x-python","patch_set":16,"id":"7faddb67_6882de54","line":689,"range":{"start_line":688,"start_character":8,"end_line":689,"end_character":71},"in_reply_to":"7faddb67_64353bdb","updated":"2019-08-13 05:00:30.000000000","message":"Yes this is expected, passing erase_pattern is optional.","commit_id":"b9fab3d7bef4793bbcad0fc8240b281da963493c"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"993e61ea82c54e16dbaad69a05635165a1662918","unresolved":false,"context_lines":[{"line_number":689,"context_line":"                                                    six.string_types)):"},{"line_number":690,"context_line":"            msg \u003d (_(\"Value of \u0027erase_pattern\u0027 must be a string instead of \""},{"line_number":691,"context_line":"                     \"\u0027%(value)s\u0027. Clean step \u0027erase_devices\u0027 is not executed \""},{"line_number":692,"context_line":"                     \"for %(node)s.\")"},{"line_number":693,"context_line":"                   % {\u0027value\u0027: erase_pattern, \u0027node\u0027: node.uuid})"},{"line_number":694,"context_line":"            LOG.error(msg)"},{"line_number":695,"context_line":"            raise exception.InvalidParameterValue(msg)"}],"source_content_type":"text/x-python","patch_set":16,"id":"7faddb67_924988b8","line":692,"range":{"start_line":692,"start_character":22,"end_line":692,"end_character":35},"updated":"2019-08-13 06:48:22.000000000","message":"Also mention supported values for \u0027erase_pattern\u0027","commit_id":"b9fab3d7bef4793bbcad0fc8240b281da963493c"},{"author":{"_account_id":22271,"name":"paresh","email":"paresh.sao@hpe.com","username":"kesper"},"change_message_id":"76d1fd8cff7ebb187ec8e824634fae5ec4cedf9c","unresolved":false,"context_lines":[{"line_number":689,"context_line":"                                                    six.string_types)):"},{"line_number":690,"context_line":"            msg \u003d (_(\"Value of \u0027erase_pattern\u0027 must be a string instead of \""},{"line_number":691,"context_line":"                     \"\u0027%(value)s\u0027. Clean step \u0027erase_devices\u0027 is not executed \""},{"line_number":692,"context_line":"                     \"for %(node)s.\")"},{"line_number":693,"context_line":"                   % {\u0027value\u0027: erase_pattern, \u0027node\u0027: node.uuid})"},{"line_number":694,"context_line":"            LOG.error(msg)"},{"line_number":695,"context_line":"            raise exception.InvalidParameterValue(msg)"}],"source_content_type":"text/x-python","patch_set":16,"id":"7faddb67_d5c92a79","line":692,"range":{"start_line":692,"start_character":22,"end_line":692,"end_character":35},"in_reply_to":"7faddb67_924988b8","updated":"2019-08-13 08:26:25.000000000","message":"Done","commit_id":"b9fab3d7bef4793bbcad0fc8240b281da963493c"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"993e61ea82c54e16dbaad69a05635165a1662918","unresolved":false,"context_lines":[{"line_number":700,"context_line":"            ilo_object \u003d ilo_common.get_ilo_object(node)"},{"line_number":701,"context_line":"            disk_types \u003d ilo_object.get_available_disk_types()"},{"line_number":702,"context_line":"            LOG.info(\"Disk type detected are: %(disk_types)s. Sanitize disk \""},{"line_number":703,"context_line":"                     \"erase are now exercised for one after another.\","},{"line_number":704,"context_line":"                     {\u0027disk_types\u0027: disk_types})"},{"line_number":705,"context_line":""},{"line_number":706,"context_line":"            if disk_types:"}],"source_content_type":"text/x-python","patch_set":16,"id":"7faddb67_32c69418","line":703,"range":{"start_line":703,"start_character":60,"end_line":703,"end_character":68},"updated":"2019-08-13 06:48:22.000000000","message":"Add node uuid in this message.\ns/ \u0027another.\u0027 / \u0027another for %(node)s.\u0027","commit_id":"b9fab3d7bef4793bbcad0fc8240b281da963493c"},{"author":{"_account_id":22271,"name":"paresh","email":"paresh.sao@hpe.com","username":"kesper"},"change_message_id":"76d1fd8cff7ebb187ec8e824634fae5ec4cedf9c","unresolved":false,"context_lines":[{"line_number":700,"context_line":"            ilo_object \u003d ilo_common.get_ilo_object(node)"},{"line_number":701,"context_line":"            disk_types \u003d ilo_object.get_available_disk_types()"},{"line_number":702,"context_line":"            LOG.info(\"Disk type detected are: %(disk_types)s. Sanitize disk \""},{"line_number":703,"context_line":"                     \"erase are now exercised for one after another.\","},{"line_number":704,"context_line":"                     {\u0027disk_types\u0027: disk_types})"},{"line_number":705,"context_line":""},{"line_number":706,"context_line":"            if disk_types:"}],"source_content_type":"text/x-python","patch_set":16,"id":"7faddb67_f5822600","line":703,"range":{"start_line":703,"start_character":60,"end_line":703,"end_character":68},"in_reply_to":"7faddb67_32c69418","updated":"2019-08-13 08:26:25.000000000","message":"Done","commit_id":"b9fab3d7bef4793bbcad0fc8240b281da963493c"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"993e61ea82c54e16dbaad69a05635165a1662918","unresolved":false,"context_lines":[{"line_number":741,"context_line":"                        task, \u0027ilo_disk_erase_hdd_check\u0027,"},{"line_number":742,"context_line":"                        \u0027ilo_disk_erase_ssd_check\u0027)"},{"line_number":743,"context_line":"            else:"},{"line_number":744,"context_line":"                LOG.warn(\"No drive found to perform out-of-band sanitize \""},{"line_number":745,"context_line":"                         \"disk erase for node %(node)s\", {\u0027node\u0027: node.uuid})"},{"line_number":746,"context_line":"        except ilo_error.IloError as ilo_exception:"},{"line_number":747,"context_line":"            self._pop_driver_internal_values(task,"}],"source_content_type":"text/x-python","patch_set":16,"id":"7faddb67_12d358d7","line":744,"range":{"start_line":744,"start_character":20,"end_line":744,"end_character":24},"updated":"2019-08-13 06:48:22.000000000","message":"Can it be just \u0027info\u0027?","commit_id":"b9fab3d7bef4793bbcad0fc8240b281da963493c"},{"author":{"_account_id":22271,"name":"paresh","email":"paresh.sao@hpe.com","username":"kesper"},"change_message_id":"76d1fd8cff7ebb187ec8e824634fae5ec4cedf9c","unresolved":false,"context_lines":[{"line_number":741,"context_line":"                        task, \u0027ilo_disk_erase_hdd_check\u0027,"},{"line_number":742,"context_line":"                        \u0027ilo_disk_erase_ssd_check\u0027)"},{"line_number":743,"context_line":"            else:"},{"line_number":744,"context_line":"                LOG.warn(\"No drive found to perform out-of-band sanitize \""},{"line_number":745,"context_line":"                         \"disk erase for node %(node)s\", {\u0027node\u0027: node.uuid})"},{"line_number":746,"context_line":"        except ilo_error.IloError as ilo_exception:"},{"line_number":747,"context_line":"            self._pop_driver_internal_values(task,"}],"source_content_type":"text/x-python","patch_set":16,"id":"7faddb67_b57cae20","line":744,"range":{"start_line":744,"start_character":20,"end_line":744,"end_character":24},"in_reply_to":"7faddb67_12d358d7","updated":"2019-08-13 08:26:25.000000000","message":"Done","commit_id":"b9fab3d7bef4793bbcad0fc8240b281da963493c"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"993e61ea82c54e16dbaad69a05635165a1662918","unresolved":false,"context_lines":[{"line_number":749,"context_line":"                                             \u0027ilo_disk_erase_ssd_check\u0027,"},{"line_number":750,"context_line":"                                             \u0027cleaning_reboot\u0027,"},{"line_number":751,"context_line":"                                             \u0027skip_current_clean_step\u0027)"},{"line_number":752,"context_line":"            node.driver_internal_info \u003d driver_internal_info"},{"line_number":753,"context_line":"            node.save()"},{"line_number":754,"context_line":"            self._set_clean_failed(task, ilo_exception)"}],"source_content_type":"text/x-python","patch_set":16,"id":"7faddb67_f2cf9c26","line":753,"range":{"start_line":752,"start_character":2,"end_line":753,"end_character":23},"updated":"2019-08-13 06:48:22.000000000","message":"This is not required. _pop_driver_internal_values() saves driver_internal_info","commit_id":"b9fab3d7bef4793bbcad0fc8240b281da963493c"},{"author":{"_account_id":22271,"name":"paresh","email":"paresh.sao@hpe.com","username":"kesper"},"change_message_id":"76d1fd8cff7ebb187ec8e824634fae5ec4cedf9c","unresolved":false,"context_lines":[{"line_number":749,"context_line":"                                             \u0027ilo_disk_erase_ssd_check\u0027,"},{"line_number":750,"context_line":"                                             \u0027cleaning_reboot\u0027,"},{"line_number":751,"context_line":"                                             \u0027skip_current_clean_step\u0027)"},{"line_number":752,"context_line":"            node.driver_internal_info \u003d driver_internal_info"},{"line_number":753,"context_line":"            node.save()"},{"line_number":754,"context_line":"            self._set_clean_failed(task, ilo_exception)"}],"source_content_type":"text/x-python","patch_set":16,"id":"7faddb67_d577ea3a","line":753,"range":{"start_line":752,"start_character":2,"end_line":753,"end_character":23},"in_reply_to":"7faddb67_f2cf9c26","updated":"2019-08-13 08:26:25.000000000","message":"Done","commit_id":"b9fab3d7bef4793bbcad0fc8240b281da963493c"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"6fec8a2d541b9a13f3c9ac41d77ff9e7261ef900","unresolved":false,"context_lines":[{"line_number":667,"context_line":"    @base.clean_step(priority\u003d0, abortable\u003dFalse, argsinfo\u003d{"},{"line_number":668,"context_line":"        \u0027erase_pattern\u0027: {"},{"line_number":669,"context_line":"            \u0027description\u0027: ("},{"line_number":670,"context_line":"                \u0027Erase pattern to perform specific out-of-band sanitize disk \u0027"},{"line_number":671,"context_line":"                \u0027erase. Supported values are, \u0027"},{"line_number":672,"context_line":"                \u0027for \"HDD\": (\"overwrite\", \"crypto\", \"zero\"), \u0027"},{"line_number":673,"context_line":"                \u0027for \"SSD\": (\"block\", \"crypto\", \"zero\"). Default pattern is: \u0027"}],"source_content_type":"text/x-python","patch_set":17,"id":"7faddb67_9d9d020c","line":670,"range":{"start_line":670,"start_character":17,"end_line":670,"end_character":30},"updated":"2019-08-14 11:35:16.000000000","message":"s/ \u0027Erase pattern\u0027 / \u0027Dictionary of disk type and corresponding erase pattern to be used\u0027","commit_id":"d47e2abd52dd4e464811bf613129b2139a3f5966"},{"author":{"_account_id":22271,"name":"paresh","email":"paresh.sao@hpe.com","username":"kesper"},"change_message_id":"6208200865f888557f0c3c211f10a861a701a14a","unresolved":false,"context_lines":[{"line_number":667,"context_line":"    @base.clean_step(priority\u003d0, abortable\u003dFalse, argsinfo\u003d{"},{"line_number":668,"context_line":"        \u0027erase_pattern\u0027: {"},{"line_number":669,"context_line":"            \u0027description\u0027: ("},{"line_number":670,"context_line":"                \u0027Erase pattern to perform specific out-of-band sanitize disk \u0027"},{"line_number":671,"context_line":"                \u0027erase. Supported values are, \u0027"},{"line_number":672,"context_line":"                \u0027for \"HDD\": (\"overwrite\", \"crypto\", \"zero\"), \u0027"},{"line_number":673,"context_line":"                \u0027for \"SSD\": (\"block\", \"crypto\", \"zero\"). Default pattern is: \u0027"}],"source_content_type":"text/x-python","patch_set":17,"id":"7faddb67_ba8d3dd5","line":670,"range":{"start_line":670,"start_character":17,"end_line":670,"end_character":30},"in_reply_to":"7faddb67_9d9d020c","updated":"2019-08-16 07:19:21.000000000","message":"Done","commit_id":"d47e2abd52dd4e464811bf613129b2139a3f5966"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"6fec8a2d541b9a13f3c9ac41d77ff9e7261ef900","unresolved":false,"context_lines":[{"line_number":698,"context_line":"                     \"Ex. {\u0027HDD\u0027: \u0027overwrite\u0027, \u0027SSD\u0027: \u0027block\u0027}\")"},{"line_number":699,"context_line":"                   % {\u0027value\u0027: erase_pattern, \u0027node\u0027: node.uuid})"},{"line_number":700,"context_line":"            LOG.error(msg)"},{"line_number":701,"context_line":"            raise exception.InvalidParameterValue(msg)"},{"line_number":702,"context_line":"        driver_internal_info \u003d node.driver_internal_info"},{"line_number":703,"context_line":"        LOG.debug(\"Calling out-of-band sanitize disk erase for node %(node)s\","},{"line_number":704,"context_line":"                  {\u0027node\u0027: node.uuid})"}],"source_content_type":"text/x-python","patch_set":17,"id":"7faddb67_7d7046db","line":701,"range":{"start_line":701,"start_character":28,"end_line":701,"end_character":49},"updated":"2019-08-14 11:35:16.000000000","message":"Is it required to validate that dictionary contains valid values for disk type and erase pattern?","commit_id":"d47e2abd52dd4e464811bf613129b2139a3f5966"},{"author":{"_account_id":22271,"name":"paresh","email":"paresh.sao@hpe.com","username":"kesper"},"change_message_id":"6208200865f888557f0c3c211f10a861a701a14a","unresolved":false,"context_lines":[{"line_number":698,"context_line":"                     \"Ex. {\u0027HDD\u0027: \u0027overwrite\u0027, \u0027SSD\u0027: \u0027block\u0027}\")"},{"line_number":699,"context_line":"                   % {\u0027value\u0027: erase_pattern, \u0027node\u0027: node.uuid})"},{"line_number":700,"context_line":"            LOG.error(msg)"},{"line_number":701,"context_line":"            raise exception.InvalidParameterValue(msg)"},{"line_number":702,"context_line":"        driver_internal_info \u003d node.driver_internal_info"},{"line_number":703,"context_line":"        LOG.debug(\"Calling out-of-band sanitize disk erase for node %(node)s\","},{"line_number":704,"context_line":"                  {\u0027node\u0027: node.uuid})"}],"source_content_type":"text/x-python","patch_set":17,"id":"7faddb67_7abd8566","line":701,"range":{"start_line":701,"start_character":28,"end_line":701,"end_character":49},"in_reply_to":"7faddb67_7d7046db","updated":"2019-08-16 07:19:21.000000000","message":"Done","commit_id":"d47e2abd52dd4e464811bf613129b2139a3f5966"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"6fec8a2d541b9a13f3c9ac41d77ff9e7261ef900","unresolved":false,"context_lines":[{"line_number":706,"context_line":"            ilo_object \u003d ilo_common.get_ilo_object(node)"},{"line_number":707,"context_line":"            disk_types \u003d ilo_object.get_available_disk_types()"},{"line_number":708,"context_line":"            LOG.info(\"Disk type detected are: %(disk_types)s. Sanitize disk \""},{"line_number":709,"context_line":"                     \"erase are now exercised for one after another for node \""},{"line_number":710,"context_line":"                     \"%(node)s.\", {\u0027disk_types\u0027: disk_types, \u0027node\u0027: node.uuid}"},{"line_number":711,"context_line":"                     )"},{"line_number":712,"context_line":""}],"source_content_type":"text/x-python","patch_set":17,"id":"7faddb67_9db6628a","line":709,"range":{"start_line":709,"start_character":60,"end_line":709,"end_character":67},"updated":"2019-08-14 11:35:16.000000000","message":"s/ \u0027another\u0027 / \u0027another disk type\u0027 /","commit_id":"d47e2abd52dd4e464811bf613129b2139a3f5966"},{"author":{"_account_id":22271,"name":"paresh","email":"paresh.sao@hpe.com","username":"kesper"},"change_message_id":"6208200865f888557f0c3c211f10a861a701a14a","unresolved":false,"context_lines":[{"line_number":706,"context_line":"            ilo_object \u003d ilo_common.get_ilo_object(node)"},{"line_number":707,"context_line":"            disk_types \u003d ilo_object.get_available_disk_types()"},{"line_number":708,"context_line":"            LOG.info(\"Disk type detected are: %(disk_types)s. Sanitize disk \""},{"line_number":709,"context_line":"                     \"erase are now exercised for one after another for node \""},{"line_number":710,"context_line":"                     \"%(node)s.\", {\u0027disk_types\u0027: disk_types, \u0027node\u0027: node.uuid}"},{"line_number":711,"context_line":"                     )"},{"line_number":712,"context_line":""}],"source_content_type":"text/x-python","patch_set":17,"id":"7faddb67_9a672126","line":709,"range":{"start_line":709,"start_character":60,"end_line":709,"end_character":67},"in_reply_to":"7faddb67_9db6628a","updated":"2019-08-16 07:19:21.000000000","message":"Done","commit_id":"d47e2abd52dd4e464811bf613129b2139a3f5966"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"6162d1b3e322f918aad1b93978a7d38e1f63e5e5","unresolved":false,"context_lines":[{"line_number":676,"context_line":"                else:"},{"line_number":677,"context_line":"                    invalid \u003d True"},{"line_number":678,"context_line":"                    break"},{"line_number":679,"context_line":"            else:"},{"line_number":680,"context_line":"                invalid \u003d False"},{"line_number":681,"context_line":""},{"line_number":682,"context_line":"        if invalid:"},{"line_number":683,"context_line":"            msg \u003d (_(\"Erase pattern \u0027%(value)s\u0027 is invalid. Clean step \""}],"source_content_type":"text/x-python","patch_set":20,"id":"7faddb67_03cd965d","line":680,"range":{"start_line":679,"start_character":12,"end_line":680,"end_character":31},"updated":"2019-08-23 05:22:11.000000000","message":"Empty dictionary should not be considered a valid pattern","commit_id":"3d79eb574d5223c9143cf5239b18218172893fd2"},{"author":{"_account_id":22271,"name":"paresh","email":"paresh.sao@hpe.com","username":"kesper"},"change_message_id":"bd2ab06096880473a3c9c565785fc6be75276b9a","unresolved":false,"context_lines":[{"line_number":676,"context_line":"                else:"},{"line_number":677,"context_line":"                    invalid \u003d True"},{"line_number":678,"context_line":"                    break"},{"line_number":679,"context_line":"            else:"},{"line_number":680,"context_line":"                invalid \u003d False"},{"line_number":681,"context_line":""},{"line_number":682,"context_line":"        if invalid:"},{"line_number":683,"context_line":"            msg \u003d (_(\"Erase pattern \u0027%(value)s\u0027 is invalid. Clean step \""}],"source_content_type":"text/x-python","patch_set":20,"id":"7faddb67_630faa88","line":680,"range":{"start_line":679,"start_character":12,"end_line":680,"end_character":31},"in_reply_to":"7faddb67_03cd965d","updated":"2019-08-23 06:40:28.000000000","message":"Done","commit_id":"3d79eb574d5223c9143cf5239b18218172893fd2"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"6162d1b3e322f918aad1b93978a7d38e1f63e5e5","unresolved":false,"context_lines":[{"line_number":715,"context_line":"        :raises: InvalidParameterValue, if any of the arguments are invalid."},{"line_number":716,"context_line":"        :raises: IloError on an error from iLO."},{"line_number":717,"context_line":"        \"\"\""},{"line_number":718,"context_line":"        erase_pattern \u003d kwargs.get(\u0027erase_pattern\u0027, {})"},{"line_number":719,"context_line":"        node \u003d task.node"},{"line_number":720,"context_line":"        self._validate_erase_pattern(erase_pattern, node)"},{"line_number":721,"context_line":"        driver_internal_info \u003d node.driver_internal_info"}],"source_content_type":"text/x-python","patch_set":20,"id":"7faddb67_43e38ed9","line":718,"range":{"start_line":718,"start_character":52,"end_line":718,"end_character":54},"updated":"2019-08-23 05:22:11.000000000","message":"Better to pass default values here.","commit_id":"3d79eb574d5223c9143cf5239b18218172893fd2"},{"author":{"_account_id":22271,"name":"paresh","email":"paresh.sao@hpe.com","username":"kesper"},"change_message_id":"bd2ab06096880473a3c9c565785fc6be75276b9a","unresolved":false,"context_lines":[{"line_number":715,"context_line":"        :raises: InvalidParameterValue, if any of the arguments are invalid."},{"line_number":716,"context_line":"        :raises: IloError on an error from iLO."},{"line_number":717,"context_line":"        \"\"\""},{"line_number":718,"context_line":"        erase_pattern \u003d kwargs.get(\u0027erase_pattern\u0027, {})"},{"line_number":719,"context_line":"        node \u003d task.node"},{"line_number":720,"context_line":"        self._validate_erase_pattern(erase_pattern, node)"},{"line_number":721,"context_line":"        driver_internal_info \u003d node.driver_internal_info"}],"source_content_type":"text/x-python","patch_set":20,"id":"7faddb67_430aae79","line":718,"range":{"start_line":718,"start_character":52,"end_line":718,"end_character":54},"in_reply_to":"7faddb67_43e38ed9","updated":"2019-08-23 06:40:28.000000000","message":"Done","commit_id":"3d79eb574d5223c9143cf5239b18218172893fd2"}],"releasenotes/notes/ilo5-oob-sanitize-disk-erase-cc76ea66eb5fe6df.yaml":[{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"993e61ea82c54e16dbaad69a05635165a1662918","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Adds functionality to perform out-of-band sanitize disk-erase operation for"},{"line_number":4,"context_line":"    iLO5 based HPE Proliant servers."},{"line_number":5,"context_line":"upgrade:"},{"line_number":6,"context_line":"  - The ``do_disk_erase``, ``has_disk_erase_completed`` and"},{"line_number":7,"context_line":"    ``get_available_disk_types`` interfaces of \u0027proliantutils\u0027 library has been"}],"source_content_type":"text/x-yaml","patch_set":16,"id":"7faddb67_32621418","line":4,"range":{"start_line":4,"start_character":18,"end_line":4,"end_character":36},"updated":"2019-08-13 06:48:22.000000000","message":"Also you can mention that:-\nManagement interface ``ilo5`` has been added to ``ilo5 hardware type. A clean step ``erase_devices`` has been added to management interface ``ilo5`` to support out-of-band disk erase operation.","commit_id":"b9fab3d7bef4793bbcad0fc8240b281da963493c"}]}
