)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"397552f7d281faa81dbcb4d142f43b295604b78f","unresolved":false,"context_lines":[{"line_number":3,"context_line":"AuthorDate: 2020-03-17 18:41:46 +0500"},{"line_number":4,"context_line":"Commit:     Noor Muhammad Malik \u003cnoor_muhammad@dellteam.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2020-03-31 10:59:09 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"WIP: [RFE] Implement the bios-interface for idrac-wsman driver"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The BIOSInterface implementation for idrac-wsman Hardware Type was"},{"line_number":10,"context_line":"missing and VendorInterface methods were used to configure BIOS instead."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":17,"id":"df33271e_8311f5af","line":7,"range":{"start_line":6,"start_character":0,"end_line":7,"end_character":5},"updated":"2020-04-03 20:26:33.000000000","message":"At a glance, this looks like this is ready for reviews. Is this still a WIP?","commit_id":"1d448d00d127ab1eb7b71092e92e94c23e39bb1a"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"a6ce052001fa1a6647e4de8fb381b480797d60b3","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     noor_muhammad_dell \u003cnoor_muhammad@dellteam.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2020-04-08 10:41:53 +0500"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"[RFE] Implement the bios-interface for idrac-wsman driver"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The BIOSInterface implementation for idrac-wsman Hardware Type was"},{"line_number":10,"context_line":"missing and VendorInterface methods were used to configure BIOS instead."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":18,"id":"df33271e_dd7891f9","line":7,"range":{"start_line":7,"start_character":0,"end_line":7,"end_character":5},"updated":"2020-04-08 16:24:48.000000000","message":"very small nit: we don\u0027t usually use [rfe] in commit messages","commit_id":"687b8ec7c155f856aa05ca193b34fe2076289732"},{"author":{"_account_id":31643,"name":"Noor Muhammad Malik","email":"noormuhammadmalik95@gmail.com","username":"noor_muhammad_dell"},"change_message_id":"f894b87c59c6e7aacbd3e9425baa85eeed6bf50b","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     noor_muhammad_dell \u003cnoor_muhammad@dellteam.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2020-04-08 10:41:53 +0500"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"[RFE] Implement the bios-interface for idrac-wsman driver"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The BIOSInterface implementation for idrac-wsman Hardware Type was"},{"line_number":10,"context_line":"missing and VendorInterface methods were used to configure BIOS instead."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":18,"id":"df33271e_78eeb3b4","line":7,"range":{"start_line":7,"start_character":0,"end_line":7,"end_character":5},"in_reply_to":"df33271e_dd7891f9","updated":"2020-04-08 17:49:09.000000000","message":"Done","commit_id":"687b8ec7c155f856aa05ca193b34fe2076289732"}],"doc/source/admin/drivers/idrac.rst":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"a6ce052001fa1a6647e4de8fb381b480797d60b3","unresolved":false,"context_lines":[{"line_number":204,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":205,"context_line":""},{"line_number":206,"context_line":"See :doc:`/admin/bios` for more information on Ironic BIOS support."},{"line_number":207,"context_line":""},{"line_number":208,"context_line":"Inspect Interface"},{"line_number":209,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":210,"context_line":""}],"source_content_type":"text/x-rst","patch_set":18,"id":"df33271e_dd61b13b","line":207,"updated":"2020-04-08 16:24:48.000000000","message":"Maybe add a Dell-specific example here? So that a reader knows what to expect?\n\nIs there any reference on available parameters to link to?","commit_id":"687b8ec7c155f856aa05ca193b34fe2076289732"},{"author":{"_account_id":31643,"name":"Noor Muhammad Malik","email":"noormuhammadmalik95@gmail.com","username":"noor_muhammad_dell"},"change_message_id":"f894b87c59c6e7aacbd3e9425baa85eeed6bf50b","unresolved":false,"context_lines":[{"line_number":204,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":205,"context_line":""},{"line_number":206,"context_line":"See :doc:`/admin/bios` for more information on Ironic BIOS support."},{"line_number":207,"context_line":""},{"line_number":208,"context_line":"Inspect Interface"},{"line_number":209,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":210,"context_line":""}],"source_content_type":"text/x-rst","patch_set":18,"id":"df33271e_58dacfe8","line":207,"in_reply_to":"df33271e_dd61b13b","updated":"2020-04-08 17:49:09.000000000","message":"Sure, I can add a specific BIOS parameter example. References are mostly a part of online documentation/guides that are available. I\u0027ll ask Richard if there\u0027s any good reference we can put here.","commit_id":"687b8ec7c155f856aa05ca193b34fe2076289732"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"ef78579360c8c89e7015c3fc0bc364027f7ef485","unresolved":false,"context_lines":[{"line_number":233,"context_line":"    ]"},{"line_number":234,"context_line":"  }"},{"line_number":235,"context_line":""},{"line_number":236,"context_line":"To see all the available BIOS parameters on a node with iDRAC BMC, and also"},{"line_number":237,"context_line":"for additional details of BIOS configuration, see :doc:`/admin/bios`."},{"line_number":238,"context_line":""},{"line_number":239,"context_line":"Inspect Interface"}],"source_content_type":"text/x-rst","patch_set":23,"id":"3f4c43b2_4dba25de","line":236,"updated":"2020-04-17 08:48:50.000000000","message":"I don\u0027t think the link will provide any details on iDRAC specifically, did you mean to include a link to some Dell reference?","commit_id":"6aba1dd42c25a859d64b4f5ff437013b642f3477"},{"author":{"_account_id":31643,"name":"Noor Muhammad Malik","email":"noormuhammadmalik95@gmail.com","username":"noor_muhammad_dell"},"change_message_id":"ad1af5b64f36a415067ed30fc8ab50cc82ba12c4","unresolved":false,"context_lines":[{"line_number":233,"context_line":"    ]"},{"line_number":234,"context_line":"  }"},{"line_number":235,"context_line":""},{"line_number":236,"context_line":"To see all the available BIOS parameters on a node with iDRAC BMC, and also"},{"line_number":237,"context_line":"for additional details of BIOS configuration, see :doc:`/admin/bios`."},{"line_number":238,"context_line":""},{"line_number":239,"context_line":"Inspect Interface"}],"source_content_type":"text/x-rst","patch_set":23,"id":"3f4c43b2_9f2a908d","line":236,"in_reply_to":"3f4c43b2_4dba25de","updated":"2020-04-17 10:28:52.000000000","message":"I was hoping I could get some links, but didn\u0027t find any good sources which could provide some information on all Dell settings.\n This link provides the CLI command to get all BIOS settings that were cached during the introspection process. The available BIOS settings on the node will be an exhaustive list, and also Dell specific. I think that should do it.","commit_id":"6aba1dd42c25a859d64b4f5ff437013b642f3477"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"c17e001cd150fe8a65c0f70659f60282ca088534","unresolved":false,"context_lines":[{"line_number":225,"context_line":"            },"},{"line_number":226,"context_line":"            {"},{"line_number":227,"context_line":"              \"name\": \"SriovGlobalEnable\","},{"line_number":228,"context_line":"              \"value\": \"Enabled"},{"line_number":229,"context_line":"            }"},{"line_number":230,"context_line":"          ]"},{"line_number":231,"context_line":"        }"}],"source_content_type":"text/x-rst","patch_set":24,"id":"1f493fa4_0bf5d757","line":228,"range":{"start_line":228,"start_character":23,"end_line":228,"end_character":31},"updated":"2020-04-22 18:36:15.000000000","message":"End quote missing","commit_id":"cb86bd3088ff6af575b2357c8880704f11a48d0c"},{"author":{"_account_id":31643,"name":"Noor Muhammad Malik","email":"noormuhammadmalik95@gmail.com","username":"noor_muhammad_dell"},"change_message_id":"5b031d0552fa6a7660d40c361fdf8b87264b5b9f","unresolved":false,"context_lines":[{"line_number":225,"context_line":"            },"},{"line_number":226,"context_line":"            {"},{"line_number":227,"context_line":"              \"name\": \"SriovGlobalEnable\","},{"line_number":228,"context_line":"              \"value\": \"Enabled"},{"line_number":229,"context_line":"            }"},{"line_number":230,"context_line":"          ]"},{"line_number":231,"context_line":"        }"}],"source_content_type":"text/x-rst","patch_set":24,"id":"1f493fa4_511dad71","line":228,"range":{"start_line":228,"start_character":23,"end_line":228,"end_character":31},"in_reply_to":"1f493fa4_0bf5d757","updated":"2020-04-24 01:28:53.000000000","message":"Fixed in follow-up change.","commit_id":"cb86bd3088ff6af575b2357c8880704f11a48d0c"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"ad1c19002d3b6409f6462c47f45f41a3bdef6640","unresolved":false,"context_lines":[{"line_number":233,"context_line":"    ]"},{"line_number":234,"context_line":"  }"},{"line_number":235,"context_line":""},{"line_number":236,"context_line":"To see all the available BIOS parameters on a node with iDRAC BMC, and also"},{"line_number":237,"context_line":"for additional details of BIOS configuration, see :doc:`/admin/bios`."},{"line_number":238,"context_line":""},{"line_number":239,"context_line":"Inspect Interface"}],"source_content_type":"text/x-rst","patch_set":24,"id":"3f4c43b2_271d230f","line":236,"updated":"2020-04-18 10:12:01.000000000","message":"Let\u0027s drop the reference to iDRAC from here, the link doesn\u0027t provide it.","commit_id":"cb86bd3088ff6af575b2357c8880704f11a48d0c"},{"author":{"_account_id":31643,"name":"Noor Muhammad Malik","email":"noormuhammadmalik95@gmail.com","username":"noor_muhammad_dell"},"change_message_id":"5b031d0552fa6a7660d40c361fdf8b87264b5b9f","unresolved":false,"context_lines":[{"line_number":233,"context_line":"    ]"},{"line_number":234,"context_line":"  }"},{"line_number":235,"context_line":""},{"line_number":236,"context_line":"To see all the available BIOS parameters on a node with iDRAC BMC, and also"},{"line_number":237,"context_line":"for additional details of BIOS configuration, see :doc:`/admin/bios`."},{"line_number":238,"context_line":""},{"line_number":239,"context_line":"Inspect Interface"}],"source_content_type":"text/x-rst","patch_set":24,"id":"1f493fa4_b114f14f","line":236,"in_reply_to":"3f4c43b2_271d230f","updated":"2020-04-24 01:28:53.000000000","message":"Fixed in follow-up change.","commit_id":"cb86bd3088ff6af575b2357c8880704f11a48d0c"}],"ironic/drivers/modules/drac/bios.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":"08c7ff2d3e2aabedc74afbf1c6a42bc6b1b447a5","unresolved":false,"context_lines":[{"line_number":83,"context_line":"        #  the dracclient method set_bios_settings. No need to do it here."},{"line_number":84,"context_line":"        try:"},{"line_number":85,"context_line":"            set_result \u003d set_config(task, settings)"},{"line_number":86,"context_line":"        except exception.DracOperationError as e:"},{"line_number":87,"context_line":"            LOG.error(\"Failed to apply BIOS config on Node %(node_uuid)s. Error %(error)s\" %"},{"line_number":88,"context_line":"            {"},{"line_number":89,"context_line":"                \"node_uuid\": task.node.uuid,"}],"source_content_type":"text/x-python","patch_set":2,"id":"1fa4df85_9562d5ac","line":86,"updated":"2020-03-17 14:39:43.000000000","message":"There will need to be a unit test written for this path of raising an exception.","commit_id":"314a6580d96a8652b2210f601300150d258a0847"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"08c7ff2d3e2aabedc74afbf1c6a42bc6b1b447a5","unresolved":false,"context_lines":[{"line_number":88,"context_line":"            {"},{"line_number":89,"context_line":"                \"node_uuid\": task.node.uuid,"},{"line_number":90,"context_line":"                \"error\": e"},{"line_number":91,"context_line":"            }) "},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"        # If no reboot is required, we\u0027re done"},{"line_number":94,"context_line":"        if not set_result.is_commit_required:"}],"source_content_type":"text/x-python","patch_set":2,"id":"1fa4df85_d54e0d37","line":91,"updated":"2020-03-17 14:39:43.000000000","message":"Exccess whitespace :)\n\nSo we log an error, what else do we do? This makes it seem like we silently fail?","commit_id":"314a6580d96a8652b2210f601300150d258a0847"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"08c7ff2d3e2aabedc74afbf1c6a42bc6b1b447a5","unresolved":false,"context_lines":[{"line_number":91,"context_line":"            }) "},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"        # If no reboot is required, we\u0027re done"},{"line_number":94,"context_line":"        if not set_result.is_commit_required:"},{"line_number":95,"context_line":"            LOG.info(\"Completed BIOS configuration on Node %(node_uuid)s\" %"},{"line_number":96,"context_line":"            {"},{"line_number":97,"context_line":"                \"node_uuid\": task.node.uuid"}],"source_content_type":"text/x-python","patch_set":2,"id":"1fa4df85_156ee595","line":94,"updated":"2020-03-17 14:39:43.000000000","message":"Unit tests will be needed to cover if reboot is required or not.","commit_id":"314a6580d96a8652b2210f601300150d258a0847"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"08c7ff2d3e2aabedc74afbf1c6a42bc6b1b447a5","unresolved":false,"context_lines":[{"line_number":96,"context_line":"            {"},{"line_number":97,"context_line":"                \"node_uuid\": task.node.uuid"},{"line_number":98,"context_line":"            })"},{"line_number":99,"context_line":"            return None"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"        # Otherwise, need to reboot the node as well to commit configuration"},{"line_number":102,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":2,"id":"1fa4df85_950735ca","line":99,"updated":"2020-03-17 14:39:43.000000000","message":"None is not necessary, you can just return.","commit_id":"314a6580d96a8652b2210f601300150d258a0847"},{"author":{"_account_id":31643,"name":"Noor Muhammad Malik","email":"noormuhammadmalik95@gmail.com","username":"noor_muhammad_dell"},"change_message_id":"4b1f5c8966ffb89ea4f0aee5fdf122fb4e180ccb","unresolved":false,"context_lines":[{"line_number":96,"context_line":"            {"},{"line_number":97,"context_line":"                \"node_uuid\": task.node.uuid"},{"line_number":98,"context_line":"            })"},{"line_number":99,"context_line":"            return None"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"        # Otherwise, need to reboot the node as well to commit configuration"},{"line_number":102,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":2,"id":"1fa4df85_95f2d56e","line":99,"in_reply_to":"1fa4df85_950735ca","updated":"2020-03-17 14:55:26.000000000","message":"Done","commit_id":"314a6580d96a8652b2210f601300150d258a0847"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"08c7ff2d3e2aabedc74afbf1c6a42bc6b1b447a5","unresolved":false,"context_lines":[{"line_number":106,"context_line":"            })"},{"line_number":107,"context_line":"            reboot_needed \u003d set_result.is_reboot_required"},{"line_number":108,"context_line":"            try:"},{"line_number":109,"context_line":"                commit_result \u003d commit_config(task, reboot\u003dreboot_needed)"},{"line_number":110,"context_line":"            except exception.DracOperationError as e:"},{"line_number":111,"context_line":"                LOG.error(\"Failed to commit BIOS changes on Node %(node_uuid)s. Error %(error)s\" %"},{"line_number":112,"context_line":"                {"}],"source_content_type":"text/x-python","patch_set":2,"id":"1fa4df85_d5c36d56","line":109,"updated":"2020-03-17 14:39:43.000000000","message":"Unit test will be needed for the happy and failure paths of this call.","commit_id":"314a6580d96a8652b2210f601300150d258a0847"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"08c7ff2d3e2aabedc74afbf1c6a42bc6b1b447a5","unresolved":false,"context_lines":[{"line_number":112,"context_line":"                {"},{"line_number":113,"context_line":"                    \"node_uuid\": task.node.uuid,"},{"line_number":114,"context_line":"                    \"error\": e"},{"line_number":115,"context_line":"                })"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"            # Update driver_internal_info table in database"},{"line_number":118,"context_line":"            driver_internal_info \u003d node.driver_internal_info"}],"source_content_type":"text/x-python","patch_set":2,"id":"1fa4df85_15ca656d","line":115,"updated":"2020-03-17 14:39:43.000000000","message":"Same question as on line 91. We log an error, but what else?","commit_id":"314a6580d96a8652b2210f601300150d258a0847"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"08c7ff2d3e2aabedc74afbf1c6a42bc6b1b447a5","unresolved":false,"context_lines":[{"line_number":116,"context_line":""},{"line_number":117,"context_line":"            # Update driver_internal_info table in database"},{"line_number":118,"context_line":"            driver_internal_info \u003d node.driver_internal_info"},{"line_number":119,"context_line":"            if \u0027bios_config_job_id\u0027 not in driver_internal_info:"},{"line_number":120,"context_line":"                driver_internal_info[\u0027bios_config_job_id\u0027] \u003d commit_result.job_id"},{"line_number":121,"context_line":"            node.driver_internal_info \u003d driver_internal_info"},{"line_number":122,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"1fa4df85_158fc52e","line":119,"updated":"2020-03-17 14:39:43.000000000","message":"So what if it is already present? Seems like we would ignore and loose the new job id?","commit_id":"314a6580d96a8652b2210f601300150d258a0847"},{"author":{"_account_id":31643,"name":"Noor Muhammad Malik","email":"noormuhammadmalik95@gmail.com","username":"noor_muhammad_dell"},"change_message_id":"4b1f5c8966ffb89ea4f0aee5fdf122fb4e180ccb","unresolved":false,"context_lines":[{"line_number":116,"context_line":""},{"line_number":117,"context_line":"            # Update driver_internal_info table in database"},{"line_number":118,"context_line":"            driver_internal_info \u003d node.driver_internal_info"},{"line_number":119,"context_line":"            if \u0027bios_config_job_id\u0027 not in driver_internal_info:"},{"line_number":120,"context_line":"                driver_internal_info[\u0027bios_config_job_id\u0027] \u003d commit_result.job_id"},{"line_number":121,"context_line":"            node.driver_internal_info \u003d driver_internal_info"},{"line_number":122,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"1fa4df85_d58ccdd8","line":119,"in_reply_to":"1fa4df85_158fc52e","updated":"2020-03-17 14:55:26.000000000","message":"Oh, my bad. Fixed it.","commit_id":"314a6580d96a8652b2210f601300150d258a0847"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"08c7ff2d3e2aabedc74afbf1c6a42bc6b1b447a5","unresolved":false,"context_lines":[{"line_number":117,"context_line":"            # Update driver_internal_info table in database"},{"line_number":118,"context_line":"            driver_internal_info \u003d node.driver_internal_info"},{"line_number":119,"context_line":"            if \u0027bios_config_job_id\u0027 not in driver_internal_info:"},{"line_number":120,"context_line":"                driver_internal_info[\u0027bios_config_job_id\u0027] \u003d commit_result.job_id"},{"line_number":121,"context_line":"            node.driver_internal_info \u003d driver_internal_info"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"            # This method calls node.save(), bios_config_job_id will be saved automatically"}],"source_content_type":"text/x-python","patch_set":2,"id":"1fa4df85_b59d9167","line":120,"updated":"2020-03-17 14:39:43.000000000","message":"additionally, how does it ever get cleared. There should likely be a unit test for this.","commit_id":"314a6580d96a8652b2210f601300150d258a0847"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"08c7ff2d3e2aabedc74afbf1c6a42bc6b1b447a5","unresolved":false,"context_lines":[{"line_number":130,"context_line":"            # Return the clean/deploy state string"},{"line_number":131,"context_line":"            return deploy_utils.get_async_step_return_state(node)"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"    "},{"line_number":134,"context_line":"    @METRICS.timer(\u0027DracWSManBIOS._query_bios_config_job_status\u0027)"},{"line_number":135,"context_line":"    @periodics.periodic("},{"line_number":136,"context_line":"        spacing\u003dCONF.drac.query_bios_config_job_status_interval"}],"source_content_type":"text/x-python","patch_set":2,"id":"1fa4df85_9578958f","line":133,"updated":"2020-03-17 14:39:43.000000000","message":"So you\u0027ll want to ensure you remove excess whitespace. `tox -epep8` should report them as errors.","commit_id":"314a6580d96a8652b2210f601300150d258a0847"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"08c7ff2d3e2aabedc74afbf1c6a42bc6b1b447a5","unresolved":false,"context_lines":[{"line_number":140,"context_line":"        \"\"\"Period task to check the progress of running BIOS config job.\"\"\""},{"line_number":141,"context_line":"        pass"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":""},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"    # BaseInterface methods implementation"},{"line_number":146,"context_line":"    def get_properties(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"1fa4df85_1564a5e4","line":143,"updated":"2020-03-17 14:39:43.000000000","message":"This likely also would be reported as a pep8 error, too many blank lines.","commit_id":"314a6580d96a8652b2210f601300150d258a0847"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"08c7ff2d3e2aabedc74afbf1c6a42bc6b1b447a5","unresolved":false,"context_lines":[{"line_number":157,"context_line":"        :raises: InvalidParameterValue if some mandatory information"},{"line_number":158,"context_line":"             is missing on the node or on invalid inputs"},{"line_number":159,"context_line":"        \"\"\""},{"line_number":160,"context_line":"        drac_common.parse_driver_info(task.node)"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"def get_config(node):"}],"source_content_type":"text/x-python","patch_set":2,"id":"1fa4df85_b5bef1fc","line":160,"updated":"2020-03-17 14:39:43.000000000","message":"so the BiosInterface class has two other methods that seem to be missing.\n\n\"factory_reset\" which if not exactly applicable I guess can return NotImplemented, and \"cache_bios_settings\" which allows operators (of the human and software kind to determine the state of the bios. Ideally cache_bios_settings should be implemented.","commit_id":"314a6580d96a8652b2210f601300150d258a0847"},{"author":{"_account_id":10250,"name":"Christopher Dearborn","email":"Christopher.Dearborn@dell.com","username":"cdearbor"},"change_message_id":"0cfa0f309e784521474d974e8127786fca362311","unresolved":false,"context_lines":[{"line_number":139,"context_line":"    # Todo: Patch the CONF for this new entry"},{"line_number":140,"context_line":"    def _query_bios_config_job_status(self, manager, context):"},{"line_number":141,"context_line":"        \"\"\"Period task to check the progress of running BIOS config job.\"\"\""},{"line_number":142,"context_line":"        pass"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"    @METRICS.timer(\u0027DracWSManBIOS.factory_reset\u0027)"},{"line_number":145,"context_line":"    @base.clean_step(priority\u003d0)"}],"source_content_type":"text/x-python","patch_set":7,"id":"1fa4df85_56720c4b","line":142,"updated":"2020-03-18 21:30:15.000000000","message":"Waiting for the job can be accomplished by calling:\n\nhttps://github.com/openstack/ironic/blob/master/ironic/drivers/modules/drac/job.py#L98\n\nif you want it to be synchronous.\n\nOr something like this for asynchronous:\n\nhttps://github.com/openstack/ironic/blob/master/ironic/drivers/modules/drac/raid.py#L1180","commit_id":"e7038db0a2631cefbe840e14e9b1df5bc5c30dc9"},{"author":{"_account_id":31643,"name":"Noor Muhammad Malik","email":"noormuhammadmalik95@gmail.com","username":"noor_muhammad_dell"},"change_message_id":"9002dba17f7bc6105f3f3e0fd8e379978ee9abec","unresolved":false,"context_lines":[{"line_number":139,"context_line":"    # Todo: Patch the CONF for this new entry"},{"line_number":140,"context_line":"    def _query_bios_config_job_status(self, manager, context):"},{"line_number":141,"context_line":"        \"\"\"Period task to check the progress of running BIOS config job.\"\"\""},{"line_number":142,"context_line":"        pass"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"    @METRICS.timer(\u0027DracWSManBIOS.factory_reset\u0027)"},{"line_number":145,"context_line":"    @base.clean_step(priority\u003d0)"}],"source_content_type":"text/x-python","patch_set":7,"id":"1fa4df85_1407a71e","line":142,"in_reply_to":"1fa4df85_56720c4b","updated":"2020-03-19 09:19:50.000000000","message":"I\u0027d rather keep it asynchronous since BIOS config requires multiple reboots and it will be desired to run such long running tasks asynchronously.","commit_id":"e7038db0a2631cefbe840e14e9b1df5bc5c30dc9"},{"author":{"_account_id":31643,"name":"Noor Muhammad Malik","email":"noormuhammadmalik95@gmail.com","username":"noor_muhammad_dell"},"change_message_id":"41fcead5b01bd5d5aacbd885a0b796213dcc4a9c","unresolved":false,"context_lines":[{"line_number":146,"context_line":"            the node list to act on"},{"line_number":147,"context_line":"        :param context: context of the request, needed when acquiring"},{"line_number":148,"context_line":"            a lock on a Node. For access control."},{"line_number":149,"context_line":"        :raises: NodeNotFound if Node was deleted by another process"},{"line_number":150,"context_line":"        :raises: NodeLocked if Node is already locked"},{"line_number":151,"context_line":"        \"\"\""},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"        filters \u003d {\u0027reserved\u0027: False, \u0027maintenance\u0027: False}"}],"source_content_type":"text/x-python","patch_set":8,"id":"1fa4df85_f39a2012","line":150,"range":{"start_line":149,"start_character":8,"end_line":150,"end_character":53},"updated":"2020-03-19 10:54:04.000000000","message":"Will get rid of these in the next patchset. My mistake.","commit_id":"904405ff64d921d42e90e13bfb6a04395d71666c"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"a6ce052001fa1a6647e4de8fb381b480797d60b3","unresolved":false,"context_lines":[{"line_number":77,"context_line":"                  is completed."},{"line_number":78,"context_line":"        \"\"\""},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"        LOG.info(\"Configuring Node %(node_uuid)s with BIOS settings:\""},{"line_number":81,"context_line":"                 \" %(settings)s\", {\"node_uuid\": task.node.uuid,"},{"line_number":82,"context_line":"                                   \"settings\": settings})"},{"line_number":83,"context_line":"        node \u003d task.node"}],"source_content_type":"text/x-python","patch_set":18,"id":"df33271e_5ddac1e8","line":80,"updated":"2020-04-08 16:24:48.000000000","message":"s/info/debug/. We need only few INFO records per unit of work, usually when it\u0027s done.","commit_id":"687b8ec7c155f856aa05ca193b34fe2076289732"},{"author":{"_account_id":31643,"name":"Noor Muhammad Malik","email":"noormuhammadmalik95@gmail.com","username":"noor_muhammad_dell"},"change_message_id":"f894b87c59c6e7aacbd3e9425baa85eeed6bf50b","unresolved":false,"context_lines":[{"line_number":77,"context_line":"                  is completed."},{"line_number":78,"context_line":"        \"\"\""},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"        LOG.info(\"Configuring Node %(node_uuid)s with BIOS settings:\""},{"line_number":81,"context_line":"                 \" %(settings)s\", {\"node_uuid\": task.node.uuid,"},{"line_number":82,"context_line":"                                   \"settings\": settings})"},{"line_number":83,"context_line":"        node \u003d task.node"}],"source_content_type":"text/x-python","patch_set":18,"id":"df33271e_0ce768e6","line":80,"in_reply_to":"df33271e_5ddac1e8","updated":"2020-04-08 17:49:09.000000000","message":"Done","commit_id":"687b8ec7c155f856aa05ca193b34fe2076289732"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"a6ce052001fa1a6647e4de8fb381b480797d60b3","unresolved":false,"context_lines":[{"line_number":97,"context_line":""},{"line_number":98,"context_line":"        # If no reboot is required, we\u0027re done"},{"line_number":99,"context_line":"        if not set_result[\u0027is_commit_required\u0027]:"},{"line_number":100,"context_line":"            LOG.info(\"Completed BIOS configuration on Node %(node_uuid)s\","},{"line_number":101,"context_line":"                     {"},{"line_number":102,"context_line":"                         \"node_uuid\": task.node.uuid"},{"line_number":103,"context_line":"                     })"}],"source_content_type":"text/x-python","patch_set":18,"id":"df33271e_7d4a25ac","line":100,"updated":"2020-04-08 16:24:48.000000000","message":"Let\u0027s mention the applied settings here as well","commit_id":"687b8ec7c155f856aa05ca193b34fe2076289732"},{"author":{"_account_id":31643,"name":"Noor Muhammad Malik","email":"noormuhammadmalik95@gmail.com","username":"noor_muhammad_dell"},"change_message_id":"f894b87c59c6e7aacbd3e9425baa85eeed6bf50b","unresolved":false,"context_lines":[{"line_number":97,"context_line":""},{"line_number":98,"context_line":"        # If no reboot is required, we\u0027re done"},{"line_number":99,"context_line":"        if not set_result[\u0027is_commit_required\u0027]:"},{"line_number":100,"context_line":"            LOG.info(\"Completed BIOS configuration on Node %(node_uuid)s\","},{"line_number":101,"context_line":"                     {"},{"line_number":102,"context_line":"                         \"node_uuid\": task.node.uuid"},{"line_number":103,"context_line":"                     })"}],"source_content_type":"text/x-python","patch_set":18,"id":"df33271e_0c35a846","line":100,"in_reply_to":"df33271e_7d4a25ac","updated":"2020-04-08 17:49:09.000000000","message":"Done","commit_id":"687b8ec7c155f856aa05ca193b34fe2076289732"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"a6ce052001fa1a6647e4de8fb381b480797d60b3","unresolved":false,"context_lines":[{"line_number":105,"context_line":""},{"line_number":106,"context_line":"        # Otherwise, need to reboot the node as well to commit configuration"},{"line_number":107,"context_line":"        else:"},{"line_number":108,"context_line":"            LOG.info(\"Rebooting Node %(node_uuid)s to apply BIOS settings\","},{"line_number":109,"context_line":"                     {"},{"line_number":110,"context_line":"                         \"node_uuid\": task.node.uuid"},{"line_number":111,"context_line":"                     })"}],"source_content_type":"text/x-python","patch_set":18,"id":"df33271e_9de449ae","line":108,"updated":"2020-04-08 16:24:48.000000000","message":"this definitely should be debug","commit_id":"687b8ec7c155f856aa05ca193b34fe2076289732"},{"author":{"_account_id":31643,"name":"Noor Muhammad Malik","email":"noormuhammadmalik95@gmail.com","username":"noor_muhammad_dell"},"change_message_id":"f894b87c59c6e7aacbd3e9425baa85eeed6bf50b","unresolved":false,"context_lines":[{"line_number":105,"context_line":""},{"line_number":106,"context_line":"        # Otherwise, need to reboot the node as well to commit configuration"},{"line_number":107,"context_line":"        else:"},{"line_number":108,"context_line":"            LOG.info(\"Rebooting Node %(node_uuid)s to apply BIOS settings\","},{"line_number":109,"context_line":"                     {"},{"line_number":110,"context_line":"                         \"node_uuid\": task.node.uuid"},{"line_number":111,"context_line":"                     })"}],"source_content_type":"text/x-python","patch_set":18,"id":"df33271e_8c4898cc","line":108,"in_reply_to":"df33271e_9de449ae","updated":"2020-04-08 17:49:09.000000000","message":"Done","commit_id":"687b8ec7c155f856aa05ca193b34fe2076289732"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"a6ce052001fa1a6647e4de8fb381b480797d60b3","unresolved":false,"context_lines":[{"line_number":123,"context_line":""},{"line_number":124,"context_line":"            # Store JobID for the async job handler _check_node_bios_jobs"},{"line_number":125,"context_line":"            driver_internal_info \u003d node.driver_internal_info"},{"line_number":126,"context_line":"            if \u0027bios_config_job_ids\u0027 not in driver_internal_info:"},{"line_number":127,"context_line":"                driver_internal_info[\u0027bios_config_job_ids\u0027] \u003d []"},{"line_number":128,"context_line":"            driver_internal_info[\u0027bios_config_job_ids\u0027].append(commit_result)"},{"line_number":129,"context_line":"            node.driver_internal_info \u003d driver_internal_info"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"            # This method calls node.save(), bios_config_job_ids will be saved"}],"source_content_type":"text/x-python","patch_set":18,"id":"df33271e_9dfd693c","line":128,"range":{"start_line":126,"start_character":0,"end_line":128,"end_character":77},"updated":"2020-04-08 16:24:48.000000000","message":"nit: instead of these 3 lines\n\n driver_internal_info.setdefault(\n     \u0027bios_config_job_ids\u0027, []).append(commit_result)","commit_id":"687b8ec7c155f856aa05ca193b34fe2076289732"},{"author":{"_account_id":31643,"name":"Noor Muhammad Malik","email":"noormuhammadmalik95@gmail.com","username":"noor_muhammad_dell"},"change_message_id":"f894b87c59c6e7aacbd3e9425baa85eeed6bf50b","unresolved":false,"context_lines":[{"line_number":123,"context_line":""},{"line_number":124,"context_line":"            # Store JobID for the async job handler _check_node_bios_jobs"},{"line_number":125,"context_line":"            driver_internal_info \u003d node.driver_internal_info"},{"line_number":126,"context_line":"            if \u0027bios_config_job_ids\u0027 not in driver_internal_info:"},{"line_number":127,"context_line":"                driver_internal_info[\u0027bios_config_job_ids\u0027] \u003d []"},{"line_number":128,"context_line":"            driver_internal_info[\u0027bios_config_job_ids\u0027].append(commit_result)"},{"line_number":129,"context_line":"            node.driver_internal_info \u003d driver_internal_info"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"            # This method calls node.save(), bios_config_job_ids will be saved"}],"source_content_type":"text/x-python","patch_set":18,"id":"df33271e_4cda10e9","line":128,"range":{"start_line":126,"start_character":0,"end_line":128,"end_character":77},"in_reply_to":"df33271e_9dfd693c","updated":"2020-04-08 17:49:09.000000000","message":"Done","commit_id":"687b8ec7c155f856aa05ca193b34fe2076289732"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"a6ce052001fa1a6647e4de8fb381b480797d60b3","unresolved":false,"context_lines":[{"line_number":167,"context_line":"                    if not isinstance(task.driver.bios, DracWSManBIOS):"},{"line_number":168,"context_line":"                        continue"},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"                    job_ids \u003d driver_internal_info.get(\u0027bios_config_job_ids\u0027)"},{"line_number":171,"context_line":"                    # skip if nothing to check on this node"},{"line_number":172,"context_line":"                    if not job_ids:"},{"line_number":173,"context_line":"                        continue"}],"source_content_type":"text/x-python","patch_set":18,"id":"df33271e_bd4e6d93","line":170,"updated":"2020-04-08 16:24:48.000000000","message":"Since you don\u0027t use task, this check can be moved to before \u0027acquire\u0027 to save a database access.","commit_id":"687b8ec7c155f856aa05ca193b34fe2076289732"},{"author":{"_account_id":31643,"name":"Noor Muhammad Malik","email":"noormuhammadmalik95@gmail.com","username":"noor_muhammad_dell"},"change_message_id":"f894b87c59c6e7aacbd3e9425baa85eeed6bf50b","unresolved":false,"context_lines":[{"line_number":167,"context_line":"                    if not isinstance(task.driver.bios, DracWSManBIOS):"},{"line_number":168,"context_line":"                        continue"},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"                    job_ids \u003d driver_internal_info.get(\u0027bios_config_job_ids\u0027)"},{"line_number":171,"context_line":"                    # skip if nothing to check on this node"},{"line_number":172,"context_line":"                    if not job_ids:"},{"line_number":173,"context_line":"                        continue"}],"source_content_type":"text/x-python","patch_set":18,"id":"df33271e_0cb80874","line":170,"in_reply_to":"df33271e_bd4e6d93","updated":"2020-04-08 17:49:09.000000000","message":"Done","commit_id":"687b8ec7c155f856aa05ca193b34fe2076289732"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"a6ce052001fa1a6647e4de8fb381b480797d60b3","unresolved":false,"context_lines":[{"line_number":217,"context_line":"        self._delete_cached_config_job_ids(node, finished_job_ids)"},{"line_number":218,"context_line":""},{"line_number":219,"context_line":"        # get the bios_config_job_failure flag, default is False (no failure)"},{"line_number":220,"context_line":"        if not node.driver_internal_info.get(\u0027bios_config_job_failure\u0027,"},{"line_number":221,"context_line":"                                             False):"},{"line_number":222,"context_line":"            # Cache the new BIOS settings, caching needs to happen here"},{"line_number":223,"context_line":"            # since the config steps are async. Decorator won\u0027t work."}],"source_content_type":"text/x-python","patch_set":18,"id":"df33271e_98b8d72a","line":220,"updated":"2020-04-08 16:24:48.000000000","message":"It\u0027s unclear to me what this flag does. It looks like some indirect way to communicate failures, but why not use a local variable here? Why the need to store it on a node?","commit_id":"687b8ec7c155f856aa05ca193b34fe2076289732"},{"author":{"_account_id":31643,"name":"Noor Muhammad Malik","email":"noormuhammadmalik95@gmail.com","username":"noor_muhammad_dell"},"change_message_id":"f894b87c59c6e7aacbd3e9425baa85eeed6bf50b","unresolved":false,"context_lines":[{"line_number":217,"context_line":"        self._delete_cached_config_job_ids(node, finished_job_ids)"},{"line_number":218,"context_line":""},{"line_number":219,"context_line":"        # get the bios_config_job_failure flag, default is False (no failure)"},{"line_number":220,"context_line":"        if not node.driver_internal_info.get(\u0027bios_config_job_failure\u0027,"},{"line_number":221,"context_line":"                                             False):"},{"line_number":222,"context_line":"            # Cache the new BIOS settings, caching needs to happen here"},{"line_number":223,"context_line":"            # since the config steps are async. Decorator won\u0027t work."}],"source_content_type":"text/x-python","patch_set":18,"id":"df33271e_cfd1f259","line":220,"in_reply_to":"df33271e_98b8d72a","updated":"2020-04-08 17:49:09.000000000","message":"Ah! Good catch. It was probably an oversight, carefully handling async job handling got me believing for some reason I had to use that flag. I\u0027ll substitute with a local variable.","commit_id":"687b8ec7c155f856aa05ca193b34fe2076289732"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"a6ce052001fa1a6647e4de8fb381b480797d60b3","unresolved":false,"context_lines":[{"line_number":218,"context_line":""},{"line_number":219,"context_line":"        # get the bios_config_job_failure flag, default is False (no failure)"},{"line_number":220,"context_line":"        if not node.driver_internal_info.get(\u0027bios_config_job_failure\u0027,"},{"line_number":221,"context_line":"                                             False):"},{"line_number":222,"context_line":"            # Cache the new BIOS settings, caching needs to happen here"},{"line_number":223,"context_line":"            # since the config steps are async. Decorator won\u0027t work."},{"line_number":224,"context_line":"            self.cache_bios_settings(task)"}],"source_content_type":"text/x-python","patch_set":18,"id":"df33271e_ddbd3169","line":221,"updated":"2020-04-08 16:24:48.000000000","message":"nit: False not needed, the default None also evaluates to False","commit_id":"687b8ec7c155f856aa05ca193b34fe2076289732"},{"author":{"_account_id":31643,"name":"Noor Muhammad Malik","email":"noormuhammadmalik95@gmail.com","username":"noor_muhammad_dell"},"change_message_id":"f894b87c59c6e7aacbd3e9425baa85eeed6bf50b","unresolved":false,"context_lines":[{"line_number":218,"context_line":""},{"line_number":219,"context_line":"        # get the bios_config_job_failure flag, default is False (no failure)"},{"line_number":220,"context_line":"        if not node.driver_internal_info.get(\u0027bios_config_job_failure\u0027,"},{"line_number":221,"context_line":"                                             False):"},{"line_number":222,"context_line":"            # Cache the new BIOS settings, caching needs to happen here"},{"line_number":223,"context_line":"            # since the config steps are async. Decorator won\u0027t work."},{"line_number":224,"context_line":"            self.cache_bios_settings(task)"}],"source_content_type":"text/x-python","patch_set":18,"id":"df33271e_6fba660a","line":221,"in_reply_to":"df33271e_ddbd3169","updated":"2020-04-08 17:49:09.000000000","message":"Done","commit_id":"687b8ec7c155f856aa05ca193b34fe2076289732"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"a6ce052001fa1a6647e4de8fb381b480797d60b3","unresolved":false,"context_lines":[{"line_number":361,"context_line":"            driver_internal_info \u003d node.driver_internal_info"},{"line_number":362,"context_line":"            if \u0027bios_config_job_ids\u0027 not in driver_internal_info:"},{"line_number":363,"context_line":"                driver_internal_info[\u0027bios_config_job_ids\u0027] \u003d []"},{"line_number":364,"context_line":"            driver_internal_info[\u0027bios_config_job_ids\u0027].append(commit_job_id)"},{"line_number":365,"context_line":"            node.driver_internal_info \u003d driver_internal_info"},{"line_number":366,"context_line":""},{"line_number":367,"context_line":"            # This method calls node.save(), bios_config_job_id will be"}],"source_content_type":"text/x-python","patch_set":18,"id":"df33271e_18f3270c","line":364,"updated":"2020-04-08 16:24:48.000000000","message":"ditto re setdefault","commit_id":"687b8ec7c155f856aa05ca193b34fe2076289732"},{"author":{"_account_id":31643,"name":"Noor Muhammad Malik","email":"noormuhammadmalik95@gmail.com","username":"noor_muhammad_dell"},"change_message_id":"f894b87c59c6e7aacbd3e9425baa85eeed6bf50b","unresolved":false,"context_lines":[{"line_number":361,"context_line":"            driver_internal_info \u003d node.driver_internal_info"},{"line_number":362,"context_line":"            if \u0027bios_config_job_ids\u0027 not in driver_internal_info:"},{"line_number":363,"context_line":"                driver_internal_info[\u0027bios_config_job_ids\u0027] \u003d []"},{"line_number":364,"context_line":"            driver_internal_info[\u0027bios_config_job_ids\u0027].append(commit_job_id)"},{"line_number":365,"context_line":"            node.driver_internal_info \u003d driver_internal_info"},{"line_number":366,"context_line":""},{"line_number":367,"context_line":"            # This method calls node.save(), bios_config_job_id will be"}],"source_content_type":"text/x-python","patch_set":18,"id":"df33271e_6c02740d","line":364,"in_reply_to":"df33271e_18f3270c","updated":"2020-04-08 17:49:09.000000000","message":"Done","commit_id":"687b8ec7c155f856aa05ca193b34fe2076289732"},{"author":{"_account_id":10250,"name":"Christopher Dearborn","email":"Christopher.Dearborn@dell.com","username":"cdearbor"},"change_message_id":"4c25fddd4d3c2c74d6031076b15dae351d743e1e","unresolved":false,"context_lines":[{"line_number":95,"context_line":"                                           \"error\": exc})"},{"line_number":96,"context_line":"            raise exception.DracOperationError(error\u003dexc)"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"        # If no reboot is required, we\u0027re done"},{"line_number":99,"context_line":"        if not set_result[\u0027is_commit_required\u0027]:"},{"line_number":100,"context_line":"            LOG.info(\"Completed BIOS configuration on Node %(node_uuid)s\""},{"line_number":101,"context_line":"                     \" with BIOS settings: %(settings)s\","}],"source_content_type":"text/x-python","patch_set":19,"id":"df33271e_c5ff0aff","line":98,"updated":"2020-04-08 22:25:55.000000000","message":"nit: To be more accurate, the above should say:\n\n# If no commit is required, we\u0027re done","commit_id":"f9c97659564baea9fe965eae68e36798a02394c7"},{"author":{"_account_id":10250,"name":"Christopher Dearborn","email":"Christopher.Dearborn@dell.com","username":"cdearbor"},"change_message_id":"4c25fddd4d3c2c74d6031076b15dae351d743e1e","unresolved":false,"context_lines":[{"line_number":111,"context_line":"                      {\"node_uuid\": task.node.uuid})"},{"line_number":112,"context_line":"            # a reboot is always needed after a config job. the dracclient"},{"line_number":113,"context_line":"            # functionality of telling to reboot is unreliable"},{"line_number":114,"context_line":"            reboot_needed \u003d True"},{"line_number":115,"context_line":"            try:"},{"line_number":116,"context_line":"                commit_result \u003d client.commit_pending_bios_changes("},{"line_number":117,"context_line":"                    reboot\u003dreboot_needed)"}],"source_content_type":"text/x-python","patch_set":19,"id":"df33271e_5a011906","line":114,"updated":"2020-04-08 22:25:55.000000000","message":"As far as I\u0027m aware, dracclient is reliable when indicating whether or not to reboot.  It passes through what the iDRAC itself returns.\n\nExactly what problem are you having?  What is the version of the iDRAC firmware that is running on the target node where you were having the problem?  What model was the target node?\n\nI think the above line should be:\n\nreboot_needed \u003d set_result[\u0027is_reboot_required\u0027]\n\nand not hard coded.","commit_id":"f9c97659564baea9fe965eae68e36798a02394c7"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"ef78579360c8c89e7015c3fc0bc364027f7ef485","unresolved":false,"context_lines":[{"line_number":49,"context_line":"        }"},{"line_number":50,"context_line":"    }"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    # Todo: Consider patch of CONF to add an entry for BIOS query spacing"},{"line_number":53,"context_line":"    # since BIOS jobs could be comparatively shorter in time than RAID ones"},{"line_number":54,"context_line":"    # currently using the raid spacing to avoid errors"},{"line_number":55,"context_line":"    # spacing parameter for periodic method"}],"source_content_type":"text/x-python","patch_set":23,"id":"3f4c43b2_cdec75f5","line":52,"updated":"2020-04-17 08:48:50.000000000","message":"At some point pep8 used to enforce the TODO format..","commit_id":"6aba1dd42c25a859d64b4f5ff437013b642f3477"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"cf40079aa9dd7f0faa5ac975ea8c7e808eb5a347","unresolved":false,"context_lines":[{"line_number":49,"context_line":"        }"},{"line_number":50,"context_line":"    }"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    # Todo: Consider patch of CONF to add an entry for BIOS query spacing"},{"line_number":53,"context_line":"    # since BIOS jobs could be comparatively shorter in time than RAID ones"},{"line_number":54,"context_line":"    # currently using the raid spacing to avoid errors"},{"line_number":55,"context_line":"    # spacing parameter for periodic method"}],"source_content_type":"text/x-python","patch_set":23,"id":"3f4c43b2_3b3f17d7","line":52,"range":{"start_line":52,"start_character":5,"end_line":52,"end_character":15},"updated":"2020-04-16 23:25:02.000000000","message":"FYI, the format is TODO(name): text.\n\n+1 to doing so, it seems like maybe a general setting and two specific settings if dell feels it really needs to be tunable.","commit_id":"6aba1dd42c25a859d64b4f5ff437013b642f3477"},{"author":{"_account_id":31643,"name":"Noor Muhammad Malik","email":"noormuhammadmalik95@gmail.com","username":"noor_muhammad_dell"},"change_message_id":"ad1af5b64f36a415067ed30fc8ab50cc82ba12c4","unresolved":false,"context_lines":[{"line_number":49,"context_line":"        }"},{"line_number":50,"context_line":"    }"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    # Todo: Consider patch of CONF to add an entry for BIOS query spacing"},{"line_number":53,"context_line":"    # since BIOS jobs could be comparatively shorter in time than RAID ones"},{"line_number":54,"context_line":"    # currently using the raid spacing to avoid errors"},{"line_number":55,"context_line":"    # spacing parameter for periodic method"}],"source_content_type":"text/x-python","patch_set":23,"id":"3f4c43b2_e2021b09","line":52,"range":{"start_line":52,"start_character":5,"end_line":52,"end_character":15},"in_reply_to":"3f4c43b2_3b3f17d7","updated":"2020-04-17 10:28:52.000000000","message":"Fixed. Yes, something like that should do it.","commit_id":"6aba1dd42c25a859d64b4f5ff437013b642f3477"},{"author":{"_account_id":10250,"name":"Christopher Dearborn","email":"Christopher.Dearborn@dell.com","username":"cdearbor"},"change_message_id":"951223186849043c6d364afbb51a955fb5bdbc3f","unresolved":false,"context_lines":[{"line_number":49,"context_line":"        }"},{"line_number":50,"context_line":"    }"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    # Todo: Consider patch of CONF to add an entry for BIOS query spacing"},{"line_number":53,"context_line":"    # since BIOS jobs could be comparatively shorter in time than RAID ones"},{"line_number":54,"context_line":"    # currently using the raid spacing to avoid errors"},{"line_number":55,"context_line":"    # spacing parameter for periodic method"}],"source_content_type":"text/x-python","patch_set":23,"id":"3f4c43b2_89041a4c","line":52,"range":{"start_line":52,"start_character":5,"end_line":52,"end_character":15},"in_reply_to":"3f4c43b2_3b3f17d7","updated":"2020-04-17 14:44:37.000000000","message":"I really could go either way on having 1 or 2 settings.  All modern PERC RAID controllers support real-time mode, so virtual disk creation takes much less time as it used to.  That said, at least BOSS cards do not support real-time, so creating virtual disks on those still takes a while. The time BIOS takes probably falls somewhere in between the 2.  Keeping 1 setting and bumping it down to 45-60 seconds would probably be a fine solution, or adding a 2nd setting with a default of 45-60 seconds for BIOS would be fine too.","commit_id":"6aba1dd42c25a859d64b4f5ff437013b642f3477"},{"author":{"_account_id":31643,"name":"Noor Muhammad Malik","email":"noormuhammadmalik95@gmail.com","username":"noor_muhammad_dell"},"change_message_id":"ad1af5b64f36a415067ed30fc8ab50cc82ba12c4","unresolved":false,"context_lines":[{"line_number":49,"context_line":"        }"},{"line_number":50,"context_line":"    }"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    # Todo: Consider patch of CONF to add an entry for BIOS query spacing"},{"line_number":53,"context_line":"    # since BIOS jobs could be comparatively shorter in time than RAID ones"},{"line_number":54,"context_line":"    # currently using the raid spacing to avoid errors"},{"line_number":55,"context_line":"    # spacing parameter for periodic method"}],"source_content_type":"text/x-python","patch_set":23,"id":"3f4c43b2_220d2337","line":52,"in_reply_to":"3f4c43b2_cdec75f5","updated":"2020-04-17 10:28:52.000000000","message":"I really wish it did..","commit_id":"6aba1dd42c25a859d64b4f5ff437013b642f3477"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"ef78579360c8c89e7015c3fc0bc364027f7ef485","unresolved":false,"context_lines":[{"line_number":53,"context_line":"    # since BIOS jobs could be comparatively shorter in time than RAID ones"},{"line_number":54,"context_line":"    # currently using the raid spacing to avoid errors"},{"line_number":55,"context_line":"    # spacing parameter for periodic method"},{"line_number":56,"context_line":"    bios_spacing \u003d CONF.drac.query_raid_config_job_status_interval"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"    def __init__(self):"},{"line_number":59,"context_line":"        super(DracWSManBIOS, self).__init__()"}],"source_content_type":"text/x-python","patch_set":23,"id":"3f4c43b2_2dbd19d8","line":56,"updated":"2020-04-17 08:48:50.000000000","message":"I\u0027d recommend against storing this value on a class. If this module is imported before the options are loaded, you\u0027ll always end up with the default value. Better move to __init__ or just use where you need it.","commit_id":"6aba1dd42c25a859d64b4f5ff437013b642f3477"},{"author":{"_account_id":31643,"name":"Noor Muhammad Malik","email":"noormuhammadmalik95@gmail.com","username":"noor_muhammad_dell"},"change_message_id":"ad1af5b64f36a415067ed30fc8ab50cc82ba12c4","unresolved":false,"context_lines":[{"line_number":53,"context_line":"    # since BIOS jobs could be comparatively shorter in time than RAID ones"},{"line_number":54,"context_line":"    # currently using the raid spacing to avoid errors"},{"line_number":55,"context_line":"    # spacing parameter for periodic method"},{"line_number":56,"context_line":"    bios_spacing \u003d CONF.drac.query_raid_config_job_status_interval"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"    def __init__(self):"},{"line_number":59,"context_line":"        super(DracWSManBIOS, self).__init__()"}],"source_content_type":"text/x-python","patch_set":23,"id":"3f4c43b2_e22b3b7f","line":56,"in_reply_to":"3f4c43b2_2dbd19d8","updated":"2020-04-17 10:28:52.000000000","message":"Ah! Good catch. Moved to __init__","commit_id":"6aba1dd42c25a859d64b4f5ff437013b642f3477"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"cf40079aa9dd7f0faa5ac975ea8c7e808eb5a347","unresolved":false,"context_lines":[{"line_number":77,"context_line":"                  is completed."},{"line_number":78,"context_line":"        \"\"\""},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"        LOG.debug(\"Configuring Node %(node_uuid)s with BIOS settings:\""},{"line_number":81,"context_line":"                  \" %(settings)s\", {\"node_uuid\": task.node.uuid,"},{"line_number":82,"context_line":"                                    \"settings\": settings})"},{"line_number":83,"context_line":"        node \u003d task.node"}],"source_content_type":"text/x-python","patch_set":23,"id":"3f4c43b2_1b1b3b81","line":80,"range":{"start_line":80,"start_character":31,"end_line":80,"end_character":35},"updated":"2020-04-16 23:25:02.000000000","message":"Same as below.","commit_id":"6aba1dd42c25a859d64b4f5ff437013b642f3477"},{"author":{"_account_id":31643,"name":"Noor Muhammad Malik","email":"noormuhammadmalik95@gmail.com","username":"noor_muhammad_dell"},"change_message_id":"ad1af5b64f36a415067ed30fc8ab50cc82ba12c4","unresolved":false,"context_lines":[{"line_number":77,"context_line":"                  is completed."},{"line_number":78,"context_line":"        \"\"\""},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"        LOG.debug(\"Configuring Node %(node_uuid)s with BIOS settings:\""},{"line_number":81,"context_line":"                  \" %(settings)s\", {\"node_uuid\": task.node.uuid,"},{"line_number":82,"context_line":"                                    \"settings\": settings})"},{"line_number":83,"context_line":"        node \u003d task.node"}],"source_content_type":"text/x-python","patch_set":23,"id":"3f4c43b2_020627cf","line":80,"range":{"start_line":80,"start_character":31,"end_line":80,"end_character":35},"in_reply_to":"3f4c43b2_1b1b3b81","updated":"2020-04-17 10:28:52.000000000","message":"Done","commit_id":"6aba1dd42c25a859d64b4f5ff437013b642f3477"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"cf40079aa9dd7f0faa5ac975ea8c7e808eb5a347","unresolved":false,"context_lines":[{"line_number":90,"context_line":"            #  set_bios_settings. No need to do it here."},{"line_number":91,"context_line":"            set_result \u003d client.set_bios_settings(kwsettings)"},{"line_number":92,"context_line":"        except drac_exceptions.BaseClientException as exc:"},{"line_number":93,"context_line":"            LOG.error(\"Failed to apply BIOS config on Node %(node_uuid)s.\""},{"line_number":94,"context_line":"                      \" Error %(error)s\", {\"node_uuid\": task.node.uuid,"},{"line_number":95,"context_line":"                                           \"error\": exc})"},{"line_number":96,"context_line":"            raise exception.DracOperationError(error\u003dexc)"}],"source_content_type":"text/x-python","patch_set":23,"id":"3f4c43b2_9b258bc5","line":93,"range":{"start_line":93,"start_character":54,"end_line":93,"end_character":58},"updated":"2020-04-16 23:25:02.000000000","message":"note: we typically lowercase node.","commit_id":"6aba1dd42c25a859d64b4f5ff437013b642f3477"},{"author":{"_account_id":31643,"name":"Noor Muhammad Malik","email":"noormuhammadmalik95@gmail.com","username":"noor_muhammad_dell"},"change_message_id":"ad1af5b64f36a415067ed30fc8ab50cc82ba12c4","unresolved":false,"context_lines":[{"line_number":90,"context_line":"            #  set_bios_settings. No need to do it here."},{"line_number":91,"context_line":"            set_result \u003d client.set_bios_settings(kwsettings)"},{"line_number":92,"context_line":"        except drac_exceptions.BaseClientException as exc:"},{"line_number":93,"context_line":"            LOG.error(\"Failed to apply BIOS config on Node %(node_uuid)s.\""},{"line_number":94,"context_line":"                      \" Error %(error)s\", {\"node_uuid\": task.node.uuid,"},{"line_number":95,"context_line":"                                           \"error\": exc})"},{"line_number":96,"context_line":"            raise exception.DracOperationError(error\u003dexc)"}],"source_content_type":"text/x-python","patch_set":23,"id":"3f4c43b2_e2085bda","line":93,"range":{"start_line":93,"start_character":54,"end_line":93,"end_character":58},"in_reply_to":"3f4c43b2_9b258bc5","updated":"2020-04-17 10:28:52.000000000","message":"Just fixed it everywhere in the code, comments doc strings etc.","commit_id":"6aba1dd42c25a859d64b4f5ff437013b642f3477"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"cf40079aa9dd7f0faa5ac975ea8c7e808eb5a347","unresolved":false,"context_lines":[{"line_number":97,"context_line":""},{"line_number":98,"context_line":"        # If no commit is required, we\u0027re done"},{"line_number":99,"context_line":"        if not set_result[\u0027is_commit_required\u0027]:"},{"line_number":100,"context_line":"            LOG.info(\"Completed BIOS configuration on Node %(node_uuid)s\""},{"line_number":101,"context_line":"                     \" with BIOS settings: %(settings)s\","},{"line_number":102,"context_line":"                     {"},{"line_number":103,"context_line":"                         \"node_uuid\": task.node.uuid,"}],"source_content_type":"text/x-python","patch_set":23,"id":"3f4c43b2_bb2a078d","line":100,"range":{"start_line":100,"start_character":54,"end_line":100,"end_character":58},"updated":"2020-04-16 23:25:02.000000000","message":"same","commit_id":"6aba1dd42c25a859d64b4f5ff437013b642f3477"},{"author":{"_account_id":31643,"name":"Noor Muhammad Malik","email":"noormuhammadmalik95@gmail.com","username":"noor_muhammad_dell"},"change_message_id":"ad1af5b64f36a415067ed30fc8ab50cc82ba12c4","unresolved":false,"context_lines":[{"line_number":97,"context_line":""},{"line_number":98,"context_line":"        # If no commit is required, we\u0027re done"},{"line_number":99,"context_line":"        if not set_result[\u0027is_commit_required\u0027]:"},{"line_number":100,"context_line":"            LOG.info(\"Completed BIOS configuration on Node %(node_uuid)s\""},{"line_number":101,"context_line":"                     \" with BIOS settings: %(settings)s\","},{"line_number":102,"context_line":"                     {"},{"line_number":103,"context_line":"                         \"node_uuid\": task.node.uuid,"}],"source_content_type":"text/x-python","patch_set":23,"id":"3f4c43b2_2213630f","line":100,"range":{"start_line":100,"start_character":54,"end_line":100,"end_character":58},"in_reply_to":"3f4c43b2_bb2a078d","updated":"2020-04-17 10:28:52.000000000","message":"Done","commit_id":"6aba1dd42c25a859d64b4f5ff437013b642f3477"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"cf40079aa9dd7f0faa5ac975ea8c7e808eb5a347","unresolved":false,"context_lines":[{"line_number":114,"context_line":"                commit_result \u003d client.commit_pending_bios_changes("},{"line_number":115,"context_line":"                    reboot\u003dreboot_needed)"},{"line_number":116,"context_line":"            except drac_exceptions.BaseClientException as exc:"},{"line_number":117,"context_line":"                LOG.error(\"Failed to commit BIOS changes on Node %(node_uuid)s\""},{"line_number":118,"context_line":"                          \". Error %(error)s\", {\"node_uuid\": task.node.uuid,"},{"line_number":119,"context_line":"                                                \"error\": exc})"},{"line_number":120,"context_line":"                raise exception.DracOperationError(error\u003dexc)"}],"source_content_type":"text/x-python","patch_set":23,"id":"3f4c43b2_7b207fb1","line":117,"range":{"start_line":117,"start_character":60,"end_line":117,"end_character":64},"updated":"2020-04-16 23:25:02.000000000","message":"same","commit_id":"6aba1dd42c25a859d64b4f5ff437013b642f3477"},{"author":{"_account_id":31643,"name":"Noor Muhammad Malik","email":"noormuhammadmalik95@gmail.com","username":"noor_muhammad_dell"},"change_message_id":"ad1af5b64f36a415067ed30fc8ab50cc82ba12c4","unresolved":false,"context_lines":[{"line_number":114,"context_line":"                commit_result \u003d client.commit_pending_bios_changes("},{"line_number":115,"context_line":"                    reboot\u003dreboot_needed)"},{"line_number":116,"context_line":"            except drac_exceptions.BaseClientException as exc:"},{"line_number":117,"context_line":"                LOG.error(\"Failed to commit BIOS changes on Node %(node_uuid)s\""},{"line_number":118,"context_line":"                          \". Error %(error)s\", {\"node_uuid\": task.node.uuid,"},{"line_number":119,"context_line":"                                                \"error\": exc})"},{"line_number":120,"context_line":"                raise exception.DracOperationError(error\u003dexc)"}],"source_content_type":"text/x-python","patch_set":23,"id":"3f4c43b2_82f997c9","line":117,"range":{"start_line":117,"start_character":60,"end_line":117,"end_character":64},"in_reply_to":"3f4c43b2_7b207fb1","updated":"2020-04-17 10:28:52.000000000","message":"Done","commit_id":"6aba1dd42c25a859d64b4f5ff437013b642f3477"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"ef78579360c8c89e7015c3fc0bc364027f7ef485","unresolved":false,"context_lines":[{"line_number":258,"context_line":"                   \u0027message\u0027: config_job.message})"},{"line_number":259,"context_line":"        task.node.last_error \u003d config_job.message"},{"line_number":260,"context_line":"        # tell conductor to handle failure of clean/deploy step"},{"line_number":261,"context_line":"        task.process_event(\u0027fail\u0027)"},{"line_number":262,"context_line":""},{"line_number":263,"context_line":"    def _resume_current_operation(self, task):"},{"line_number":264,"context_line":"        \"\"\"Continue cleaning/deployment of the Node."}],"source_content_type":"text/x-python","patch_set":23,"id":"3f4c43b2_0dc01d50","line":261,"updated":"2020-04-17 08:48:50.000000000","message":"I would assuem raising an exception would be enough. Could you try it? Touching task state directly can conflict with future conductor changes.","commit_id":"6aba1dd42c25a859d64b4f5ff437013b642f3477"},{"author":{"_account_id":31643,"name":"Noor Muhammad Malik","email":"noormuhammadmalik95@gmail.com","username":"noor_muhammad_dell"},"change_message_id":"ad1af5b64f36a415067ed30fc8ab50cc82ba12c4","unresolved":false,"context_lines":[{"line_number":258,"context_line":"                   \u0027message\u0027: config_job.message})"},{"line_number":259,"context_line":"        task.node.last_error \u003d config_job.message"},{"line_number":260,"context_line":"        # tell conductor to handle failure of clean/deploy step"},{"line_number":261,"context_line":"        task.process_event(\u0027fail\u0027)"},{"line_number":262,"context_line":""},{"line_number":263,"context_line":"    def _resume_current_operation(self, task):"},{"line_number":264,"context_line":"        \"\"\"Continue cleaning/deployment of the Node."}],"source_content_type":"text/x-python","patch_set":23,"id":"3f4c43b2_42de6f3f","line":261,"in_reply_to":"3f4c43b2_0dc01d50","updated":"2020-04-17 10:28:52.000000000","message":"I suppose I could, but I\u0027ve seen the same mechanism used in other places as well, including the Redfish BIOS, the iDRAC RAID etc. Shall I add a todo here for later reference?","commit_id":"6aba1dd42c25a859d64b4f5ff437013b642f3477"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"ef78579360c8c89e7015c3fc0bc364027f7ef485","unresolved":false,"context_lines":[{"line_number":365,"context_line":"            raise exception.DracOperationError(error\u003dexc)"},{"line_number":366,"context_line":""},{"line_number":367,"context_line":"        # convert dracclient BIOS settings into ironic settings list"},{"line_number":368,"context_line":"        settings \u003d [{\"name\": name, \"value\": attrib.__dict__[\u0027current_value\u0027]}"},{"line_number":369,"context_line":"                    for name, attrib in kwsettings.items()]"},{"line_number":370,"context_line":""},{"line_number":371,"context_line":"        # Store them in the database table"}],"source_content_type":"text/x-python","patch_set":23,"id":"3f4c43b2_6db721f8","line":368,"updated":"2020-04-17 08:48:50.000000000","message":"nit: cannot you use attrib.current_value?","commit_id":"6aba1dd42c25a859d64b4f5ff437013b642f3477"},{"author":{"_account_id":31643,"name":"Noor Muhammad Malik","email":"noormuhammadmalik95@gmail.com","username":"noor_muhammad_dell"},"change_message_id":"ad1af5b64f36a415067ed30fc8ab50cc82ba12c4","unresolved":false,"context_lines":[{"line_number":365,"context_line":"            raise exception.DracOperationError(error\u003dexc)"},{"line_number":366,"context_line":""},{"line_number":367,"context_line":"        # convert dracclient BIOS settings into ironic settings list"},{"line_number":368,"context_line":"        settings \u003d [{\"name\": name, \"value\": attrib.__dict__[\u0027current_value\u0027]}"},{"line_number":369,"context_line":"                    for name, attrib in kwsettings.items()]"},{"line_number":370,"context_line":""},{"line_number":371,"context_line":"        # Store them in the database table"}],"source_content_type":"text/x-python","patch_set":23,"id":"3f4c43b2_8274f769","line":368,"in_reply_to":"3f4c43b2_6db721f8","updated":"2020-04-17 10:28:52.000000000","message":"Oh yes, I can. Fixed.","commit_id":"6aba1dd42c25a859d64b4f5ff437013b642f3477"}],"ironic/tests/unit/drivers/modules/drac/test_bios.py":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"a6ce052001fa1a6647e4de8fb381b480797d60b3","unresolved":false,"context_lines":[{"line_number":47,"context_line":"            drac_common, \u0027get_drac_client\u0027, spec_set\u003dTrue, autospec\u003dTrue)"},{"line_number":48,"context_line":"        mock_get_drac_client \u003d patch_get_drac_client.start()"},{"line_number":49,"context_line":"        self.mock_client \u003d mock.Mock()"},{"line_number":50,"context_line":"        mock_get_drac_client.return_value \u003d self.mock_client"},{"line_number":51,"context_line":"        self.addCleanup(patch_get_drac_client.stop)"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"        proc_virt_attr \u003d {"}],"source_content_type":"text/x-python","patch_set":18,"id":"df33271e_18ccc7ba","line":50,"updated":"2020-04-08 16:24:48.000000000","message":"nit:\n\n self.mock_client \u003d mock_get_drac_client.return_value","commit_id":"687b8ec7c155f856aa05ca193b34fe2076289732"},{"author":{"_account_id":31643,"name":"Noor Muhammad Malik","email":"noormuhammadmalik95@gmail.com","username":"noor_muhammad_dell"},"change_message_id":"f894b87c59c6e7aacbd3e9425baa85eeed6bf50b","unresolved":false,"context_lines":[{"line_number":47,"context_line":"            drac_common, \u0027get_drac_client\u0027, spec_set\u003dTrue, autospec\u003dTrue)"},{"line_number":48,"context_line":"        mock_get_drac_client \u003d patch_get_drac_client.start()"},{"line_number":49,"context_line":"        self.mock_client \u003d mock.Mock()"},{"line_number":50,"context_line":"        mock_get_drac_client.return_value \u003d self.mock_client"},{"line_number":51,"context_line":"        self.addCleanup(patch_get_drac_client.stop)"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"        proc_virt_attr \u003d {"}],"source_content_type":"text/x-python","patch_set":18,"id":"df33271e_ef2af629","line":50,"in_reply_to":"df33271e_18ccc7ba","updated":"2020-04-08 17:49:09.000000000","message":"Done","commit_id":"687b8ec7c155f856aa05ca193b34fe2076289732"}],"releasenotes/notes/idrac-wsman-bios-interface-b39a51828f61eff6.yaml":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"a6ce052001fa1a6647e4de8fb381b480797d60b3","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":"    Implemented the ``BIOSInterface`` for the ``iDRAC`` hardware type."},{"line_number":5,"context_line":"    Primarily, implemented ``factory_reset`` and ``apply_configuration``"},{"line_number":6,"context_line":"    clean and deploy steps, as asynchronous operations."},{"line_number":7,"context_line":"    For more details, see story `2007400 "}],"source_content_type":"text/x-yaml","patch_set":18,"id":"df33271e_f843e311","line":4,"range":{"start_line":4,"start_character":20,"end_line":4,"end_character":37},"updated":"2020-04-08 16:24:48.000000000","message":"nit: \"the BIOS interface\" (let\u0027s not use class names), ``idrac`` (that\u0027s how it\u0027s spelled in setup.cfg).","commit_id":"687b8ec7c155f856aa05ca193b34fe2076289732"},{"author":{"_account_id":31643,"name":"Noor Muhammad Malik","email":"noormuhammadmalik95@gmail.com","username":"noor_muhammad_dell"},"change_message_id":"f894b87c59c6e7aacbd3e9425baa85eeed6bf50b","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":"    Implemented the ``BIOSInterface`` for the ``iDRAC`` hardware type."},{"line_number":5,"context_line":"    Primarily, implemented ``factory_reset`` and ``apply_configuration``"},{"line_number":6,"context_line":"    clean and deploy steps, as asynchronous operations."},{"line_number":7,"context_line":"    For more details, see story `2007400 "}],"source_content_type":"text/x-yaml","patch_set":18,"id":"df33271e_4f94c244","line":4,"range":{"start_line":4,"start_character":20,"end_line":4,"end_character":37},"in_reply_to":"df33271e_f843e311","updated":"2020-04-08 17:49:09.000000000","message":"Done","commit_id":"687b8ec7c155f856aa05ca193b34fe2076289732"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"a6ce052001fa1a6647e4de8fb381b480797d60b3","unresolved":false,"context_lines":[{"line_number":4,"context_line":"    Implemented the ``BIOSInterface`` for the ``iDRAC`` hardware type."},{"line_number":5,"context_line":"    Primarily, implemented ``factory_reset`` and ``apply_configuration``"},{"line_number":6,"context_line":"    clean and deploy steps, as asynchronous operations."},{"line_number":7,"context_line":"    For more details, see story `2007400 "},{"line_number":8,"context_line":"    \u003chttps://storyboard.openstack.org/#!/story/2007400\u003e`_."}],"source_content_type":"text/x-yaml","patch_set":18,"id":"df33271e_38454b16","line":7,"updated":"2020-04-08 16:24:48.000000000","message":"nit: trailing space","commit_id":"687b8ec7c155f856aa05ca193b34fe2076289732"},{"author":{"_account_id":31643,"name":"Noor Muhammad Malik","email":"noormuhammadmalik95@gmail.com","username":"noor_muhammad_dell"},"change_message_id":"f894b87c59c6e7aacbd3e9425baa85eeed6bf50b","unresolved":false,"context_lines":[{"line_number":4,"context_line":"    Implemented the ``BIOSInterface`` for the ``iDRAC`` hardware type."},{"line_number":5,"context_line":"    Primarily, implemented ``factory_reset`` and ``apply_configuration``"},{"line_number":6,"context_line":"    clean and deploy steps, as asynchronous operations."},{"line_number":7,"context_line":"    For more details, see story `2007400 "},{"line_number":8,"context_line":"    \u003chttps://storyboard.openstack.org/#!/story/2007400\u003e`_."}],"source_content_type":"text/x-yaml","patch_set":18,"id":"df33271e_2f8fbe2e","line":7,"in_reply_to":"df33271e_38454b16","updated":"2020-04-08 17:49:09.000000000","message":"Done","commit_id":"687b8ec7c155f856aa05ca193b34fe2076289732"}],"setup.cfg":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"a6ce052001fa1a6647e4de8fb381b480797d60b3","unresolved":false,"context_lines":[{"line_number":58,"context_line":"    irmc \u003d ironic.drivers.modules.irmc.bios:IRMCBIOS"},{"line_number":59,"context_line":"    no-bios \u003d ironic.drivers.modules.noop:NoBIOS"},{"line_number":60,"context_line":"    redfish \u003d ironic.drivers.modules.redfish.bios:RedfishBIOS"},{"line_number":61,"context_line":"    idrac-wsman \u003d ironic.drivers.modules.drac.bios:DracWSManBIOS"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"ironic.hardware.interfaces.boot \u003d"},{"line_number":64,"context_line":"    fake \u003d ironic.drivers.modules.fake:FakeBoot"}],"source_content_type":"text/x-ttcn-cfg","patch_set":18,"id":"df33271e_d85fffe2","line":61,"updated":"2020-04-08 16:24:48.000000000","message":"please keep the list sorted","commit_id":"687b8ec7c155f856aa05ca193b34fe2076289732"},{"author":{"_account_id":31643,"name":"Noor Muhammad Malik","email":"noormuhammadmalik95@gmail.com","username":"noor_muhammad_dell"},"change_message_id":"f894b87c59c6e7aacbd3e9425baa85eeed6bf50b","unresolved":false,"context_lines":[{"line_number":58,"context_line":"    irmc \u003d ironic.drivers.modules.irmc.bios:IRMCBIOS"},{"line_number":59,"context_line":"    no-bios \u003d ironic.drivers.modules.noop:NoBIOS"},{"line_number":60,"context_line":"    redfish \u003d ironic.drivers.modules.redfish.bios:RedfishBIOS"},{"line_number":61,"context_line":"    idrac-wsman \u003d ironic.drivers.modules.drac.bios:DracWSManBIOS"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"ironic.hardware.interfaces.boot \u003d"},{"line_number":64,"context_line":"    fake \u003d ironic.drivers.modules.fake:FakeBoot"}],"source_content_type":"text/x-ttcn-cfg","patch_set":18,"id":"df33271e_af2d8efe","line":61,"in_reply_to":"df33271e_d85fffe2","updated":"2020-04-08 17:49:09.000000000","message":"Done","commit_id":"687b8ec7c155f856aa05ca193b34fe2076289732"}]}
