)]}'
{"doc/source/admin/drivers/irmc.rst":[{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"afa091bd4813a91678a07ae1d1d13b984e2d140b","unresolved":false,"context_lines":[{"line_number":609,"context_line":""},{"line_number":610,"context_line":".. note::"},{"line_number":611,"context_line":""},{"line_number":612,"context_line":"    * iRMC server will power-off before started firmware upgrade mechanism"},{"line_number":613,"context_line":"      then auto power-on when ``File Transferred Successfully``. And iRMC server"},{"line_number":614,"context_line":"      will reboot when completed mechanism."},{"line_number":615,"context_line":"    * ``iRMC firmware`` upgrade only support ``*.bin`` or ``*\u0027BIN`` format files."}],"source_content_type":"text/x-rst","patch_set":9,"id":"3f79a3b5_8815cee9","line":612,"range":{"start_line":612,"start_character":40,"end_line":612,"end_character":47},"updated":"2018-11-21 07:11:34.000000000","message":"s/ started / starting /","commit_id":"56681d03a290ec817e25da957fe8abeeab487b30"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"5e6dbe1aab9a38199dda0c0bc12446d8a037a40b","unresolved":false,"context_lines":[{"line_number":609,"context_line":""},{"line_number":610,"context_line":".. note::"},{"line_number":611,"context_line":""},{"line_number":612,"context_line":"    * iRMC server will power-off before started firmware upgrade mechanism"},{"line_number":613,"context_line":"      then auto power-on when ``File Transferred Successfully``. And iRMC server"},{"line_number":614,"context_line":"      will reboot when completed mechanism."},{"line_number":615,"context_line":"    * ``iRMC firmware`` upgrade only support ``*.bin`` or ``*\u0027BIN`` format files."}],"source_content_type":"text/x-rst","patch_set":9,"id":"3f79a3b5_9c33bbf8","line":612,"range":{"start_line":612,"start_character":40,"end_line":612,"end_character":47},"in_reply_to":"3f79a3b5_8815cee9","updated":"2018-12-19 04:30:18.000000000","message":"Done","commit_id":"56681d03a290ec817e25da957fe8abeeab487b30"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"afa091bd4813a91678a07ae1d1d13b984e2d140b","unresolved":false,"context_lines":[{"line_number":614,"context_line":"      will reboot when completed mechanism."},{"line_number":615,"context_line":"    * ``iRMC firmware`` upgrade only support ``*.bin`` or ``*\u0027BIN`` format files."},{"line_number":616,"context_line":"    * ``BIOS firmware`` upgrade only support ``*.upc`` or ``*.UPC`` format files."},{"line_number":617,"context_line":"    * The firmware upgrade type only support ``file`` without ``http/https``"},{"line_number":618,"context_line":"      and ``swift``."},{"line_number":619,"context_line":"    * This feature only support one firmware type which are ``irmc`` and"},{"line_number":620,"context_line":"      ``bios`` at the time."},{"line_number":621,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"3f79a3b5_88daae45","line":618,"range":{"start_line":617,"start_character":54,"end_line":618,"end_character":19},"updated":"2018-11-21 07:11:34.000000000","message":"s/ without ``http/https`` and ``swift`` / URI scheme. /","commit_id":"56681d03a290ec817e25da957fe8abeeab487b30"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"5e6dbe1aab9a38199dda0c0bc12446d8a037a40b","unresolved":false,"context_lines":[{"line_number":614,"context_line":"      will reboot when completed mechanism."},{"line_number":615,"context_line":"    * ``iRMC firmware`` upgrade only support ``*.bin`` or ``*\u0027BIN`` format files."},{"line_number":616,"context_line":"    * ``BIOS firmware`` upgrade only support ``*.upc`` or ``*.UPC`` format files."},{"line_number":617,"context_line":"    * The firmware upgrade type only support ``file`` without ``http/https``"},{"line_number":618,"context_line":"      and ``swift``."},{"line_number":619,"context_line":"    * This feature only support one firmware type which are ``irmc`` and"},{"line_number":620,"context_line":"      ``bios`` at the time."},{"line_number":621,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"3f79a3b5_3c4aa759","line":618,"range":{"start_line":617,"start_character":54,"end_line":618,"end_character":19},"in_reply_to":"3f79a3b5_88daae45","updated":"2018-12-19 04:30:18.000000000","message":"Done","commit_id":"56681d03a290ec817e25da957fe8abeeab487b30"},{"author":{"_account_id":18781,"name":"vinay50muddu","email":"vinay50muddu@yahoo.com","username":"vmud213"},"change_message_id":"04d84552866e99b3b3b7820bd520b133ef507bfc","unresolved":false,"context_lines":[{"line_number":563,"context_line":"^^^^^^^^^^^^^^^^^^^^^^^^"},{"line_number":564,"context_line":""},{"line_number":565,"context_line":"The ``irmc`` hardware type supports the firmware upgrade feature with ``irmc``"},{"line_number":566,"context_line":"management interface as a manual cleaning step. This feature supports for"},{"line_number":567,"context_line":"``irmc`` firmware and ``bios`` firmware upgrade."},{"line_number":568,"context_line":""},{"line_number":569,"context_line":"The manual cleaning step can only be initiated when a node is in the"}],"source_content_type":"text/x-rst","patch_set":10,"id":"3f79a3b5_60d922f0","line":566,"range":{"start_line":566,"start_character":53,"end_line":566,"end_character":73},"updated":"2018-12-21 06:01:33.000000000","message":"Need to rephrase as one of the below.\n\"feature supports\" (or)\n\"feature adds support for\"","commit_id":"452b766c5c10fa0b8aeb43021514a4906bef5d33"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"95a8048777fefca21e889a5cf53ed3ca57e38ee5","unresolved":false,"context_lines":[{"line_number":563,"context_line":"^^^^^^^^^^^^^^^^^^^^^^^^"},{"line_number":564,"context_line":""},{"line_number":565,"context_line":"The ``irmc`` hardware type supports the firmware upgrade feature with ``irmc``"},{"line_number":566,"context_line":"management interface as a manual cleaning step. This feature supports for"},{"line_number":567,"context_line":"``irmc`` firmware and ``bios`` firmware upgrade."},{"line_number":568,"context_line":""},{"line_number":569,"context_line":"The manual cleaning step can only be initiated when a node is in the"}],"source_content_type":"text/x-rst","patch_set":10,"id":"5fc1f717_92c6599a","line":566,"range":{"start_line":566,"start_character":53,"end_line":566,"end_character":73},"in_reply_to":"3f79a3b5_60d922f0","updated":"2019-03-11 09:00:28.000000000","message":"Done","commit_id":"452b766c5c10fa0b8aeb43021514a4906bef5d33"},{"author":{"_account_id":18781,"name":"vinay50muddu","email":"vinay50muddu@yahoo.com","username":"vmud213"},"change_message_id":"04d84552866e99b3b3b7820bd520b133ef507bfc","unresolved":false,"context_lines":[{"line_number":567,"context_line":"``irmc`` firmware and ``bios`` firmware upgrade."},{"line_number":568,"context_line":""},{"line_number":569,"context_line":"The manual cleaning step can only be initiated when a node is in the"},{"line_number":570,"context_line":"``manageable`` state. More detail in :ref:`manual_cleaning` which use to"},{"line_number":571,"context_line":"initiate manual cleaning operation on a node."},{"line_number":572,"context_line":""},{"line_number":573,"context_line":"Configuration"},{"line_number":574,"context_line":"~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":10,"id":"3f79a3b5_409186f5","line":571,"range":{"start_line":570,"start_character":66,"end_line":571,"end_character":8},"updated":"2018-12-21 06:01:33.000000000","message":"explains","commit_id":"452b766c5c10fa0b8aeb43021514a4906bef5d33"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"95a8048777fefca21e889a5cf53ed3ca57e38ee5","unresolved":false,"context_lines":[{"line_number":567,"context_line":"``irmc`` firmware and ``bios`` firmware upgrade."},{"line_number":568,"context_line":""},{"line_number":569,"context_line":"The manual cleaning step can only be initiated when a node is in the"},{"line_number":570,"context_line":"``manageable`` state. More detail in :ref:`manual_cleaning` which use to"},{"line_number":571,"context_line":"initiate manual cleaning operation on a node."},{"line_number":572,"context_line":""},{"line_number":573,"context_line":"Configuration"},{"line_number":574,"context_line":"~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":10,"id":"5fc1f717_f2447d1d","line":571,"range":{"start_line":570,"start_character":66,"end_line":571,"end_character":8},"in_reply_to":"3f79a3b5_409186f5","updated":"2019-03-11 09:00:28.000000000","message":"Done","commit_id":"452b766c5c10fa0b8aeb43021514a4906bef5d33"},{"author":{"_account_id":18781,"name":"vinay50muddu","email":"vinay50muddu@yahoo.com","username":"vmud213"},"change_message_id":"04d84552866e99b3b3b7820bd520b133ef507bfc","unresolved":false,"context_lines":[{"line_number":577,"context_line":"configuration:"},{"line_number":578,"context_line":""},{"line_number":579,"context_line":"* It is necessary to set ironic configuration into Node with"},{"line_number":580,"context_line":"  input file option:"},{"line_number":581,"context_line":""},{"line_number":582,"context_line":"  Here is some sample values for firmware upgrade files::"},{"line_number":583,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"3f79a3b5_c07cb6c8","line":580,"range":{"start_line":580,"start_character":2,"end_line":580,"end_character":19},"updated":"2018-12-21 06:01:33.000000000","message":"What exactly it means?Better to elaborate.","commit_id":"452b766c5c10fa0b8aeb43021514a4906bef5d33"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"95a8048777fefca21e889a5cf53ed3ca57e38ee5","unresolved":false,"context_lines":[{"line_number":577,"context_line":"configuration:"},{"line_number":578,"context_line":""},{"line_number":579,"context_line":"* It is necessary to set ironic configuration into Node with"},{"line_number":580,"context_line":"  input file option:"},{"line_number":581,"context_line":""},{"line_number":582,"context_line":"  Here is some sample values for firmware upgrade files::"},{"line_number":583,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"5fc1f717_f25d5de9","line":580,"range":{"start_line":580,"start_character":2,"end_line":580,"end_character":19},"in_reply_to":"3f79a3b5_c07cb6c8","updated":"2019-03-11 09:00:28.000000000","message":"Done","commit_id":"452b766c5c10fa0b8aeb43021514a4906bef5d33"},{"author":{"_account_id":18781,"name":"vinay50muddu","email":"vinay50muddu@yahoo.com","username":"vmud213"},"change_message_id":"04d84552866e99b3b3b7820bd520b133ef507bfc","unresolved":false,"context_lines":[{"line_number":609,"context_line":""},{"line_number":610,"context_line":".. note::"},{"line_number":611,"context_line":""},{"line_number":612,"context_line":"    * iRMC server will power-off before starting firmware upgrade mechanism"},{"line_number":613,"context_line":"      then auto power-on when ``File Transferred Successfully``. And iRMC server"},{"line_number":614,"context_line":"      will reboot when completed mechanism."},{"line_number":615,"context_line":"    * ``iRMC firmware`` upgrade only support ``*.bin`` or ``*\u0027BIN`` format files."},{"line_number":616,"context_line":"    * ``BIOS firmware`` upgrade only support ``*.upc`` or ``*.UPC`` format files."},{"line_number":617,"context_line":"    * The firmware upgrade type only support ``file`` without ``URI scheme``."}],"source_content_type":"text/x-rst","patch_set":10,"id":"3f79a3b5_a06f3af9","line":614,"range":{"start_line":612,"start_character":6,"end_line":614,"end_character":43},"updated":"2018-12-21 06:01:33.000000000","message":"Rephrase it as below for better readability. May be if you can think of a better way to rephrase it that\u0027s fine.\n\"Ironic powers off iRMC server before starting the firmware upgrade. It powers on the server when ``File Transferred Successfully`` and reboots once the upgrade is completed.\"","commit_id":"452b766c5c10fa0b8aeb43021514a4906bef5d33"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"95a8048777fefca21e889a5cf53ed3ca57e38ee5","unresolved":false,"context_lines":[{"line_number":609,"context_line":""},{"line_number":610,"context_line":".. note::"},{"line_number":611,"context_line":""},{"line_number":612,"context_line":"    * iRMC server will power-off before starting firmware upgrade mechanism"},{"line_number":613,"context_line":"      then auto power-on when ``File Transferred Successfully``. And iRMC server"},{"line_number":614,"context_line":"      will reboot when completed mechanism."},{"line_number":615,"context_line":"    * ``iRMC firmware`` upgrade only support ``*.bin`` or ``*\u0027BIN`` format files."},{"line_number":616,"context_line":"    * ``BIOS firmware`` upgrade only support ``*.upc`` or ``*.UPC`` format files."},{"line_number":617,"context_line":"    * The firmware upgrade type only support ``file`` without ``URI scheme``."}],"source_content_type":"text/x-rst","patch_set":10,"id":"5fc1f717_520311b9","line":614,"range":{"start_line":612,"start_character":6,"end_line":614,"end_character":43},"in_reply_to":"3f79a3b5_a06f3af9","updated":"2019-03-11 09:00:28.000000000","message":"Done","commit_id":"452b766c5c10fa0b8aeb43021514a4906bef5d33"},{"author":{"_account_id":18781,"name":"vinay50muddu","email":"vinay50muddu@yahoo.com","username":"vmud213"},"change_message_id":"04d84552866e99b3b3b7820bd520b133ef507bfc","unresolved":false,"context_lines":[{"line_number":612,"context_line":"    * iRMC server will power-off before starting firmware upgrade mechanism"},{"line_number":613,"context_line":"      then auto power-on when ``File Transferred Successfully``. And iRMC server"},{"line_number":614,"context_line":"      will reboot when completed mechanism."},{"line_number":615,"context_line":"    * ``iRMC firmware`` upgrade only support ``*.bin`` or ``*\u0027BIN`` format files."},{"line_number":616,"context_line":"    * ``BIOS firmware`` upgrade only support ``*.upc`` or ``*.UPC`` format files."},{"line_number":617,"context_line":"    * The firmware upgrade type only support ``file`` without ``URI scheme``."},{"line_number":618,"context_line":"    * This feature only support one firmware type which are ``irmc`` and"}],"source_content_type":"text/x-rst","patch_set":10,"id":"3f79a3b5_6075a2c9","line":615,"range":{"start_line":615,"start_character":37,"end_line":615,"end_character":44},"updated":"2018-12-21 06:01:33.000000000","message":"s/support/supports","commit_id":"452b766c5c10fa0b8aeb43021514a4906bef5d33"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"95a8048777fefca21e889a5cf53ed3ca57e38ee5","unresolved":false,"context_lines":[{"line_number":612,"context_line":"    * iRMC server will power-off before starting firmware upgrade mechanism"},{"line_number":613,"context_line":"      then auto power-on when ``File Transferred Successfully``. And iRMC server"},{"line_number":614,"context_line":"      will reboot when completed mechanism."},{"line_number":615,"context_line":"    * ``iRMC firmware`` upgrade only support ``*.bin`` or ``*\u0027BIN`` format files."},{"line_number":616,"context_line":"    * ``BIOS firmware`` upgrade only support ``*.upc`` or ``*.UPC`` format files."},{"line_number":617,"context_line":"    * The firmware upgrade type only support ``file`` without ``URI scheme``."},{"line_number":618,"context_line":"    * This feature only support one firmware type which are ``irmc`` and"}],"source_content_type":"text/x-rst","patch_set":10,"id":"5fc1f717_122fc93f","line":615,"range":{"start_line":615,"start_character":37,"end_line":615,"end_character":44},"in_reply_to":"3f79a3b5_6075a2c9","updated":"2019-03-11 09:00:28.000000000","message":"Done","commit_id":"452b766c5c10fa0b8aeb43021514a4906bef5d33"},{"author":{"_account_id":18781,"name":"vinay50muddu","email":"vinay50muddu@yahoo.com","username":"vmud213"},"change_message_id":"04d84552866e99b3b3b7820bd520b133ef507bfc","unresolved":false,"context_lines":[{"line_number":613,"context_line":"      then auto power-on when ``File Transferred Successfully``. And iRMC server"},{"line_number":614,"context_line":"      will reboot when completed mechanism."},{"line_number":615,"context_line":"    * ``iRMC firmware`` upgrade only support ``*.bin`` or ``*\u0027BIN`` format files."},{"line_number":616,"context_line":"    * ``BIOS firmware`` upgrade only support ``*.upc`` or ``*.UPC`` format files."},{"line_number":617,"context_line":"    * The firmware upgrade type only support ``file`` without ``URI scheme``."},{"line_number":618,"context_line":"    * This feature only support one firmware type which are ``irmc`` and"},{"line_number":619,"context_line":"      ``bios`` at the time."}],"source_content_type":"text/x-rst","patch_set":10,"id":"3f79a3b5_8070fed9","line":616,"range":{"start_line":616,"start_character":37,"end_line":616,"end_character":44},"updated":"2018-12-21 06:01:33.000000000","message":"ditto","commit_id":"452b766c5c10fa0b8aeb43021514a4906bef5d33"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"95a8048777fefca21e889a5cf53ed3ca57e38ee5","unresolved":false,"context_lines":[{"line_number":613,"context_line":"      then auto power-on when ``File Transferred Successfully``. And iRMC server"},{"line_number":614,"context_line":"      will reboot when completed mechanism."},{"line_number":615,"context_line":"    * ``iRMC firmware`` upgrade only support ``*.bin`` or ``*\u0027BIN`` format files."},{"line_number":616,"context_line":"    * ``BIOS firmware`` upgrade only support ``*.upc`` or ``*.UPC`` format files."},{"line_number":617,"context_line":"    * The firmware upgrade type only support ``file`` without ``URI scheme``."},{"line_number":618,"context_line":"    * This feature only support one firmware type which are ``irmc`` and"},{"line_number":619,"context_line":"      ``bios`` at the time."}],"source_content_type":"text/x-rst","patch_set":10,"id":"5fc1f717_323205a9","line":616,"range":{"start_line":616,"start_character":37,"end_line":616,"end_character":44},"in_reply_to":"3f79a3b5_8070fed9","updated":"2019-03-11 09:00:28.000000000","message":"Done","commit_id":"452b766c5c10fa0b8aeb43021514a4906bef5d33"},{"author":{"_account_id":18781,"name":"vinay50muddu","email":"vinay50muddu@yahoo.com","username":"vmud213"},"change_message_id":"04d84552866e99b3b3b7820bd520b133ef507bfc","unresolved":false,"context_lines":[{"line_number":614,"context_line":"      will reboot when completed mechanism."},{"line_number":615,"context_line":"    * ``iRMC firmware`` upgrade only support ``*.bin`` or ``*\u0027BIN`` format files."},{"line_number":616,"context_line":"    * ``BIOS firmware`` upgrade only support ``*.upc`` or ``*.UPC`` format files."},{"line_number":617,"context_line":"    * The firmware upgrade type only support ``file`` without ``URI scheme``."},{"line_number":618,"context_line":"    * This feature only support one firmware type which are ``irmc`` and"},{"line_number":619,"context_line":"      ``bios`` at the time."},{"line_number":620,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"3f79a3b5_4048a687","line":617,"range":{"start_line":617,"start_character":37,"end_line":617,"end_character":44},"updated":"2018-12-21 06:01:33.000000000","message":"ditto","commit_id":"452b766c5c10fa0b8aeb43021514a4906bef5d33"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"95a8048777fefca21e889a5cf53ed3ca57e38ee5","unresolved":false,"context_lines":[{"line_number":614,"context_line":"      will reboot when completed mechanism."},{"line_number":615,"context_line":"    * ``iRMC firmware`` upgrade only support ``*.bin`` or ``*\u0027BIN`` format files."},{"line_number":616,"context_line":"    * ``BIOS firmware`` upgrade only support ``*.upc`` or ``*.UPC`` format files."},{"line_number":617,"context_line":"    * The firmware upgrade type only support ``file`` without ``URI scheme``."},{"line_number":618,"context_line":"    * This feature only support one firmware type which are ``irmc`` and"},{"line_number":619,"context_line":"      ``bios`` at the time."},{"line_number":620,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"5fc1f717_d2286135","line":617,"range":{"start_line":617,"start_character":37,"end_line":617,"end_character":44},"in_reply_to":"3f79a3b5_4048a687","updated":"2019-03-11 09:00:28.000000000","message":"Done","commit_id":"452b766c5c10fa0b8aeb43021514a4906bef5d33"},{"author":{"_account_id":18781,"name":"vinay50muddu","email":"vinay50muddu@yahoo.com","username":"vmud213"},"change_message_id":"04d84552866e99b3b3b7820bd520b133ef507bfc","unresolved":false,"context_lines":[{"line_number":615,"context_line":"    * ``iRMC firmware`` upgrade only support ``*.bin`` or ``*\u0027BIN`` format files."},{"line_number":616,"context_line":"    * ``BIOS firmware`` upgrade only support ``*.upc`` or ``*.UPC`` format files."},{"line_number":617,"context_line":"    * The firmware upgrade type only support ``file`` without ``URI scheme``."},{"line_number":618,"context_line":"    * This feature only support one firmware type which are ``irmc`` and"},{"line_number":619,"context_line":"      ``bios`` at the time."},{"line_number":620,"context_line":""},{"line_number":621,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"3f79a3b5_e03a12ed","line":618,"range":{"start_line":618,"start_character":24,"end_line":618,"end_character":31},"updated":"2018-12-21 06:01:33.000000000","message":"ditto","commit_id":"452b766c5c10fa0b8aeb43021514a4906bef5d33"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"95a8048777fefca21e889a5cf53ed3ca57e38ee5","unresolved":false,"context_lines":[{"line_number":615,"context_line":"    * ``iRMC firmware`` upgrade only support ``*.bin`` or ``*\u0027BIN`` format files."},{"line_number":616,"context_line":"    * ``BIOS firmware`` upgrade only support ``*.upc`` or ``*.UPC`` format files."},{"line_number":617,"context_line":"    * The firmware upgrade type only support ``file`` without ``URI scheme``."},{"line_number":618,"context_line":"    * This feature only support one firmware type which are ``irmc`` and"},{"line_number":619,"context_line":"      ``bios`` at the time."},{"line_number":620,"context_line":""},{"line_number":621,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"5fc1f717_9222d951","line":618,"range":{"start_line":618,"start_character":24,"end_line":618,"end_character":31},"in_reply_to":"3f79a3b5_e03a12ed","updated":"2019-03-11 09:00:28.000000000","message":"Done","commit_id":"452b766c5c10fa0b8aeb43021514a4906bef5d33"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"587b71d7b1323082232af0d1822c592854a32b52","unresolved":false,"context_lines":[{"line_number":577,"context_line":"configuration:"},{"line_number":578,"context_line":""},{"line_number":579,"context_line":"* It is necessary to set ironic configuration into Node with"},{"line_number":580,"context_line":"  input option files:"},{"line_number":581,"context_line":""},{"line_number":582,"context_line":"  Here is some sample values for firmware upgrade files::"},{"line_number":583,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"5fc1f717_08fe846a","line":580,"updated":"2019-03-13 10:35:19.000000000","message":"This list has only one item, let\u0027s make it plain text. Also I have hard time understanding this sentence, maybe drop it completely?","commit_id":"adc830897c0b5d1332f93a12375c117500a1185f"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"143c9ac98bcb3903d14e51ddb38da4c9760507b7","unresolved":false,"context_lines":[{"line_number":577,"context_line":"configuration:"},{"line_number":578,"context_line":""},{"line_number":579,"context_line":"* It is necessary to set ironic configuration into Node with"},{"line_number":580,"context_line":"  input option files:"},{"line_number":581,"context_line":""},{"line_number":582,"context_line":"  Here is some sample values for firmware upgrade files::"},{"line_number":583,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"5fc1f717_2ff014fd","line":580,"in_reply_to":"5fc1f717_08fe846a","updated":"2019-03-14 04:04:32.000000000","message":"Done","commit_id":"adc830897c0b5d1332f93a12375c117500a1185f"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"587b71d7b1323082232af0d1822c592854a32b52","unresolved":false,"context_lines":[{"line_number":579,"context_line":"* It is necessary to set ironic configuration into Node with"},{"line_number":580,"context_line":"  input option files:"},{"line_number":581,"context_line":""},{"line_number":582,"context_line":"  Here is some sample values for firmware upgrade files::"},{"line_number":583,"context_line":""},{"line_number":584,"context_line":"    \"clean_steps\": [{"},{"line_number":585,"context_line":"        \"interface\": \"management\","}],"source_content_type":"text/x-rst","patch_set":11,"id":"5fc1f717_28034075","line":582,"updated":"2019-03-13 10:35:19.000000000","message":"\"Here is an example of a firmware upgrade clean step::\"","commit_id":"adc830897c0b5d1332f93a12375c117500a1185f"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"143c9ac98bcb3903d14e51ddb38da4c9760507b7","unresolved":false,"context_lines":[{"line_number":579,"context_line":"* It is necessary to set ironic configuration into Node with"},{"line_number":580,"context_line":"  input option files:"},{"line_number":581,"context_line":""},{"line_number":582,"context_line":"  Here is some sample values for firmware upgrade files::"},{"line_number":583,"context_line":""},{"line_number":584,"context_line":"    \"clean_steps\": [{"},{"line_number":585,"context_line":"        \"interface\": \"management\","}],"source_content_type":"text/x-rst","patch_set":11,"id":"5fc1f717_8fd8287b","line":582,"in_reply_to":"5fc1f717_28034075","updated":"2019-03-14 04:04:32.000000000","message":"Done","commit_id":"adc830897c0b5d1332f93a12375c117500a1185f"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"587b71d7b1323082232af0d1822c592854a32b52","unresolved":false,"context_lines":[{"line_number":585,"context_line":"        \"interface\": \"management\","},{"line_number":586,"context_line":"        \"step\": \"update_firmware\","},{"line_number":587,"context_line":"        \"args\": {"},{"line_number":588,"context_line":"            \"firmware_update_type\": \"irmc\","},{"line_number":589,"context_line":"            \"firmware_images\":{"},{"line_number":590,"context_line":"                  \"url\": \"file:///home/stack/irmc_firmware.BIN\","},{"line_number":591,"context_line":"                  \"checksum\": \"b6d3a549e6968140497a43739bc6cc67\""}],"source_content_type":"text/x-rst","patch_set":11,"id":"5fc1f717_c8fb9c76","line":588,"updated":"2019-03-13 10:35:19.000000000","message":"To make it closer to the existing iLO implementation, maybe s/type/mode/ ?","commit_id":"adc830897c0b5d1332f93a12375c117500a1185f"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"143c9ac98bcb3903d14e51ddb38da4c9760507b7","unresolved":false,"context_lines":[{"line_number":585,"context_line":"        \"interface\": \"management\","},{"line_number":586,"context_line":"        \"step\": \"update_firmware\","},{"line_number":587,"context_line":"        \"args\": {"},{"line_number":588,"context_line":"            \"firmware_update_type\": \"irmc\","},{"line_number":589,"context_line":"            \"firmware_images\":{"},{"line_number":590,"context_line":"                  \"url\": \"file:///home/stack/irmc_firmware.BIN\","},{"line_number":591,"context_line":"                  \"checksum\": \"b6d3a549e6968140497a43739bc6cc67\""}],"source_content_type":"text/x-rst","patch_set":11,"id":"5fc1f717_cf4e3037","line":588,"in_reply_to":"5fc1f717_c8fb9c76","updated":"2019-03-14 04:04:32.000000000","message":"we have irmc and bios types -- I think we can use type in this situation.","commit_id":"adc830897c0b5d1332f93a12375c117500a1185f"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"587b71d7b1323082232af0d1822c592854a32b52","unresolved":false,"context_lines":[{"line_number":586,"context_line":"        \"step\": \"update_firmware\","},{"line_number":587,"context_line":"        \"args\": {"},{"line_number":588,"context_line":"            \"firmware_update_type\": \"irmc\","},{"line_number":589,"context_line":"            \"firmware_images\":{"},{"line_number":590,"context_line":"                  \"url\": \"file:///home/stack/irmc_firmware.BIN\","},{"line_number":591,"context_line":"                  \"checksum\": \"b6d3a549e6968140497a43739bc6cc67\""},{"line_number":592,"context_line":"            }"}],"source_content_type":"text/x-rst","patch_set":11,"id":"5fc1f717_e8f8d87b","line":589,"updated":"2019-03-13 10:35:19.000000000","message":"For similar reasons, can we accept a list of images here? Otherwise it doesn\u0027t make much sense to call it \"images\"","commit_id":"adc830897c0b5d1332f93a12375c117500a1185f"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"143c9ac98bcb3903d14e51ddb38da4c9760507b7","unresolved":false,"context_lines":[{"line_number":586,"context_line":"        \"step\": \"update_firmware\","},{"line_number":587,"context_line":"        \"args\": {"},{"line_number":588,"context_line":"            \"firmware_update_type\": \"irmc\","},{"line_number":589,"context_line":"            \"firmware_images\":{"},{"line_number":590,"context_line":"                  \"url\": \"file:///home/stack/irmc_firmware.BIN\","},{"line_number":591,"context_line":"                  \"checksum\": \"b6d3a549e6968140497a43739bc6cc67\""},{"line_number":592,"context_line":"            }"}],"source_content_type":"text/x-rst","patch_set":11,"id":"5fc1f717_8f0b48d4","line":589,"in_reply_to":"5fc1f717_e8f8d87b","updated":"2019-03-14 04:04:32.000000000","message":"yeah. It only support a image at the time.","commit_id":"adc830897c0b5d1332f93a12375c117500a1185f"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"587b71d7b1323082232af0d1822c592854a32b52","unresolved":false,"context_lines":[{"line_number":593,"context_line":"        }"},{"line_number":594,"context_line":"    }]"},{"line_number":595,"context_line":""},{"line_number":596,"context_line":"    and"},{"line_number":597,"context_line":""},{"line_number":598,"context_line":"    \"clean_steps\": [{"},{"line_number":599,"context_line":"        \"interface\": \"management\","}],"source_content_type":"text/x-rst","patch_set":11,"id":"5fc1f717_88f11498","line":596,"updated":"2019-03-13 10:35:19.000000000","message":"bad indentation here, please check the rendered version (you can do it locally with `tox -edocs`).","commit_id":"adc830897c0b5d1332f93a12375c117500a1185f"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"143c9ac98bcb3903d14e51ddb38da4c9760507b7","unresolved":false,"context_lines":[{"line_number":593,"context_line":"        }"},{"line_number":594,"context_line":"    }]"},{"line_number":595,"context_line":""},{"line_number":596,"context_line":"    and"},{"line_number":597,"context_line":""},{"line_number":598,"context_line":"    \"clean_steps\": [{"},{"line_number":599,"context_line":"        \"interface\": \"management\","}],"source_content_type":"text/x-rst","patch_set":11,"id":"5fc1f717_4f11e003","line":596,"in_reply_to":"5fc1f717_88f11498","updated":"2019-03-14 04:04:32.000000000","message":"Done","commit_id":"adc830897c0b5d1332f93a12375c117500a1185f"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"587b71d7b1323082232af0d1822c592854a32b52","unresolved":false,"context_lines":[{"line_number":610,"context_line":".. note::"},{"line_number":611,"context_line":""},{"line_number":612,"context_line":"    * Ironic powers off iRMC server before starting the firmware upgrade."},{"line_number":613,"context_line":"      It powers on the server when ``File Transferred Successfully`` and"},{"line_number":614,"context_line":"      reboots once the upgrade is completed."},{"line_number":615,"context_line":"    * ``iRMC firmware`` upgrade only supports ``*.bin`` or ``*\u0027BIN`` format files."},{"line_number":616,"context_line":"    * ``BIOS firmware`` upgrade only supports ``*.upc`` or ``*.UPC`` format files."}],"source_content_type":"text/x-rst","patch_set":11,"id":"5fc1f717_a8ee50b1","line":613,"updated":"2019-03-13 10:35:19.000000000","message":"why cover \"file transferred successfully\" with double ticks and make it camel-case?","commit_id":"adc830897c0b5d1332f93a12375c117500a1185f"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"143c9ac98bcb3903d14e51ddb38da4c9760507b7","unresolved":false,"context_lines":[{"line_number":610,"context_line":".. note::"},{"line_number":611,"context_line":""},{"line_number":612,"context_line":"    * Ironic powers off iRMC server before starting the firmware upgrade."},{"line_number":613,"context_line":"      It powers on the server when ``File Transferred Successfully`` and"},{"line_number":614,"context_line":"      reboots once the upgrade is completed."},{"line_number":615,"context_line":"    * ``iRMC firmware`` upgrade only supports ``*.bin`` or ``*\u0027BIN`` format files."},{"line_number":616,"context_line":"    * ``BIOS firmware`` upgrade only supports ``*.upc`` or ``*.UPC`` format files."}],"source_content_type":"text/x-rst","patch_set":11,"id":"5fc1f717_0ff758d5","line":613,"in_reply_to":"5fc1f717_a8ee50b1","updated":"2019-03-14 04:04:32.000000000","message":"This is msg from server which scciclient will be recieved during perform firmware upgrade --- Should keep this msg for make sence. thanks","commit_id":"adc830897c0b5d1332f93a12375c117500a1185f"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"587b71d7b1323082232af0d1822c592854a32b52","unresolved":false,"context_lines":[{"line_number":612,"context_line":"    * Ironic powers off iRMC server before starting the firmware upgrade."},{"line_number":613,"context_line":"      It powers on the server when ``File Transferred Successfully`` and"},{"line_number":614,"context_line":"      reboots once the upgrade is completed."},{"line_number":615,"context_line":"    * ``iRMC firmware`` upgrade only supports ``*.bin`` or ``*\u0027BIN`` format files."},{"line_number":616,"context_line":"    * ``BIOS firmware`` upgrade only supports ``*.upc`` or ``*.UPC`` format files."},{"line_number":617,"context_line":"    * The firmware upgrade type only supports ``file`` without ``URI scheme``."},{"line_number":618,"context_line":"    * This feature only supports one firmware type which are ``irmc`` and"}],"source_content_type":"text/x-rst","patch_set":11,"id":"5fc1f717_482d6cfc","line":615,"updated":"2019-03-13 10:35:19.000000000","message":"\"firmware\" should go outside of double ticks. Also you seem to use lower case ``irmc`` and ``bios`` in your example.","commit_id":"adc830897c0b5d1332f93a12375c117500a1185f"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"143c9ac98bcb3903d14e51ddb38da4c9760507b7","unresolved":false,"context_lines":[{"line_number":612,"context_line":"    * Ironic powers off iRMC server before starting the firmware upgrade."},{"line_number":613,"context_line":"      It powers on the server when ``File Transferred Successfully`` and"},{"line_number":614,"context_line":"      reboots once the upgrade is completed."},{"line_number":615,"context_line":"    * ``iRMC firmware`` upgrade only supports ``*.bin`` or ``*\u0027BIN`` format files."},{"line_number":616,"context_line":"    * ``BIOS firmware`` upgrade only supports ``*.upc`` or ``*.UPC`` format files."},{"line_number":617,"context_line":"    * The firmware upgrade type only supports ``file`` without ``URI scheme``."},{"line_number":618,"context_line":"    * This feature only supports one firmware type which are ``irmc`` and"}],"source_content_type":"text/x-rst","patch_set":11,"id":"5fc1f717_0fc43890","line":615,"in_reply_to":"5fc1f717_482d6cfc","updated":"2019-03-14 04:04:32.000000000","message":"Done","commit_id":"adc830897c0b5d1332f93a12375c117500a1185f"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"587b71d7b1323082232af0d1822c592854a32b52","unresolved":false,"context_lines":[{"line_number":613,"context_line":"      It powers on the server when ``File Transferred Successfully`` and"},{"line_number":614,"context_line":"      reboots once the upgrade is completed."},{"line_number":615,"context_line":"    * ``iRMC firmware`` upgrade only supports ``*.bin`` or ``*\u0027BIN`` format files."},{"line_number":616,"context_line":"    * ``BIOS firmware`` upgrade only supports ``*.upc`` or ``*.UPC`` format files."},{"line_number":617,"context_line":"    * The firmware upgrade type only supports ``file`` without ``URI scheme``."},{"line_number":618,"context_line":"    * This feature only supports one firmware type which are ``irmc`` and"},{"line_number":619,"context_line":"      ``bios`` at the time."}],"source_content_type":"text/x-rst","patch_set":11,"id":"5fc1f717_6832a861","line":616,"updated":"2019-03-13 10:35:19.000000000","message":"ditto","commit_id":"adc830897c0b5d1332f93a12375c117500a1185f"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"143c9ac98bcb3903d14e51ddb38da4c9760507b7","unresolved":false,"context_lines":[{"line_number":613,"context_line":"      It powers on the server when ``File Transferred Successfully`` and"},{"line_number":614,"context_line":"      reboots once the upgrade is completed."},{"line_number":615,"context_line":"    * ``iRMC firmware`` upgrade only supports ``*.bin`` or ``*\u0027BIN`` format files."},{"line_number":616,"context_line":"    * ``BIOS firmware`` upgrade only supports ``*.upc`` or ``*.UPC`` format files."},{"line_number":617,"context_line":"    * The firmware upgrade type only supports ``file`` without ``URI scheme``."},{"line_number":618,"context_line":"    * This feature only supports one firmware type which are ``irmc`` and"},{"line_number":619,"context_line":"      ``bios`` at the time."}],"source_content_type":"text/x-rst","patch_set":11,"id":"5fc1f717_efc68c9a","line":616,"in_reply_to":"5fc1f717_6832a861","updated":"2019-03-14 04:04:32.000000000","message":"Done","commit_id":"adc830897c0b5d1332f93a12375c117500a1185f"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"587b71d7b1323082232af0d1822c592854a32b52","unresolved":false,"context_lines":[{"line_number":614,"context_line":"      reboots once the upgrade is completed."},{"line_number":615,"context_line":"    * ``iRMC firmware`` upgrade only supports ``*.bin`` or ``*\u0027BIN`` format files."},{"line_number":616,"context_line":"    * ``BIOS firmware`` upgrade only supports ``*.upc`` or ``*.UPC`` format files."},{"line_number":617,"context_line":"    * The firmware upgrade type only supports ``file`` without ``URI scheme``."},{"line_number":618,"context_line":"    * This feature only supports one firmware type which are ``irmc`` and"},{"line_number":619,"context_line":"      ``bios`` at the time."},{"line_number":620,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"5fc1f717_0833e463","line":617,"updated":"2019-03-13 10:35:19.000000000","message":"\"URI schema\" doesn\u0027t need double ticks","commit_id":"adc830897c0b5d1332f93a12375c117500a1185f"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"143c9ac98bcb3903d14e51ddb38da4c9760507b7","unresolved":false,"context_lines":[{"line_number":614,"context_line":"      reboots once the upgrade is completed."},{"line_number":615,"context_line":"    * ``iRMC firmware`` upgrade only supports ``*.bin`` or ``*\u0027BIN`` format files."},{"line_number":616,"context_line":"    * ``BIOS firmware`` upgrade only supports ``*.upc`` or ``*.UPC`` format files."},{"line_number":617,"context_line":"    * The firmware upgrade type only supports ``file`` without ``URI scheme``."},{"line_number":618,"context_line":"    * This feature only supports one firmware type which are ``irmc`` and"},{"line_number":619,"context_line":"      ``bios`` at the time."},{"line_number":620,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"5fc1f717_afbc0406","line":617,"in_reply_to":"5fc1f717_0833e463","updated":"2019-03-14 04:04:32.000000000","message":"Done","commit_id":"adc830897c0b5d1332f93a12375c117500a1185f"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"587b71d7b1323082232af0d1822c592854a32b52","unresolved":false,"context_lines":[{"line_number":615,"context_line":"    * ``iRMC firmware`` upgrade only supports ``*.bin`` or ``*\u0027BIN`` format files."},{"line_number":616,"context_line":"    * ``BIOS firmware`` upgrade only supports ``*.upc`` or ``*.UPC`` format files."},{"line_number":617,"context_line":"    * The firmware upgrade type only supports ``file`` without ``URI scheme``."},{"line_number":618,"context_line":"    * This feature only supports one firmware type which are ``irmc`` and"},{"line_number":619,"context_line":"      ``bios`` at the time."},{"line_number":620,"context_line":""},{"line_number":621,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"5fc1f717_2838203b","line":618,"updated":"2019-03-13 10:35:19.000000000","message":"\"One one firmware update mode, either ``irmc`` or ``bios`` can be used at once.\"","commit_id":"adc830897c0b5d1332f93a12375c117500a1185f"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"143c9ac98bcb3903d14e51ddb38da4c9760507b7","unresolved":false,"context_lines":[{"line_number":615,"context_line":"    * ``iRMC firmware`` upgrade only supports ``*.bin`` or ``*\u0027BIN`` format files."},{"line_number":616,"context_line":"    * ``BIOS firmware`` upgrade only supports ``*.upc`` or ``*.UPC`` format files."},{"line_number":617,"context_line":"    * The firmware upgrade type only supports ``file`` without ``URI scheme``."},{"line_number":618,"context_line":"    * This feature only supports one firmware type which are ``irmc`` and"},{"line_number":619,"context_line":"      ``bios`` at the time."},{"line_number":620,"context_line":""},{"line_number":621,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"5fc1f717_cfb95015","line":618,"in_reply_to":"5fc1f717_2838203b","updated":"2019-03-14 04:04:32.000000000","message":"Done","commit_id":"adc830897c0b5d1332f93a12375c117500a1185f"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"180b9934d7b6bae5eecc6e2235fc1ea0f5615547","unresolved":false,"context_lines":[{"line_number":584,"context_line":"      \"interface\": \"management\","},{"line_number":585,"context_line":"      \"step\": \"update_firmware\","},{"line_number":586,"context_line":"      \"args\": {"},{"line_number":587,"context_line":"          \"firmware_update_type\": \"irmc\","},{"line_number":588,"context_line":"          \"firmware_image_file\":{"},{"line_number":589,"context_line":"                \"url\": \"file:///home/stack/irmc_firmware.BIN\","},{"line_number":590,"context_line":"                \"checksum\": \"b6d3a549e6968140497a43739bc6cc67\""}],"source_content_type":"text/x-rst","patch_set":14,"id":"3fce034c_a9758afc","line":587,"updated":"2019-04-11 09:09:45.000000000","message":"s/type/mode/ for consistency with existing ilo and proposed idrac implementations. And let\u0027s maybe make it optional since you can derive it from the file extension?","commit_id":"e85e09d5fa7b93df07d3e74de6546c1a76696999"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"0bed6e133822400c73e231475b706d19b03dcf4d","unresolved":false,"context_lines":[{"line_number":584,"context_line":"      \"interface\": \"management\","},{"line_number":585,"context_line":"      \"step\": \"update_firmware\","},{"line_number":586,"context_line":"      \"args\": {"},{"line_number":587,"context_line":"          \"firmware_update_type\": \"irmc\","},{"line_number":588,"context_line":"          \"firmware_image_file\":{"},{"line_number":589,"context_line":"                \"url\": \"file:///home/stack/irmc_firmware.BIN\","},{"line_number":590,"context_line":"                \"checksum\": \"b6d3a549e6968140497a43739bc6cc67\""}],"source_content_type":"text/x-rst","patch_set":14,"id":"7faddb67_29a7690e","line":587,"in_reply_to":"3fce034c_a9758afc","updated":"2019-08-07 06:14:19.000000000","message":"Done","commit_id":"e85e09d5fa7b93df07d3e74de6546c1a76696999"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"1c03efd2a0305e97e3fc4c6ded721200d232eb4b","unresolved":false,"context_lines":[{"line_number":584,"context_line":"      \"interface\": \"management\","},{"line_number":585,"context_line":"      \"step\": \"update_firmware\","},{"line_number":586,"context_line":"      \"args\": {"},{"line_number":587,"context_line":"          \"firmware_update_type\": \"irmc\","},{"line_number":588,"context_line":"          \"firmware_image_file\":{"},{"line_number":589,"context_line":"                \"url\": \"file:///home/stack/irmc_firmware.BIN\","},{"line_number":590,"context_line":"                \"checksum\": \"b6d3a549e6968140497a43739bc6cc67\""}],"source_content_type":"text/x-rst","patch_set":14,"id":"3fce034c_a7e84a16","line":587,"in_reply_to":"3fce034c_a9758afc","updated":"2019-04-11 17:05:08.000000000","message":"Yep. I will change it.","commit_id":"e85e09d5fa7b93df07d3e74de6546c1a76696999"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"180b9934d7b6bae5eecc6e2235fc1ea0f5615547","unresolved":false,"context_lines":[{"line_number":585,"context_line":"      \"step\": \"update_firmware\","},{"line_number":586,"context_line":"      \"args\": {"},{"line_number":587,"context_line":"          \"firmware_update_type\": \"irmc\","},{"line_number":588,"context_line":"          \"firmware_image_file\":{"},{"line_number":589,"context_line":"                \"url\": \"file:///home/stack/irmc_firmware.BIN\","},{"line_number":590,"context_line":"                \"checksum\": \"b6d3a549e6968140497a43739bc6cc67\""},{"line_number":591,"context_line":"          }"}],"source_content_type":"text/x-rst","patch_set":14,"id":"3fce034c_c9725612","line":588,"updated":"2019-04-11 09:09:45.000000000","message":"Is it true that you can/need to update only one file per request? Does it make sense to be able to update iRMC and BIOS firmware in one request?\n\nalso s/_file// since you seem to accept not only local files, but also remote URLs","commit_id":"e85e09d5fa7b93df07d3e74de6546c1a76696999"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"1c03efd2a0305e97e3fc4c6ded721200d232eb4b","unresolved":false,"context_lines":[{"line_number":585,"context_line":"      \"step\": \"update_firmware\","},{"line_number":586,"context_line":"      \"args\": {"},{"line_number":587,"context_line":"          \"firmware_update_type\": \"irmc\","},{"line_number":588,"context_line":"          \"firmware_image_file\":{"},{"line_number":589,"context_line":"                \"url\": \"file:///home/stack/irmc_firmware.BIN\","},{"line_number":590,"context_line":"                \"checksum\": \"b6d3a549e6968140497a43739bc6cc67\""},{"line_number":591,"context_line":"          }"}],"source_content_type":"text/x-rst","patch_set":14,"id":"3fce034c_67834206","line":588,"in_reply_to":"3fce034c_c9725612","updated":"2019-04-11 17:05:08.000000000","message":"Yes. Fujitsu BM only support a drive upgrade at the time. It can support to process in one request, but it will take a long time to complete and have higher risk for our server if one of them to be failed firmwares. We will do one request in the next time when we can control them, such as boot time, stable time after upgrade. And we also allow operators upgrade to seperate in their bussiness.\n\nAbout URL, currently Fujitsu cannot support to get firmware images from server directly --- We will implement this option later.","commit_id":"e85e09d5fa7b93df07d3e74de6546c1a76696999"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"62f8ed905e9f2513bbae8e3429107a29ff589b43","unresolved":false,"context_lines":[{"line_number":18,"context_line":"* Install `python-scciclient \u003chttps://pypi.org/project/python-scciclient\u003e`_"},{"line_number":19,"context_line":"  and `pysnmp \u003chttps://pypi.org/project/pysnmp\u003e`_ packages::"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"  $ pip install \"python-scciclient\u003e\u003d0.8.0\" pysnmp"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"Hardware Type"},{"line_number":24,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":24,"id":"3fa7e38b_406acf19","line":21,"range":{"start_line":21,"start_character":43,"end_line":21,"end_character":49},"updated":"2019-09-30 08:10:59.000000000","message":"just a note that at the moment, according to the drivers requirements, we support pysnmp up to version 5.0.0 not included","commit_id":"9ce92b28661807bf524345ee8ba763f6da5209bb"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"62f8ed905e9f2513bbae8e3429107a29ff589b43","unresolved":false,"context_lines":[{"line_number":614,"context_line":"    * ``irmc`` firmware upgrade only supports ``*.bin`` or ``*\u0027BIN`` format files."},{"line_number":615,"context_line":"    * ``bios`` firmware upgrade only supports ``*.upc`` or ``*.UPC`` format files."},{"line_number":616,"context_line":"    * The firmware upgrade type only supports ``file`` without URI scheme."},{"line_number":617,"context_line":"    * One one firmware update mode, either ``irmc`` or ``bios`` can be used at once."},{"line_number":618,"context_line":""},{"line_number":619,"context_line":""},{"line_number":620,"context_line":"Supported platforms"}],"source_content_type":"text/x-rst","patch_set":24,"id":"3fa7e38b_c0679f4c","line":617,"range":{"start_line":617,"start_character":6,"end_line":617,"end_character":9},"updated":"2019-09-30 08:10:59.000000000","message":"s/One/Only","commit_id":"9ce92b28661807bf524345ee8ba763f6da5209bb"}],"ironic/conf/irmc.py":[{"author":{"_account_id":29745,"name":"Dustin Cowles","email":"cowlesd@gmail.com","username":"dustinc","status":"inactive"},"change_message_id":"a901e0d4f5fa12f99c8676c978ba06c473c56e98","unresolved":false,"context_lines":[{"line_number":109,"context_line":"    cfg.IntOpt(\u0027firmware_upgrade_timeout\u0027,"},{"line_number":110,"context_line":"               default\u003d1800,"},{"line_number":111,"context_line":"               help\u003d_(\u0027Set timeout for firmware upgrade mechanism during \u0027"},{"line_number":112,"context_line":"                      \u0027upgrade either BIOS firmware or IRMC firmware.\u0027))"},{"line_number":113,"context_line":"]"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":""}],"source_content_type":"text/x-python","patch_set":24,"id":"3fa7e38b_dfa6aa0f","line":112,"range":{"start_line":112,"start_character":30,"end_line":112,"end_character":31},"updated":"2019-09-27 19:02:00.000000000","message":"I think that \"upgrade of\" reads better","commit_id":"9ce92b28661807bf524345ee8ba763f6da5209bb"}],"ironic/drivers/modules/irmc/common.py":[{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"afa091bd4813a91678a07ae1d1d13b984e2d140b","unresolved":false,"context_lines":[{"line_number":235,"context_line":"    \"\"\""},{"line_number":236,"context_line":"    driver_info \u003d parse_driver_info(node)"},{"line_number":237,"context_line":""},{"line_number":238,"context_line":"    firmware_upgrade_client \u003d scci.get_client("},{"line_number":239,"context_line":"        driver_info[\u0027irmc_address\u0027],"},{"line_number":240,"context_line":"        driver_info[\u0027irmc_username\u0027],"},{"line_number":241,"context_line":"        driver_info[\u0027irmc_password\u0027],"}],"source_content_type":"text/x-python","patch_set":9,"id":"3f79a3b5_68d392d5","line":238,"range":{"start_line":238,"start_character":30,"end_line":238,"end_character":45},"updated":"2018-11-21 07:11:34.000000000","message":"Can this throw any exceptions? If so, we need to catch and handle it here.","commit_id":"56681d03a290ec817e25da957fe8abeeab487b30"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"5e6dbe1aab9a38199dda0c0bc12446d8a037a40b","unresolved":false,"context_lines":[{"line_number":235,"context_line":"    \"\"\""},{"line_number":236,"context_line":"    driver_info \u003d parse_driver_info(node)"},{"line_number":237,"context_line":""},{"line_number":238,"context_line":"    firmware_upgrade_client \u003d scci.get_client("},{"line_number":239,"context_line":"        driver_info[\u0027irmc_address\u0027],"},{"line_number":240,"context_line":"        driver_info[\u0027irmc_username\u0027],"},{"line_number":241,"context_line":"        driver_info[\u0027irmc_password\u0027],"}],"source_content_type":"text/x-python","patch_set":9,"id":"3f79a3b5_7ca9ffd8","line":238,"range":{"start_line":238,"start_character":30,"end_line":238,"end_character":45},"in_reply_to":"3f79a3b5_68d392d5","updated":"2018-12-19 04:30:18.000000000","message":"Done","commit_id":"56681d03a290ec817e25da957fe8abeeab487b30"},{"author":{"_account_id":18781,"name":"vinay50muddu","email":"vinay50muddu@yahoo.com","username":"vmud213"},"change_message_id":"04d84552866e99b3b3b7820bd520b133ef507bfc","unresolved":false,"context_lines":[{"line_number":134,"context_line":"    return d_info"},{"line_number":135,"context_line":""},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"def get_irmc_client(node):"},{"line_number":138,"context_line":"    \"\"\"Gets an iRMC SCCI client."},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"    Given an ironic node object, this method gives back a iRMC SCCI client"}],"source_content_type":"text/x-python","patch_set":10,"id":"3f79a3b5_1bf8df15","line":137,"range":{"start_line":137,"start_character":4,"end_line":137,"end_character":19},"updated":"2018-12-21 06:01:33.000000000","message":"Change this function signature and add the same exception handling functionality you intend to add in get_firmware_upgrade_client so that we can get rid of the new function. We can still retain the backward compatibility. May be as below:\n\ndef get_irmc_client(node, upgrade_type\u003d\u0027irmc\u0027):\n    driver_info \u003d parse_driver_info(node)\n    try:\n        ...\n        ...\n    except:\n        ...","commit_id":"452b766c5c10fa0b8aeb43021514a4906bef5d33"},{"author":{"_account_id":18781,"name":"vinay50muddu","email":"vinay50muddu@yahoo.com","username":"vmud213"},"change_message_id":"04d84552866e99b3b3b7820bd520b133ef507bfc","unresolved":false,"context_lines":[{"line_number":221,"context_line":"            error\u003dirmc_exception)"},{"line_number":222,"context_line":""},{"line_number":223,"context_line":""},{"line_number":224,"context_line":"def get_firmware_upgrade_client(node, upgrade_type):"},{"line_number":225,"context_line":"    \"\"\"Gets an iRMC firmware upgrade client."},{"line_number":226,"context_line":""},{"line_number":227,"context_line":"    Given an ironic node object, this method gives back a iRMC SCCI client"}],"source_content_type":"text/x-python","patch_set":10,"id":"3f79a3b5_00338e12","line":224,"range":{"start_line":224,"start_character":4,"end_line":224,"end_character":31},"updated":"2018-12-21 06:01:33.000000000","message":"The implementation of the function is same as get_irmc_client except the signature and some exception handling. Why can\u0027t we change get_irmc_client instead of defining a new function. U can make it still backward compatible. See my comment above.","commit_id":"452b766c5c10fa0b8aeb43021514a4906bef5d33"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"95a8048777fefca21e889a5cf53ed3ca57e38ee5","unresolved":false,"context_lines":[{"line_number":221,"context_line":"            error\u003dirmc_exception)"},{"line_number":222,"context_line":""},{"line_number":223,"context_line":""},{"line_number":224,"context_line":"def get_firmware_upgrade_client(node, upgrade_type):"},{"line_number":225,"context_line":"    \"\"\"Gets an iRMC firmware upgrade client."},{"line_number":226,"context_line":""},{"line_number":227,"context_line":"    Given an ironic node object, this method gives back a iRMC SCCI client"}],"source_content_type":"text/x-python","patch_set":10,"id":"5fc1f717_32d76526","line":224,"range":{"start_line":224,"start_character":4,"end_line":224,"end_character":31},"in_reply_to":"3f79a3b5_00338e12","updated":"2019-03-11 09:00:28.000000000","message":"No. We should separate both method to process specific mechanism. Thanks for your advice.","commit_id":"452b766c5c10fa0b8aeb43021514a4906bef5d33"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"587b71d7b1323082232af0d1822c592854a32b52","unresolved":false,"context_lines":[{"line_number":243,"context_line":"            client_timeout\u003ddriver_info[\u0027irmc_client_timeout\u0027],"},{"line_number":244,"context_line":"            upgrade_type\u003dupgrade_type)"},{"line_number":245,"context_line":"    except (scci.SCCIInvalidInputError, scci.SCCIClientError) as err:"},{"line_number":246,"context_line":"        raise exception.IRMCOperationError(operation\u003d\u0027Firmware Upgrade\u0027,"},{"line_number":247,"context_line":"                                           error\u003derr)"},{"line_number":248,"context_line":"    return firmware_upgrade_client"}],"source_content_type":"text/x-python","patch_set":11,"id":"5fc1f717_881fd4b5","line":246,"updated":"2019-03-13 10:35:19.000000000","message":"nit: _() around \"Firmware upgrade\"?","commit_id":"adc830897c0b5d1332f93a12375c117500a1185f"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"143c9ac98bcb3903d14e51ddb38da4c9760507b7","unresolved":false,"context_lines":[{"line_number":243,"context_line":"            client_timeout\u003ddriver_info[\u0027irmc_client_timeout\u0027],"},{"line_number":244,"context_line":"            upgrade_type\u003dupgrade_type)"},{"line_number":245,"context_line":"    except (scci.SCCIInvalidInputError, scci.SCCIClientError) as err:"},{"line_number":246,"context_line":"        raise exception.IRMCOperationError(operation\u003d\u0027Firmware Upgrade\u0027,"},{"line_number":247,"context_line":"                                           error\u003derr)"},{"line_number":248,"context_line":"    return firmware_upgrade_client"}],"source_content_type":"text/x-python","patch_set":11,"id":"5fc1f717_4f2a402c","line":246,"in_reply_to":"5fc1f717_881fd4b5","updated":"2019-03-14 04:04:32.000000000","message":"Done","commit_id":"adc830897c0b5d1332f93a12375c117500a1185f"}],"ironic/drivers/modules/irmc/management.py":[{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"1ccaa6b29c5cd09af25ed79409ab3ce5b16e8fa6","unresolved":false,"context_lines":[{"line_number":389,"context_line":"            ),"},{"line_number":390,"context_line":"            \u0027required\u0027: True"},{"line_number":391,"context_line":"        }"},{"line_number":392,"context_line":"    })"},{"line_number":393,"context_line":"    def update_firmware(self, task, **kwargs):"},{"line_number":394,"context_line":"        \"\"\"Updates the firmware."},{"line_number":395,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"3f79a3b5_a626ef66","line":392,"updated":"2018-10-09 01:29:53.000000000","message":"We have a require exclusive lock decorator, I suspect you\u0027ll need it.","commit_id":"bae41a61a8b4074a3d879be77487ec6a3d9698bf"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"2a61824dee16f8af66f3c9fd8ee40c647ffead93","unresolved":false,"context_lines":[{"line_number":389,"context_line":"            ),"},{"line_number":390,"context_line":"            \u0027required\u0027: True"},{"line_number":391,"context_line":"        }"},{"line_number":392,"context_line":"    })"},{"line_number":393,"context_line":"    def update_firmware(self, task, **kwargs):"},{"line_number":394,"context_line":"        \"\"\"Updates the firmware."},{"line_number":395,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"3f79a3b5_f3972e45","line":392,"in_reply_to":"3f79a3b5_a626ef66","updated":"2018-10-16 04:32:03.000000000","message":"Done","commit_id":"bae41a61a8b4074a3d879be77487ec6a3d9698bf"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"1ccaa6b29c5cd09af25ed79409ab3ce5b16e8fa6","unresolved":false,"context_lines":[{"line_number":408,"context_line":"        old_power_state \u003d task.driver.power.get_power_state(task)"},{"line_number":409,"context_line":"        if old_power_state \u003d\u003d states.POWER_ON:"},{"line_number":410,"context_line":"            manager_utils.node_set_boot_device(task, boot_devices.BIOS, False)"},{"line_number":411,"context_line":"            manager_utils.node_power_action(task, states.POWER_OFF)"},{"line_number":412,"context_line":"            LOG.info(\"The Node %(node_uuid)s being powered off for upgrade\""},{"line_number":413,"context_line":"                     \"firmware\", {\u0027node_uuid\u0027: task.node.uuid})"},{"line_number":414,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"3f79a3b5_e62ce74a","line":411,"updated":"2018-10-09 01:29:53.000000000","message":"Lets add a note to remind ourselves, if we ever support this on an \"active\" node, then we can\u0027t expose this power change out of the API as we hold the lock.","commit_id":"bae41a61a8b4074a3d879be77487ec6a3d9698bf"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"2a61824dee16f8af66f3c9fd8ee40c647ffead93","unresolved":false,"context_lines":[{"line_number":408,"context_line":"        old_power_state \u003d task.driver.power.get_power_state(task)"},{"line_number":409,"context_line":"        if old_power_state \u003d\u003d states.POWER_ON:"},{"line_number":410,"context_line":"            manager_utils.node_set_boot_device(task, boot_devices.BIOS, False)"},{"line_number":411,"context_line":"            manager_utils.node_power_action(task, states.POWER_OFF)"},{"line_number":412,"context_line":"            LOG.info(\"The Node %(node_uuid)s being powered off for upgrade\""},{"line_number":413,"context_line":"                     \"firmware\", {\u0027node_uuid\u0027: task.node.uuid})"},{"line_number":414,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"3f79a3b5_5365c247","line":411,"in_reply_to":"3f79a3b5_e62ce74a","updated":"2018-10-16 04:32:03.000000000","message":"Done","commit_id":"bae41a61a8b4074a3d879be77487ec6a3d9698bf"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"1ccaa6b29c5cd09af25ed79409ab3ce5b16e8fa6","unresolved":false,"context_lines":[{"line_number":443,"context_line":"    def _firmware_upgrade_status(self, node, upgrade_type):"},{"line_number":444,"context_line":"        irmc_info \u003d irmc_common.parse_driver_info(node)"},{"line_number":445,"context_line":"        # Gather firmware upgrade status from server"},{"line_number":446,"context_line":"        irmc.scci.get_firmware_upgrade_status(irmc_info, upgrade_type)"},{"line_number":447,"context_line":""},{"line_number":448,"context_line":"        # Monitor firmware upgrade session until complete"},{"line_number":449,"context_line":"        status \u003d irmc.scci.process_session_status(irmc_info,"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f79a3b5_461d9b0e","line":446,"updated":"2018-10-09 01:29:53.000000000","message":"Do we just end up blocking until the upgrade is done? We likely need documentation to convey that admins.","commit_id":"bae41a61a8b4074a3d879be77487ec6a3d9698bf"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"2a61824dee16f8af66f3c9fd8ee40c647ffead93","unresolved":false,"context_lines":[{"line_number":443,"context_line":"    def _firmware_upgrade_status(self, node, upgrade_type):"},{"line_number":444,"context_line":"        irmc_info \u003d irmc_common.parse_driver_info(node)"},{"line_number":445,"context_line":"        # Gather firmware upgrade status from server"},{"line_number":446,"context_line":"        irmc.scci.get_firmware_upgrade_status(irmc_info, upgrade_type)"},{"line_number":447,"context_line":""},{"line_number":448,"context_line":"        # Monitor firmware upgrade session until complete"},{"line_number":449,"context_line":"        status \u003d irmc.scci.process_session_status(irmc_info,"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f79a3b5_93691af8","line":446,"in_reply_to":"3f79a3b5_461d9b0e","updated":"2018-10-16 04:32:03.000000000","message":"Yep. I will add them into document.","commit_id":"bae41a61a8b4074a3d879be77487ec6a3d9698bf"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"1ccaa6b29c5cd09af25ed79409ab3ce5b16e8fa6","unresolved":false,"context_lines":[{"line_number":449,"context_line":"        status \u003d irmc.scci.process_session_status(irmc_info,"},{"line_number":450,"context_line":"                                                  FIRMWARE_UPGRADE_TIMEOUT,"},{"line_number":451,"context_line":"                                                  upgrade_type)"},{"line_number":452,"context_line":"        if status.get(\u0027upgrade_status\u0027) \u003d\u003d \u0027Error\u0027:"},{"line_number":453,"context_line":"            err \u003d (\"Failed to flash firmware upgrade or node: %s.\""},{"line_number":454,"context_line":"                   % node.uuid)"},{"line_number":455,"context_line":"            raise exception.IRMCOperationError(operation\u003d\u0027Firmware Upgrade\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f79a3b5_860ad3ce","line":452,"updated":"2018-10-09 01:29:53.000000000","message":"Is there no indicator of success?","commit_id":"bae41a61a8b4074a3d879be77487ec6a3d9698bf"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"2a61824dee16f8af66f3c9fd8ee40c647ffead93","unresolved":false,"context_lines":[{"line_number":449,"context_line":"        status \u003d irmc.scci.process_session_status(irmc_info,"},{"line_number":450,"context_line":"                                                  FIRMWARE_UPGRADE_TIMEOUT,"},{"line_number":451,"context_line":"                                                  upgrade_type)"},{"line_number":452,"context_line":"        if status.get(\u0027upgrade_status\u0027) \u003d\u003d \u0027Error\u0027:"},{"line_number":453,"context_line":"            err \u003d (\"Failed to flash firmware upgrade or node: %s.\""},{"line_number":454,"context_line":"                   % node.uuid)"},{"line_number":455,"context_line":"            raise exception.IRMCOperationError(operation\u003d\u0027Firmware Upgrade\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f79a3b5_3374c6cf","line":452,"in_reply_to":"3f79a3b5_860ad3ce","updated":"2018-10-16 04:32:03.000000000","message":"Done","commit_id":"bae41a61a8b4074a3d879be77487ec6a3d9698bf"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"afa091bd4813a91678a07ae1d1d13b984e2d140b","unresolved":false,"context_lines":[{"line_number":41,"context_line":"from ironic.drivers import utils as driver_utils"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"irmc \u003d importutils.try_import(\u0027scciclient.irmc\u0027)"},{"line_number":44,"context_line":"FIRMWARE_UPGRADE_TIMEOUT \u003d 30 * 60  # 30 mins"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":47,"context_line":"CONF \u003d conf.CONF"}],"source_content_type":"text/x-python","patch_set":9,"id":"3f79a3b5_c8b3c698","line":44,"range":{"start_line":44,"start_character":0,"end_line":44,"end_character":45},"updated":"2018-11-21 07:11:34.000000000","message":"Would it be useful to have this as config parameter with default value of 30 min?","commit_id":"56681d03a290ec817e25da957fe8abeeab487b30"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"5e6dbe1aab9a38199dda0c0bc12446d8a037a40b","unresolved":false,"context_lines":[{"line_number":41,"context_line":"from ironic.drivers import utils as driver_utils"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"irmc \u003d importutils.try_import(\u0027scciclient.irmc\u0027)"},{"line_number":44,"context_line":"FIRMWARE_UPGRADE_TIMEOUT \u003d 30 * 60  # 30 mins"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":47,"context_line":"CONF \u003d conf.CONF"}],"source_content_type":"text/x-python","patch_set":9,"id":"3f79a3b5_dcbff3fc","line":44,"range":{"start_line":44,"start_character":0,"end_line":44,"end_character":45},"in_reply_to":"3f79a3b5_c8b3c698","updated":"2018-12-19 04:30:18.000000000","message":"Done","commit_id":"56681d03a290ec817e25da957fe8abeeab487b30"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"afa091bd4813a91678a07ae1d1d13b984e2d140b","unresolved":false,"context_lines":[{"line_number":395,"context_line":"        },"},{"line_number":396,"context_line":"        \u0027firmware_image_file\u0027: {"},{"line_number":397,"context_line":"            \u0027description\u0027: ("},{"line_number":398,"context_line":"                \"This argument represents the firmware file directory\""},{"line_number":399,"context_line":"            ),"},{"line_number":400,"context_line":"            \u0027required\u0027: True"},{"line_number":401,"context_line":"        }"}],"source_content_type":"text/x-python","patch_set":9,"id":"3f79a3b5_a8e20a9b","line":398,"range":{"start_line":398,"start_character":60,"end_line":398,"end_character":69},"updated":"2018-11-21 07:11:34.000000000","message":"s/ directory / URI / ?","commit_id":"56681d03a290ec817e25da957fe8abeeab487b30"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"5e6dbe1aab9a38199dda0c0bc12446d8a037a40b","unresolved":false,"context_lines":[{"line_number":395,"context_line":"        },"},{"line_number":396,"context_line":"        \u0027firmware_image_file\u0027: {"},{"line_number":397,"context_line":"            \u0027description\u0027: ("},{"line_number":398,"context_line":"                \"This argument represents the firmware file directory\""},{"line_number":399,"context_line":"            ),"},{"line_number":400,"context_line":"            \u0027required\u0027: True"},{"line_number":401,"context_line":"        }"}],"source_content_type":"text/x-python","patch_set":9,"id":"3f79a3b5_fc52efd8","line":398,"range":{"start_line":398,"start_character":60,"end_line":398,"end_character":69},"in_reply_to":"3f79a3b5_a8e20a9b","updated":"2018-12-19 04:30:18.000000000","message":"Done","commit_id":"56681d03a290ec817e25da957fe8abeeab487b30"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"afa091bd4813a91678a07ae1d1d13b984e2d140b","unresolved":false,"context_lines":[{"line_number":416,"context_line":"        upgrade_type_list \u003d [\u0027irmc\u0027, \u0027bios\u0027]"},{"line_number":417,"context_line":""},{"line_number":418,"context_line":"        # Download and validate image source."},{"line_number":419,"context_line":"        image_fw_file \u003d \\"},{"line_number":420,"context_line":"            self._download_and_validate_images(firmware_image_file,"},{"line_number":421,"context_line":"                                               firmware_update_type)"},{"line_number":422,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"3f79a3b5_2827daca","line":419,"range":{"start_line":419,"start_character":8,"end_line":419,"end_character":25},"updated":"2018-11-21 07:11:34.000000000","message":"Better to use \u0027()\u0027 instead of \u0027\\\u0027\nimage_fw_file \u003d (\n    self._download_and_validate_images(firmware_image_file,\n                                       firmware_update_type))","commit_id":"56681d03a290ec817e25da957fe8abeeab487b30"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"5e6dbe1aab9a38199dda0c0bc12446d8a037a40b","unresolved":false,"context_lines":[{"line_number":416,"context_line":"        upgrade_type_list \u003d [\u0027irmc\u0027, \u0027bios\u0027]"},{"line_number":417,"context_line":""},{"line_number":418,"context_line":"        # Download and validate image source."},{"line_number":419,"context_line":"        image_fw_file \u003d \\"},{"line_number":420,"context_line":"            self._download_and_validate_images(firmware_image_file,"},{"line_number":421,"context_line":"                                               firmware_update_type)"},{"line_number":422,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"3f79a3b5_bc68f788","line":419,"range":{"start_line":419,"start_character":8,"end_line":419,"end_character":25},"in_reply_to":"3f79a3b5_2827daca","updated":"2018-12-19 04:30:18.000000000","message":"Done","commit_id":"56681d03a290ec817e25da957fe8abeeab487b30"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"afa091bd4813a91678a07ae1d1d13b984e2d140b","unresolved":false,"context_lines":[{"line_number":422,"context_line":""},{"line_number":423,"context_line":"        # Power-off bare metal for upgrade preparation. Due to firmware"},{"line_number":424,"context_line":"        # upgrade is required power-cycle after finish if bare metal power-on."},{"line_number":425,"context_line":"        old_power_state \u003d task.driver.power.get_power_state(task)"},{"line_number":426,"context_line":"        if old_power_state \u003d\u003d states.POWER_ON:"},{"line_number":427,"context_line":"            manager_utils.node_power_action(task, states.POWER_OFF)"},{"line_number":428,"context_line":"            LOG.info(\"The Node is %(node_uuid)s being powered off for upgrade \""},{"line_number":429,"context_line":"                     \"firmware\", {\u0027node_uuid\u0027: task.node.uuid})"}],"source_content_type":"text/x-python","patch_set":9,"id":"3f79a3b5_28f6fa5f","line":426,"range":{"start_line":425,"start_character":8,"end_line":426,"end_character":46},"updated":"2018-11-21 07:11:34.000000000","message":"We do not need this check. If the node is in power off state, manager_utils.node_power_action() would not perform any action on node. Unless you want to maintain this check to give info message at L428.","commit_id":"56681d03a290ec817e25da957fe8abeeab487b30"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"5e6dbe1aab9a38199dda0c0bc12446d8a037a40b","unresolved":false,"context_lines":[{"line_number":422,"context_line":""},{"line_number":423,"context_line":"        # Power-off bare metal for upgrade preparation. Due to firmware"},{"line_number":424,"context_line":"        # upgrade is required power-cycle after finish if bare metal power-on."},{"line_number":425,"context_line":"        old_power_state \u003d task.driver.power.get_power_state(task)"},{"line_number":426,"context_line":"        if old_power_state \u003d\u003d states.POWER_ON:"},{"line_number":427,"context_line":"            manager_utils.node_power_action(task, states.POWER_OFF)"},{"line_number":428,"context_line":"            LOG.info(\"The Node is %(node_uuid)s being powered off for upgrade \""},{"line_number":429,"context_line":"                     \"firmware\", {\u0027node_uuid\u0027: task.node.uuid})"}],"source_content_type":"text/x-python","patch_set":9,"id":"3f79a3b5_9cf09bdd","line":426,"range":{"start_line":425,"start_character":8,"end_line":426,"end_character":46},"in_reply_to":"3f79a3b5_28f6fa5f","updated":"2018-12-19 04:30:18.000000000","message":"Right. I need node power-off before processing. If node is power off state then we will ignore this step.","commit_id":"56681d03a290ec817e25da957fe8abeeab487b30"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"afa091bd4813a91678a07ae1d1d13b984e2d140b","unresolved":false,"context_lines":[{"line_number":425,"context_line":"        old_power_state \u003d task.driver.power.get_power_state(task)"},{"line_number":426,"context_line":"        if old_power_state \u003d\u003d states.POWER_ON:"},{"line_number":427,"context_line":"            manager_utils.node_power_action(task, states.POWER_OFF)"},{"line_number":428,"context_line":"            LOG.info(\"The Node is %(node_uuid)s being powered off for upgrade \""},{"line_number":429,"context_line":"                     \"firmware\", {\u0027node_uuid\u0027: task.node.uuid})"},{"line_number":430,"context_line":""},{"line_number":431,"context_line":"        if firmware_update_type not in upgrade_type_list:"}],"source_content_type":"text/x-python","patch_set":9,"id":"3f79a3b5_0891bef6","line":428,"range":{"start_line":428,"start_character":70,"end_line":428,"end_character":77},"updated":"2018-11-21 07:11:34.000000000","message":"s/ upgrade / upgrade of  /","commit_id":"56681d03a290ec817e25da957fe8abeeab487b30"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"5e6dbe1aab9a38199dda0c0bc12446d8a037a40b","unresolved":false,"context_lines":[{"line_number":425,"context_line":"        old_power_state \u003d task.driver.power.get_power_state(task)"},{"line_number":426,"context_line":"        if old_power_state \u003d\u003d states.POWER_ON:"},{"line_number":427,"context_line":"            manager_utils.node_power_action(task, states.POWER_OFF)"},{"line_number":428,"context_line":"            LOG.info(\"The Node is %(node_uuid)s being powered off for upgrade \""},{"line_number":429,"context_line":"                     \"firmware\", {\u0027node_uuid\u0027: task.node.uuid})"},{"line_number":430,"context_line":""},{"line_number":431,"context_line":"        if firmware_update_type not in upgrade_type_list:"}],"source_content_type":"text/x-python","patch_set":9,"id":"3f79a3b5_bced5702","line":428,"range":{"start_line":428,"start_character":70,"end_line":428,"end_character":77},"in_reply_to":"3f79a3b5_0891bef6","updated":"2018-12-19 04:30:18.000000000","message":"Done","commit_id":"56681d03a290ec817e25da957fe8abeeab487b30"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"afa091bd4813a91678a07ae1d1d13b984e2d140b","unresolved":false,"context_lines":[{"line_number":437,"context_line":"        try:"},{"line_number":438,"context_line":"            irmc_client(image_fw_file)"},{"line_number":439,"context_line":"        except irmc.scci.SCCIClientError as err:"},{"line_number":440,"context_line":"            LOG.error(\u0027Set iRMC Firmware upgrade failed for node %(node)s: \u0027"},{"line_number":441,"context_line":"                      \u0027%(err)s.\u0027, {\u0027node\u0027: node.uuid, \u0027err\u0027: err})"},{"line_number":442,"context_line":"            raise exception.IRMCOperationError(operation\u003d\u0027Firmware Upgrade\u0027,"},{"line_number":443,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"3f79a3b5_4886d6b9","line":440,"range":{"start_line":440,"start_character":49,"end_line":440,"end_character":64},"updated":"2018-11-21 07:11:34.000000000","message":"It may be useful to add the values of firmware_update_type and firmware_image_file in this message.","commit_id":"56681d03a290ec817e25da957fe8abeeab487b30"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"afa091bd4813a91678a07ae1d1d13b984e2d140b","unresolved":false,"context_lines":[{"line_number":437,"context_line":"        try:"},{"line_number":438,"context_line":"            irmc_client(image_fw_file)"},{"line_number":439,"context_line":"        except irmc.scci.SCCIClientError as err:"},{"line_number":440,"context_line":"            LOG.error(\u0027Set iRMC Firmware upgrade failed for node %(node)s: \u0027"},{"line_number":441,"context_line":"                      \u0027%(err)s.\u0027, {\u0027node\u0027: node.uuid, \u0027err\u0027: err})"},{"line_number":442,"context_line":"            raise exception.IRMCOperationError(operation\u003d\u0027Firmware Upgrade\u0027,"},{"line_number":443,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"3f79a3b5_887ceec7","line":440,"range":{"start_line":440,"start_character":23,"end_line":440,"end_character":26},"updated":"2018-11-21 07:11:34.000000000","message":"s/ Set //","commit_id":"56681d03a290ec817e25da957fe8abeeab487b30"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"5e6dbe1aab9a38199dda0c0bc12446d8a037a40b","unresolved":false,"context_lines":[{"line_number":437,"context_line":"        try:"},{"line_number":438,"context_line":"            irmc_client(image_fw_file)"},{"line_number":439,"context_line":"        except irmc.scci.SCCIClientError as err:"},{"line_number":440,"context_line":"            LOG.error(\u0027Set iRMC Firmware upgrade failed for node %(node)s: \u0027"},{"line_number":441,"context_line":"                      \u0027%(err)s.\u0027, {\u0027node\u0027: node.uuid, \u0027err\u0027: err})"},{"line_number":442,"context_line":"            raise exception.IRMCOperationError(operation\u003d\u0027Firmware Upgrade\u0027,"},{"line_number":443,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"3f79a3b5_fcae6f9e","line":440,"range":{"start_line":440,"start_character":49,"end_line":440,"end_character":64},"in_reply_to":"3f79a3b5_4886d6b9","updated":"2018-12-19 04:30:18.000000000","message":"Done","commit_id":"56681d03a290ec817e25da957fe8abeeab487b30"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"5e6dbe1aab9a38199dda0c0bc12446d8a037a40b","unresolved":false,"context_lines":[{"line_number":437,"context_line":"        try:"},{"line_number":438,"context_line":"            irmc_client(image_fw_file)"},{"line_number":439,"context_line":"        except irmc.scci.SCCIClientError as err:"},{"line_number":440,"context_line":"            LOG.error(\u0027Set iRMC Firmware upgrade failed for node %(node)s: \u0027"},{"line_number":441,"context_line":"                      \u0027%(err)s.\u0027, {\u0027node\u0027: node.uuid, \u0027err\u0027: err})"},{"line_number":442,"context_line":"            raise exception.IRMCOperationError(operation\u003d\u0027Firmware Upgrade\u0027,"},{"line_number":443,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"3f79a3b5_9cc73b67","line":440,"range":{"start_line":440,"start_character":23,"end_line":440,"end_character":26},"in_reply_to":"3f79a3b5_887ceec7","updated":"2018-12-19 04:30:18.000000000","message":"Done","commit_id":"56681d03a290ec817e25da957fe8abeeab487b30"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"afa091bd4813a91678a07ae1d1d13b984e2d140b","unresolved":false,"context_lines":[{"line_number":443,"context_line":""},{"line_number":444,"context_line":"                                               error\u003derr)"},{"line_number":445,"context_line":"        except irmc.scci.SCCISessionTimeout as err:"},{"line_number":446,"context_line":"            LOG.error(\u0027Set iRMC Firmware upgrade time-out on node %(node)s: \u0027"},{"line_number":447,"context_line":"                      \u0027%(err)s.\u0027, {\u0027node\u0027: node.uuid, \u0027err\u0027: err})"},{"line_number":448,"context_line":"            raise exception.IRMCOperationError(operation\u003d\u0027Firmware Upgrade\u0027,"},{"line_number":449,"context_line":"                                               error\u003derr)"}],"source_content_type":"text/x-python","patch_set":9,"id":"3f79a3b5_e8b6c28c","line":446,"range":{"start_line":446,"start_character":23,"end_line":446,"end_character":26},"updated":"2018-11-21 07:11:34.000000000","message":"s/ Set //","commit_id":"56681d03a290ec817e25da957fe8abeeab487b30"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"5e6dbe1aab9a38199dda0c0bc12446d8a037a40b","unresolved":false,"context_lines":[{"line_number":443,"context_line":""},{"line_number":444,"context_line":"                                               error\u003derr)"},{"line_number":445,"context_line":"        except irmc.scci.SCCISessionTimeout as err:"},{"line_number":446,"context_line":"            LOG.error(\u0027Set iRMC Firmware upgrade time-out on node %(node)s: \u0027"},{"line_number":447,"context_line":"                      \u0027%(err)s.\u0027, {\u0027node\u0027: node.uuid, \u0027err\u0027: err})"},{"line_number":448,"context_line":"            raise exception.IRMCOperationError(operation\u003d\u0027Firmware Upgrade\u0027,"},{"line_number":449,"context_line":"                                               error\u003derr)"}],"source_content_type":"text/x-python","patch_set":9,"id":"3f79a3b5_bcc47762","line":446,"range":{"start_line":446,"start_character":23,"end_line":446,"end_character":26},"in_reply_to":"3f79a3b5_e8b6c28c","updated":"2018-12-19 04:30:18.000000000","message":"Done","commit_id":"56681d03a290ec817e25da957fe8abeeab487b30"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"afa091bd4813a91678a07ae1d1d13b984e2d140b","unresolved":false,"context_lines":[{"line_number":472,"context_line":"            result \u003d irmc.scci.process_session_status(irmc_info,"},{"line_number":473,"context_line":"                                                      FIRMWARE_UPGRADE_TIMEOUT,"},{"line_number":474,"context_line":"                                                      upgrade_type)"},{"line_number":475,"context_line":"        except irmc.scci.SCCIClientError as err:"},{"line_number":476,"context_line":"            raise exception.IRMCOperationError(operation\u003d\u0027Firmware Upgrade\u0027,"},{"line_number":477,"context_line":"                                               error\u003derr)"},{"line_number":478,"context_line":"        except irmc.scci.SCCISessionTimeout as err:"},{"line_number":479,"context_line":"            raise exception.IRMCOperationError(operation\u003d\u0027Firmware Upgrade\u0027,"},{"line_number":480,"context_line":"                                               error\u003derr)"},{"line_number":481,"context_line":""},{"line_number":482,"context_line":"        if result.get(\u0027upgrade_status\u0027) \u003d\u003d \u0027Error\u0027:"},{"line_number":483,"context_line":"            err \u003d (\"Failed to flash firmware upgrade or node: %s.\""}],"source_content_type":"text/x-python","patch_set":9,"id":"3f79a3b5_e8448278","line":480,"range":{"start_line":475,"start_character":8,"end_line":480,"end_character":57},"updated":"2018-11-21 07:11:34.000000000","message":"We can club these together as:\nexcept (irmc.scci.SCCIClientError,\n        irmc.scci.SCCISessionTimeout) as err:\n            raise exception.IRMCOperationError(operation\u003d\u0027Firmware Upgrade\u0027,\n                                               error\u003derr)","commit_id":"56681d03a290ec817e25da957fe8abeeab487b30"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"5e6dbe1aab9a38199dda0c0bc12446d8a037a40b","unresolved":false,"context_lines":[{"line_number":472,"context_line":"            result \u003d irmc.scci.process_session_status(irmc_info,"},{"line_number":473,"context_line":"                                                      FIRMWARE_UPGRADE_TIMEOUT,"},{"line_number":474,"context_line":"                                                      upgrade_type)"},{"line_number":475,"context_line":"        except irmc.scci.SCCIClientError as err:"},{"line_number":476,"context_line":"            raise exception.IRMCOperationError(operation\u003d\u0027Firmware Upgrade\u0027,"},{"line_number":477,"context_line":"                                               error\u003derr)"},{"line_number":478,"context_line":"        except irmc.scci.SCCISessionTimeout as err:"},{"line_number":479,"context_line":"            raise exception.IRMCOperationError(operation\u003d\u0027Firmware Upgrade\u0027,"},{"line_number":480,"context_line":"                                               error\u003derr)"},{"line_number":481,"context_line":""},{"line_number":482,"context_line":"        if result.get(\u0027upgrade_status\u0027) \u003d\u003d \u0027Error\u0027:"},{"line_number":483,"context_line":"            err \u003d (\"Failed to flash firmware upgrade or node: %s.\""}],"source_content_type":"text/x-python","patch_set":9,"id":"3f79a3b5_7cba5fda","line":480,"range":{"start_line":475,"start_character":8,"end_line":480,"end_character":57},"in_reply_to":"3f79a3b5_e8448278","updated":"2018-12-19 04:30:18.000000000","message":"Done","commit_id":"56681d03a290ec817e25da957fe8abeeab487b30"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"afa091bd4813a91678a07ae1d1d13b984e2d140b","unresolved":false,"context_lines":[{"line_number":488,"context_line":"            LOG.info(\"Firmware update checking has been completed and \""},{"line_number":489,"context_line":"                     \"successfully for node: %s.\", node.uuid)"},{"line_number":490,"context_line":"            # Change power state to ON as server is automatically."},{"line_number":491,"context_line":"            manager_utils.node_power_action(task, states.POWER_ON)"},{"line_number":492,"context_line":""},{"line_number":493,"context_line":"    @METRICS.timer(\u0027IRMCManagement._download_and_validate_images\u0027)"},{"line_number":494,"context_line":"    def _download_and_validate_images(self, firmware_image_file,"}],"source_content_type":"text/x-python","patch_set":9,"id":"3f79a3b5_a833ea11","line":491,"range":{"start_line":491,"start_character":12,"end_line":491,"end_character":43},"updated":"2018-11-21 07:11:34.000000000","message":"Since we log a info message while powering-off node, it may be useful to log a message while powering-on as well.","commit_id":"56681d03a290ec817e25da957fe8abeeab487b30"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"5e6dbe1aab9a38199dda0c0bc12446d8a037a40b","unresolved":false,"context_lines":[{"line_number":488,"context_line":"            LOG.info(\"Firmware update checking has been completed and \""},{"line_number":489,"context_line":"                     \"successfully for node: %s.\", node.uuid)"},{"line_number":490,"context_line":"            # Change power state to ON as server is automatically."},{"line_number":491,"context_line":"            manager_utils.node_power_action(task, states.POWER_ON)"},{"line_number":492,"context_line":""},{"line_number":493,"context_line":"    @METRICS.timer(\u0027IRMCManagement._download_and_validate_images\u0027)"},{"line_number":494,"context_line":"    def _download_and_validate_images(self, firmware_image_file,"}],"source_content_type":"text/x-python","patch_set":9,"id":"3f79a3b5_3c870714","line":491,"range":{"start_line":491,"start_character":12,"end_line":491,"end_character":43},"in_reply_to":"3f79a3b5_a833ea11","updated":"2018-12-19 04:30:18.000000000","message":"Done","commit_id":"56681d03a290ec817e25da957fe8abeeab487b30"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"afa091bd4813a91678a07ae1d1d13b984e2d140b","unresolved":false,"context_lines":[{"line_number":509,"context_line":"        temp_dir \u003d tempfile.mkdtemp()"},{"line_number":510,"context_line":"        destination_file \u003d os.path.join(temp_dir, filename)"},{"line_number":511,"context_line":""},{"line_number":512,"context_line":"        if not url or not check_sum:"},{"line_number":513,"context_line":"            msg \u003d (_(\" Missing url and or checksum parameters in %s\")"},{"line_number":514,"context_line":"                   % firmware_image_file[0])"},{"line_number":515,"context_line":"            LOG.error(msg)"},{"line_number":516,"context_line":"            raise exception.InvalidParameterValue(msg)"},{"line_number":517,"context_line":""},{"line_number":518,"context_line":"        try:"},{"line_number":519,"context_line":"            LOG.debug(\"Firmware update is downloading firmware file \""}],"source_content_type":"text/x-python","patch_set":9,"id":"3f79a3b5_83060f19","line":516,"range":{"start_line":512,"start_character":8,"end_line":516,"end_character":54},"updated":"2018-11-21 07:11:34.000000000","message":"This block needs to move up before creating temp directory.","commit_id":"56681d03a290ec817e25da957fe8abeeab487b30"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"5e6dbe1aab9a38199dda0c0bc12446d8a037a40b","unresolved":false,"context_lines":[{"line_number":509,"context_line":"        temp_dir \u003d tempfile.mkdtemp()"},{"line_number":510,"context_line":"        destination_file \u003d os.path.join(temp_dir, filename)"},{"line_number":511,"context_line":""},{"line_number":512,"context_line":"        if not url or not check_sum:"},{"line_number":513,"context_line":"            msg \u003d (_(\" Missing url and or checksum parameters in %s\")"},{"line_number":514,"context_line":"                   % firmware_image_file[0])"},{"line_number":515,"context_line":"            LOG.error(msg)"},{"line_number":516,"context_line":"            raise exception.InvalidParameterValue(msg)"},{"line_number":517,"context_line":""},{"line_number":518,"context_line":"        try:"},{"line_number":519,"context_line":"            LOG.debug(\"Firmware update is downloading firmware file \""}],"source_content_type":"text/x-python","patch_set":9,"id":"3f79a3b5_9c75fb36","line":516,"range":{"start_line":512,"start_character":8,"end_line":516,"end_character":54},"in_reply_to":"3f79a3b5_83060f19","updated":"2018-12-19 04:30:18.000000000","message":"Done","commit_id":"56681d03a290ec817e25da957fe8abeeab487b30"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"afa091bd4813a91678a07ae1d1d13b984e2d140b","unresolved":false,"context_lines":[{"line_number":567,"context_line":"        else:"},{"line_number":568,"context_line":"            raise exception.InvalidParameterValue("},{"line_number":569,"context_line":"                _(\u0027This method does not support URL %s . The supported\u0027"},{"line_number":570,"context_line":"                  \u0027firmware URL schemes are \"file\", \"http\", \"https\" and \u0027"},{"line_number":571,"context_line":"                  \u0027\"swift\"\u0027) % url_scheme)"},{"line_number":572,"context_line":""},{"line_number":573,"context_line":"    @METRICS.timer(\u0027IRMCManagement._validate_image_checksum\u0027)"},{"line_number":574,"context_line":"    def _validate_image_checksum(self, destination_file, expected_checksum):"}],"source_content_type":"text/x-python","patch_set":9,"id":"3f79a3b5_03243fb0","line":571,"range":{"start_line":570,"start_character":52,"end_line":571,"end_character":26},"updated":"2018-11-21 07:11:34.000000000","message":"Are these supported?","commit_id":"56681d03a290ec817e25da957fe8abeeab487b30"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"5e6dbe1aab9a38199dda0c0bc12446d8a037a40b","unresolved":false,"context_lines":[{"line_number":567,"context_line":"        else:"},{"line_number":568,"context_line":"            raise exception.InvalidParameterValue("},{"line_number":569,"context_line":"                _(\u0027This method does not support URL %s . The supported\u0027"},{"line_number":570,"context_line":"                  \u0027firmware URL schemes are \"file\", \"http\", \"https\" and \u0027"},{"line_number":571,"context_line":"                  \u0027\"swift\"\u0027) % url_scheme)"},{"line_number":572,"context_line":""},{"line_number":573,"context_line":"    @METRICS.timer(\u0027IRMCManagement._validate_image_checksum\u0027)"},{"line_number":574,"context_line":"    def _validate_image_checksum(self, destination_file, expected_checksum):"}],"source_content_type":"text/x-python","patch_set":9,"id":"3f79a3b5_dc8cd32d","line":571,"range":{"start_line":570,"start_character":52,"end_line":571,"end_character":26},"in_reply_to":"3f79a3b5_03243fb0","updated":"2018-12-19 04:30:18.000000000","message":"Done","commit_id":"56681d03a290ec817e25da957fe8abeeab487b30"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"afa091bd4813a91678a07ae1d1d13b984e2d140b","unresolved":false,"context_lines":[{"line_number":583,"context_line":"            actual_checksum \u003d fileutils.compute_file_checksum(destination_file,"},{"line_number":584,"context_line":"                                                              algorithm\u003d\u0027md5\u0027)"},{"line_number":585,"context_line":"        except IOError as exc:"},{"line_number":586,"context_line":"            LOG.error(\"Failed to opening file: %s.\", destination_file)"},{"line_number":587,"context_line":"            raise exception.ImageRefValidationFailed("},{"line_number":588,"context_line":"                image_href\u003ddestination_file, reason\u003dexc)"},{"line_number":589,"context_line":"        if actual_checksum !\u003d expected_checksum:"}],"source_content_type":"text/x-python","patch_set":9,"id":"3f79a3b5_832fef88","line":586,"range":{"start_line":586,"start_character":30,"end_line":586,"end_character":32},"updated":"2018-11-21 07:11:34.000000000","message":"s/ to opening / to open /","commit_id":"56681d03a290ec817e25da957fe8abeeab487b30"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"5e6dbe1aab9a38199dda0c0bc12446d8a037a40b","unresolved":false,"context_lines":[{"line_number":583,"context_line":"            actual_checksum \u003d fileutils.compute_file_checksum(destination_file,"},{"line_number":584,"context_line":"                                                              algorithm\u003d\u0027md5\u0027)"},{"line_number":585,"context_line":"        except IOError as exc:"},{"line_number":586,"context_line":"            LOG.error(\"Failed to opening file: %s.\", destination_file)"},{"line_number":587,"context_line":"            raise exception.ImageRefValidationFailed("},{"line_number":588,"context_line":"                image_href\u003ddestination_file, reason\u003dexc)"},{"line_number":589,"context_line":"        if actual_checksum !\u003d expected_checksum:"}],"source_content_type":"text/x-python","patch_set":9,"id":"3f79a3b5_fc918f45","line":586,"range":{"start_line":586,"start_character":30,"end_line":586,"end_character":32},"in_reply_to":"3f79a3b5_832fef88","updated":"2018-12-19 04:30:18.000000000","message":"Done","commit_id":"56681d03a290ec817e25da957fe8abeeab487b30"},{"author":{"_account_id":18781,"name":"vinay50muddu","email":"vinay50muddu@yahoo.com","username":"vmud213"},"change_message_id":"e7a3571e7a6f348f8bfa7f2fb5c64b26cc6fb6b6","unresolved":false,"context_lines":[{"line_number":412,"context_line":"        firmware_image_file \u003d kwargs[\u0027firmware_image_file\u0027],"},{"line_number":413,"context_line":"        firmware_update_type \u003d kwargs[\u0027firmware_update_type\u0027]"},{"line_number":414,"context_line":""},{"line_number":415,"context_line":"        upgrade_type_list \u003d [\u0027irmc\u0027, \u0027bios\u0027]"},{"line_number":416,"context_line":""},{"line_number":417,"context_line":"        # Download and validate image source."},{"line_number":418,"context_line":"        image_fw_file \u003d ("}],"source_content_type":"text/x-python","patch_set":10,"id":"3f79a3b5_9b34efe1","line":415,"range":{"start_line":415,"start_character":8,"end_line":415,"end_character":44},"updated":"2018-12-21 06:29:53.000000000","message":"No need of this variable. See below.","commit_id":"452b766c5c10fa0b8aeb43021514a4906bef5d33"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"95a8048777fefca21e889a5cf53ed3ca57e38ee5","unresolved":false,"context_lines":[{"line_number":412,"context_line":"        firmware_image_file \u003d kwargs[\u0027firmware_image_file\u0027],"},{"line_number":413,"context_line":"        firmware_update_type \u003d kwargs[\u0027firmware_update_type\u0027]"},{"line_number":414,"context_line":""},{"line_number":415,"context_line":"        upgrade_type_list \u003d [\u0027irmc\u0027, \u0027bios\u0027]"},{"line_number":416,"context_line":""},{"line_number":417,"context_line":"        # Download and validate image source."},{"line_number":418,"context_line":"        image_fw_file \u003d ("}],"source_content_type":"text/x-python","patch_set":10,"id":"5fc1f717_b2e27500","line":415,"range":{"start_line":415,"start_character":8,"end_line":415,"end_character":44},"in_reply_to":"3f79a3b5_9b34efe1","updated":"2019-03-11 09:00:28.000000000","message":"We want to create a list to expand other option in the future at here.","commit_id":"452b766c5c10fa0b8aeb43021514a4906bef5d33"},{"author":{"_account_id":18781,"name":"vinay50muddu","email":"vinay50muddu@yahoo.com","username":"vmud213"},"change_message_id":"e7a3571e7a6f348f8bfa7f2fb5c64b26cc6fb6b6","unresolved":false,"context_lines":[{"line_number":427,"context_line":"            LOG.info(\"The Node is %(node_uuid)s being powered off for upgrade \""},{"line_number":428,"context_line":"                     \"of firmware\", {\u0027node_uuid\u0027: task.node.uuid})"},{"line_number":429,"context_line":""},{"line_number":430,"context_line":"        if firmware_update_type not in upgrade_type_list:"},{"line_number":431,"context_line":"            raise exception.InvalidParameterValue(_("},{"line_number":432,"context_line":"                \"Invalid firmware type with %s value.\") % firmware_update_type)"},{"line_number":433,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"3f79a3b5_db4b475a","line":430,"range":{"start_line":430,"start_character":39,"end_line":430,"end_character":56},"updated":"2018-12-21 06:29:53.000000000","message":"(\u0027irmc\u0027, \u0027bios\u0027,)","commit_id":"452b766c5c10fa0b8aeb43021514a4906bef5d33"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"95a8048777fefca21e889a5cf53ed3ca57e38ee5","unresolved":false,"context_lines":[{"line_number":427,"context_line":"            LOG.info(\"The Node is %(node_uuid)s being powered off for upgrade \""},{"line_number":428,"context_line":"                     \"of firmware\", {\u0027node_uuid\u0027: task.node.uuid})"},{"line_number":429,"context_line":""},{"line_number":430,"context_line":"        if firmware_update_type not in upgrade_type_list:"},{"line_number":431,"context_line":"            raise exception.InvalidParameterValue(_("},{"line_number":432,"context_line":"                \"Invalid firmware type with %s value.\") % firmware_update_type)"},{"line_number":433,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"5fc1f717_52f1d1cc","line":430,"range":{"start_line":430,"start_character":39,"end_line":430,"end_character":56},"in_reply_to":"3f79a3b5_db4b475a","updated":"2019-03-11 09:00:28.000000000","message":"Done","commit_id":"452b766c5c10fa0b8aeb43021514a4906bef5d33"},{"author":{"_account_id":18781,"name":"vinay50muddu","email":"vinay50muddu@yahoo.com","username":"vmud213"},"change_message_id":"e7a3571e7a6f348f8bfa7f2fb5c64b26cc6fb6b6","unresolved":false,"context_lines":[{"line_number":427,"context_line":"            LOG.info(\"The Node is %(node_uuid)s being powered off for upgrade \""},{"line_number":428,"context_line":"                     \"of firmware\", {\u0027node_uuid\u0027: task.node.uuid})"},{"line_number":429,"context_line":""},{"line_number":430,"context_line":"        if firmware_update_type not in upgrade_type_list:"},{"line_number":431,"context_line":"            raise exception.InvalidParameterValue(_("},{"line_number":432,"context_line":"                \"Invalid firmware type with %s value.\") % firmware_update_type)"},{"line_number":433,"context_line":""},{"line_number":434,"context_line":"        irmc_client \u003d irmc_common.get_firmware_upgrade_client("},{"line_number":435,"context_line":"            node, firmware_update_type)"}],"source_content_type":"text/x-python","patch_set":10,"id":"3f79a3b5_9b62afd9","line":432,"range":{"start_line":430,"start_character":8,"end_line":432,"end_character":79},"updated":"2018-12-21 06:29:53.000000000","message":"Move this to the top. We want to validate any error conditions prior to starting the upgrade or power operations.","commit_id":"452b766c5c10fa0b8aeb43021514a4906bef5d33"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"95a8048777fefca21e889a5cf53ed3ca57e38ee5","unresolved":false,"context_lines":[{"line_number":427,"context_line":"            LOG.info(\"The Node is %(node_uuid)s being powered off for upgrade \""},{"line_number":428,"context_line":"                     \"of firmware\", {\u0027node_uuid\u0027: task.node.uuid})"},{"line_number":429,"context_line":""},{"line_number":430,"context_line":"        if firmware_update_type not in upgrade_type_list:"},{"line_number":431,"context_line":"            raise exception.InvalidParameterValue(_("},{"line_number":432,"context_line":"                \"Invalid firmware type with %s value.\") % firmware_update_type)"},{"line_number":433,"context_line":""},{"line_number":434,"context_line":"        irmc_client \u003d irmc_common.get_firmware_upgrade_client("},{"line_number":435,"context_line":"            node, firmware_update_type)"}],"source_content_type":"text/x-python","patch_set":10,"id":"5fc1f717_d2ab8186","line":432,"range":{"start_line":430,"start_character":8,"end_line":432,"end_character":79},"in_reply_to":"3f79a3b5_9b62afd9","updated":"2019-03-11 09:00:28.000000000","message":"Done","commit_id":"452b766c5c10fa0b8aeb43021514a4906bef5d33"},{"author":{"_account_id":18781,"name":"vinay50muddu","email":"vinay50muddu@yahoo.com","username":"vmud213"},"change_message_id":"e7a3571e7a6f348f8bfa7f2fb5c64b26cc6fb6b6","unresolved":false,"context_lines":[{"line_number":524,"context_line":"                      \"%(source_file)s to: %(image_file)s\","},{"line_number":525,"context_line":"                      {\u0027source_file\u0027: self.parsed_url.geturl(),"},{"line_number":526,"context_line":"                       \u0027image_file\u0027: destination_file})"},{"line_number":527,"context_line":"            self._download_firmware_images(parsed_url, destination_file)"},{"line_number":528,"context_line":"        except exception.ImageDownloadFailed:"},{"line_number":529,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":530,"context_line":"                shutil.rmtree(temp_dir, ignore_errors\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":10,"id":"3f79a3b5_1bfe9fb4","line":527,"range":{"start_line":527,"start_character":43,"end_line":527,"end_character":53},"updated":"2018-12-21 06:29:53.000000000","message":"It is not required to be sent. u can access this from any instance method using self.parsed_url. However if we chose to use instance variables, for better readability we should define and initialize them to some value in __init__. Else it is hard to track where it is defined. I am not particular about the choice, whether to go with/without the instance variable here but if you chose to use it, don\u0027t need to pass them across functions.","commit_id":"452b766c5c10fa0b8aeb43021514a4906bef5d33"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"95a8048777fefca21e889a5cf53ed3ca57e38ee5","unresolved":false,"context_lines":[{"line_number":524,"context_line":"                      \"%(source_file)s to: %(image_file)s\","},{"line_number":525,"context_line":"                      {\u0027source_file\u0027: self.parsed_url.geturl(),"},{"line_number":526,"context_line":"                       \u0027image_file\u0027: destination_file})"},{"line_number":527,"context_line":"            self._download_firmware_images(parsed_url, destination_file)"},{"line_number":528,"context_line":"        except exception.ImageDownloadFailed:"},{"line_number":529,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":530,"context_line":"                shutil.rmtree(temp_dir, ignore_errors\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":10,"id":"5fc1f717_92cc196b","line":527,"range":{"start_line":527,"start_character":43,"end_line":527,"end_character":53},"in_reply_to":"3f79a3b5_1bfe9fb4","updated":"2019-03-11 09:00:28.000000000","message":"I only use parsed_url here, thus we only need put this parameter for __download_firmware_images method. Thanks for your advice.","commit_id":"452b766c5c10fa0b8aeb43021514a4906bef5d33"},{"author":{"_account_id":18781,"name":"vinay50muddu","email":"vinay50muddu@yahoo.com","username":"vmud213"},"change_message_id":"e7a3571e7a6f348f8bfa7f2fb5c64b26cc6fb6b6","unresolved":false,"context_lines":[{"line_number":552,"context_line":"        return destination_file"},{"line_number":553,"context_line":""},{"line_number":554,"context_line":"    @METRICS.timer(\u0027IRMCManagement._download_firmware_images\u0027)"},{"line_number":555,"context_line":"    def _download_firmware_images(self, parsed_url, destination_file):"},{"line_number":556,"context_line":"        \"\"\"Preparing firmware images"},{"line_number":557,"context_line":""},{"line_number":558,"context_line":"        :param parsed_url: url info."}],"source_content_type":"text/x-python","patch_set":10,"id":"3f79a3b5_9b1aaf16","line":555,"range":{"start_line":555,"start_character":40,"end_line":555,"end_character":50},"updated":"2018-12-21 06:29:53.000000000","message":"See the above comment.","commit_id":"452b766c5c10fa0b8aeb43021514a4906bef5d33"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"95a8048777fefca21e889a5cf53ed3ca57e38ee5","unresolved":false,"context_lines":[{"line_number":552,"context_line":"        return destination_file"},{"line_number":553,"context_line":""},{"line_number":554,"context_line":"    @METRICS.timer(\u0027IRMCManagement._download_firmware_images\u0027)"},{"line_number":555,"context_line":"    def _download_firmware_images(self, parsed_url, destination_file):"},{"line_number":556,"context_line":"        \"\"\"Preparing firmware images"},{"line_number":557,"context_line":""},{"line_number":558,"context_line":"        :param parsed_url: url info."}],"source_content_type":"text/x-python","patch_set":10,"id":"5fc1f717_b2c7d545","line":555,"range":{"start_line":555,"start_character":40,"end_line":555,"end_character":50},"in_reply_to":"3f79a3b5_9b1aaf16","updated":"2019-03-11 09:00:28.000000000","message":"ditto","commit_id":"452b766c5c10fa0b8aeb43021514a4906bef5d33"},{"author":{"_account_id":18781,"name":"vinay50muddu","email":"vinay50muddu@yahoo.com","username":"vmud213"},"change_message_id":"e7a3571e7a6f348f8bfa7f2fb5c64b26cc6fb6b6","unresolved":false,"context_lines":[{"line_number":559,"context_line":"        :param destination_file: firmware image file."},{"line_number":560,"context_line":"        :raises: InvalidParameterValue, on failure to input parameters."},{"line_number":561,"context_line":"        \"\"\""},{"line_number":562,"context_line":"        self.parsed_url \u003d parsed_url"},{"line_number":563,"context_line":"        src_file \u003d self.parsed_url.path"},{"line_number":564,"context_line":"        url_scheme \u003d parsed_url.scheme"},{"line_number":565,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"3f79a3b5_5b1097f5","line":562,"range":{"start_line":562,"start_character":8,"end_line":562,"end_character":36},"updated":"2018-12-21 06:29:53.000000000","message":"Why assigning here again?","commit_id":"452b766c5c10fa0b8aeb43021514a4906bef5d33"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"95a8048777fefca21e889a5cf53ed3ca57e38ee5","unresolved":false,"context_lines":[{"line_number":559,"context_line":"        :param destination_file: firmware image file."},{"line_number":560,"context_line":"        :raises: InvalidParameterValue, on failure to input parameters."},{"line_number":561,"context_line":"        \"\"\""},{"line_number":562,"context_line":"        self.parsed_url \u003d parsed_url"},{"line_number":563,"context_line":"        src_file \u003d self.parsed_url.path"},{"line_number":564,"context_line":"        url_scheme \u003d parsed_url.scheme"},{"line_number":565,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"5fc1f717_f29c7d5e","line":562,"range":{"start_line":562,"start_character":8,"end_line":562,"end_character":36},"in_reply_to":"3f79a3b5_5b1097f5","updated":"2019-03-11 09:00:28.000000000","message":"Done","commit_id":"452b766c5c10fa0b8aeb43021514a4906bef5d33"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"587b71d7b1323082232af0d1822c592854a32b52","unresolved":false,"context_lines":[{"line_number":392,"context_line":"            ),"},{"line_number":393,"context_line":"            \u0027required\u0027: True"},{"line_number":394,"context_line":"        },"},{"line_number":395,"context_line":"        \u0027firmware_image_file\u0027: {"},{"line_number":396,"context_line":"            \u0027description\u0027: ("},{"line_number":397,"context_line":"                \"This argument represents the firmware file URI\""},{"line_number":398,"context_line":"            ),"}],"source_content_type":"text/x-python","patch_set":11,"id":"5fc1f717_8846f4bf","line":395,"updated":"2019-03-13 10:35:19.000000000","message":"you example uses firmware_images (which I like more because it looks consistent with other drivers)","commit_id":"adc830897c0b5d1332f93a12375c117500a1185f"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"143c9ac98bcb3903d14e51ddb38da4c9760507b7","unresolved":false,"context_lines":[{"line_number":392,"context_line":"            ),"},{"line_number":393,"context_line":"            \u0027required\u0027: True"},{"line_number":394,"context_line":"        },"},{"line_number":395,"context_line":"        \u0027firmware_image_file\u0027: {"},{"line_number":396,"context_line":"            \u0027description\u0027: ("},{"line_number":397,"context_line":"                \"This argument represents the firmware file URI\""},{"line_number":398,"context_line":"            ),"}],"source_content_type":"text/x-python","patch_set":11,"id":"5fc1f717_0f20b847","line":395,"in_reply_to":"5fc1f717_8846f4bf","updated":"2019-03-14 04:04:32.000000000","message":"Yep. right. missing in my docs.","commit_id":"adc830897c0b5d1332f93a12375c117500a1185f"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"587b71d7b1323082232af0d1822c592854a32b52","unresolved":false,"context_lines":[{"line_number":416,"context_line":""},{"line_number":417,"context_line":"        if firmware_update_type not in upgrade_type_list:"},{"line_number":418,"context_line":"            raise exception.InvalidParameterValue(_("},{"line_number":419,"context_line":"                \"Invalid firmware type with %s value.\") % firmware_update_type)"},{"line_number":420,"context_line":"        # Download and validate image source."},{"line_number":421,"context_line":"        image_fw_file \u003d ("},{"line_number":422,"context_line":"            self._download_and_validate_images(firmware_image_file,"}],"source_content_type":"text/x-python","patch_set":11,"id":"5fc1f717_a843b0ae","line":419,"updated":"2019-03-13 10:35:19.000000000","message":"nit: provide valid values in the message","commit_id":"adc830897c0b5d1332f93a12375c117500a1185f"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"143c9ac98bcb3903d14e51ddb38da4c9760507b7","unresolved":false,"context_lines":[{"line_number":416,"context_line":""},{"line_number":417,"context_line":"        if firmware_update_type not in upgrade_type_list:"},{"line_number":418,"context_line":"            raise exception.InvalidParameterValue(_("},{"line_number":419,"context_line":"                \"Invalid firmware type with %s value.\") % firmware_update_type)"},{"line_number":420,"context_line":"        # Download and validate image source."},{"line_number":421,"context_line":"        image_fw_file \u003d ("},{"line_number":422,"context_line":"            self._download_and_validate_images(firmware_image_file,"}],"source_content_type":"text/x-python","patch_set":11,"id":"5fc1f717_afc64467","line":419,"in_reply_to":"5fc1f717_a843b0ae","updated":"2019-03-14 04:04:32.000000000","message":"Done","commit_id":"adc830897c0b5d1332f93a12375c117500a1185f"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"587b71d7b1323082232af0d1822c592854a32b52","unresolved":false,"context_lines":[{"line_number":451,"context_line":"        # Monitoring upgrade status"},{"line_number":452,"context_line":"        self._firmware_upgrade_status(task, firmware_update_type)"},{"line_number":453,"context_line":""},{"line_number":454,"context_line":"        LOG.info(\"Firmware update mechanism completed successfully \""},{"line_number":455,"context_line":"                 \"for node: %s.\", node.uuid)"},{"line_number":456,"context_line":""},{"line_number":457,"context_line":"    @METRICS.timer(\u0027IRMCManagement._firmware_upgrade_status\u0027)"}],"source_content_type":"text/x-python","patch_set":11,"id":"5fc1f717_4816ccaa","line":454,"updated":"2019-03-13 10:35:19.000000000","message":"s/mechanism//","commit_id":"adc830897c0b5d1332f93a12375c117500a1185f"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"143c9ac98bcb3903d14e51ddb38da4c9760507b7","unresolved":false,"context_lines":[{"line_number":451,"context_line":"        # Monitoring upgrade status"},{"line_number":452,"context_line":"        self._firmware_upgrade_status(task, firmware_update_type)"},{"line_number":453,"context_line":""},{"line_number":454,"context_line":"        LOG.info(\"Firmware update mechanism completed successfully \""},{"line_number":455,"context_line":"                 \"for node: %s.\", node.uuid)"},{"line_number":456,"context_line":""},{"line_number":457,"context_line":"    @METRICS.timer(\u0027IRMCManagement._firmware_upgrade_status\u0027)"}],"source_content_type":"text/x-python","patch_set":11,"id":"5fc1f717_2fa8148a","line":454,"in_reply_to":"5fc1f717_4816ccaa","updated":"2019-03-14 04:04:32.000000000","message":"Done","commit_id":"adc830897c0b5d1332f93a12375c117500a1185f"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"587b71d7b1323082232af0d1822c592854a32b52","unresolved":false,"context_lines":[{"line_number":455,"context_line":"                 \"for node: %s.\", node.uuid)"},{"line_number":456,"context_line":""},{"line_number":457,"context_line":"    @METRICS.timer(\u0027IRMCManagement._firmware_upgrade_status\u0027)"},{"line_number":458,"context_line":"    def _firmware_upgrade_status(self, task, upgrade_type):"},{"line_number":459,"context_line":"        \"\"\"Monitoring firmware upgrade mechanism"},{"line_number":460,"context_line":""},{"line_number":461,"context_line":"        :param task: Task info."}],"source_content_type":"text/x-python","patch_set":11,"id":"5fc1f717_681b88cf","line":458,"updated":"2019-03-13 10:35:19.000000000","message":"nit: _check_firmware_upgrade_status","commit_id":"adc830897c0b5d1332f93a12375c117500a1185f"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"143c9ac98bcb3903d14e51ddb38da4c9760507b7","unresolved":false,"context_lines":[{"line_number":455,"context_line":"                 \"for node: %s.\", node.uuid)"},{"line_number":456,"context_line":""},{"line_number":457,"context_line":"    @METRICS.timer(\u0027IRMCManagement._firmware_upgrade_status\u0027)"},{"line_number":458,"context_line":"    def _firmware_upgrade_status(self, task, upgrade_type):"},{"line_number":459,"context_line":"        \"\"\"Monitoring firmware upgrade mechanism"},{"line_number":460,"context_line":""},{"line_number":461,"context_line":"        :param task: Task info."}],"source_content_type":"text/x-python","patch_set":11,"id":"5fc1f717_ef952c41","line":458,"in_reply_to":"5fc1f717_681b88cf","updated":"2019-03-14 04:04:32.000000000","message":"Done","commit_id":"adc830897c0b5d1332f93a12375c117500a1185f"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"587b71d7b1323082232af0d1822c592854a32b52","unresolved":false,"context_lines":[{"line_number":480,"context_line":"                                               error\u003derr)"},{"line_number":481,"context_line":""},{"line_number":482,"context_line":"        if result.get(\u0027upgrade_status\u0027) \u003d\u003d \u0027Error\u0027:"},{"line_number":483,"context_line":"            err \u003d (\"Failed to flash firmware upgrade or node: %s.\""},{"line_number":484,"context_line":"                   % node.uuid)"},{"line_number":485,"context_line":"            raise exception.IRMCOperationError(operation\u003d\u0027Firmware Upgrade\u0027,"},{"line_number":486,"context_line":"                                               error\u003derr)"}],"source_content_type":"text/x-python","patch_set":11,"id":"5fc1f717_080c4492","line":483,"updated":"2019-03-13 10:35:19.000000000","message":"nit: _()","commit_id":"adc830897c0b5d1332f93a12375c117500a1185f"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"143c9ac98bcb3903d14e51ddb38da4c9760507b7","unresolved":false,"context_lines":[{"line_number":480,"context_line":"                                               error\u003derr)"},{"line_number":481,"context_line":""},{"line_number":482,"context_line":"        if result.get(\u0027upgrade_status\u0027) \u003d\u003d \u0027Error\u0027:"},{"line_number":483,"context_line":"            err \u003d (\"Failed to flash firmware upgrade or node: %s.\""},{"line_number":484,"context_line":"                   % node.uuid)"},{"line_number":485,"context_line":"            raise exception.IRMCOperationError(operation\u003d\u0027Firmware Upgrade\u0027,"},{"line_number":486,"context_line":"                                               error\u003derr)"}],"source_content_type":"text/x-python","patch_set":11,"id":"5fc1f717_af9ba470","line":483,"in_reply_to":"5fc1f717_080c4492","updated":"2019-03-14 04:04:32.000000000","message":"Done","commit_id":"adc830897c0b5d1332f93a12375c117500a1185f"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"587b71d7b1323082232af0d1822c592854a32b52","unresolved":false,"context_lines":[{"line_number":488,"context_line":"            LOG.info(\"Firmware update checking has been completed and \""},{"line_number":489,"context_line":"                     \"successfully for node: %s.\", node.uuid)"},{"line_number":490,"context_line":"            # Change power state to ON as server is automatically."},{"line_number":491,"context_line":"            manager_utils.node_power_action(task, states.POWER_ON)"},{"line_number":492,"context_line":"            LOG.info(\"The Node is %(node_uuid)s being powered on \","},{"line_number":493,"context_line":"                     {\u0027node_uuid\u0027: task.node.uuid})"},{"line_number":494,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"5fc1f717_281100ad","line":491,"updated":"2019-03-13 10:35:19.000000000","message":"What will power it off afterwards?","commit_id":"adc830897c0b5d1332f93a12375c117500a1185f"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"143c9ac98bcb3903d14e51ddb38da4c9760507b7","unresolved":false,"context_lines":[{"line_number":488,"context_line":"            LOG.info(\"Firmware update checking has been completed and \""},{"line_number":489,"context_line":"                     \"successfully for node: %s.\", node.uuid)"},{"line_number":490,"context_line":"            # Change power state to ON as server is automatically."},{"line_number":491,"context_line":"            manager_utils.node_power_action(task, states.POWER_ON)"},{"line_number":492,"context_line":"            LOG.info(\"The Node is %(node_uuid)s being powered on \","},{"line_number":493,"context_line":"                     {\u0027node_uuid\u0027: task.node.uuid})"},{"line_number":494,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"5fc1f717_cf715046","line":491,"in_reply_to":"5fc1f717_281100ad","updated":"2019-03-14 04:04:32.000000000","message":"after complete manual clean then server will turn-off","commit_id":"adc830897c0b5d1332f93a12375c117500a1185f"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"587b71d7b1323082232af0d1822c592854a32b52","unresolved":false,"context_lines":[{"line_number":489,"context_line":"                     \"successfully for node: %s.\", node.uuid)"},{"line_number":490,"context_line":"            # Change power state to ON as server is automatically."},{"line_number":491,"context_line":"            manager_utils.node_power_action(task, states.POWER_ON)"},{"line_number":492,"context_line":"            LOG.info(\"The Node is %(node_uuid)s being powered on \","},{"line_number":493,"context_line":"                     {\u0027node_uuid\u0027: task.node.uuid})"},{"line_number":494,"context_line":""},{"line_number":495,"context_line":"    @METRICS.timer(\u0027IRMCManagement._download_and_validate_images\u0027)"}],"source_content_type":"text/x-python","patch_set":11,"id":"5fc1f717_c8295ce6","line":492,"updated":"2019-03-13 10:35:19.000000000","message":"s/info/debug/","commit_id":"adc830897c0b5d1332f93a12375c117500a1185f"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"143c9ac98bcb3903d14e51ddb38da4c9760507b7","unresolved":false,"context_lines":[{"line_number":489,"context_line":"                     \"successfully for node: %s.\", node.uuid)"},{"line_number":490,"context_line":"            # Change power state to ON as server is automatically."},{"line_number":491,"context_line":"            manager_utils.node_power_action(task, states.POWER_ON)"},{"line_number":492,"context_line":"            LOG.info(\"The Node is %(node_uuid)s being powered on \","},{"line_number":493,"context_line":"                     {\u0027node_uuid\u0027: task.node.uuid})"},{"line_number":494,"context_line":""},{"line_number":495,"context_line":"    @METRICS.timer(\u0027IRMCManagement._download_and_validate_images\u0027)"}],"source_content_type":"text/x-python","patch_set":11,"id":"5fc1f717_afa9647c","line":492,"in_reply_to":"5fc1f717_c8295ce6","updated":"2019-03-14 04:04:32.000000000","message":"Done","commit_id":"adc830897c0b5d1332f93a12375c117500a1185f"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"587b71d7b1323082232af0d1822c592854a32b52","unresolved":false,"context_lines":[{"line_number":490,"context_line":"            # Change power state to ON as server is automatically."},{"line_number":491,"context_line":"            manager_utils.node_power_action(task, states.POWER_ON)"},{"line_number":492,"context_line":"            LOG.info(\"The Node is %(node_uuid)s being powered on \","},{"line_number":493,"context_line":"                     {\u0027node_uuid\u0027: task.node.uuid})"},{"line_number":494,"context_line":""},{"line_number":495,"context_line":"    @METRICS.timer(\u0027IRMCManagement._download_and_validate_images\u0027)"},{"line_number":496,"context_line":"    def _download_and_validate_images(self, firmware_image_file,"}],"source_content_type":"text/x-python","patch_set":11,"id":"5fc1f717_e8269815","line":493,"updated":"2019-03-13 10:35:19.000000000","message":"Is the firmware upgrade immediate? If not, how do you make sure that it is finished when this function is called?","commit_id":"adc830897c0b5d1332f93a12375c117500a1185f"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"143c9ac98bcb3903d14e51ddb38da4c9760507b7","unresolved":false,"context_lines":[{"line_number":490,"context_line":"            # Change power state to ON as server is automatically."},{"line_number":491,"context_line":"            manager_utils.node_power_action(task, states.POWER_ON)"},{"line_number":492,"context_line":"            LOG.info(\"The Node is %(node_uuid)s being powered on \","},{"line_number":493,"context_line":"                     {\u0027node_uuid\u0027: task.node.uuid})"},{"line_number":494,"context_line":""},{"line_number":495,"context_line":"    @METRICS.timer(\u0027IRMCManagement._download_and_validate_images\u0027)"},{"line_number":496,"context_line":"    def _download_and_validate_images(self, firmware_image_file,"}],"source_content_type":"text/x-python","patch_set":11,"id":"5fc1f717_0fcaf84c","line":493,"in_reply_to":"5fc1f717_e8269815","updated":"2019-03-14 04:04:32.000000000","message":"in irmc.scci.process_session_status() method will process until return result. thus it will be completed here.","commit_id":"adc830897c0b5d1332f93a12375c117500a1185f"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"180b9934d7b6bae5eecc6e2235fc1ea0f5615547","unresolved":false,"context_lines":[{"line_number":505,"context_line":"        :raises: InvalidParameterValue, on failure to input parameters."},{"line_number":506,"context_line":"        \"\"\""},{"line_number":507,"context_line":""},{"line_number":508,"context_line":"        url \u003d firmware_image_file[0].get(\u0027url\u0027)"},{"line_number":509,"context_line":"        check_sum \u003d firmware_image_file[0].get(\u0027checksum\u0027)"},{"line_number":510,"context_line":""},{"line_number":511,"context_line":"        if not url or not check_sum:"}],"source_content_type":"text/x-python","patch_set":14,"id":"3fce034c_6961e239","line":508,"updated":"2019-04-11 09:09:45.000000000","message":"firmware_image is a dictionary, what exactly are you doing with [0]?","commit_id":"e85e09d5fa7b93df07d3e74de6546c1a76696999"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"0bed6e133822400c73e231475b706d19b03dcf4d","unresolved":false,"context_lines":[{"line_number":505,"context_line":"        :raises: InvalidParameterValue, on failure to input parameters."},{"line_number":506,"context_line":"        \"\"\""},{"line_number":507,"context_line":""},{"line_number":508,"context_line":"        url \u003d firmware_image_file[0].get(\u0027url\u0027)"},{"line_number":509,"context_line":"        check_sum \u003d firmware_image_file[0].get(\u0027checksum\u0027)"},{"line_number":510,"context_line":""},{"line_number":511,"context_line":"        if not url or not check_sum:"}],"source_content_type":"text/x-python","patch_set":14,"id":"7faddb67_8919bd7b","line":508,"in_reply_to":"3fce034c_6961e239","updated":"2019-08-07 06:14:19.000000000","message":"You right. mistake at L412, thus `firmware_image_file` change to tuple.","commit_id":"e85e09d5fa7b93df07d3e74de6546c1a76696999"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"1c03efd2a0305e97e3fc4c6ded721200d232eb4b","unresolved":false,"context_lines":[{"line_number":505,"context_line":"        :raises: InvalidParameterValue, on failure to input parameters."},{"line_number":506,"context_line":"        \"\"\""},{"line_number":507,"context_line":""},{"line_number":508,"context_line":"        url \u003d firmware_image_file[0].get(\u0027url\u0027)"},{"line_number":509,"context_line":"        check_sum \u003d firmware_image_file[0].get(\u0027checksum\u0027)"},{"line_number":510,"context_line":""},{"line_number":511,"context_line":"        if not url or not check_sum:"}],"source_content_type":"text/x-python","patch_set":14,"id":"3fce034c_a775aa9a","line":508,"in_reply_to":"3fce034c_6961e239","updated":"2019-04-11 17:05:08.000000000","message":"firmware_image_file is tuple, it isn\u0027t dict. Due to this param will be changed after manual clean step. Please see my unit test for more detail.","commit_id":"e85e09d5fa7b93df07d3e74de6546c1a76696999"}],"ironic/tests/unit/drivers/modules/irmc/test_management.py":[{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"6ad413b2471b6dc955ab5940a3b2cc2e4c79f87a","unresolved":false,"context_lines":[{"line_number":246,"context_line":"                                                        mock_power_action,"},{"line_number":247,"context_line":"                                                        mock_elcm):"},{"line_number":248,"context_line":"        firmware_update_type \u003d \"bios\""},{"line_number":249,"context_line":"        firmware_image_file \u003d ({"},{"line_number":250,"context_line":"            \"url\": \"\","},{"line_number":251,"context_line":"            \"checksum\": \"4409c707b1955e42b0aaf56a5b349705\""},{"line_number":252,"context_line":"        },)"}],"source_content_type":"text/x-python","patch_set":14,"id":"3fce034c_2be64e46","line":249,"range":{"start_line":249,"start_character":30,"end_line":249,"end_character":31},"updated":"2019-04-12 19:06:12.000000000","message":"I don\u0027t think shouldn\u0027t be a tuple... it should be a dict based on your cleaning step examples and the data storage.","commit_id":"e85e09d5fa7b93df07d3e74de6546c1a76696999"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"0bed6e133822400c73e231475b706d19b03dcf4d","unresolved":false,"context_lines":[{"line_number":246,"context_line":"                                                        mock_power_action,"},{"line_number":247,"context_line":"                                                        mock_elcm):"},{"line_number":248,"context_line":"        firmware_update_type \u003d \"bios\""},{"line_number":249,"context_line":"        firmware_image_file \u003d ({"},{"line_number":250,"context_line":"            \"url\": \"\","},{"line_number":251,"context_line":"            \"checksum\": \"4409c707b1955e42b0aaf56a5b349705\""},{"line_number":252,"context_line":"        },)"}],"source_content_type":"text/x-python","patch_set":14,"id":"7faddb67_091f0d5c","line":249,"range":{"start_line":249,"start_character":30,"end_line":249,"end_character":31},"in_reply_to":"3fce034c_2be64e46","updated":"2019-08-07 06:14:19.000000000","message":"Right. I updated them. It is a dict. Thanks","commit_id":"e85e09d5fa7b93df07d3e74de6546c1a76696999"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"49310c0eb04c1d6d4d61874044c59cac1b225c12","unresolved":false,"context_lines":[{"line_number":138,"context_line":"            self.assertNotIn(\u0027irmc_bios_config\u0027,"},{"line_number":139,"context_line":"                             task.node.driver_internal_info)"},{"line_number":140,"context_line":"            self.assertTrue(mock_elcm.restore_bios_config.called)"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"    @mock.patch.object(irmc_management.irmc, \u0027scci\u0027,"},{"line_number":143,"context_line":"                       spec_set\u003dmock_specs.SCCICLIENT_IRMC_SCCI_SPEC)"},{"line_number":144,"context_line":"    def test__bios_firmware_upgrade_status_error(self,"}],"source_content_type":"text/x-python","patch_set":18,"id":"7faddb67_b90f952c","line":141,"updated":"2019-08-15 17:14:26.000000000","message":"I kind of feel like it might be necessary to put this in it\u0027s own class... There seems to be some unrelated funkiness with the test runner that we have started to encounter with this patch being added.","commit_id":"45c9256f334c0e93c0f3c21ec756768d4c142c66"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"c396656f713ad4e7a4d978c9abd94b91720e4837","unresolved":false,"context_lines":[{"line_number":138,"context_line":"            self.assertNotIn(\u0027irmc_bios_config\u0027,"},{"line_number":139,"context_line":"                             task.node.driver_internal_info)"},{"line_number":140,"context_line":"            self.assertTrue(mock_elcm.restore_bios_config.called)"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"    @mock.patch.object(irmc_management.irmc, \u0027scci\u0027,"},{"line_number":143,"context_line":"                       spec_set\u003dmock_specs.SCCICLIENT_IRMC_SCCI_SPEC)"},{"line_number":144,"context_line":"    def test__bios_firmware_upgrade_status_error(self,"}],"source_content_type":"text/x-python","patch_set":18,"id":"7faddb67_dc5b9c1f","line":141,"in_reply_to":"7faddb67_b90f952c","updated":"2019-08-28 02:28:46.000000000","message":"Yeah. I will separate to another patch to change them. We need they work in Stein and add some follow-up patch later. thanks","commit_id":"45c9256f334c0e93c0f3c21ec756768d4c142c66"}],"releasenotes/notes/irmc_support_firmware_upgrade-aad577464490fdfd.yaml":[{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"afa091bd4813a91678a07ae1d1d13b984e2d140b","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Add support firmware upgrade for ``irmc`` driver. It enables"},{"line_number":5,"context_line":"    firmware upgrade for both are ``irmc firmware`` and ``bios firmware``."},{"line_number":6,"context_line":"    For details, see the `iRMC driver documentation"},{"line_number":7,"context_line":"    \u003chttps://docs.openstack.org/ironic/latest/admin/drivers/irmc.html#firmware-upgrade-support\u003e`_."}],"source_content_type":"text/x-yaml","patch_set":9,"id":"3f79a3b5_0380bf47","line":4,"range":{"start_line":4,"start_character":4,"end_line":4,"end_character":33},"updated":"2018-11-21 07:11:34.000000000","message":"s/ Add support firmware upgrade  / Adds support to firmware upgrade /","commit_id":"56681d03a290ec817e25da957fe8abeeab487b30"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"5e6dbe1aab9a38199dda0c0bc12446d8a037a40b","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Add support firmware upgrade for ``irmc`` driver. It enables"},{"line_number":5,"context_line":"    firmware upgrade for both are ``irmc firmware`` and ``bios firmware``."},{"line_number":6,"context_line":"    For details, see the `iRMC driver documentation"},{"line_number":7,"context_line":"    \u003chttps://docs.openstack.org/ironic/latest/admin/drivers/irmc.html#firmware-upgrade-support\u003e`_."}],"source_content_type":"text/x-yaml","patch_set":9,"id":"3f79a3b5_1cb00bdf","line":4,"range":{"start_line":4,"start_character":4,"end_line":4,"end_character":33},"in_reply_to":"3f79a3b5_0380bf47","updated":"2018-12-19 04:30:18.000000000","message":"Done","commit_id":"56681d03a290ec817e25da957fe8abeeab487b30"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"afa091bd4813a91678a07ae1d1d13b984e2d140b","unresolved":false,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Add support firmware upgrade for ``irmc`` driver. It enables"},{"line_number":5,"context_line":"    firmware upgrade for both are ``irmc firmware`` and ``bios firmware``."},{"line_number":6,"context_line":"    For details, see the `iRMC driver documentation"},{"line_number":7,"context_line":"    \u003chttps://docs.openstack.org/ironic/latest/admin/drivers/irmc.html#firmware-upgrade-support\u003e`_."}],"source_content_type":"text/x-yaml","patch_set":9,"id":"3f79a3b5_a376ab91","line":5,"range":{"start_line":5,"start_character":30,"end_line":5,"end_character":33},"updated":"2018-11-21 07:11:34.000000000","message":"s/ are //","commit_id":"56681d03a290ec817e25da957fe8abeeab487b30"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"5e6dbe1aab9a38199dda0c0bc12446d8a037a40b","unresolved":false,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Add support firmware upgrade for ``irmc`` driver. It enables"},{"line_number":5,"context_line":"    firmware upgrade for both are ``irmc firmware`` and ``bios firmware``."},{"line_number":6,"context_line":"    For details, see the `iRMC driver documentation"},{"line_number":7,"context_line":"    \u003chttps://docs.openstack.org/ironic/latest/admin/drivers/irmc.html#firmware-upgrade-support\u003e`_."}],"source_content_type":"text/x-yaml","patch_set":9,"id":"3f79a3b5_3cb5c7cf","line":5,"range":{"start_line":5,"start_character":30,"end_line":5,"end_character":33},"in_reply_to":"3f79a3b5_a376ab91","updated":"2018-12-19 04:30:18.000000000","message":"Done","commit_id":"56681d03a290ec817e25da957fe8abeeab487b30"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"587b71d7b1323082232af0d1822c592854a32b52","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Adds support to firmware upgrade for ``irmc`` driver. It enables"},{"line_number":5,"context_line":"    firmware upgrade for both ``irmc firmware`` and ``bios firmware``."},{"line_number":6,"context_line":"    For details, see the `iRMC driver documentation"},{"line_number":7,"context_line":"    \u003chttps://docs.openstack.org/ironic/latest/admin/drivers/irmc.html#firmware-upgrade-support\u003e`_."}],"source_content_type":"text/x-yaml","patch_set":11,"id":"5fc1f717_c8407ca8","line":4,"updated":"2019-03-13 10:35:19.000000000","message":"\"for firmware upgrades to the ``irmc`` hardware type\"","commit_id":"adc830897c0b5d1332f93a12375c117500a1185f"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"143c9ac98bcb3903d14e51ddb38da4c9760507b7","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Adds support to firmware upgrade for ``irmc`` driver. It enables"},{"line_number":5,"context_line":"    firmware upgrade for both ``irmc firmware`` and ``bios firmware``."},{"line_number":6,"context_line":"    For details, see the `iRMC driver documentation"},{"line_number":7,"context_line":"    \u003chttps://docs.openstack.org/ironic/latest/admin/drivers/irmc.html#firmware-upgrade-support\u003e`_."}],"source_content_type":"text/x-yaml","patch_set":11,"id":"5fc1f717_cfd4f0eb","line":4,"in_reply_to":"5fc1f717_c8407ca8","updated":"2019-03-14 04:04:32.000000000","message":"Done","commit_id":"adc830897c0b5d1332f93a12375c117500a1185f"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"587b71d7b1323082232af0d1822c592854a32b52","unresolved":false,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Adds support to firmware upgrade for ``irmc`` driver. It enables"},{"line_number":5,"context_line":"    firmware upgrade for both ``irmc firmware`` and ``bios firmware``."},{"line_number":6,"context_line":"    For details, see the `iRMC driver documentation"},{"line_number":7,"context_line":"    \u003chttps://docs.openstack.org/ironic/latest/admin/drivers/irmc.html#firmware-upgrade-support\u003e`_."}],"source_content_type":"text/x-yaml","patch_set":11,"id":"5fc1f717_e83d382b","line":5,"updated":"2019-03-13 10:35:19.000000000","message":"nit: \"firmware\" should go outside of double ticks. also worth elaborating what the difference is.","commit_id":"adc830897c0b5d1332f93a12375c117500a1185f"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"143c9ac98bcb3903d14e51ddb38da4c9760507b7","unresolved":false,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Adds support to firmware upgrade for ``irmc`` driver. It enables"},{"line_number":5,"context_line":"    firmware upgrade for both ``irmc firmware`` and ``bios firmware``."},{"line_number":6,"context_line":"    For details, see the `iRMC driver documentation"},{"line_number":7,"context_line":"    \u003chttps://docs.openstack.org/ironic/latest/admin/drivers/irmc.html#firmware-upgrade-support\u003e`_."}],"source_content_type":"text/x-yaml","patch_set":11,"id":"5fc1f717_afd724ee","line":5,"in_reply_to":"5fc1f717_e83d382b","updated":"2019-03-14 04:04:32.000000000","message":"Done","commit_id":"adc830897c0b5d1332f93a12375c117500a1185f"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"6ad413b2471b6dc955ab5940a3b2cc2e4c79f87a","unresolved":false,"context_lines":[{"line_number":4,"context_line":"    Adds support for firmware upgrades to the ``irmc`` hardware type. It"},{"line_number":5,"context_line":"    enables firmware upgrade for both ``irmc`` firmware and ``bios`` firmware."},{"line_number":6,"context_line":"    For details, see the `iRMC driver documentation"},{"line_number":7,"context_line":"    \u003chttps://docs.openstack.org/ironic/latest/admin/drivers/irmc.html#firmware-upgrade-support\u003e`_."}],"source_content_type":"text/x-yaml","patch_set":14,"id":"3fce034c_4be39a34","line":7,"updated":"2019-04-12 19:06:12.000000000","message":"Out of curiosity, are there any details on what this has been tested with?","commit_id":"e85e09d5fa7b93df07d3e74de6546c1a76696999"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"0bed6e133822400c73e231475b706d19b03dcf4d","unresolved":false,"context_lines":[{"line_number":4,"context_line":"    Adds support for firmware upgrades to the ``irmc`` hardware type. It"},{"line_number":5,"context_line":"    enables firmware upgrade for both ``irmc`` firmware and ``bios`` firmware."},{"line_number":6,"context_line":"    For details, see the `iRMC driver documentation"},{"line_number":7,"context_line":"    \u003chttps://docs.openstack.org/ironic/latest/admin/drivers/irmc.html#firmware-upgrade-support\u003e`_."}],"source_content_type":"text/x-yaml","patch_set":14,"id":"7faddb67_492505ae","line":7,"in_reply_to":"3fce034c_4be39a34","updated":"2019-08-07 06:14:19.000000000","message":"Yes. I have been tested them.","commit_id":"e85e09d5fa7b93df07d3e74de6546c1a76696999"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"615859e8a78fb0c182864e3be997945f91b04d83","unresolved":false,"context_lines":[{"line_number":4,"context_line":"    Adds support for firmware upgrades to the ``irmc`` hardware type. It"},{"line_number":5,"context_line":"    enables firmware upgrade for both ``irmc`` firmware and ``bios`` firmware."},{"line_number":6,"context_line":"    For details, see the `iRMC driver documentation"},{"line_number":7,"context_line":"    \u003chttps://docs.openstack.org/ironic/latest/admin/drivers/irmc.html#firmware-upgrade-support\u003e`_."}],"source_content_type":"text/x-yaml","patch_set":14,"id":"7faddb67_de411765","line":7,"in_reply_to":"7faddb67_492505ae","updated":"2019-08-15 17:09:54.000000000","message":"I was more meaning, with what has it been tested, but if your making the statement that all compatible hardware works with the feature, than I guess it is okay.","commit_id":"e85e09d5fa7b93df07d3e74de6546c1a76696999"}]}
