)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":23847,"name":"Richard G. Pioso","email":"richard.pioso@gmail.com","username":"richard.pioso"},"change_message_id":"02d9dcf02d64ce74a66788e62e0cfc9b2eb5122a","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Pradip Kadam \u003cpradip.kadam001@gmail.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2019-11-07 04:52:02 -0500"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"DRAC : PXE nic support in ``idrac-redfish`` inspect interface"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Adds pxe nic support in ``idrac-redfish`` inspect interface to"},{"line_number":10,"context_line":"hardware type ``idrac``."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3fa7e38b_e35e2578","line":7,"range":{"start_line":7,"start_character":0,"end_line":7,"end_character":61},"updated":"2019-11-08 12:12:11.000000000","message":"nit: This should be no more than 50 characters long [1].\n\nPerhaps it could be the following or similar.\n\n    idrac-redfish inspect updates Port pxe_enabled\n\n[1] https://wiki.openstack.org/wiki/GitCommitMessages#Summary_of_Git_commit_message_structure","commit_id":"59fe564349f72e51b15017195ffddbec3eedc913"},{"author":{"_account_id":29834,"name":"Pradip Kadam","email":"pradip.kadam001@gmail.com","username":"pradip.kadam001"},"change_message_id":"334f93cec0fdfaa62fbee988e97d1c850e87975f","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Pradip Kadam \u003cpradip.kadam001@gmail.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2019-11-07 04:52:02 -0500"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"DRAC : PXE nic support in ``idrac-redfish`` inspect interface"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Adds pxe nic support in ``idrac-redfish`` inspect interface to"},{"line_number":10,"context_line":"hardware type ``idrac``."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3fa7e38b_78b6edde","line":7,"range":{"start_line":7,"start_character":0,"end_line":7,"end_character":61},"in_reply_to":"3fa7e38b_e35e2578","updated":"2019-11-19 09:19:46.000000000","message":"Done","commit_id":"59fe564349f72e51b15017195ffddbec3eedc913"},{"author":{"_account_id":23847,"name":"Richard G. Pioso","email":"richard.pioso@gmail.com","username":"richard.pioso"},"change_message_id":"02d9dcf02d64ce74a66788e62e0cfc9b2eb5122a","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"DRAC : PXE nic support in ``idrac-redfish`` inspect interface"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Adds pxe nic support in ``idrac-redfish`` inspect interface to"},{"line_number":10,"context_line":"hardware type ``idrac``."},{"line_number":11,"context_line":"It checks the boot mode(BIOS or UEFI) of the node and"},{"line_number":12,"context_line":"retrieve the list of pxe device MAC addresses using redfish api"},{"line_number":13,"context_line":"and updates the pxe_enabled field of Port."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: Ife8387a3bdb75717b896cf1067d2490084665e49"},{"line_number":16,"context_line":"Story: 2006819"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3fa7e38b_434939b5","line":13,"range":{"start_line":9,"start_character":0,"end_line":13,"end_character":42},"updated":"2019-11-08 12:12:11.000000000","message":"This does not clearly describe the change. It gets into unnecessary implementation detail about the handling of the two (2) boot modes.","commit_id":"59fe564349f72e51b15017195ffddbec3eedc913"},{"author":{"_account_id":29834,"name":"Pradip Kadam","email":"pradip.kadam001@gmail.com","username":"pradip.kadam001"},"change_message_id":"334f93cec0fdfaa62fbee988e97d1c850e87975f","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"DRAC : PXE nic support in ``idrac-redfish`` inspect interface"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Adds pxe nic support in ``idrac-redfish`` inspect interface to"},{"line_number":10,"context_line":"hardware type ``idrac``."},{"line_number":11,"context_line":"It checks the boot mode(BIOS or UEFI) of the node and"},{"line_number":12,"context_line":"retrieve the list of pxe device MAC addresses using redfish api"},{"line_number":13,"context_line":"and updates the pxe_enabled field of Port."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: Ife8387a3bdb75717b896cf1067d2490084665e49"},{"line_number":16,"context_line":"Story: 2006819"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3fa7e38b_98bba9c2","line":13,"range":{"start_line":9,"start_character":0,"end_line":13,"end_character":42},"in_reply_to":"3fa7e38b_434939b5","updated":"2019-11-19 09:19:46.000000000","message":"Done","commit_id":"59fe564349f72e51b15017195ffddbec3eedc913"},{"author":{"_account_id":10250,"name":"Christopher Dearborn","email":"Christopher.Dearborn@dell.com","username":"cdearbor"},"change_message_id":"f185e0c05916735c698e441cbec2c1e2bc055b84","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"df33271e_22273115","line":17,"updated":"2020-03-23 18:20:54.000000000","message":"Can you add:\nDepends-On: Ia7db0223d72566cf4a4d013a35ef2782f273695f\n\nThis will make this patch dependent on the export config patch in sushy-oem-idrac and prevent it from merging until that patch does.  This way we won\u0027t need an artificial -1 on this patch.","commit_id":"ef21d55835fec24b8ea8f334fdf5a519cfac2fc1"},{"author":{"_account_id":10250,"name":"Christopher Dearborn","email":"Christopher.Dearborn@dell.com","username":"cdearbor"},"change_message_id":"8bc0b2c439001d2dc945995a84cb89ea014b39ff","unresolved":false,"context_lines":[{"line_number":7,"context_line":"DRAC : idrac-redfish inspect updates pxe port"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Adds pxe nic support in ``idrac-redfish`` inspect interface to"},{"line_number":10,"context_line":"hardware type ``idrac``."},{"line_number":11,"context_line":"It retrieve the list of pxe device MAC addresses using redfish api"},{"line_number":12,"context_line":"and updates the pxe_enabled field of Port."},{"line_number":13,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"df33271e_be1642f0","line":10,"updated":"2020-03-30 20:58:17.000000000","message":"Can you change the above 2 lines to something like:\n\nExtends generic Redfish OOB inspection to add setting ``pxe_enabled`` on the discovered ports for the ``idrac`` hardware type.","commit_id":"fa51fcc92433b5b6c8c1a30b208ed23707dd9dfd"},{"author":{"_account_id":31418,"name":"Mahendra Kamble","email":"mahendra.kamble358@gmail.com","username":"MahendraKamble"},"change_message_id":"f214837016f7b994950ecb9657b1d2cf8878ca8d","unresolved":false,"context_lines":[{"line_number":7,"context_line":"DRAC : idrac-redfish inspect updates pxe port"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Adds pxe nic support in ``idrac-redfish`` inspect interface to"},{"line_number":10,"context_line":"hardware type ``idrac``."},{"line_number":11,"context_line":"It retrieve the list of pxe device MAC addresses using redfish api"},{"line_number":12,"context_line":"and updates the pxe_enabled field of Port."},{"line_number":13,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"df33271e_5e9e7254","line":10,"in_reply_to":"df33271e_be1642f0","updated":"2020-04-07 04:50:34.000000000","message":"Done","commit_id":"fa51fcc92433b5b6c8c1a30b208ed23707dd9dfd"},{"author":{"_account_id":10250,"name":"Christopher Dearborn","email":"Christopher.Dearborn@dell.com","username":"cdearbor"},"change_message_id":"8bc0b2c439001d2dc945995a84cb89ea014b39ff","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Adds pxe nic support in ``idrac-redfish`` inspect interface to"},{"line_number":10,"context_line":"hardware type ``idrac``."},{"line_number":11,"context_line":"It retrieve the list of pxe device MAC addresses using redfish api"},{"line_number":12,"context_line":"and updates the pxe_enabled field of Port."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: Ife8387a3bdb75717b896cf1067d2490084665e49"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"df33271e_9ea41ea8","line":11,"updated":"2020-03-30 20:58:17.000000000","message":"Can you change the above line to:\n\nIt retrieves the list of PXE device MAC addresses using an OEM extension to the Redfish API if necessary","commit_id":"fa51fcc92433b5b6c8c1a30b208ed23707dd9dfd"},{"author":{"_account_id":31418,"name":"Mahendra Kamble","email":"mahendra.kamble358@gmail.com","username":"MahendraKamble"},"change_message_id":"f214837016f7b994950ecb9657b1d2cf8878ca8d","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Adds pxe nic support in ``idrac-redfish`` inspect interface to"},{"line_number":10,"context_line":"hardware type ``idrac``."},{"line_number":11,"context_line":"It retrieve the list of pxe device MAC addresses using redfish api"},{"line_number":12,"context_line":"and updates the pxe_enabled field of Port."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: Ife8387a3bdb75717b896cf1067d2490084665e49"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"df33271e_beab3e73","line":11,"in_reply_to":"df33271e_9ea41ea8","updated":"2020-04-07 04:50:34.000000000","message":"Done","commit_id":"fa51fcc92433b5b6c8c1a30b208ed23707dd9dfd"},{"author":{"_account_id":10250,"name":"Christopher Dearborn","email":"Christopher.Dearborn@dell.com","username":"cdearbor"},"change_message_id":"8bc0b2c439001d2dc945995a84cb89ea014b39ff","unresolved":false,"context_lines":[{"line_number":9,"context_line":"Adds pxe nic support in ``idrac-redfish`` inspect interface to"},{"line_number":10,"context_line":"hardware type ``idrac``."},{"line_number":11,"context_line":"It retrieve the list of pxe device MAC addresses using redfish api"},{"line_number":12,"context_line":"and updates the pxe_enabled field of Port."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: Ife8387a3bdb75717b896cf1067d2490084665e49"},{"line_number":15,"context_line":"Story: 2006819"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"df33271e_1ebe4ed4","line":12,"updated":"2020-03-30 20:58:17.000000000","message":"Can you change pxe_enabled to ``pxe_enabled`` in the line above?","commit_id":"fa51fcc92433b5b6c8c1a30b208ed23707dd9dfd"},{"author":{"_account_id":31418,"name":"Mahendra Kamble","email":"mahendra.kamble358@gmail.com","username":"MahendraKamble"},"change_message_id":"f214837016f7b994950ecb9657b1d2cf8878ca8d","unresolved":false,"context_lines":[{"line_number":9,"context_line":"Adds pxe nic support in ``idrac-redfish`` inspect interface to"},{"line_number":10,"context_line":"hardware type ``idrac``."},{"line_number":11,"context_line":"It retrieve the list of pxe device MAC addresses using redfish api"},{"line_number":12,"context_line":"and updates the pxe_enabled field of Port."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: Ife8387a3bdb75717b896cf1067d2490084665e49"},{"line_number":15,"context_line":"Story: 2006819"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"df33271e_feb666dc","line":12,"in_reply_to":"df33271e_1ebe4ed4","updated":"2020-04-07 04:50:34.000000000","message":"Done","commit_id":"fa51fcc92433b5b6c8c1a30b208ed23707dd9dfd"},{"author":{"_account_id":10250,"name":"Christopher Dearborn","email":"Christopher.Dearborn@dell.com","username":"cdearbor"},"change_message_id":"8bc0b2c439001d2dc945995a84cb89ea014b39ff","unresolved":false,"context_lines":[{"line_number":14,"context_line":"Change-Id: Ife8387a3bdb75717b896cf1067d2490084665e49"},{"line_number":15,"context_line":"Story: 2006819"},{"line_number":16,"context_line":"Task: 37380"},{"line_number":17,"context_line":"Depends-On: Ia7db0223d72566cf4a4d013a35ef2782f273695f"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"df33271e_5ee576db","line":17,"updated":"2020-03-30 20:58:17.000000000","message":"Hey Mahendra, you should add yourself as a co-author here since you\u0027ve done quite a bit of work on this patch.  Like this:\nCo-Authored-By: Mahendra Kamble \u003cmahendra.kamble358@gmail.com\u003e","commit_id":"fa51fcc92433b5b6c8c1a30b208ed23707dd9dfd"},{"author":{"_account_id":31418,"name":"Mahendra Kamble","email":"mahendra.kamble358@gmail.com","username":"MahendraKamble"},"change_message_id":"f214837016f7b994950ecb9657b1d2cf8878ca8d","unresolved":false,"context_lines":[{"line_number":14,"context_line":"Change-Id: Ife8387a3bdb75717b896cf1067d2490084665e49"},{"line_number":15,"context_line":"Story: 2006819"},{"line_number":16,"context_line":"Task: 37380"},{"line_number":17,"context_line":"Depends-On: Ia7db0223d72566cf4a4d013a35ef2782f273695f"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"df33271e_debba2c1","line":17,"in_reply_to":"df33271e_5ee576db","updated":"2020-04-07 04:50:34.000000000","message":"Done","commit_id":"fa51fcc92433b5b6c8c1a30b208ed23707dd9dfd"},{"author":{"_account_id":10250,"name":"Christopher Dearborn","email":"Christopher.Dearborn@dell.com","username":"cdearbor"},"change_message_id":"39924d13b918b73226a4ce1e860888751db4f6f8","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"DRAC : idrac-redfish inspect updates pxe port"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Extends generic Redfish OOB inspection to add setting ``pxe_enabled``"},{"line_number":10,"context_line":"on the discovered ports for the ``idrac`` hardware type."},{"line_number":11,"context_line":"It retrieves the list of PXE device MAC addresses using an OEM extension"},{"line_number":12,"context_line":"to the Redfish API if necessary"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"df33271e_f76928f8","line":9,"updated":"2020-04-08 21:25:44.000000000","message":"nit - can you remove all of the`` from this entire commit message?  Those are really meant for docs, not commit messages.","commit_id":"b62b7bcd34c905e82d1cf488597a1828c4dfb3a8"},{"author":{"_account_id":31418,"name":"Mahendra Kamble","email":"mahendra.kamble358@gmail.com","username":"MahendraKamble"},"change_message_id":"e9fee71c21bb3abefbcbbdc1b475574105009e7d","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"DRAC : idrac-redfish inspect updates pxe port"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Extends generic Redfish OOB inspection to add setting ``pxe_enabled``"},{"line_number":10,"context_line":"on the discovered ports for the ``idrac`` hardware type."},{"line_number":11,"context_line":"It retrieves the list of PXE device MAC addresses using an OEM extension"},{"line_number":12,"context_line":"to the Redfish API if necessary"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"3f4c43b2_b160b834","line":9,"in_reply_to":"df33271e_f76928f8","updated":"2020-04-13 14:41:04.000000000","message":"Done","commit_id":"b62b7bcd34c905e82d1cf488597a1828c4dfb3a8"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"fbda5f2da53a7a8d55579afebbcc9adb5074f2d4","unresolved":true,"context_lines":[{"line_number":15,"context_line":"Change-Id: Ife8387a3bdb75717b896cf1067d2490084665e49"},{"line_number":16,"context_line":"Story: 2006819"},{"line_number":17,"context_line":"Task: 37380"},{"line_number":18,"context_line":"Depends-On: Ia7db0223d72566cf4a4d013a35ef2782f273695f"},{"line_number":19,"context_line":"Co-Authored-By: Mahendra Kamble \u003cmahendra.kamble358@gmail.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":24,"id":"b39faca3_179b7806","line":18,"range":{"start_line":18,"start_character":12,"end_line":18,"end_character":53},"updated":"2021-02-25 10:27:38.000000000","message":"update dependency on the new patch - https://review.opendev.org/c/x/sushy-oem-idrac/+/710327","commit_id":"e81ed402d91d719fbfc29df9bb9dce0f4305c4f7"},{"author":{"_account_id":25726,"name":"sonali bhausaheb borkar","email":"sonaliborkar85@gmail.com","username":"sonaliborkar85"},"change_message_id":"6d8b24b0ba189921b31726391a0a74e4747fc003","unresolved":true,"context_lines":[{"line_number":15,"context_line":"Change-Id: Ife8387a3bdb75717b896cf1067d2490084665e49"},{"line_number":16,"context_line":"Story: 2006819"},{"line_number":17,"context_line":"Task: 37380"},{"line_number":18,"context_line":"Depends-On: Ia7db0223d72566cf4a4d013a35ef2782f273695f"},{"line_number":19,"context_line":"Co-Authored-By: Mahendra Kamble \u003cmahendra.kamble358@gmail.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":24,"id":"1063bd1d_c71a7b3b","line":18,"range":{"start_line":18,"start_character":12,"end_line":18,"end_character":53},"in_reply_to":"b39faca3_179b7806","updated":"2021-02-26 08:49:15.000000000","message":"Sure will update the commit message","commit_id":"e81ed402d91d719fbfc29df9bb9dce0f4305c4f7"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"ee306eb038173f40c1bf0f132a453564b6e15527","unresolved":true,"context_lines":[{"line_number":15,"context_line":"Change-Id: Ife8387a3bdb75717b896cf1067d2490084665e49"},{"line_number":16,"context_line":"Story: 2006819"},{"line_number":17,"context_line":"Task: 37380"},{"line_number":18,"context_line":"Depends-On: https://review.opendev.org/c/x/sushy-oem-idrac/+/710327"},{"line_number":19,"context_line":"Co-Authored-By: Mahendra Kamble \u003cmahendra.kamble358@gmail.com\u003e"},{"line_number":20,"context_line":"Co-Authored-By: Sonali Borkar \u003csonaliborkar85@gmail.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":31,"id":"843a11d7_f5034a11","line":18,"range":{"start_line":18,"start_character":12,"end_line":18,"end_character":67},"updated":"2021-03-17 13:15:55.000000000","message":"let\u0027s update to this https://review.opendev.org/c/x/sushy-oem-idrac/+/770904","commit_id":"fba2bb0a07d1560d9170976e830a72d5ab90fbd1"},{"author":{"_account_id":25726,"name":"sonali bhausaheb borkar","email":"sonaliborkar85@gmail.com","username":"sonaliborkar85"},"change_message_id":"2e6236f1b139738b47ae4ff209f08c03ab82701b","unresolved":false,"context_lines":[{"line_number":15,"context_line":"Change-Id: Ife8387a3bdb75717b896cf1067d2490084665e49"},{"line_number":16,"context_line":"Story: 2006819"},{"line_number":17,"context_line":"Task: 37380"},{"line_number":18,"context_line":"Depends-On: https://review.opendev.org/c/x/sushy-oem-idrac/+/710327"},{"line_number":19,"context_line":"Co-Authored-By: Mahendra Kamble \u003cmahendra.kamble358@gmail.com\u003e"},{"line_number":20,"context_line":"Co-Authored-By: Sonali Borkar \u003csonaliborkar85@gmail.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":31,"id":"f35e81d5_b36507a8","line":18,"range":{"start_line":18,"start_character":12,"end_line":18,"end_character":67},"in_reply_to":"843a11d7_f5034a11","updated":"2021-03-19 07:39:08.000000000","message":"Done","commit_id":"fba2bb0a07d1560d9170976e830a72d5ab90fbd1"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"96d710135c58eb17b2ac7c18041123f04e732776","unresolved":true,"context_lines":[{"line_number":15,"context_line":"Change-Id: Ife8387a3bdb75717b896cf1067d2490084665e49"},{"line_number":16,"context_line":"Story: 2006819"},{"line_number":17,"context_line":"Task: 37380"},{"line_number":18,"context_line":"Depends-On: https://review.opendev.org/c/x/sushy-oem-idrac/+/770904"},{"line_number":19,"context_line":"Co-Authored-By: Mahendra Kamble \u003cmahendra.kamble358@gmail.com\u003e"},{"line_number":20,"context_line":"Co-Authored-By: Sonali Borkar \u003csonaliborkar85@gmail.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":33,"id":"d95e2c1e_766103d3","line":18,"range":{"start_line":18,"start_character":0,"end_line":18,"end_character":67},"updated":"2021-03-22 20:30:39.000000000","message":"nit: This has merged as of the 12th, so It can be removed.","commit_id":"ece1f2bf09da8fcef39f1662aa4e42b5abfa4dae"},{"author":{"_account_id":25726,"name":"sonali bhausaheb borkar","email":"sonaliborkar85@gmail.com","username":"sonaliborkar85"},"change_message_id":"007f8d145990e308b2001501e5bd358963b1260f","unresolved":false,"context_lines":[{"line_number":15,"context_line":"Change-Id: Ife8387a3bdb75717b896cf1067d2490084665e49"},{"line_number":16,"context_line":"Story: 2006819"},{"line_number":17,"context_line":"Task: 37380"},{"line_number":18,"context_line":"Depends-On: https://review.opendev.org/c/x/sushy-oem-idrac/+/770904"},{"line_number":19,"context_line":"Co-Authored-By: Mahendra Kamble \u003cmahendra.kamble358@gmail.com\u003e"},{"line_number":20,"context_line":"Co-Authored-By: Sonali Borkar \u003csonaliborkar85@gmail.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":33,"id":"2ad6030c_287577e4","line":18,"range":{"start_line":18,"start_character":0,"end_line":18,"end_character":67},"in_reply_to":"d95e2c1e_766103d3","updated":"2021-03-24 13:32:36.000000000","message":"Done","commit_id":"ece1f2bf09da8fcef39f1662aa4e42b5abfa4dae"}],"ironic/drivers/modules/drac/common.py":[{"author":{"_account_id":8580,"name":"Digambar","email":"digambarpatil15@yahoo.co.in","username":"digambar"},"change_message_id":"c436db64209ef3cb9c6a99a0d87bc8cfadca1c44","unresolved":false,"context_lines":[{"line_number":128,"context_line":"    \"\"\""},{"line_number":129,"context_line":"    redfish_address \u003d node.driver_info.get(\u0027redfish_address\u0027)"},{"line_number":130,"context_line":"    redfish_username \u003d node.driver_info.get(\u0027redfish_username\u0027)"},{"line_number":131,"context_line":"    redfish_password \u003d node.driver_info.get(\u0027redfish_password\u0027)"},{"line_number":132,"context_line":"    try:"},{"line_number":133,"context_line":"        # Get instance of Sushy OEM manager object"},{"line_number":134,"context_line":"        authenticator \u003d sushy.auth.BasicAuth(redfish_username,"}],"source_content_type":"text/x-python","patch_set":17,"id":"ff570b3c_ac63141a","line":131,"range":{"start_line":131,"start_character":0,"end_line":131,"end_character":4},"updated":"2020-05-13 08:10:40.000000000","message":"I see lot of hardcoded stuff in this fuction. \nLook at Dhuldev\u0027s patch, https://review.opendev.org/#/c/721593/6/ironic/drivers/modules/drac/common.py, as it\u0027s more clean approach than yours.\nAs Dhuldev also made changes in the same common.py file, his get_sushy_oem_manager function looks perfect to me.","commit_id":"d1bc97b4f19d342a1d8d340694d38e4738878acd"},{"author":{"_account_id":10250,"name":"Christopher Dearborn","email":"Christopher.Dearborn@dell.com","username":"cdearbor"},"change_message_id":"bb43be84f899573502976299f0b67954320a25be","unresolved":false,"context_lines":[{"line_number":120,"context_line":"    return client"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"def get_sushy_oem_manager(node):"},{"line_number":124,"context_line":"    \"\"\"Returns a OEM manager object from sushy-oem library."},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"    :param node: an ironic node object."}],"source_content_type":"text/x-python","patch_set":18,"id":"ff570b3c_dcbe7afd","line":123,"updated":"2020-05-19 19:20:10.000000000","message":"Would you mind updating the implementation of this method so that it\u0027s the same as the one in Dhuldev\u0027s patch?\nhttps://review.opendev.org/#/c/721593/6/ironic/drivers/modules/drac/common.py","commit_id":"3d135afedcbf068cb27bad42f654b9ed6c8d8f3c"},{"author":{"_account_id":31418,"name":"Mahendra Kamble","email":"mahendra.kamble358@gmail.com","username":"MahendraKamble"},"change_message_id":"02f29d5fc8e0bee376cb818dd01611f190172c01","unresolved":false,"context_lines":[{"line_number":120,"context_line":"    return client"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"def get_sushy_oem_manager(node):"},{"line_number":124,"context_line":"    \"\"\"Returns a OEM manager object from sushy-oem library."},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"    :param node: an ironic node object."}],"source_content_type":"text/x-python","patch_set":18,"id":"ff570b3c_679a27b9","line":123,"in_reply_to":"ff570b3c_dcbe7afd","updated":"2020-05-20 09:42:43.000000000","message":"Done","commit_id":"3d135afedcbf068cb27bad42f654b9ed6c8d8f3c"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"17743b43d754edeb768f5769b3300a675c77ffef","unresolved":false,"context_lines":[{"line_number":130,"context_line":"    for manager in system.managers:"},{"line_number":131,"context_line":"        try:"},{"line_number":132,"context_line":"            # Get instance of Sushy OEM manager object"},{"line_number":133,"context_line":"            oem_manager \u003d manager.get_oem_extension(\u0027Dell\u0027)"},{"line_number":134,"context_line":"        except sushy.exceptions.OEMExtensionNotFoundError as e:"},{"line_number":135,"context_line":"            error_msg \u003d (_(\"Search for Sushy OEM extension package\""},{"line_number":136,"context_line":"                           \"\u0027sushy-oem-idrac\u0027 failed for node %(node)s.\""}],"source_content_type":"text/x-python","patch_set":20,"id":"397c7b85_d9909e6c","line":133,"updated":"2020-11-24 10:08:06.000000000","message":"You probably need to return here. Otherwise this function won\u0027t work if the 1st manager has a Dell extension and the 2nd does not.","commit_id":"d88f07472b444c05d101a3417c415a54c20803e2"},{"author":{"_account_id":23847,"name":"Richard G. Pioso","email":"richard.pioso@gmail.com","username":"richard.pioso"},"change_message_id":"2b47c803af4c341b1cc06fe8ff32a7a74b2c0523","unresolved":true,"context_lines":[{"line_number":118,"context_line":"                                    driver_info[\u0027drac_protocol\u0027])"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"    return client"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"def get_sushy_oem_manager(node):"},{"line_number":124,"context_line":"    \"\"\"Returns a OEM manager object from sushy-oem library."},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"    :param node: an ironic node object."},{"line_number":127,"context_line":"    :returns: a OEM manager object."},{"line_number":128,"context_line":"    \"\"\""},{"line_number":129,"context_line":"    system \u003d redfish_utils.get_system(node)"},{"line_number":130,"context_line":"    for manager in system.managers:"},{"line_number":131,"context_line":"        try:"},{"line_number":132,"context_line":"            # Get instance of Sushy OEM manager object"},{"line_number":133,"context_line":"            oem_manager \u003d manager.get_oem_extension(\u0027Dell\u0027)"},{"line_number":134,"context_line":"        except sushy.exceptions.OEMExtensionNotFoundError as e:"},{"line_number":135,"context_line":"            error_msg \u003d (_(\"Search for Sushy OEM extension package\""},{"line_number":136,"context_line":"                           \"\u0027sushy-oem-idrac\u0027 failed for node %(node)s.\""},{"line_number":137,"context_line":"                           \"Ensure it is installed. Error: %(error)s\") %"},{"line_number":138,"context_line":"                         {\u0027node\u0027: node.uuid, \u0027error\u0027: e})"},{"line_number":139,"context_line":"            LOG.error(error_msg)"},{"line_number":140,"context_line":"            raise exception.RedfishError(error\u003derror_msg)"},{"line_number":141,"context_line":"    return oem_manager"}],"source_content_type":"text/x-python","patch_set":20,"id":"abffef4a_ad637638","line":141,"range":{"start_line":121,"start_character":0,"end_line":141,"end_character":22},"updated":"2020-11-26 01:31:36.000000000","message":"I see that .../ironic/drivers/modules/drac/boot.py does something similar for virtual media -- https://opendev.org/openstack/ironic/src/commit/a08da8551a66815bedef7c6444fde5f9082a6aea/ironic/drivers/modules/drac/boot.py#L103-L161. While trying to create a common method is a great thought, it seems like there are too many differences between each use case to make it worthwhile.\n\nPlease move the body of this function into the BIOS boot mode-specific processing in .../ironic/drivers/modules/drac/inspect.py.","commit_id":"d88f07472b444c05d101a3417c415a54c20803e2"},{"author":{"_account_id":25726,"name":"sonali bhausaheb borkar","email":"sonaliborkar85@gmail.com","username":"sonaliborkar85"},"change_message_id":"4df0887449181cf8538b40d36fcf5e53e2021955","unresolved":false,"context_lines":[{"line_number":118,"context_line":"                                    driver_info[\u0027drac_protocol\u0027])"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"    return client"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"def get_sushy_oem_manager(node):"},{"line_number":124,"context_line":"    \"\"\"Returns a OEM manager object from sushy-oem library."},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"    :param node: an ironic node object."},{"line_number":127,"context_line":"    :returns: a OEM manager object."},{"line_number":128,"context_line":"    \"\"\""},{"line_number":129,"context_line":"    system \u003d redfish_utils.get_system(node)"},{"line_number":130,"context_line":"    for manager in system.managers:"},{"line_number":131,"context_line":"        try:"},{"line_number":132,"context_line":"            # Get instance of Sushy OEM manager object"},{"line_number":133,"context_line":"            oem_manager \u003d manager.get_oem_extension(\u0027Dell\u0027)"},{"line_number":134,"context_line":"        except sushy.exceptions.OEMExtensionNotFoundError as e:"},{"line_number":135,"context_line":"            error_msg \u003d (_(\"Search for Sushy OEM extension package\""},{"line_number":136,"context_line":"                           \"\u0027sushy-oem-idrac\u0027 failed for node %(node)s.\""},{"line_number":137,"context_line":"                           \"Ensure it is installed. Error: %(error)s\") %"},{"line_number":138,"context_line":"                         {\u0027node\u0027: node.uuid, \u0027error\u0027: e})"},{"line_number":139,"context_line":"            LOG.error(error_msg)"},{"line_number":140,"context_line":"            raise exception.RedfishError(error\u003derror_msg)"},{"line_number":141,"context_line":"    return oem_manager"}],"source_content_type":"text/x-python","patch_set":20,"id":"bf916ee2_2297e93b","line":141,"range":{"start_line":121,"start_character":0,"end_line":141,"end_character":22},"in_reply_to":"7f7df3eb_72c5daf2","updated":"2021-01-14 10:00:38.000000000","message":"Done","commit_id":"d88f07472b444c05d101a3417c415a54c20803e2"},{"author":{"_account_id":25726,"name":"sonali bhausaheb borkar","email":"sonaliborkar85@gmail.com","username":"sonaliborkar85"},"change_message_id":"7c2bb6e54789a3ef254aa97b5ad8dc652a0349d3","unresolved":true,"context_lines":[{"line_number":118,"context_line":"                                    driver_info[\u0027drac_protocol\u0027])"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"    return client"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"def get_sushy_oem_manager(node):"},{"line_number":124,"context_line":"    \"\"\"Returns a OEM manager object from sushy-oem library."},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"    :param node: an ironic node object."},{"line_number":127,"context_line":"    :returns: a OEM manager object."},{"line_number":128,"context_line":"    \"\"\""},{"line_number":129,"context_line":"    system \u003d redfish_utils.get_system(node)"},{"line_number":130,"context_line":"    for manager in system.managers:"},{"line_number":131,"context_line":"        try:"},{"line_number":132,"context_line":"            # Get instance of Sushy OEM manager object"},{"line_number":133,"context_line":"            oem_manager \u003d manager.get_oem_extension(\u0027Dell\u0027)"},{"line_number":134,"context_line":"        except sushy.exceptions.OEMExtensionNotFoundError as e:"},{"line_number":135,"context_line":"            error_msg \u003d (_(\"Search for Sushy OEM extension package\""},{"line_number":136,"context_line":"                           \"\u0027sushy-oem-idrac\u0027 failed for node %(node)s.\""},{"line_number":137,"context_line":"                           \"Ensure it is installed. Error: %(error)s\") %"},{"line_number":138,"context_line":"                         {\u0027node\u0027: node.uuid, \u0027error\u0027: e})"},{"line_number":139,"context_line":"            LOG.error(error_msg)"},{"line_number":140,"context_line":"            raise exception.RedfishError(error\u003derror_msg)"},{"line_number":141,"context_line":"    return oem_manager"}],"source_content_type":"text/x-python","patch_set":20,"id":"fdfadd51_7e84989d","line":141,"range":{"start_line":121,"start_character":0,"end_line":141,"end_character":22},"in_reply_to":"abffef4a_ad637638","updated":"2020-12-01 12:17:46.000000000","message":"As this is the common method it will required by other interfaces as well like management etc.\nSo in my opinion its good to have this method in this file (ironic/drivers/modules/drac/common.py)\nLet me know your thought on this","commit_id":"d88f07472b444c05d101a3417c415a54c20803e2"},{"author":{"_account_id":23847,"name":"Richard G. Pioso","email":"richard.pioso@gmail.com","username":"richard.pioso"},"change_message_id":"8b50f9142f0926d2d7a45983edf2fc23ddc74b23","unresolved":true,"context_lines":[{"line_number":118,"context_line":"                                    driver_info[\u0027drac_protocol\u0027])"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"    return client"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"def get_sushy_oem_manager(node):"},{"line_number":124,"context_line":"    \"\"\"Returns a OEM manager object from sushy-oem library."},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"    :param node: an ironic node object."},{"line_number":127,"context_line":"    :returns: a OEM manager object."},{"line_number":128,"context_line":"    \"\"\""},{"line_number":129,"context_line":"    system \u003d redfish_utils.get_system(node)"},{"line_number":130,"context_line":"    for manager in system.managers:"},{"line_number":131,"context_line":"        try:"},{"line_number":132,"context_line":"            # Get instance of Sushy OEM manager object"},{"line_number":133,"context_line":"            oem_manager \u003d manager.get_oem_extension(\u0027Dell\u0027)"},{"line_number":134,"context_line":"        except sushy.exceptions.OEMExtensionNotFoundError as e:"},{"line_number":135,"context_line":"            error_msg \u003d (_(\"Search for Sushy OEM extension package\""},{"line_number":136,"context_line":"                           \"\u0027sushy-oem-idrac\u0027 failed for node %(node)s.\""},{"line_number":137,"context_line":"                           \"Ensure it is installed. Error: %(error)s\") %"},{"line_number":138,"context_line":"                         {\u0027node\u0027: node.uuid, \u0027error\u0027: e})"},{"line_number":139,"context_line":"            LOG.error(error_msg)"},{"line_number":140,"context_line":"            raise exception.RedfishError(error\u003derror_msg)"},{"line_number":141,"context_line":"    return oem_manager"}],"source_content_type":"text/x-python","patch_set":20,"id":"7f7df3eb_72c5daf2","line":141,"range":{"start_line":121,"start_character":0,"end_line":141,"end_character":22},"in_reply_to":"fdfadd51_7e84989d","updated":"2020-12-01 22:34:22.000000000","message":"\u003e As this is the common method it will required by other interfaces as well like management etc.\n\u003e So in my opinion its good to have this method in this file (ironic/drivers/modules/drac/common.py)\n\u003e Let me know your thought on this\n\nHere are a couple of points which further support my position:\n\n1. This method does not perform the needful even for its intended use by inspect.py. Please see the linked code above. The first Dell OEM extension manager found may not offer the new, user-friendly method I suggested you add to sushy-oem-idrac or the call to it could fail. The code should iterate through them until it finds one (1) which succeeds.\n2. Can this \"common\" method be used in more than one (1) place today? If not, given point one (1.) above, I question whether or not it is generally useful. I suggest we wait to promote it until we know it is.","commit_id":"d88f07472b444c05d101a3417c415a54c20803e2"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"e26785557b81396fce89b7166ed916b2d9bbb6f2","unresolved":true,"context_lines":[{"line_number":131,"context_line":"        try:"},{"line_number":132,"context_line":"            # Get instance of Sushy OEM manager object"},{"line_number":133,"context_line":"            oem_manager \u003d manager.get_oem_extension(\u0027Dell\u0027)"},{"line_number":134,"context_line":"        except sushy.exceptions.OEMExtensionNotFoundError as e:"},{"line_number":135,"context_line":"            error_msg \u003d (_(\"Search for Sushy OEM extension package\""},{"line_number":136,"context_line":"                           \"\u0027sushy-oem-idrac\u0027 failed for node %(node)s.\""},{"line_number":137,"context_line":"                           \"Ensure it is installed. Error: %(error)s\") %"}],"source_content_type":"text/x-python","patch_set":23,"id":"d220b7c9_f509bd11","line":134,"range":{"start_line":134,"start_character":8,"end_line":134,"end_character":63},"updated":"2020-12-18 12:06:59.000000000","message":"RedfishError would be re-thrown by the first manager that does not support \u0027dell\u0027 extension. It would not loop through all managers. May be better to copy this note [1] here as well.\n[1] https://github.com/openstack/ironic/blob/master/ironic/drivers/modules/drac/boot.py#L107-L118","commit_id":"82f180edb3b9d05254dc931ab543e05957363c98"},{"author":{"_account_id":25726,"name":"sonali bhausaheb borkar","email":"sonaliborkar85@gmail.com","username":"sonaliborkar85"},"change_message_id":"1ff33bd63e46ad79f02edf81d003e4b5a9c83220","unresolved":false,"context_lines":[{"line_number":131,"context_line":"        try:"},{"line_number":132,"context_line":"            # Get instance of Sushy OEM manager object"},{"line_number":133,"context_line":"            oem_manager \u003d manager.get_oem_extension(\u0027Dell\u0027)"},{"line_number":134,"context_line":"        except sushy.exceptions.OEMExtensionNotFoundError as e:"},{"line_number":135,"context_line":"            error_msg \u003d (_(\"Search for Sushy OEM extension package\""},{"line_number":136,"context_line":"                           \"\u0027sushy-oem-idrac\u0027 failed for node %(node)s.\""},{"line_number":137,"context_line":"                           \"Ensure it is installed. Error: %(error)s\") %"}],"source_content_type":"text/x-python","patch_set":23,"id":"98e676bd_7070d17f","line":134,"range":{"start_line":134,"start_character":8,"end_line":134,"end_character":63},"in_reply_to":"d220b7c9_f509bd11","updated":"2021-01-14 09:46:33.000000000","message":"Done","commit_id":"82f180edb3b9d05254dc931ab543e05957363c98"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"e26785557b81396fce89b7166ed916b2d9bbb6f2","unresolved":true,"context_lines":[{"line_number":132,"context_line":"            # Get instance of Sushy OEM manager object"},{"line_number":133,"context_line":"            oem_manager \u003d manager.get_oem_extension(\u0027Dell\u0027)"},{"line_number":134,"context_line":"        except sushy.exceptions.OEMExtensionNotFoundError as e:"},{"line_number":135,"context_line":"            error_msg \u003d (_(\"Search for Sushy OEM extension package\""},{"line_number":136,"context_line":"                           \"\u0027sushy-oem-idrac\u0027 failed for node %(node)s.\""},{"line_number":137,"context_line":"                           \"Ensure it is installed. Error: %(error)s\") %"},{"line_number":138,"context_line":"                         {\u0027node\u0027: node.uuid, \u0027error\u0027: e})"}],"source_content_type":"text/x-python","patch_set":23,"id":"552ac496_e44dd1a5","line":135,"range":{"start_line":135,"start_character":59,"end_line":135,"end_character":66},"updated":"2020-12-18 12:06:59.000000000","message":"Add space at the end.\ns/ \"package\" /\"package \"/","commit_id":"82f180edb3b9d05254dc931ab543e05957363c98"},{"author":{"_account_id":25726,"name":"sonali bhausaheb borkar","email":"sonaliborkar85@gmail.com","username":"sonaliborkar85"},"change_message_id":"1ff33bd63e46ad79f02edf81d003e4b5a9c83220","unresolved":false,"context_lines":[{"line_number":132,"context_line":"            # Get instance of Sushy OEM manager object"},{"line_number":133,"context_line":"            oem_manager \u003d manager.get_oem_extension(\u0027Dell\u0027)"},{"line_number":134,"context_line":"        except sushy.exceptions.OEMExtensionNotFoundError as e:"},{"line_number":135,"context_line":"            error_msg \u003d (_(\"Search for Sushy OEM extension package\""},{"line_number":136,"context_line":"                           \"\u0027sushy-oem-idrac\u0027 failed for node %(node)s.\""},{"line_number":137,"context_line":"                           \"Ensure it is installed. Error: %(error)s\") %"},{"line_number":138,"context_line":"                         {\u0027node\u0027: node.uuid, \u0027error\u0027: e})"}],"source_content_type":"text/x-python","patch_set":23,"id":"1c564656_7c5c8d72","line":135,"range":{"start_line":135,"start_character":59,"end_line":135,"end_character":66},"in_reply_to":"552ac496_e44dd1a5","updated":"2021-01-14 09:46:33.000000000","message":"Done","commit_id":"82f180edb3b9d05254dc931ab543e05957363c98"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"e26785557b81396fce89b7166ed916b2d9bbb6f2","unresolved":true,"context_lines":[{"line_number":133,"context_line":"            oem_manager \u003d manager.get_oem_extension(\u0027Dell\u0027)"},{"line_number":134,"context_line":"        except sushy.exceptions.OEMExtensionNotFoundError as e:"},{"line_number":135,"context_line":"            error_msg \u003d (_(\"Search for Sushy OEM extension package\""},{"line_number":136,"context_line":"                           \"\u0027sushy-oem-idrac\u0027 failed for node %(node)s.\""},{"line_number":137,"context_line":"                           \"Ensure it is installed. Error: %(error)s\") %"},{"line_number":138,"context_line":"                         {\u0027node\u0027: node.uuid, \u0027error\u0027: e})"},{"line_number":139,"context_line":"            LOG.error(error_msg)"}],"source_content_type":"text/x-python","patch_set":23,"id":"400c2cf1_8ec7c77d","line":136,"range":{"start_line":136,"start_character":62,"end_line":136,"end_character":71},"updated":"2020-12-18 12:06:59.000000000","message":"ditto\ns/ \"%(node)s.\" / \"%(node)s. \"/","commit_id":"82f180edb3b9d05254dc931ab543e05957363c98"},{"author":{"_account_id":25726,"name":"sonali bhausaheb borkar","email":"sonaliborkar85@gmail.com","username":"sonaliborkar85"},"change_message_id":"1ff33bd63e46ad79f02edf81d003e4b5a9c83220","unresolved":false,"context_lines":[{"line_number":133,"context_line":"            oem_manager \u003d manager.get_oem_extension(\u0027Dell\u0027)"},{"line_number":134,"context_line":"        except sushy.exceptions.OEMExtensionNotFoundError as e:"},{"line_number":135,"context_line":"            error_msg \u003d (_(\"Search for Sushy OEM extension package\""},{"line_number":136,"context_line":"                           \"\u0027sushy-oem-idrac\u0027 failed for node %(node)s.\""},{"line_number":137,"context_line":"                           \"Ensure it is installed. Error: %(error)s\") %"},{"line_number":138,"context_line":"                         {\u0027node\u0027: node.uuid, \u0027error\u0027: e})"},{"line_number":139,"context_line":"            LOG.error(error_msg)"}],"source_content_type":"text/x-python","patch_set":23,"id":"f8b52690_67932335","line":136,"range":{"start_line":136,"start_character":62,"end_line":136,"end_character":71},"in_reply_to":"400c2cf1_8ec7c77d","updated":"2021-01-14 09:46:33.000000000","message":"Done","commit_id":"82f180edb3b9d05254dc931ab543e05957363c98"}],"ironic/drivers/modules/drac/inspect.py":[{"author":{"_account_id":23847,"name":"Richard G. Pioso","email":"richard.pioso@gmail.com","username":"richard.pioso"},"change_message_id":"02d9dcf02d64ce74a66788e62e0cfc9b2eb5122a","unresolved":false,"context_lines":[{"line_number":18,"context_line":"from datetime import datetime"},{"line_number":19,"context_line":"import json"},{"line_number":20,"context_line":"import re"},{"line_number":21,"context_line":"import xml.etree.ElementTree as ET"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"from ironic_lib import metrics_utils"},{"line_number":24,"context_line":"from oslo_log import log as logging"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_03c90124","line":21,"range":{"start_line":21,"start_character":32,"end_line":21,"end_character":34},"updated":"2019-11-08 12:12:11.000000000","message":"Extra Terrestrial?","commit_id":"59fe564349f72e51b15017195ffddbec3eedc913"},{"author":{"_account_id":29834,"name":"Pradip Kadam","email":"pradip.kadam001@gmail.com","username":"pradip.kadam001"},"change_message_id":"334f93cec0fdfaa62fbee988e97d1c850e87975f","unresolved":false,"context_lines":[{"line_number":18,"context_line":"from datetime import datetime"},{"line_number":19,"context_line":"import json"},{"line_number":20,"context_line":"import re"},{"line_number":21,"context_line":"import xml.etree.ElementTree as ET"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"from ironic_lib import metrics_utils"},{"line_number":24,"context_line":"from oslo_log import log as logging"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_f8c97d59","line":21,"range":{"start_line":21,"start_character":32,"end_line":21,"end_character":34},"in_reply_to":"3fa7e38b_03c90124","updated":"2019-11-19 09:19:46.000000000","message":"Done","commit_id":"59fe564349f72e51b15017195ffddbec3eedc913"},{"author":{"_account_id":7160,"name":"arkady kanevsky","email":"akanevsk@redhat.com","username":"arkady"},"change_message_id":"bb2294db6a1c11aba27ceaf15a0587cf4d1b48ba","unresolved":false,"context_lines":[{"line_number":43,"context_line":"METRICS \u003d metrics_utils.get_metrics_logger(__name__)"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"# System Configuration Tag Constant"},{"line_number":46,"context_line":"_SYSTEM_CONFIG_TAG \u003d \u0027\u003cSystemConfiguration Model\u0027"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"# Time Out Constant"},{"line_number":49,"context_line":"_TIMEOUT_SECONDS \u003d 60"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_0f8e0a79","line":46,"range":{"start_line":46,"start_character":20,"end_line":46,"end_character":49},"updated":"2019-11-08 03:04:19.000000000","message":"does it need closing \u003e","commit_id":"59fe564349f72e51b15017195ffddbec3eedc913"},{"author":{"_account_id":29834,"name":"Pradip Kadam","email":"pradip.kadam001@gmail.com","username":"pradip.kadam001"},"change_message_id":"605bcf3a2080c7a902d252a7b7bc821961813723","unresolved":false,"context_lines":[{"line_number":43,"context_line":"METRICS \u003d metrics_utils.get_metrics_logger(__name__)"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"# System Configuration Tag Constant"},{"line_number":46,"context_line":"_SYSTEM_CONFIG_TAG \u003d \u0027\u003cSystemConfiguration Model\u0027"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"# Time Out Constant"},{"line_number":49,"context_line":"_TIMEOUT_SECONDS \u003d 60"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_7263e1de","line":46,"range":{"start_line":46,"start_character":20,"end_line":46,"end_character":49},"in_reply_to":"3fa7e38b_0f8e0a79","updated":"2019-11-08 04:46:59.000000000","message":"Not actually, full statement is like below:\n\n\u003cSystemConfiguration Model\u003d\"PowerEdge R640\" \u0027\n            \u0027ServiceTag\u003d\"7T1NHK2\" TimeStamp\u003d\"Wed Oct 16 11:38:17 2019\"\u003e\n#..child tags..\n \u003c/SystemConfiguration\u003e\n\nSo, here we are just making sure that xml_data is retrieved by checking \"\u003cSystemConfiguration Model\" tag in the response of redfish api.","commit_id":"59fe564349f72e51b15017195ffddbec3eedc913"},{"author":{"_account_id":23847,"name":"Richard G. Pioso","email":"richard.pioso@gmail.com","username":"richard.pioso"},"change_message_id":"02d9dcf02d64ce74a66788e62e0cfc9b2eb5122a","unresolved":false,"context_lines":[{"line_number":42,"context_line":""},{"line_number":43,"context_line":"METRICS \u003d metrics_utils.get_metrics_logger(__name__)"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"# System Configuration Tag Constant"},{"line_number":46,"context_line":"_SYSTEM_CONFIG_TAG \u003d \u0027\u003cSystemConfiguration Model\u0027"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"# Time Out Constant"},{"line_number":49,"context_line":"_TIMEOUT_SECONDS \u003d 60"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"# Job Id Url Constant"},{"line_number":52,"context_line":"_JOB_ID_URL \u003d \u0027/redfish/v1/Managers/iDRAC.Embedded.1/Actions/Oem/\u0027 \\"},{"line_number":53,"context_line":"              \u0027EID_674_Manager.ExportSystemConfiguration\u0027"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"# Xml Data Url Constant"},{"line_number":56,"context_line":"_XML_DATA_URL \u003d \u0027/redfish/v1/TaskService/Tasks/\u0027"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"# Mac Address Url Constant"},{"line_number":59,"context_line":"_MAC_URL \u003d \u0027/redfish/v1/Systems/System.Embedded.1/EthernetInterfaces/\u0027"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"# Payload Constant"},{"line_number":62,"context_line":"_PAYLOAD \u003d {\u0027ExportFormat\u0027: \u0027XML\u0027, \u0027ShareParameters\u0027: {\u0027Target\u0027: \u0027NIC\u0027}}"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"# Headers Constant"},{"line_number":65,"context_line":"_HEADERS \u003d {\u0027content-type\u0027: \u0027application/json\u0027}"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"# Job Response Code Constant"},{"line_number":68,"context_line":"_JOB_RESPONSE_CODE \u003d 202"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"class DracRedfishInspect(redfish_inspect.RedfishInspect):"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_63d795c2","line":68,"range":{"start_line":45,"start_character":0,"end_line":68,"end_character":24},"updated":"2019-11-08 12:12:11.000000000","message":"These constants and the code below which uses them would be much better located in the sushy-oem-idrac package. [1]\n\n[1] https://github.com/etingof/sushy-oem-idrac.git","commit_id":"59fe564349f72e51b15017195ffddbec3eedc913"},{"author":{"_account_id":10250,"name":"Christopher Dearborn","email":"Christopher.Dearborn@dell.com","username":"cdearbor"},"change_message_id":"aea489c4dc4d10bbae632fdab88cdc67e2239cb0","unresolved":false,"context_lines":[{"line_number":42,"context_line":""},{"line_number":43,"context_line":"METRICS \u003d metrics_utils.get_metrics_logger(__name__)"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"# System Configuration Tag Constant"},{"line_number":46,"context_line":"_SYSTEM_CONFIG_TAG \u003d \u0027\u003cSystemConfiguration Model\u0027"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"# Time Out Constant"},{"line_number":49,"context_line":"_TIMEOUT_SECONDS \u003d 60"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"# Job Id Url Constant"},{"line_number":52,"context_line":"_JOB_ID_URL \u003d \u0027/redfish/v1/Managers/iDRAC.Embedded.1/Actions/Oem/\u0027 \\"},{"line_number":53,"context_line":"              \u0027EID_674_Manager.ExportSystemConfiguration\u0027"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"# Xml Data Url Constant"},{"line_number":56,"context_line":"_XML_DATA_URL \u003d \u0027/redfish/v1/TaskService/Tasks/\u0027"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"# Mac Address Url Constant"},{"line_number":59,"context_line":"_MAC_URL \u003d \u0027/redfish/v1/Systems/System.Embedded.1/EthernetInterfaces/\u0027"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"# Payload Constant"},{"line_number":62,"context_line":"_PAYLOAD \u003d {\u0027ExportFormat\u0027: \u0027XML\u0027, \u0027ShareParameters\u0027: {\u0027Target\u0027: \u0027NIC\u0027}}"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"# Headers Constant"},{"line_number":65,"context_line":"_HEADERS \u003d {\u0027content-type\u0027: \u0027application/json\u0027}"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"# Job Response Code Constant"},{"line_number":68,"context_line":"_JOB_RESPONSE_CODE \u003d 202"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"class DracRedfishInspect(redfish_inspect.RedfishInspect):"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_74b95bea","line":68,"range":{"start_line":45,"start_character":0,"end_line":68,"end_character":24},"in_reply_to":"3fa7e38b_63d795c2","updated":"2019-11-13 18:43:07.000000000","message":"While I agree with this to some extent, I don\u0027t want to add a dependency on someone\u0027s private repo.  I think we should leave this code as-is for now and once that repo has been migrated to X, I would be ok with moving it into that repo at that time.","commit_id":"59fe564349f72e51b15017195ffddbec3eedc913"},{"author":{"_account_id":29834,"name":"Pradip Kadam","email":"pradip.kadam001@gmail.com","username":"pradip.kadam001"},"change_message_id":"334f93cec0fdfaa62fbee988e97d1c850e87975f","unresolved":false,"context_lines":[{"line_number":42,"context_line":""},{"line_number":43,"context_line":"METRICS \u003d metrics_utils.get_metrics_logger(__name__)"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"# System Configuration Tag Constant"},{"line_number":46,"context_line":"_SYSTEM_CONFIG_TAG \u003d \u0027\u003cSystemConfiguration Model\u0027"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"# Time Out Constant"},{"line_number":49,"context_line":"_TIMEOUT_SECONDS \u003d 60"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"# Job Id Url Constant"},{"line_number":52,"context_line":"_JOB_ID_URL \u003d \u0027/redfish/v1/Managers/iDRAC.Embedded.1/Actions/Oem/\u0027 \\"},{"line_number":53,"context_line":"              \u0027EID_674_Manager.ExportSystemConfiguration\u0027"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"# Xml Data Url Constant"},{"line_number":56,"context_line":"_XML_DATA_URL \u003d \u0027/redfish/v1/TaskService/Tasks/\u0027"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"# Mac Address Url Constant"},{"line_number":59,"context_line":"_MAC_URL \u003d \u0027/redfish/v1/Systems/System.Embedded.1/EthernetInterfaces/\u0027"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"# Payload Constant"},{"line_number":62,"context_line":"_PAYLOAD \u003d {\u0027ExportFormat\u0027: \u0027XML\u0027, \u0027ShareParameters\u0027: {\u0027Target\u0027: \u0027NIC\u0027}}"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"# Headers Constant"},{"line_number":65,"context_line":"_HEADERS \u003d {\u0027content-type\u0027: \u0027application/json\u0027}"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"# Job Response Code Constant"},{"line_number":68,"context_line":"_JOB_RESPONSE_CODE \u003d 202"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"class DracRedfishInspect(redfish_inspect.RedfishInspect):"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_bb169f49","line":68,"range":{"start_line":45,"start_character":0,"end_line":68,"end_character":24},"in_reply_to":"3fa7e38b_74b95bea","updated":"2019-11-19 09:19:46.000000000","message":"I\u0027m agree with chris\u0027s comment.","commit_id":"59fe564349f72e51b15017195ffddbec3eedc913"},{"author":{"_account_id":23847,"name":"Richard G. Pioso","email":"richard.pioso@gmail.com","username":"richard.pioso"},"change_message_id":"02d9dcf02d64ce74a66788e62e0cfc9b2eb5122a","unresolved":false,"context_lines":[{"line_number":87,"context_line":"        super(DracRedfishInspect, self).inspect_hardware(task)"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"        node \u003d task.node"},{"line_number":90,"context_line":"        pxe_dev_nics \u003d self._get_pxe_dev_nics(task)"},{"line_number":91,"context_line":"        if pxe_dev_nics is None:"},{"line_number":92,"context_line":"            LOG.warning(\"No PXE enabled NIC was found for node \""},{"line_number":93,"context_line":"                        \"%(node_uuid)s.\", {\u0027node_uuid\u0027: node.uuid})"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_0397c1ed","line":90,"range":{"start_line":90,"start_character":8,"end_line":90,"end_character":20},"updated":"2019-11-08 12:12:11.000000000","message":"I find this name misleading. It holds a list of the MAC addresses of NIC ports which are configured to PXE boot. Please consider \u0027pxe_port_macs\u0027.","commit_id":"59fe564349f72e51b15017195ffddbec3eedc913"},{"author":{"_account_id":29834,"name":"Pradip Kadam","email":"pradip.kadam001@gmail.com","username":"pradip.kadam001"},"change_message_id":"334f93cec0fdfaa62fbee988e97d1c850e87975f","unresolved":false,"context_lines":[{"line_number":87,"context_line":"        super(DracRedfishInspect, self).inspect_hardware(task)"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"        node \u003d task.node"},{"line_number":90,"context_line":"        pxe_dev_nics \u003d self._get_pxe_dev_nics(task)"},{"line_number":91,"context_line":"        if pxe_dev_nics is None:"},{"line_number":92,"context_line":"            LOG.warning(\"No PXE enabled NIC was found for node \""},{"line_number":93,"context_line":"                        \"%(node_uuid)s.\", {\u0027node_uuid\u0027: node.uuid})"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_b8bf85a9","line":90,"range":{"start_line":90,"start_character":8,"end_line":90,"end_character":20},"in_reply_to":"3fa7e38b_0397c1ed","updated":"2019-11-19 09:19:46.000000000","message":"Done","commit_id":"59fe564349f72e51b15017195ffddbec3eedc913"},{"author":{"_account_id":23847,"name":"Richard G. Pioso","email":"richard.pioso@gmail.com","username":"richard.pioso"},"change_message_id":"02d9dcf02d64ce74a66788e62e0cfc9b2eb5122a","unresolved":false,"context_lines":[{"line_number":88,"context_line":""},{"line_number":89,"context_line":"        node \u003d task.node"},{"line_number":90,"context_line":"        pxe_dev_nics \u003d self._get_pxe_dev_nics(task)"},{"line_number":91,"context_line":"        if pxe_dev_nics is None:"},{"line_number":92,"context_line":"            LOG.warning(\"No PXE enabled NIC was found for node \""},{"line_number":93,"context_line":"                        \"%(node_uuid)s.\", {\u0027node_uuid\u0027: node.uuid})"},{"line_number":94,"context_line":"            return states.MANAGEABLE"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"        ports \u003d objects.Port.list_by_node_id(task.context, node.id)"},{"line_number":97,"context_line":"        if ports:"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_c3b9a979","line":94,"range":{"start_line":91,"start_character":0,"end_line":94,"end_character":36},"updated":"2019-11-08 12:12:11.000000000","message":"Can this code be certain all of the Ports\u0027 pxe_enabled attributes are set to False?","commit_id":"59fe564349f72e51b15017195ffddbec3eedc913"},{"author":{"_account_id":29834,"name":"Pradip Kadam","email":"pradip.kadam001@gmail.com","username":"pradip.kadam001"},"change_message_id":"334f93cec0fdfaa62fbee988e97d1c850e87975f","unresolved":false,"context_lines":[{"line_number":88,"context_line":""},{"line_number":89,"context_line":"        node \u003d task.node"},{"line_number":90,"context_line":"        pxe_dev_nics \u003d self._get_pxe_dev_nics(task)"},{"line_number":91,"context_line":"        if pxe_dev_nics is None:"},{"line_number":92,"context_line":"            LOG.warning(\"No PXE enabled NIC was found for node \""},{"line_number":93,"context_line":"                        \"%(node_uuid)s.\", {\u0027node_uuid\u0027: node.uuid})"},{"line_number":94,"context_line":"            return states.MANAGEABLE"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"        ports \u003d objects.Port.list_by_node_id(task.context, node.id)"},{"line_number":97,"context_line":"        if ports:"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_d8bcc1b6","line":94,"range":{"start_line":91,"start_character":0,"end_line":94,"end_character":36},"in_reply_to":"3fa7e38b_19762241","updated":"2019-11-19 09:19:46.000000000","message":"Done","commit_id":"59fe564349f72e51b15017195ffddbec3eedc913"},{"author":{"_account_id":10250,"name":"Christopher Dearborn","email":"Christopher.Dearborn@dell.com","username":"cdearbor"},"change_message_id":"aea489c4dc4d10bbae632fdab88cdc67e2239cb0","unresolved":false,"context_lines":[{"line_number":88,"context_line":""},{"line_number":89,"context_line":"        node \u003d task.node"},{"line_number":90,"context_line":"        pxe_dev_nics \u003d self._get_pxe_dev_nics(task)"},{"line_number":91,"context_line":"        if pxe_dev_nics is None:"},{"line_number":92,"context_line":"            LOG.warning(\"No PXE enabled NIC was found for node \""},{"line_number":93,"context_line":"                        \"%(node_uuid)s.\", {\u0027node_uuid\u0027: node.uuid})"},{"line_number":94,"context_line":"            return states.MANAGEABLE"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"        ports \u003d objects.Port.list_by_node_id(task.context, node.id)"},{"line_number":97,"context_line":"        if ports:"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_19762241","line":94,"range":{"start_line":91,"start_character":0,"end_line":94,"end_character":36},"in_reply_to":"3fa7e38b_c3b9a979","updated":"2019-11-13 18:43:07.000000000","message":"This is a good point.  We should set pxe_enabled to False on all of the Port objects associated with the node.","commit_id":"59fe564349f72e51b15017195ffddbec3eedc913"},{"author":{"_account_id":23847,"name":"Richard G. Pioso","email":"richard.pioso@gmail.com","username":"richard.pioso"},"change_message_id":"02d9dcf02d64ce74a66788e62e0cfc9b2eb5122a","unresolved":false,"context_lines":[{"line_number":100,"context_line":"                if port.pxe_enabled !\u003d is_pxe_dev_nic:"},{"line_number":101,"context_line":"                    port.pxe_enabled \u003d is_pxe_dev_nic"},{"line_number":102,"context_line":"                    port.save()"},{"line_number":103,"context_line":"                    LOG.info(\u0027Port updated with pxe_enabled %(pxe)s \u0027"},{"line_number":104,"context_line":"                             \u0027for node %(node_uuid)s during inspection\u0027,"},{"line_number":105,"context_line":"                             {\u0027pxe\u0027: port.pxe_enabled, \u0027node_uuid\u0027: node.uuid})"},{"line_number":106,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_238f5dce","line":103,"range":{"start_line":103,"start_character":30,"end_line":103,"end_character":42},"updated":"2019-11-08 12:12:11.000000000","message":"Please consider including the port UUID and MAC address in this message.","commit_id":"59fe564349f72e51b15017195ffddbec3eedc913"},{"author":{"_account_id":29834,"name":"Pradip Kadam","email":"pradip.kadam001@gmail.com","username":"pradip.kadam001"},"change_message_id":"334f93cec0fdfaa62fbee988e97d1c850e87975f","unresolved":false,"context_lines":[{"line_number":100,"context_line":"                if port.pxe_enabled !\u003d is_pxe_dev_nic:"},{"line_number":101,"context_line":"                    port.pxe_enabled \u003d is_pxe_dev_nic"},{"line_number":102,"context_line":"                    port.save()"},{"line_number":103,"context_line":"                    LOG.info(\u0027Port updated with pxe_enabled %(pxe)s \u0027"},{"line_number":104,"context_line":"                             \u0027for node %(node_uuid)s during inspection\u0027,"},{"line_number":105,"context_line":"                             {\u0027pxe\u0027: port.pxe_enabled, \u0027node_uuid\u0027: node.uuid})"},{"line_number":106,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_f8ce5d59","line":103,"range":{"start_line":103,"start_character":30,"end_line":103,"end_character":42},"in_reply_to":"3fa7e38b_238f5dce","updated":"2019-11-19 09:19:46.000000000","message":"Done","commit_id":"59fe564349f72e51b15017195ffddbec3eedc913"},{"author":{"_account_id":10206,"name":"Madhuri Kumari","email":"madhuri.kumari@intel.com","username":"Madhuri"},"change_message_id":"fd4adbdabca4db180d8ab249833cd61a573ef126","unresolved":false,"context_lines":[{"line_number":102,"context_line":"                    port.save()"},{"line_number":103,"context_line":"                    LOG.info(\u0027Port updated with pxe_enabled %(pxe)s \u0027"},{"line_number":104,"context_line":"                             \u0027for node %(node_uuid)s during inspection\u0027,"},{"line_number":105,"context_line":"                             {\u0027pxe\u0027: port.pxe_enabled, \u0027node_uuid\u0027: node.uuid})"},{"line_number":106,"context_line":"        else:"},{"line_number":107,"context_line":"            LOG.warning(\"No port information discovered \""},{"line_number":108,"context_line":"                        \"for node %(node)s\", {\u0027node\u0027: node.uuid})"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_e8292489","line":105,"updated":"2019-11-08 08:53:07.000000000","message":"Please add port uuid to make the log message more useful.","commit_id":"59fe564349f72e51b15017195ffddbec3eedc913"},{"author":{"_account_id":29834,"name":"Pradip Kadam","email":"pradip.kadam001@gmail.com","username":"pradip.kadam001"},"change_message_id":"e0262cb4c503d3763fb2cb63f5073aa7531939db","unresolved":false,"context_lines":[{"line_number":102,"context_line":"                    port.save()"},{"line_number":103,"context_line":"                    LOG.info(\u0027Port updated with pxe_enabled %(pxe)s \u0027"},{"line_number":104,"context_line":"                             \u0027for node %(node_uuid)s during inspection\u0027,"},{"line_number":105,"context_line":"                             {\u0027pxe\u0027: port.pxe_enabled, \u0027node_uuid\u0027: node.uuid})"},{"line_number":106,"context_line":"        else:"},{"line_number":107,"context_line":"            LOG.warning(\"No port information discovered \""},{"line_number":108,"context_line":"                        \"for node %(node)s\", {\u0027node\u0027: node.uuid})"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_28eadcd7","line":105,"in_reply_to":"3fa7e38b_e8292489","updated":"2019-11-08 09:23:36.000000000","message":"\u003e Please add port uuid to make the log message more useful.\n\nOkay, will add port.uuid to log message in next patch set.","commit_id":"59fe564349f72e51b15017195ffddbec3eedc913"},{"author":{"_account_id":29834,"name":"Pradip Kadam","email":"pradip.kadam001@gmail.com","username":"pradip.kadam001"},"change_message_id":"334f93cec0fdfaa62fbee988e97d1c850e87975f","unresolved":false,"context_lines":[{"line_number":102,"context_line":"                    port.save()"},{"line_number":103,"context_line":"                    LOG.info(\u0027Port updated with pxe_enabled %(pxe)s \u0027"},{"line_number":104,"context_line":"                             \u0027for node %(node_uuid)s during inspection\u0027,"},{"line_number":105,"context_line":"                             {\u0027pxe\u0027: port.pxe_enabled, \u0027node_uuid\u0027: node.uuid})"},{"line_number":106,"context_line":"        else:"},{"line_number":107,"context_line":"            LOG.warning(\"No port information discovered \""},{"line_number":108,"context_line":"                        \"for node %(node)s\", {\u0027node\u0027: node.uuid})"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_b8d465eb","line":105,"in_reply_to":"3fa7e38b_e8292489","updated":"2019-11-19 09:19:46.000000000","message":"Done","commit_id":"59fe564349f72e51b15017195ffddbec3eedc913"},{"author":{"_account_id":23847,"name":"Richard G. Pioso","email":"richard.pioso@gmail.com","username":"richard.pioso"},"change_message_id":"02d9dcf02d64ce74a66788e62e0cfc9b2eb5122a","unresolved":false,"context_lines":[{"line_number":131,"context_line":"            for param, nic in zip(pxe_params, pxe_nics):"},{"line_number":132,"context_line":"                if system.bios.attributes[param] \u003d\u003d \u0027Enabled\u0027:"},{"line_number":133,"context_line":"                    nic_id \u003d system.bios.attributes[nic]"},{"line_number":134,"context_line":"                    # Get MAC address of the given nic_id"},{"line_number":135,"context_line":"                    mac_address \u003d self._get_mac_address("},{"line_number":136,"context_line":"                        [nic_id], redfish_ip, redfish_username,"},{"line_number":137,"context_line":"                        redfish_password)"},{"line_number":138,"context_line":"                    pxe_dev_nics.append(mac_address)"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"        elif system.boot.mode \u003d\u003d \u0027bios\u0027:"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_a3426d67","line":137,"range":{"start_line":134,"start_character":0,"end_line":137,"end_character":41},"updated":"2019-11-08 12:12:11.000000000","message":"This is called four (4) times. Each invocation issues a RESTful API call to the iDRAC Redfish service to obtain information about all of the Ethernet interfaces. That information needs to be fetched only once. Therefore, that should be moved outside of this loop. The data an be massaged to make looking up the NIC ID\u0027s MAC easy.","commit_id":"59fe564349f72e51b15017195ffddbec3eedc913"},{"author":{"_account_id":29834,"name":"Pradip Kadam","email":"pradip.kadam001@gmail.com","username":"pradip.kadam001"},"change_message_id":"334f93cec0fdfaa62fbee988e97d1c850e87975f","unresolved":false,"context_lines":[{"line_number":131,"context_line":"            for param, nic in zip(pxe_params, pxe_nics):"},{"line_number":132,"context_line":"                if system.bios.attributes[param] \u003d\u003d \u0027Enabled\u0027:"},{"line_number":133,"context_line":"                    nic_id \u003d system.bios.attributes[nic]"},{"line_number":134,"context_line":"                    # Get MAC address of the given nic_id"},{"line_number":135,"context_line":"                    mac_address \u003d self._get_mac_address("},{"line_number":136,"context_line":"                        [nic_id], redfish_ip, redfish_username,"},{"line_number":137,"context_line":"                        redfish_password)"},{"line_number":138,"context_line":"                    pxe_dev_nics.append(mac_address)"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"        elif system.boot.mode \u003d\u003d \u0027bios\u0027:"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_38cb951d","line":137,"range":{"start_line":134,"start_character":0,"end_line":137,"end_character":41},"in_reply_to":"3fa7e38b_5999fa6a","updated":"2019-11-19 09:19:46.000000000","message":"If we move the code out of loop and try to get information once by below api:\n\n/redfish/v1/Systems/System.Embedded.1/EthernetInterfaces/\n\nthen it gives response of links instead of mac_address with associated nic as shown below:\n\n{\"@odata.context\":\"/redfish/v1/$metadata#EthernetInterfaceCollection.EthernetInterfaceCollection\",\"@odata.id\":\"/redfish/v1/Systems/System.Embedded.1/EthernetInterfaces\",\"@odata.type\":\"#EthernetInterfaceCollection.EthernetInterfaceCollection\",\"Description\":\"Collection of Ethernet Interfaces for this System\",\"Members\":[{\"@odata.id\":\"/redfish/v1/Systems/System.Embedded.1/EthernetInterfaces/NIC.Slot.1-2-1\"},{\"@odata.id\":\"/redfish/v1/Systems/System.Embedded.1/EthernetInterfaces/NIC.Slot.1-1-1\"},{\"@odata.id\":\"/redfish/v1/Systems/System.Embedded.1/EthernetInterfaces/NIC.Integrated.1-1-1\"},{\"@odata.id\":\"/redfish/v1/Systems/System.Embedded.1/EthernetInterfaces/NIC.Integrated.1-2-1\"}],\"Members@odata.count\":4,\"Name\":\"System Ethernet Interface Collection\"}\n\nTherefore, I have called api with nic_id 4 times /redfish/v1/Systems/System.Embedded.1/EthernetInterfaces/[NIC_ID]\nso that it gives exact mac_address of specific nic_id in response.","commit_id":"59fe564349f72e51b15017195ffddbec3eedc913"},{"author":{"_account_id":10250,"name":"Christopher Dearborn","email":"Christopher.Dearborn@dell.com","username":"cdearbor"},"change_message_id":"aea489c4dc4d10bbae632fdab88cdc67e2239cb0","unresolved":false,"context_lines":[{"line_number":131,"context_line":"            for param, nic in zip(pxe_params, pxe_nics):"},{"line_number":132,"context_line":"                if system.bios.attributes[param] \u003d\u003d \u0027Enabled\u0027:"},{"line_number":133,"context_line":"                    nic_id \u003d system.bios.attributes[nic]"},{"line_number":134,"context_line":"                    # Get MAC address of the given nic_id"},{"line_number":135,"context_line":"                    mac_address \u003d self._get_mac_address("},{"line_number":136,"context_line":"                        [nic_id], redfish_ip, redfish_username,"},{"line_number":137,"context_line":"                        redfish_password)"},{"line_number":138,"context_line":"                    pxe_dev_nics.append(mac_address)"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"        elif system.boot.mode \u003d\u003d \u0027bios\u0027:"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_5999fa6a","line":137,"range":{"start_line":134,"start_character":0,"end_line":137,"end_character":41},"in_reply_to":"3fa7e38b_a3426d67","updated":"2019-11-13 18:43:07.000000000","message":"We should move querying the MAC addresses outside the look and process them into a dictionary that maps NIC IDs to MACs.  That would turn this code into a dictionary lookup.","commit_id":"59fe564349f72e51b15017195ffddbec3eedc913"},{"author":{"_account_id":10206,"name":"Madhuri Kumari","email":"madhuri.kumari@intel.com","username":"Madhuri"},"change_message_id":"fd4adbdabca4db180d8ab249833cd61a573ef126","unresolved":false,"context_lines":[{"line_number":155,"context_line":"            job_id \u003d job_response.__dict__[\u0027headers\u0027][\u0027Location\u0027]"},{"line_number":156,"context_line":"            try:"},{"line_number":157,"context_line":"                job_id \u003d re.search(\u0027JID_.+\u0027, job_id).group()"},{"line_number":158,"context_line":"            except drac_exceptions.BaseClientException as exc:"},{"line_number":159,"context_line":"                LOG.error(\u0027Unable to find the job id in response: %(err)\u0027,"},{"line_number":160,"context_line":"                          {\u0027err\u0027: job_response.__dict__[\u0027_content\u0027]})"},{"line_number":161,"context_line":"                raise exception.HardwareInspectionFailure(error\u003dexc)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_0847e04e","line":158,"range":{"start_line":158,"start_character":18,"end_line":158,"end_character":54},"updated":"2019-11-08 08:53:07.000000000","message":"Wondering how would re.search raise drac_exception?","commit_id":"59fe564349f72e51b15017195ffddbec3eedc913"},{"author":{"_account_id":29834,"name":"Pradip Kadam","email":"pradip.kadam001@gmail.com","username":"pradip.kadam001"},"change_message_id":"e0262cb4c503d3763fb2cb63f5073aa7531939db","unresolved":false,"context_lines":[{"line_number":155,"context_line":"            job_id \u003d job_response.__dict__[\u0027headers\u0027][\u0027Location\u0027]"},{"line_number":156,"context_line":"            try:"},{"line_number":157,"context_line":"                job_id \u003d re.search(\u0027JID_.+\u0027, job_id).group()"},{"line_number":158,"context_line":"            except drac_exceptions.BaseClientException as exc:"},{"line_number":159,"context_line":"                LOG.error(\u0027Unable to find the job id in response: %(err)\u0027,"},{"line_number":160,"context_line":"                          {\u0027err\u0027: job_response.__dict__[\u0027_content\u0027]})"},{"line_number":161,"context_line":"                raise exception.HardwareInspectionFailure(error\u003dexc)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_c89d486d","line":158,"range":{"start_line":158,"start_character":18,"end_line":158,"end_character":54},"in_reply_to":"3fa7e38b_0847e04e","updated":"2019-11-08 09:23:36.000000000","message":"\u003e Wondering how would re.search raise drac_exception?\n\nMy apologies! will correct this in next patch set.","commit_id":"59fe564349f72e51b15017195ffddbec3eedc913"},{"author":{"_account_id":29834,"name":"Pradip Kadam","email":"pradip.kadam001@gmail.com","username":"pradip.kadam001"},"change_message_id":"334f93cec0fdfaa62fbee988e97d1c850e87975f","unresolved":false,"context_lines":[{"line_number":155,"context_line":"            job_id \u003d job_response.__dict__[\u0027headers\u0027][\u0027Location\u0027]"},{"line_number":156,"context_line":"            try:"},{"line_number":157,"context_line":"                job_id \u003d re.search(\u0027JID_.+\u0027, job_id).group()"},{"line_number":158,"context_line":"            except drac_exceptions.BaseClientException as exc:"},{"line_number":159,"context_line":"                LOG.error(\u0027Unable to find the job id in response: %(err)\u0027,"},{"line_number":160,"context_line":"                          {\u0027err\u0027: job_response.__dict__[\u0027_content\u0027]})"},{"line_number":161,"context_line":"                raise exception.HardwareInspectionFailure(error\u003dexc)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_18d6d9c4","line":158,"range":{"start_line":158,"start_character":18,"end_line":158,"end_character":54},"in_reply_to":"3fa7e38b_c89d486d","updated":"2019-11-19 09:19:46.000000000","message":"Done","commit_id":"59fe564349f72e51b15017195ffddbec3eedc913"},{"author":{"_account_id":23847,"name":"Richard G. Pioso","email":"richard.pioso@gmail.com","username":"richard.pioso"},"change_message_id":"02d9dcf02d64ce74a66788e62e0cfc9b2eb5122a","unresolved":false,"context_lines":[{"line_number":175,"context_line":"                        nic_id \u003d [child.attrib.get(\u0027FQDD\u0027) for ch in child"},{"line_number":176,"context_line":"                                  if ch.text \u003d\u003d \u0027PXE\u0027]"},{"line_number":177,"context_line":"                        if nic_id:"},{"line_number":178,"context_line":"                            # Get MAC address of the given nic_id"},{"line_number":179,"context_line":"                            mac_address \u003d self._get_mac_address("},{"line_number":180,"context_line":"                                nic_id, redfish_ip,"},{"line_number":181,"context_line":"                                redfish_username, redfish_password)"},{"line_number":182,"context_line":"                            pxe_dev_nics.append(mac_address)"},{"line_number":183,"context_line":"                    return pxe_dev_nics"},{"line_number":184,"context_line":"                elif current_time.seconds \u003e\u003d _TIMEOUT_SECONDS:"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_635c754c","line":181,"range":{"start_line":178,"start_character":0,"end_line":181,"end_character":67},"updated":"2019-11-08 12:12:11.000000000","message":"Ditto","commit_id":"59fe564349f72e51b15017195ffddbec3eedc913"},{"author":{"_account_id":29834,"name":"Pradip Kadam","email":"pradip.kadam001@gmail.com","username":"pradip.kadam001"},"change_message_id":"334f93cec0fdfaa62fbee988e97d1c850e87975f","unresolved":false,"context_lines":[{"line_number":175,"context_line":"                        nic_id \u003d [child.attrib.get(\u0027FQDD\u0027) for ch in child"},{"line_number":176,"context_line":"                                  if ch.text \u003d\u003d \u0027PXE\u0027]"},{"line_number":177,"context_line":"                        if nic_id:"},{"line_number":178,"context_line":"                            # Get MAC address of the given nic_id"},{"line_number":179,"context_line":"                            mac_address \u003d self._get_mac_address("},{"line_number":180,"context_line":"                                nic_id, redfish_ip,"},{"line_number":181,"context_line":"                                redfish_username, redfish_password)"},{"line_number":182,"context_line":"                            pxe_dev_nics.append(mac_address)"},{"line_number":183,"context_line":"                    return pxe_dev_nics"},{"line_number":184,"context_line":"                elif current_time.seconds \u003e\u003d _TIMEOUT_SECONDS:"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_9898891b","line":181,"range":{"start_line":178,"start_character":0,"end_line":181,"end_character":67},"in_reply_to":"3fa7e38b_635c754c","updated":"2019-11-19 09:19:46.000000000","message":"justification behind calling api 4 times give above.","commit_id":"59fe564349f72e51b15017195ffddbec3eedc913"},{"author":{"_account_id":23847,"name":"Richard G. Pioso","email":"richard.pioso@gmail.com","username":"richard.pioso"},"change_message_id":"02d9dcf02d64ce74a66788e62e0cfc9b2eb5122a","unresolved":false,"context_lines":[{"line_number":138,"context_line":"                    pxe_dev_nics.append(mac_address)"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"        elif system.boot.mode \u003d\u003d \u0027bios\u0027:"},{"line_number":141,"context_line":"            url \u003d \u0027%s%s\u0027 % (redfish_ip, _JOB_ID_URL)"},{"line_number":142,"context_line":"            job_response \u003d requests.post(url, data\u003djson.dumps("},{"line_number":143,"context_line":"                _PAYLOAD), headers\u003d_HEADERS, verify\u003dFalse, auth\u003d("},{"line_number":144,"context_line":"                redfish_username, redfish_password))"},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"            if job_response.status_code !\u003d _JOB_RESPONSE_CODE:"},{"line_number":147,"context_line":"                error \u003d (_(\u0027An error occurred when attempting to export \u0027"},{"line_number":148,"context_line":"                           \u0027the system configuration. Status code: %(code), \u0027"},{"line_number":149,"context_line":"                           \u0027Error details: %(err)\u0027),"},{"line_number":150,"context_line":"                         {\u0027code\u0027: job_response.status_code,"},{"line_number":151,"context_line":"                          \u0027err\u0027: job_response.__dict__})"},{"line_number":152,"context_line":"                LOG.error(error)"},{"line_number":153,"context_line":"                raise exception.HardwareInspectionFailure(error\u003derror)"},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"            job_id \u003d job_response.__dict__[\u0027headers\u0027][\u0027Location\u0027]"},{"line_number":156,"context_line":"            try:"},{"line_number":157,"context_line":"                job_id \u003d re.search(\u0027JID_.+\u0027, job_id).group()"},{"line_number":158,"context_line":"            except drac_exceptions.BaseClientException as exc:"},{"line_number":159,"context_line":"                LOG.error(\u0027Unable to find the job id in response: %(err)\u0027,"},{"line_number":160,"context_line":"                          {\u0027err\u0027: job_response.__dict__[\u0027_content\u0027]})"},{"line_number":161,"context_line":"                raise exception.HardwareInspectionFailure(error\u003dexc)"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"            start_time \u003d datetime.now()"},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"            while True:"},{"line_number":166,"context_line":"                current_time \u003d (datetime.now() - start_time)"},{"line_number":167,"context_line":"                xml_data \u003d requests.get(\u0027%s%s%s\u0027 % ("},{"line_number":168,"context_line":"                    redfish_ip, _XML_DATA_URL, job_id), headers\u003d_HEADERS,"},{"line_number":169,"context_line":"                    auth\u003d(redfish_username, redfish_password), verify\u003dFalse)"},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"                if _SYSTEM_CONFIG_TAG in str(xml_data.__dict__):"},{"line_number":172,"context_line":"                    xml_string \u003d xml_data.__dict__.get(\u0027_content\u0027)"},{"line_number":173,"context_line":"                    root \u003d ET.fromstring(xml_string)"},{"line_number":174,"context_line":"                    for child in root:"},{"line_number":175,"context_line":"                        nic_id \u003d [child.attrib.get(\u0027FQDD\u0027) for ch in child"},{"line_number":176,"context_line":"                                  if ch.text \u003d\u003d \u0027PXE\u0027]"},{"line_number":177,"context_line":"                        if nic_id:"},{"line_number":178,"context_line":"                            # Get MAC address of the given nic_id"},{"line_number":179,"context_line":"                            mac_address \u003d self._get_mac_address("},{"line_number":180,"context_line":"                                nic_id, redfish_ip,"},{"line_number":181,"context_line":"                                redfish_username, redfish_password)"},{"line_number":182,"context_line":"                            pxe_dev_nics.append(mac_address)"},{"line_number":183,"context_line":"                    return pxe_dev_nics"},{"line_number":184,"context_line":"                elif current_time.seconds \u003e\u003d _TIMEOUT_SECONDS:"},{"line_number":185,"context_line":"                    error \u003d (_(\u0027The job to export the system configuration \u0027"},{"line_number":186,"context_line":"                               \u0027did not complete within %(second) seconds\u0027),"},{"line_number":187,"context_line":"                             {\u0027second\u0027: _TIMEOUT_SECONDS})"},{"line_number":188,"context_line":"                    raise exception.HardwareInspectionFailure(error\u003derror)"},{"line_number":189,"context_line":"        return pxe_dev_nics"},{"line_number":190,"context_line":""},{"line_number":191,"context_line":"    def _get_mac_address(self, nic_id, redfish_ip, redfish_username,"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_4353793a","line":188,"range":{"start_line":141,"start_character":0,"end_line":188,"end_character":74},"updated":"2019-11-08 12:12:11.000000000","message":"Most of this logic belongs in the sushy-oem-idrac package. Please refactor it.","commit_id":"59fe564349f72e51b15017195ffddbec3eedc913"},{"author":{"_account_id":29834,"name":"Pradip Kadam","email":"pradip.kadam001@gmail.com","username":"pradip.kadam001"},"change_message_id":"334f93cec0fdfaa62fbee988e97d1c850e87975f","unresolved":false,"context_lines":[{"line_number":138,"context_line":"                    pxe_dev_nics.append(mac_address)"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"        elif system.boot.mode \u003d\u003d \u0027bios\u0027:"},{"line_number":141,"context_line":"            url \u003d \u0027%s%s\u0027 % (redfish_ip, _JOB_ID_URL)"},{"line_number":142,"context_line":"            job_response \u003d requests.post(url, data\u003djson.dumps("},{"line_number":143,"context_line":"                _PAYLOAD), headers\u003d_HEADERS, verify\u003dFalse, auth\u003d("},{"line_number":144,"context_line":"                redfish_username, redfish_password))"},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"            if job_response.status_code !\u003d _JOB_RESPONSE_CODE:"},{"line_number":147,"context_line":"                error \u003d (_(\u0027An error occurred when attempting to export \u0027"},{"line_number":148,"context_line":"                           \u0027the system configuration. Status code: %(code), \u0027"},{"line_number":149,"context_line":"                           \u0027Error details: %(err)\u0027),"},{"line_number":150,"context_line":"                         {\u0027code\u0027: job_response.status_code,"},{"line_number":151,"context_line":"                          \u0027err\u0027: job_response.__dict__})"},{"line_number":152,"context_line":"                LOG.error(error)"},{"line_number":153,"context_line":"                raise exception.HardwareInspectionFailure(error\u003derror)"},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"            job_id \u003d job_response.__dict__[\u0027headers\u0027][\u0027Location\u0027]"},{"line_number":156,"context_line":"            try:"},{"line_number":157,"context_line":"                job_id \u003d re.search(\u0027JID_.+\u0027, job_id).group()"},{"line_number":158,"context_line":"            except drac_exceptions.BaseClientException as exc:"},{"line_number":159,"context_line":"                LOG.error(\u0027Unable to find the job id in response: %(err)\u0027,"},{"line_number":160,"context_line":"                          {\u0027err\u0027: job_response.__dict__[\u0027_content\u0027]})"},{"line_number":161,"context_line":"                raise exception.HardwareInspectionFailure(error\u003dexc)"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"            start_time \u003d datetime.now()"},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"            while True:"},{"line_number":166,"context_line":"                current_time \u003d (datetime.now() - start_time)"},{"line_number":167,"context_line":"                xml_data \u003d requests.get(\u0027%s%s%s\u0027 % ("},{"line_number":168,"context_line":"                    redfish_ip, _XML_DATA_URL, job_id), headers\u003d_HEADERS,"},{"line_number":169,"context_line":"                    auth\u003d(redfish_username, redfish_password), verify\u003dFalse)"},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"                if _SYSTEM_CONFIG_TAG in str(xml_data.__dict__):"},{"line_number":172,"context_line":"                    xml_string \u003d xml_data.__dict__.get(\u0027_content\u0027)"},{"line_number":173,"context_line":"                    root \u003d ET.fromstring(xml_string)"},{"line_number":174,"context_line":"                    for child in root:"},{"line_number":175,"context_line":"                        nic_id \u003d [child.attrib.get(\u0027FQDD\u0027) for ch in child"},{"line_number":176,"context_line":"                                  if ch.text \u003d\u003d \u0027PXE\u0027]"},{"line_number":177,"context_line":"                        if nic_id:"},{"line_number":178,"context_line":"                            # Get MAC address of the given nic_id"},{"line_number":179,"context_line":"                            mac_address \u003d self._get_mac_address("},{"line_number":180,"context_line":"                                nic_id, redfish_ip,"},{"line_number":181,"context_line":"                                redfish_username, redfish_password)"},{"line_number":182,"context_line":"                            pxe_dev_nics.append(mac_address)"},{"line_number":183,"context_line":"                    return pxe_dev_nics"},{"line_number":184,"context_line":"                elif current_time.seconds \u003e\u003d _TIMEOUT_SECONDS:"},{"line_number":185,"context_line":"                    error \u003d (_(\u0027The job to export the system configuration \u0027"},{"line_number":186,"context_line":"                               \u0027did not complete within %(second) seconds\u0027),"},{"line_number":187,"context_line":"                             {\u0027second\u0027: _TIMEOUT_SECONDS})"},{"line_number":188,"context_line":"                    raise exception.HardwareInspectionFailure(error\u003derror)"},{"line_number":189,"context_line":"        return pxe_dev_nics"},{"line_number":190,"context_line":""},{"line_number":191,"context_line":"    def _get_mac_address(self, nic_id, redfish_ip, redfish_username,"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_589e9106","line":188,"range":{"start_line":141,"start_character":0,"end_line":188,"end_character":74},"in_reply_to":"3fa7e38b_4353793a","updated":"2019-11-19 09:19:46.000000000","message":"okay. I am agree with Chris\u0027s suggestion, we can keep this code as of now, once repo migrated to X, we can move all these changes in there.","commit_id":"59fe564349f72e51b15017195ffddbec3eedc913"},{"author":{"_account_id":23847,"name":"Richard G. Pioso","email":"richard.pioso@gmail.com","username":"richard.pioso"},"change_message_id":"02d9dcf02d64ce74a66788e62e0cfc9b2eb5122a","unresolved":false,"context_lines":[{"line_number":198,"context_line":"        :param redfish_password: password of the redfish driver."},{"line_number":199,"context_line":"        :returns: Returns MAC address of the given nic id."},{"line_number":200,"context_line":"        \"\"\""},{"line_number":201,"context_line":"        mac_response \u003d requests.get(\u0027%s%s%s\u0027 % ("},{"line_number":202,"context_line":"            redfish_ip, _MAC_URL, nic_id[0]), auth\u003d("},{"line_number":203,"context_line":"            redfish_username, redfish_password), verify\u003dFalse)"},{"line_number":204,"context_line":"        mac_address \u003d json.loads(mac_response.__dict__.get("},{"line_number":205,"context_line":"            \u0027_content\u0027)).get(\u0027MACAddress\u0027)"},{"line_number":206,"context_line":"        return mac_address.upper()"},{"line_number":207,"context_line":""},{"line_number":208,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_a3102d5b","line":205,"range":{"start_line":201,"start_character":0,"end_line":205,"end_character":42},"updated":"2019-11-08 12:12:11.000000000","message":"sushy already has support for this. [1][2] Please refer to the \u0027redfish\u0027 inspect interface implementation\u0027s use of it. [3]\n\n[1] https://opendev.org/openstack/sushy/src/commit/5990b5df78808bb53bc5b64c9c4160f8748b055d/sushy/resources/system/system.py#L297-L310\n[2] https://opendev.org/openstack/sushy/src/commit/5990b5df78808bb53bc5b64c9c4160f8748b055d/sushy/resources/system/ethernet_interface.py\n[3] https://opendev.org/openstack/ironic/src/commit/acfc2ea440d827bfa958beb9c49eec1f2269d0aa/ironic/drivers/modules/redfish/inspect.py#L223-L241","commit_id":"59fe564349f72e51b15017195ffddbec3eedc913"},{"author":{"_account_id":10250,"name":"Christopher Dearborn","email":"Christopher.Dearborn@dell.com","username":"cdearbor"},"change_message_id":"aea489c4dc4d10bbae632fdab88cdc67e2239cb0","unresolved":false,"context_lines":[{"line_number":198,"context_line":"        :param redfish_password: password of the redfish driver."},{"line_number":199,"context_line":"        :returns: Returns MAC address of the given nic id."},{"line_number":200,"context_line":"        \"\"\""},{"line_number":201,"context_line":"        mac_response \u003d requests.get(\u0027%s%s%s\u0027 % ("},{"line_number":202,"context_line":"            redfish_ip, _MAC_URL, nic_id[0]), auth\u003d("},{"line_number":203,"context_line":"            redfish_username, redfish_password), verify\u003dFalse)"},{"line_number":204,"context_line":"        mac_address \u003d json.loads(mac_response.__dict__.get("},{"line_number":205,"context_line":"            \u0027_content\u0027)).get(\u0027MACAddress\u0027)"},{"line_number":206,"context_line":"        return mac_address.upper()"},{"line_number":207,"context_line":""},{"line_number":208,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_aa4c4ec8","line":205,"range":{"start_line":201,"start_character":0,"end_line":205,"end_character":42},"in_reply_to":"3fa7e38b_a3102d5b","updated":"2019-11-13 18:43:07.000000000","message":"sushy currently has support to retrieve a dict that maps MAC addresses to port status for every port in the server.  It does not currently provide a way to associate those MAC addresses with the NIC FQDDs though.  This code does that.\nhttps://opendev.org/openstack/sushy/src/commit/5990b5df78808bb53bc5b64c9c4160f8748b055d/sushy/resources/system/ethernet_interface.py#L66","commit_id":"59fe564349f72e51b15017195ffddbec3eedc913"},{"author":{"_account_id":29834,"name":"Pradip Kadam","email":"pradip.kadam001@gmail.com","username":"pradip.kadam001"},"change_message_id":"334f93cec0fdfaa62fbee988e97d1c850e87975f","unresolved":false,"context_lines":[{"line_number":198,"context_line":"        :param redfish_password: password of the redfish driver."},{"line_number":199,"context_line":"        :returns: Returns MAC address of the given nic id."},{"line_number":200,"context_line":"        \"\"\""},{"line_number":201,"context_line":"        mac_response \u003d requests.get(\u0027%s%s%s\u0027 % ("},{"line_number":202,"context_line":"            redfish_ip, _MAC_URL, nic_id[0]), auth\u003d("},{"line_number":203,"context_line":"            redfish_username, redfish_password), verify\u003dFalse)"},{"line_number":204,"context_line":"        mac_address \u003d json.loads(mac_response.__dict__.get("},{"line_number":205,"context_line":"            \u0027_content\u0027)).get(\u0027MACAddress\u0027)"},{"line_number":206,"context_line":"        return mac_address.upper()"},{"line_number":207,"context_line":""},{"line_number":208,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_38b2b597","line":205,"range":{"start_line":201,"start_character":0,"end_line":205,"end_character":42},"in_reply_to":"3fa7e38b_aa4c4ec8","updated":"2019-11-19 09:19:46.000000000","message":"Yes, agree with chris.\nkeeping code as-is to get associate MAC address with the NIC.","commit_id":"59fe564349f72e51b15017195ffddbec3eedc913"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"729bade9d310d5db66af438ea33d8a44d1ecd6f5","unresolved":false,"context_lines":[{"line_number":46,"context_line":"_SYSTEM_CONFIG_TAG \u003d \u0027\u003cSystemConfiguration Model\u0027"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"# Time Out Constant"},{"line_number":49,"context_line":"_TIMEOUT_SECONDS \u003d 60"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"# Job Id Url Constant"},{"line_number":52,"context_line":"_JOB_ID_URL \u003d \u0027/redfish/v1/Managers/iDRAC.Embedded.1/Actions/Oem/\u0027 \\"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa7e38b_77e66116","line":49,"updated":"2020-02-03 22:26:21.000000000","message":"Is there any reason why this might be less?","commit_id":"180c0cf374d7bbfce19d0de23a92ee0efb444893"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"729bade9d310d5db66af438ea33d8a44d1ecd6f5","unresolved":false,"context_lines":[{"line_number":146,"context_line":"                    pxe_port_macs.append(mac_address)"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"        elif system.boot.mode \u003d\u003d \u0027bios\u0027:"},{"line_number":149,"context_line":"            url \u003d \u0027%s%s\u0027 % (redfish_ip, _JOB_ID_URL)"},{"line_number":150,"context_line":"            job_response \u003d requests.post(url, data\u003djson.dumps("},{"line_number":151,"context_line":"                _PAYLOAD), headers\u003d_HEADERS, verify\u003dFalse, auth\u003d("},{"line_number":152,"context_line":"                redfish_username, redfish_password))"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa7e38b_f796d13d","line":149,"updated":"2020-02-03 22:26:21.000000000","message":"nit: redfish_ip is misleading, perhaps redfish_address ?","commit_id":"180c0cf374d7bbfce19d0de23a92ee0efb444893"},{"author":{"_account_id":31418,"name":"Mahendra Kamble","email":"mahendra.kamble358@gmail.com","username":"MahendraKamble"},"change_message_id":"a880646ed179eb1df8d07ba38bf5554dc8c6142a","unresolved":false,"context_lines":[{"line_number":146,"context_line":"                    pxe_port_macs.append(mac_address)"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"        elif system.boot.mode \u003d\u003d \u0027bios\u0027:"},{"line_number":149,"context_line":"            url \u003d \u0027%s%s\u0027 % (redfish_ip, _JOB_ID_URL)"},{"line_number":150,"context_line":"            job_response \u003d requests.post(url, data\u003djson.dumps("},{"line_number":151,"context_line":"                _PAYLOAD), headers\u003d_HEADERS, verify\u003dFalse, auth\u003d("},{"line_number":152,"context_line":"                redfish_username, redfish_password))"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa7e38b_f83732da","line":149,"in_reply_to":"3fa7e38b_f796d13d","updated":"2020-02-11 10:27:45.000000000","message":"Done","commit_id":"180c0cf374d7bbfce19d0de23a92ee0efb444893"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"729bade9d310d5db66af438ea33d8a44d1ecd6f5","unresolved":false,"context_lines":[{"line_number":146,"context_line":"                    pxe_port_macs.append(mac_address)"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"        elif system.boot.mode \u003d\u003d \u0027bios\u0027:"},{"line_number":149,"context_line":"            url \u003d \u0027%s%s\u0027 % (redfish_ip, _JOB_ID_URL)"},{"line_number":150,"context_line":"            job_response \u003d requests.post(url, data\u003djson.dumps("},{"line_number":151,"context_line":"                _PAYLOAD), headers\u003d_HEADERS, verify\u003dFalse, auth\u003d("},{"line_number":152,"context_line":"                redfish_username, redfish_password))"},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"            if job_response.status_code !\u003d _JOB_RESPONSE_CODE:"},{"line_number":155,"context_line":"                error \u003d (_(\u0027An error occurred when attempting to export \u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa7e38b_97f19de2","line":152,"range":{"start_line":149,"start_character":0,"end_line":152,"end_character":52},"updated":"2020-02-03 22:26:21.000000000","message":"It would be good to have some in-line comments because I\u0027m struggling to understand why this is needed like this and uefi... by comparison is so much less.","commit_id":"180c0cf374d7bbfce19d0de23a92ee0efb444893"},{"author":{"_account_id":31418,"name":"Mahendra Kamble","email":"mahendra.kamble358@gmail.com","username":"MahendraKamble"},"change_message_id":"a880646ed179eb1df8d07ba38bf5554dc8c6142a","unresolved":false,"context_lines":[{"line_number":146,"context_line":"                    pxe_port_macs.append(mac_address)"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"        elif system.boot.mode \u003d\u003d \u0027bios\u0027:"},{"line_number":149,"context_line":"            url \u003d \u0027%s%s\u0027 % (redfish_ip, _JOB_ID_URL)"},{"line_number":150,"context_line":"            job_response \u003d requests.post(url, data\u003djson.dumps("},{"line_number":151,"context_line":"                _PAYLOAD), headers\u003d_HEADERS, verify\u003dFalse, auth\u003d("},{"line_number":152,"context_line":"                redfish_username, redfish_password))"},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"            if job_response.status_code !\u003d _JOB_RESPONSE_CODE:"},{"line_number":155,"context_line":"                error \u003d (_(\u0027An error occurred when attempting to export \u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa7e38b_5870c6a7","line":152,"range":{"start_line":149,"start_character":0,"end_line":152,"end_character":52},"in_reply_to":"3fa7e38b_97f19de2","updated":"2020-02-11 10:27:45.000000000","message":"sure, I will add in-line comments","commit_id":"180c0cf374d7bbfce19d0de23a92ee0efb444893"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"729bade9d310d5db66af438ea33d8a44d1ecd6f5","unresolved":false,"context_lines":[{"line_number":170,"context_line":""},{"line_number":171,"context_line":"            start_time \u003d datetime.now()"},{"line_number":172,"context_line":""},{"line_number":173,"context_line":"            while True:"},{"line_number":174,"context_line":"                current_time \u003d (datetime.now() - start_time)"},{"line_number":175,"context_line":"                xml_data \u003d requests.get(\u0027%s%s%s\u0027 % ("},{"line_number":176,"context_line":"                    redfish_ip, _XML_DATA_URL, job_id), headers\u003d_HEADERS,"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa7e38b_b717f9ef","line":173,"range":{"start_line":173,"start_character":12,"end_line":173,"end_character":23},"updated":"2020-02-03 22:26:21.000000000","message":"Please put in a sleep in the loop so the thread can yeild.","commit_id":"180c0cf374d7bbfce19d0de23a92ee0efb444893"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"729bade9d310d5db66af438ea33d8a44d1ecd6f5","unresolved":false,"context_lines":[{"line_number":173,"context_line":"            while True:"},{"line_number":174,"context_line":"                current_time \u003d (datetime.now() - start_time)"},{"line_number":175,"context_line":"                xml_data \u003d requests.get(\u0027%s%s%s\u0027 % ("},{"line_number":176,"context_line":"                    redfish_ip, _XML_DATA_URL, job_id), headers\u003d_HEADERS,"},{"line_number":177,"context_line":"                    auth\u003d(redfish_username, redfish_password), verify\u003dFalse)"},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"                if _SYSTEM_CONFIG_TAG in str(xml_data.__dict__):"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa7e38b_b773794f","line":176,"updated":"2020-02-03 22:26:21.000000000","message":"Also, is there no way the invocations of requests can be done through sushy so an existing session can be used? Not a hard concern, I would just be worried about sessions not closing out immediately and filling up the BMC\u0027s session tracking.","commit_id":"180c0cf374d7bbfce19d0de23a92ee0efb444893"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"729bade9d310d5db66af438ea33d8a44d1ecd6f5","unresolved":false,"context_lines":[{"line_number":172,"context_line":""},{"line_number":173,"context_line":"            while True:"},{"line_number":174,"context_line":"                current_time \u003d (datetime.now() - start_time)"},{"line_number":175,"context_line":"                xml_data \u003d requests.get(\u0027%s%s%s\u0027 % ("},{"line_number":176,"context_line":"                    redfish_ip, _XML_DATA_URL, job_id), headers\u003d_HEADERS,"},{"line_number":177,"context_line":"                    auth\u003d(redfish_username, redfish_password), verify\u003dFalse)"},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"                if _SYSTEM_CONFIG_TAG in str(xml_data.__dict__):"},{"line_number":180,"context_line":"                    xml_string \u003d xml_data.__dict__.get(\u0027_content\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa7e38b_771181f8","line":177,"range":{"start_line":175,"start_character":27,"end_line":177,"end_character":76},"updated":"2020-02-03 22:26:21.000000000","message":"Also, you likely don\u0027t want to constantly hit the API for this... a sleep is likely the most reasonable thing to do the worker is potentially not initiating thousands of API queries to the BMC.","commit_id":"180c0cf374d7bbfce19d0de23a92ee0efb444893"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"729bade9d310d5db66af438ea33d8a44d1ecd6f5","unresolved":false,"context_lines":[{"line_number":173,"context_line":"            while True:"},{"line_number":174,"context_line":"                current_time \u003d (datetime.now() - start_time)"},{"line_number":175,"context_line":"                xml_data \u003d requests.get(\u0027%s%s%s\u0027 % ("},{"line_number":176,"context_line":"                    redfish_ip, _XML_DATA_URL, job_id), headers\u003d_HEADERS,"},{"line_number":177,"context_line":"                    auth\u003d(redfish_username, redfish_password), verify\u003dFalse)"},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"                if _SYSTEM_CONFIG_TAG in str(xml_data.__dict__):"},{"line_number":180,"context_line":"                    xml_string \u003d xml_data.__dict__.get(\u0027_content\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa7e38b_3788e91f","line":177,"range":{"start_line":176,"start_character":73,"end_line":177,"end_character":67},"updated":"2020-02-03 22:26:21.000000000","message":"additionally, verify\u003dFalse is not a great idea. redfish_verify_ca should be used.","commit_id":"180c0cf374d7bbfce19d0de23a92ee0efb444893"},{"author":{"_account_id":31418,"name":"Mahendra Kamble","email":"mahendra.kamble358@gmail.com","username":"MahendraKamble"},"change_message_id":"a880646ed179eb1df8d07ba38bf5554dc8c6142a","unresolved":false,"context_lines":[{"line_number":172,"context_line":""},{"line_number":173,"context_line":"            while True:"},{"line_number":174,"context_line":"                current_time \u003d (datetime.now() - start_time)"},{"line_number":175,"context_line":"                xml_data \u003d requests.get(\u0027%s%s%s\u0027 % ("},{"line_number":176,"context_line":"                    redfish_ip, _XML_DATA_URL, job_id), headers\u003d_HEADERS,"},{"line_number":177,"context_line":"                    auth\u003d(redfish_username, redfish_password), verify\u003dFalse)"},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"                if _SYSTEM_CONFIG_TAG in str(xml_data.__dict__):"},{"line_number":180,"context_line":"                    xml_string \u003d xml_data.__dict__.get(\u0027_content\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa7e38b_f86092d2","line":177,"range":{"start_line":175,"start_character":27,"end_line":177,"end_character":76},"in_reply_to":"3fa7e38b_771181f8","updated":"2020-02-11 10:27:45.000000000","message":"most of the comments on while block... This code logic has been changed because we added support of sushy_oem, once the internal review is done will update patch accordingly.\nThanks, Julia","commit_id":"180c0cf374d7bbfce19d0de23a92ee0efb444893"},{"author":{"_account_id":23847,"name":"Richard G. Pioso","email":"richard.pioso@gmail.com","username":"richard.pioso"},"change_message_id":"cb83298dd562bf271fa06c3303ccf384de1607ec","unresolved":false,"context_lines":[{"line_number":206,"context_line":"        :param redfish_password: password of the redfish driver."},{"line_number":207,"context_line":"        :returns: Returns MAC address of the given nic id."},{"line_number":208,"context_line":"        \"\"\""},{"line_number":209,"context_line":"        mac_response \u003d requests.get(\u0027%s%s%s\u0027 % ("},{"line_number":210,"context_line":"            redfish_ip, _MAC_URL, nic_id[0]), auth\u003d("},{"line_number":211,"context_line":"            redfish_username, redfish_password), verify\u003dFalse)"},{"line_number":212,"context_line":"        mac_address \u003d json.loads(mac_response.__dict__.get("},{"line_number":213,"context_line":"            \u0027_content\u0027)).get(\u0027MACAddress\u0027)"},{"line_number":214,"context_line":"        return mac_address.upper()"},{"line_number":215,"context_line":""},{"line_number":216,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa7e38b_64112d50","line":213,"range":{"start_line":209,"start_character":0,"end_line":213,"end_character":42},"updated":"2020-01-09 00:34:43.000000000","message":"This method should be replaced by leveraging sushy\u0027s similar functionality [1][2]. As an example, please refer to the \u0027redfish\u0027 inspect interface implementation\u0027s use of it [4]. Note that class sushy.resources.system.ethernet_interface.EthernetInterfaceCollection is derived from sushy.resources.base.ResourceCollectionBase. Therefore, its parent class\u0027s public methods are available, most notably, get_members().\n\n\nThe following sample code illustrates a prospective approach.\n\n\n    from oslo_utils import importutils\n    ...\n    from ironic.drivers.modules.redfish import utils as redfish_utils\n    ...\n    sushy \u003d importutils.try_import(\u0027sushy\u0027)\n    ...\n    class DracRedfishInspect(redfish_inspect.RedfishInspect):\n\n        def inspect_hardware(self, task):\n            ...\n\n            super(DracRedfishInspect, self).inspect_hardware(task)\n\n\n            system \u003d redfish_utils.get(system.task.node)\n            ethernet_interfaces \u003d system.ethernet_interfaces.get_members()\n\n\n            ethernet_interface_identity_to_mac \u003d {i.identity: i.mac_address for i in ethernet_interfaces}\n\n            ...\n\n\n[1] https://opendev.org/openstack/sushy/src/commit/9d01756833ec97a05f301a4fa1e8b2511d7c5c74/sushy/resources/system/system.py#L297-L310\n[2] https://opendev.org/openstack/sushy/src/commit/9d01756833ec97a05f301a4fa1e8b2511d7c5c74/sushy/resources/system/ethernet_interface.py\n[3] https://opendev.org/openstack/ironic/src/commit/7bd643dee69c906738f190bae4391904f8876491/ironic/drivers/modules/redfish/inspect.py#L223-L241","commit_id":"180c0cf374d7bbfce19d0de23a92ee0efb444893"},{"author":{"_account_id":31418,"name":"Mahendra Kamble","email":"mahendra.kamble358@gmail.com","username":"MahendraKamble"},"change_message_id":"a880646ed179eb1df8d07ba38bf5554dc8c6142a","unresolved":false,"context_lines":[{"line_number":206,"context_line":"        :param redfish_password: password of the redfish driver."},{"line_number":207,"context_line":"        :returns: Returns MAC address of the given nic id."},{"line_number":208,"context_line":"        \"\"\""},{"line_number":209,"context_line":"        mac_response \u003d requests.get(\u0027%s%s%s\u0027 % ("},{"line_number":210,"context_line":"            redfish_ip, _MAC_URL, nic_id[0]), auth\u003d("},{"line_number":211,"context_line":"            redfish_username, redfish_password), verify\u003dFalse)"},{"line_number":212,"context_line":"        mac_address \u003d json.loads(mac_response.__dict__.get("},{"line_number":213,"context_line":"            \u0027_content\u0027)).get(\u0027MACAddress\u0027)"},{"line_number":214,"context_line":"        return mac_address.upper()"},{"line_number":215,"context_line":""},{"line_number":216,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa7e38b_38a06af2","line":213,"range":{"start_line":209,"start_character":0,"end_line":213,"end_character":42},"in_reply_to":"3fa7e38b_64112d50","updated":"2020-02-11 10:27:45.000000000","message":"As per your comments, code has been changed, I will update patch once the internal review is done.\n\nThanks, Richard","commit_id":"180c0cf374d7bbfce19d0de23a92ee0efb444893"},{"author":{"_account_id":10250,"name":"Christopher Dearborn","email":"Christopher.Dearborn@dell.com","username":"cdearbor"},"change_message_id":"37051ceefd7618047b2a52e1fe0816b869b28868","unresolved":false,"context_lines":[{"line_number":122,"context_line":"            interface.identity: interface.mac_address"},{"line_number":123,"context_line":"            for interface in ethernet_interfaces}"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"        if system.boot.mode \u003d\u003d \u0027uefi\u0027:"},{"line_number":126,"context_line":"            for param, nic in zip(pxe_params, pxe_nics):"},{"line_number":127,"context_line":"                if system.bios.attributes[param] \u003d\u003d \u0027Enabled\u0027:"},{"line_number":128,"context_line":"                    nic_id \u003d system.bios.attributes[nic]"}],"source_content_type":"text/x-python","patch_set":4,"id":"1fa4df85_00f312e9","line":125,"updated":"2020-03-16 22:03:34.000000000","message":"Please add the following comment here:\n(please reformat to \u003c79 characters)\n\n# When a server is in UEFI boot mode, the PXE NIC ports are\n# stored in the PxeDevXEnDis and PxeDevXInterface BIOS\n# settings.  Get the PXE NIC ports from these settings and\n# their MAC addresses.","commit_id":"99de298a110afc85b9e02e0c80b93af63e8ce017"},{"author":{"_account_id":10250,"name":"Christopher Dearborn","email":"Christopher.Dearborn@dell.com","username":"cdearbor"},"change_message_id":"37051ceefd7618047b2a52e1fe0816b869b28868","unresolved":false,"context_lines":[{"line_number":129,"context_line":"                    # Get MAC address of the given nic_id"},{"line_number":130,"context_line":"                    mac_address \u003d ethernet_interfaces_mac_dict[nic_id]"},{"line_number":131,"context_line":"                    pxe_port_macs.append(mac_address)"},{"line_number":132,"context_line":"        elif system.boot.mode \u003d\u003d \u0027bios\u0027:"},{"line_number":133,"context_line":"            # Get instance of OEM extension"},{"line_number":134,"context_line":"            authenticator \u003d sushy.auth.BasicAuth(redfish_username,"},{"line_number":135,"context_line":"                                                 redfish_password)"}],"source_content_type":"text/x-python","patch_set":4,"id":"1fa4df85_6089a624","line":132,"updated":"2020-03-16 22:03:34.000000000","message":"Please add the following comment here:\n(please reformat to \u003c79 characters)\n\n# When a server is in BIOS boot mode, whether or not a\n# NIC port is set to PXE boot is stored on the NIC port\n# itself internally to the BMC.  Getting this information\n# requires using an OEM extension to export the system\n# configuration, as the redfish stand does not specify\n# how to get it, and Dell does not have OEM redfish calls\n# to selectively retrieve it at this time.","commit_id":"99de298a110afc85b9e02e0c80b93af63e8ce017"},{"author":{"_account_id":10250,"name":"Christopher Dearborn","email":"Christopher.Dearborn@dell.com","username":"cdearbor"},"change_message_id":"37051ceefd7618047b2a52e1fe0816b869b28868","unresolved":false,"context_lines":[{"line_number":149,"context_line":"                          \u0027err\u0027: job_response.__dict__})"},{"line_number":150,"context_line":"                LOG.error(error)"},{"line_number":151,"context_line":"                raise exception.HardwareInspectionFailure(error\u003derror)"},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"            if _SYSTEM_CONFIG_TAG in str(job_response.__dict__):"},{"line_number":154,"context_line":"                xml_string \u003d job_response.__dict__.get(\u0027_content\u0027)"},{"line_number":155,"context_line":"                root \u003d et.fromstring(xml_string)"}],"source_content_type":"text/x-python","patch_set":4,"id":"1fa4df85_e07cb621","line":152,"updated":"2020-03-16 22:03:34.000000000","message":"Please add the following comment here:\n(please reformat to \u003c79 characters)\n\n# Parse the exported system configuration for the NIC\n# ports that are set to PXE boot","commit_id":"99de298a110afc85b9e02e0c80b93af63e8ce017"},{"author":{"_account_id":10250,"name":"Christopher Dearborn","email":"Christopher.Dearborn@dell.com","username":"cdearbor"},"change_message_id":"37051ceefd7618047b2a52e1fe0816b869b28868","unresolved":false,"context_lines":[{"line_number":159,"context_line":"                            nic_id \u003d child.attrib.get(\u0027FQDD\u0027) \\"},{"line_number":160,"context_line":"                                if ch.text \u003d\u003d \"PXE\" else None"},{"line_number":161,"context_line":"                            if nic_id:"},{"line_number":162,"context_line":"                                mac_address \u003d ethernet_interfaces_mac_dict[nic_id]"},{"line_number":163,"context_line":"                                pxe_port_macs.append(mac_address)"},{"line_number":164,"context_line":"                return pxe_port_macs"},{"line_number":165,"context_line":"            else:"}],"source_content_type":"text/x-python","patch_set":4,"id":"1fa4df85_7d306d9f","line":162,"updated":"2020-03-16 22:03:34.000000000","message":"The above line is 82 characters, and the max is 79:\n./ironic/drivers/modules/drac/inspect.py:162:80: E501 line too long (82 \u003e 79 characters)","commit_id":"99de298a110afc85b9e02e0c80b93af63e8ce017"},{"author":{"_account_id":10250,"name":"Christopher Dearborn","email":"Christopher.Dearborn@dell.com","username":"cdearbor"},"change_message_id":"e16053b7b80e7ac72859393f5974dcb542d13cf1","unresolved":false,"context_lines":[{"line_number":138,"context_line":"            # NIC port is set to PXE boot is stored on the NIC port"},{"line_number":139,"context_line":"            # itself internally to the BMC.  Getting this information"},{"line_number":140,"context_line":"            # requires using an OEM extension to export the system"},{"line_number":141,"context_line":"            # configuration, as the redfish stand does not specify"},{"line_number":142,"context_line":"            # how to get it, and Dell does not have OEM redfish calls"},{"line_number":143,"context_line":"            # to selectively retrieve it at this time."},{"line_number":144,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"1fa4df85_b5d02cf9","line":141,"range":{"start_line":141,"start_character":44,"end_line":141,"end_character":49},"updated":"2020-03-17 18:23:46.000000000","message":"standard","commit_id":"bac793d2ec7784d4bdc49dd20221e6d978bbf9c8"},{"author":{"_account_id":31418,"name":"Mahendra Kamble","email":"mahendra.kamble358@gmail.com","username":"MahendraKamble"},"change_message_id":"9ecb2cd77a1dcac087d8cd110ef0951500963dd1","unresolved":false,"context_lines":[{"line_number":138,"context_line":"            # NIC port is set to PXE boot is stored on the NIC port"},{"line_number":139,"context_line":"            # itself internally to the BMC.  Getting this information"},{"line_number":140,"context_line":"            # requires using an OEM extension to export the system"},{"line_number":141,"context_line":"            # configuration, as the redfish stand does not specify"},{"line_number":142,"context_line":"            # how to get it, and Dell does not have OEM redfish calls"},{"line_number":143,"context_line":"            # to selectively retrieve it at this time."},{"line_number":144,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"1fa4df85_5b6322dd","line":141,"range":{"start_line":141,"start_character":44,"end_line":141,"end_character":49},"in_reply_to":"1fa4df85_b5d02cf9","updated":"2020-03-18 06:35:41.000000000","message":"Done","commit_id":"bac793d2ec7784d4bdc49dd20221e6d978bbf9c8"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"ba941644b804d4f78b9693966a797e1215b57029","unresolved":false,"context_lines":[{"line_number":65,"context_line":"        :returns: The resulting state of inspection."},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"        \"\"\""},{"line_number":68,"context_line":"        super(DracRedfishInspect, self).inspect_hardware(task)"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"        node \u003d task.node"},{"line_number":71,"context_line":"        pxe_port_macs \u003d self._get_pxe_port_macs(task)"}],"source_content_type":"text/x-python","patch_set":7,"id":"df33271e_c5fb7c44","line":68,"updated":"2020-03-30 14:15:11.000000000","message":"Is this really needed? It feels like this is otherwise self contained feature wise based on the commit message.","commit_id":"fa51fcc92433b5b6c8c1a30b208ed23707dd9dfd"},{"author":{"_account_id":10250,"name":"Christopher Dearborn","email":"Christopher.Dearborn@dell.com","username":"cdearbor"},"change_message_id":"8bc0b2c439001d2dc945995a84cb89ea014b39ff","unresolved":false,"context_lines":[{"line_number":65,"context_line":"        :returns: The resulting state of inspection."},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"        \"\"\""},{"line_number":68,"context_line":"        super(DracRedfishInspect, self).inspect_hardware(task)"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"        node \u003d task.node"},{"line_number":71,"context_line":"        pxe_port_macs \u003d self._get_pxe_port_macs(task)"}],"source_content_type":"text/x-python","patch_set":7,"id":"df33271e_1e300e9f","line":68,"in_reply_to":"df33271e_c5fb7c44","updated":"2020-03-30 20:58:17.000000000","message":"Yes.  The super class inspect_hardware() method discovers things like the amount of memory, the number of CPUs, the CPU architecture, and the NIC ports themselves.  This patch extends that behavior and adds setting pxe_enabled on the already discovered ports.","commit_id":"fa51fcc92433b5b6c8c1a30b208ed23707dd9dfd"},{"author":{"_account_id":23847,"name":"Richard G. Pioso","email":"richard.pioso@gmail.com","username":"richard.pioso"},"change_message_id":"c956dd5736931b71752274404515a35f4eef1924","unresolved":false,"context_lines":[{"line_number":102,"context_line":"        ports \u003d objects.Port.list_by_node_id(task.context, node.id)"},{"line_number":103,"context_line":"        if ports:"},{"line_number":104,"context_line":"            for port in ports:"},{"line_number":105,"context_line":"                is_pxe_port_mac \u003d (port.address.upper() in pxe_port_macs)"},{"line_number":106,"context_line":"                if port.pxe_enabled !\u003d is_pxe_port_mac:"},{"line_number":107,"context_line":"                    port.pxe_enabled \u003d is_pxe_port_mac"},{"line_number":108,"context_line":"                    port.save()"}],"source_content_type":"text/x-python","patch_set":8,"id":"1f493fa4_ff267bb7","line":105,"range":{"start_line":105,"start_character":16,"end_line":105,"end_character":31},"updated":"2020-04-21 22:29:28.000000000","message":"This variable may read better if its name did not have \u0027mac\u0027 in it. How about changing it to \u0027is_baremetal_pxe_port\u0027 or similar?","commit_id":"b62b7bcd34c905e82d1cf488597a1828c4dfb3a8"},{"author":{"_account_id":31418,"name":"Mahendra Kamble","email":"mahendra.kamble358@gmail.com","username":"MahendraKamble"},"change_message_id":"7ed4e2300146d247d203312a7ab37a4d75ed4889","unresolved":false,"context_lines":[{"line_number":102,"context_line":"        ports \u003d objects.Port.list_by_node_id(task.context, node.id)"},{"line_number":103,"context_line":"        if ports:"},{"line_number":104,"context_line":"            for port in ports:"},{"line_number":105,"context_line":"                is_pxe_port_mac \u003d (port.address.upper() in pxe_port_macs)"},{"line_number":106,"context_line":"                if port.pxe_enabled !\u003d is_pxe_port_mac:"},{"line_number":107,"context_line":"                    port.pxe_enabled \u003d is_pxe_port_mac"},{"line_number":108,"context_line":"                    port.save()"}],"source_content_type":"text/x-python","patch_set":8,"id":"1f493fa4_015ca57c","line":105,"range":{"start_line":105,"start_character":16,"end_line":105,"end_character":31},"in_reply_to":"1f493fa4_ff267bb7","updated":"2020-04-22 12:40:43.000000000","message":"Done","commit_id":"b62b7bcd34c905e82d1cf488597a1828c4dfb3a8"},{"author":{"_account_id":8580,"name":"Digambar","email":"digambarpatil15@yahoo.co.in","username":"digambar"},"change_message_id":"dd6d0b10a62f703e0fb3f0a034b5138c25d8f2ba","unresolved":false,"context_lines":[{"line_number":100,"context_line":"                         \u0027node\u0027: task.node.uuid})"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"        ports \u003d objects.Port.list_by_node_id(task.context, node.id)"},{"line_number":103,"context_line":"        if ports:"},{"line_number":104,"context_line":"            for port in ports:"},{"line_number":105,"context_line":"                is_pxe_port_mac \u003d (port.address.upper() in pxe_port_macs)"},{"line_number":106,"context_line":"                if port.pxe_enabled !\u003d is_pxe_port_mac:"},{"line_number":107,"context_line":"                    port.pxe_enabled \u003d is_pxe_port_mac"},{"line_number":108,"context_line":"                    port.save()"},{"line_number":109,"context_line":"                    LOG.info(\u0027Port %(port)s having %(mac_address)s updated \u0027"},{"line_number":110,"context_line":"                             \u0027with pxe_enabled %(pxe)s for node %(node_uuid)s \u0027"},{"line_number":111,"context_line":"                             \u0027during inspection\u0027,"}],"source_content_type":"text/x-python","patch_set":8,"id":"df33271e_79d9d0f2","line":108,"range":{"start_line":103,"start_character":0,"end_line":108,"end_character":31},"updated":"2020-04-20 11:52:50.000000000","message":"Can re-write above code like below -\n\nfor port in ports:\n      port.pxe_enabled \u003d (port.address.upper() in pxe_port_macs)\n     port.save()","commit_id":"b62b7bcd34c905e82d1cf488597a1828c4dfb3a8"},{"author":{"_account_id":31418,"name":"Mahendra Kamble","email":"mahendra.kamble358@gmail.com","username":"MahendraKamble"},"change_message_id":"7ed4e2300146d247d203312a7ab37a4d75ed4889","unresolved":false,"context_lines":[{"line_number":100,"context_line":"                         \u0027node\u0027: task.node.uuid})"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"        ports \u003d objects.Port.list_by_node_id(task.context, node.id)"},{"line_number":103,"context_line":"        if ports:"},{"line_number":104,"context_line":"            for port in ports:"},{"line_number":105,"context_line":"                is_pxe_port_mac \u003d (port.address.upper() in pxe_port_macs)"},{"line_number":106,"context_line":"                if port.pxe_enabled !\u003d is_pxe_port_mac:"},{"line_number":107,"context_line":"                    port.pxe_enabled \u003d is_pxe_port_mac"},{"line_number":108,"context_line":"                    port.save()"},{"line_number":109,"context_line":"                    LOG.info(\u0027Port %(port)s having %(mac_address)s updated \u0027"},{"line_number":110,"context_line":"                             \u0027with pxe_enabled %(pxe)s for node %(node_uuid)s \u0027"},{"line_number":111,"context_line":"                             \u0027during inspection\u0027,"}],"source_content_type":"text/x-python","patch_set":8,"id":"1f493fa4_c1611d3c","line":108,"range":{"start_line":103,"start_character":0,"end_line":108,"end_character":31},"in_reply_to":"1f493fa4_3f0f432f","updated":"2020-04-22 12:40:43.000000000","message":"Done","commit_id":"b62b7bcd34c905e82d1cf488597a1828c4dfb3a8"},{"author":{"_account_id":23847,"name":"Richard G. Pioso","email":"richard.pioso@gmail.com","username":"richard.pioso"},"change_message_id":"c956dd5736931b71752274404515a35f4eef1924","unresolved":false,"context_lines":[{"line_number":100,"context_line":"                         \u0027node\u0027: task.node.uuid})"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"        ports \u003d objects.Port.list_by_node_id(task.context, node.id)"},{"line_number":103,"context_line":"        if ports:"},{"line_number":104,"context_line":"            for port in ports:"},{"line_number":105,"context_line":"                is_pxe_port_mac \u003d (port.address.upper() in pxe_port_macs)"},{"line_number":106,"context_line":"                if port.pxe_enabled !\u003d is_pxe_port_mac:"},{"line_number":107,"context_line":"                    port.pxe_enabled \u003d is_pxe_port_mac"},{"line_number":108,"context_line":"                    port.save()"},{"line_number":109,"context_line":"                    LOG.info(\u0027Port %(port)s having %(mac_address)s updated \u0027"},{"line_number":110,"context_line":"                             \u0027with pxe_enabled %(pxe)s for node %(node_uuid)s \u0027"},{"line_number":111,"context_line":"                             \u0027during inspection\u0027,"}],"source_content_type":"text/x-python","patch_set":8,"id":"1f493fa4_3f0f432f","line":108,"range":{"start_line":103,"start_character":0,"end_line":108,"end_character":31},"in_reply_to":"1f493fa4_702f4cf6","updated":"2020-04-21 22:29:28.000000000","message":"While the suggested change simplifies the code, it does so at the expense of unnecessarily exercising the database for ports whose setting is already consistent with the baremetal configuration. Please consider reverting it.","commit_id":"b62b7bcd34c905e82d1cf488597a1828c4dfb3a8"},{"author":{"_account_id":31418,"name":"Mahendra Kamble","email":"mahendra.kamble358@gmail.com","username":"MahendraKamble"},"change_message_id":"3bef94bfc4e0fb0e84d469a350bcf51c08ac76fd","unresolved":false,"context_lines":[{"line_number":100,"context_line":"                         \u0027node\u0027: task.node.uuid})"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"        ports \u003d objects.Port.list_by_node_id(task.context, node.id)"},{"line_number":103,"context_line":"        if ports:"},{"line_number":104,"context_line":"            for port in ports:"},{"line_number":105,"context_line":"                is_pxe_port_mac \u003d (port.address.upper() in pxe_port_macs)"},{"line_number":106,"context_line":"                if port.pxe_enabled !\u003d is_pxe_port_mac:"},{"line_number":107,"context_line":"                    port.pxe_enabled \u003d is_pxe_port_mac"},{"line_number":108,"context_line":"                    port.save()"},{"line_number":109,"context_line":"                    LOG.info(\u0027Port %(port)s having %(mac_address)s updated \u0027"},{"line_number":110,"context_line":"                             \u0027with pxe_enabled %(pxe)s for node %(node_uuid)s \u0027"},{"line_number":111,"context_line":"                             \u0027during inspection\u0027,"}],"source_content_type":"text/x-python","patch_set":8,"id":"1f493fa4_702f4cf6","line":108,"range":{"start_line":103,"start_character":0,"end_line":108,"end_character":31},"in_reply_to":"df33271e_79d9d0f2","updated":"2020-04-21 11:19:42.000000000","message":"Done","commit_id":"b62b7bcd34c905e82d1cf488597a1828c4dfb3a8"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"eedadbb54413b0ba716403813f5b926bf25b8c18","unresolved":false,"context_lines":[{"line_number":17,"context_line":""},{"line_number":18,"context_line":"import defusedxml.ElementTree as et"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"from ironic_lib import metrics_utils"},{"line_number":21,"context_line":"from oslo_log import log as logging"},{"line_number":22,"context_line":"from oslo_utils import importutils"},{"line_number":23,"context_line":"from oslo_utils import units"}],"source_content_type":"text/x-python","patch_set":9,"id":"3f4c43b2_c213f465","line":20,"updated":"2020-04-13 16:40:36.000000000","message":"pep8: I202 Additional newline in a group of imports. \u0027from ironic_lib import metrics_utils\u0027 is identified as Third Party and \u0027import defusedxml.ElementTree\u0027 is identified as Third Party.","commit_id":"04020ecfce244885bd81f3549189d1caf8140ec7"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"4b0c9cdd83182ffeb27346caeaaa03d720cabe84","unresolved":false,"context_lines":[{"line_number":15,"context_line":"DRAC inspection interface"},{"line_number":16,"context_line":"\"\"\""},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"import defusedxml.ElementTree as et"},{"line_number":19,"context_line":"from ironic_lib import metrics_utils"},{"line_number":20,"context_line":"from oslo_log import log as logging"},{"line_number":21,"context_line":"from oslo_utils import importutils"}],"source_content_type":"text/x-python","patch_set":13,"id":"1f493fa4_fc603c35","line":18,"updated":"2020-04-22 13:05:52.000000000","message":"Any reason not to use the built-in ElementTree? I\u0027d prefer to avoid adding a new dependency just for idrac.","commit_id":"118d198162e32ef8d0b415992cd7d79e5b449fcd"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"6fe2590f21d260f8a8f908bb0383926f5727677e","unresolved":false,"context_lines":[{"line_number":15,"context_line":"DRAC inspection interface"},{"line_number":16,"context_line":"\"\"\""},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"import defusedxml.ElementTree as et"},{"line_number":19,"context_line":"from ironic_lib import metrics_utils"},{"line_number":20,"context_line":"from oslo_log import log as logging"},{"line_number":21,"context_line":"from oslo_utils import importutils"}],"source_content_type":"text/x-python","patch_set":13,"id":"1f493fa4_1ce07196","line":18,"in_reply_to":"1f493fa4_40d69ec7","updated":"2020-04-23 09:02:05.000000000","message":"Okay, it looks sufficiently small, just a wrapper around stdlib.","commit_id":"118d198162e32ef8d0b415992cd7d79e5b449fcd"},{"author":{"_account_id":31418,"name":"Mahendra Kamble","email":"mahendra.kamble358@gmail.com","username":"MahendraKamble"},"change_message_id":"ae8ec1212c16b54e9cccd8954b80e2e38fe809a5","unresolved":false,"context_lines":[{"line_number":15,"context_line":"DRAC inspection interface"},{"line_number":16,"context_line":"\"\"\""},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"import defusedxml.ElementTree as et"},{"line_number":19,"context_line":"from ironic_lib import metrics_utils"},{"line_number":20,"context_line":"from oslo_log import log as logging"},{"line_number":21,"context_line":"from oslo_utils import importutils"}],"source_content_type":"text/x-python","patch_set":13,"id":"1f493fa4_40d69ec7","line":18,"in_reply_to":"1f493fa4_fc603c35","updated":"2020-04-22 17:42:26.000000000","message":"There is a ZUUL test case ironic-bandit. That checks for a number of Python calls known to have possible security implications. I was getting error for built-in ElementTree like \"Using xml.etree.ElementTree.fromstring to parse untrusted XML data is known to be vulnerable to XML attacks.\". So we decided to use defusedxml lib.","commit_id":"118d198162e32ef8d0b415992cd7d79e5b449fcd"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"4b0c9cdd83182ffeb27346caeaaa03d720cabe84","unresolved":false,"context_lines":[{"line_number":156,"context_line":"            # how to get it, and Dell does not have OEM redfish calls"},{"line_number":157,"context_line":"            # to selectively retrieve it at this time."},{"line_number":158,"context_line":"            # Get instance of Sushy OEM manager object"},{"line_number":159,"context_line":"            oem_manager \u003d drac_common.get_sushy_oem_manager(task.node)"},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"            # Get NIC configuration"},{"line_number":162,"context_line":"            job_response \u003d oem_manager.export_system_configuration("}],"source_content_type":"text/x-python","patch_set":13,"id":"1f493fa4_5c55f04f","line":159,"updated":"2020-04-22 13:05:52.000000000","message":"Something to consider here: this change makes sushy-oem-idrac a mandatory dependency for this inspection interface. It probably makes the change not backportable. Maybe you make it optional and fall back to the old behavior if it\u0027s not present?","commit_id":"118d198162e32ef8d0b415992cd7d79e5b449fcd"},{"author":{"_account_id":10250,"name":"Christopher Dearborn","email":"Christopher.Dearborn@dell.com","username":"cdearbor"},"change_message_id":"7de89060ae7873137702c45d4cc22f77493a26bf","unresolved":false,"context_lines":[{"line_number":156,"context_line":"            # how to get it, and Dell does not have OEM redfish calls"},{"line_number":157,"context_line":"            # to selectively retrieve it at this time."},{"line_number":158,"context_line":"            # Get instance of Sushy OEM manager object"},{"line_number":159,"context_line":"            oem_manager \u003d drac_common.get_sushy_oem_manager(task.node)"},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"            # Get NIC configuration"},{"line_number":162,"context_line":"            job_response \u003d oem_manager.export_system_configuration("}],"source_content_type":"text/x-python","patch_set":13,"id":"1f493fa4_7484400d","line":159,"in_reply_to":"1f493fa4_5c55f04f","updated":"2020-04-22 15:14:16.000000000","message":"Well, sushy-oem-idrac is not present in driver-requirements.txt in stable/train, and a patch that I proposed to add it was nixed.  As a result, this change cannot be backported to stable/train or further back.","commit_id":"118d198162e32ef8d0b415992cd7d79e5b449fcd"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"3daa50585812f6074c0b56e422e72ba86d79765b","unresolved":false,"context_lines":[{"line_number":43,"context_line":"_SYSTEM_CONFIG_TAG \u003d \u0027\u003cSystemConfiguration Model\u0027"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"# System Management Constant"},{"line_number":46,"context_line":"_SERVICE_ROOT \u003d \u0027/redfish/v1/Managers/\u0027"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"# Job Response Code Constant"},{"line_number":49,"context_line":"_JOB_RESPONSE_CODE \u003d 200"}],"source_content_type":"text/x-python","patch_set":14,"id":"1f493fa4_6d4a5cac","line":46,"range":{"start_line":46,"start_character":0,"end_line":46,"end_character":39},"updated":"2020-04-27 13:23:30.000000000","message":"this is the same as in common.py, maybe there is a way how to avoid this duplication across files?","commit_id":"c4ba2b0fbfe49a64c92d1e1629b2fba0bee709ed"},{"author":{"_account_id":31418,"name":"Mahendra Kamble","email":"mahendra.kamble358@gmail.com","username":"MahendraKamble"},"change_message_id":"487d24e5f988c8e6fb2adef53a9c8bcbd9e8ed96","unresolved":false,"context_lines":[{"line_number":43,"context_line":"_SYSTEM_CONFIG_TAG \u003d \u0027\u003cSystemConfiguration Model\u0027"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"# System Management Constant"},{"line_number":46,"context_line":"_SERVICE_ROOT \u003d \u0027/redfish/v1/Managers/\u0027"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"# Job Response Code Constant"},{"line_number":49,"context_line":"_JOB_RESPONSE_CODE \u003d 200"}],"source_content_type":"text/x-python","patch_set":14,"id":"1f493fa4_ded17dfd","line":46,"range":{"start_line":46,"start_character":0,"end_line":46,"end_character":39},"in_reply_to":"1f493fa4_6d4a5cac","updated":"2020-04-28 10:28:43.000000000","message":"Done","commit_id":"c4ba2b0fbfe49a64c92d1e1629b2fba0bee709ed"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"3daa50585812f6074c0b56e422e72ba86d79765b","unresolved":false,"context_lines":[{"line_number":150,"context_line":"        elif system.boot.mode \u003d\u003d \u0027bios\u0027:"},{"line_number":151,"context_line":"            # When a server is in BIOS boot mode, whether or not a"},{"line_number":152,"context_line":"            # NIC port is set to PXE boot is stored on the NIC port"},{"line_number":153,"context_line":"            # itself internally to the BMC.  Getting this information"},{"line_number":154,"context_line":"            # requires using an OEM extension to export the system"},{"line_number":155,"context_line":"            # configuration, as the redfish standard does not specify"},{"line_number":156,"context_line":"            # how to get it, and Dell does not have OEM redfish calls"}],"source_content_type":"text/x-python","patch_set":14,"id":"1f493fa4_2d6b341e","line":153,"range":{"start_line":153,"start_character":43,"end_line":153,"end_character":44},"updated":"2020-04-27 13:23:30.000000000","message":"nit: whitespace","commit_id":"c4ba2b0fbfe49a64c92d1e1629b2fba0bee709ed"},{"author":{"_account_id":31418,"name":"Mahendra Kamble","email":"mahendra.kamble358@gmail.com","username":"MahendraKamble"},"change_message_id":"487d24e5f988c8e6fb2adef53a9c8bcbd9e8ed96","unresolved":false,"context_lines":[{"line_number":150,"context_line":"        elif system.boot.mode \u003d\u003d \u0027bios\u0027:"},{"line_number":151,"context_line":"            # When a server is in BIOS boot mode, whether or not a"},{"line_number":152,"context_line":"            # NIC port is set to PXE boot is stored on the NIC port"},{"line_number":153,"context_line":"            # itself internally to the BMC.  Getting this information"},{"line_number":154,"context_line":"            # requires using an OEM extension to export the system"},{"line_number":155,"context_line":"            # configuration, as the redfish standard does not specify"},{"line_number":156,"context_line":"            # how to get it, and Dell does not have OEM redfish calls"}],"source_content_type":"text/x-python","patch_set":14,"id":"1f493fa4_1ed8051c","line":153,"range":{"start_line":153,"start_character":43,"end_line":153,"end_character":44},"in_reply_to":"1f493fa4_2d6b341e","updated":"2020-04-28 10:28:43.000000000","message":"Done","commit_id":"c4ba2b0fbfe49a64c92d1e1629b2fba0bee709ed"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"3daa50585812f6074c0b56e422e72ba86d79765b","unresolved":false,"context_lines":[{"line_number":159,"context_line":"            oem_manager \u003d drac_common.get_sushy_oem_manager(task.node)"},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"            # Get NIC configuration"},{"line_number":162,"context_line":"            job_response \u003d oem_manager.export_system_configuration("},{"line_number":163,"context_line":"                target\u003d\"NIC\")"},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"            if job_response.status_code !\u003d _JOB_RESPONSE_CODE:"}],"source_content_type":"text/x-python","patch_set":14,"id":"1f493fa4_88a6b652","line":162,"range":{"start_line":162,"start_character":12,"end_line":162,"end_character":16},"updated":"2020-04-27 13:23:30.000000000","message":"I might be missing some context, but why is term \"job\" used here and also in _JOB_RESPONSE_CODE? It looks like a function call that ends up as Redfish API call. Where is the job? For me \"Job\" clashes with idrac jobs.","commit_id":"c4ba2b0fbfe49a64c92d1e1629b2fba0bee709ed"},{"author":{"_account_id":31418,"name":"Mahendra Kamble","email":"mahendra.kamble358@gmail.com","username":"MahendraKamble"},"change_message_id":"487d24e5f988c8e6fb2adef53a9c8bcbd9e8ed96","unresolved":false,"context_lines":[{"line_number":159,"context_line":"            oem_manager \u003d drac_common.get_sushy_oem_manager(task.node)"},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"            # Get NIC configuration"},{"line_number":162,"context_line":"            job_response \u003d oem_manager.export_system_configuration("},{"line_number":163,"context_line":"                target\u003d\"NIC\")"},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"            if job_response.status_code !\u003d _JOB_RESPONSE_CODE:"}],"source_content_type":"text/x-python","patch_set":14,"id":"1f493fa4_fed439eb","line":162,"range":{"start_line":162,"start_character":12,"end_line":162,"end_character":16},"in_reply_to":"1f493fa4_88a6b652","updated":"2020-04-28 10:28:43.000000000","message":"Done","commit_id":"c4ba2b0fbfe49a64c92d1e1629b2fba0bee709ed"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"17743b43d754edeb768f5769b3300a675c77ffef","unresolved":false,"context_lines":[{"line_number":15,"context_line":"DRAC inspection interface"},{"line_number":16,"context_line":"\"\"\""},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"import defusedxml.ElementTree as et"},{"line_number":19,"context_line":"from ironic_lib import metrics_utils"},{"line_number":20,"context_line":"from oslo_log import log as logging"},{"line_number":21,"context_line":"from oslo_utils import importutils"}],"source_content_type":"text/x-python","patch_set":20,"id":"5888b69b_14a6677b","line":18,"updated":"2020-11-24 10:08:06.000000000","message":"I\u0027ve been told that export_system_configuration supports JSON output. Let\u0027s use it and avoid a new XML dependency.","commit_id":"d88f07472b444c05d101a3417c415a54c20803e2"},{"author":{"_account_id":23847,"name":"Richard G. Pioso","email":"richard.pioso@gmail.com","username":"richard.pioso"},"change_message_id":"2b47c803af4c341b1cc06fe8ff32a7a74b2c0523","unresolved":true,"context_lines":[{"line_number":15,"context_line":"DRAC inspection interface"},{"line_number":16,"context_line":"\"\"\""},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"import defusedxml.ElementTree as et"},{"line_number":19,"context_line":"from ironic_lib import metrics_utils"},{"line_number":20,"context_line":"from oslo_log import log as logging"},{"line_number":21,"context_line":"from oslo_utils import importutils"}],"source_content_type":"text/x-python","patch_set":20,"id":"a19e324d_db9a40ca","line":18,"in_reply_to":"5888b69b_14a6677b","updated":"2020-11-26 01:31:36.000000000","message":"+1","commit_id":"d88f07472b444c05d101a3417c415a54c20803e2"},{"author":{"_account_id":25726,"name":"sonali bhausaheb borkar","email":"sonaliborkar85@gmail.com","username":"sonaliborkar85"},"change_message_id":"4df0887449181cf8538b40d36fcf5e53e2021955","unresolved":false,"context_lines":[{"line_number":15,"context_line":"DRAC inspection interface"},{"line_number":16,"context_line":"\"\"\""},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"import defusedxml.ElementTree as et"},{"line_number":19,"context_line":"from ironic_lib import metrics_utils"},{"line_number":20,"context_line":"from oslo_log import log as logging"},{"line_number":21,"context_line":"from oslo_utils import importutils"}],"source_content_type":"text/x-python","patch_set":20,"id":"3c7db6c7_ec060d4e","line":18,"in_reply_to":"a19e324d_db9a40ca","updated":"2021-01-14 10:00:38.000000000","message":"Done","commit_id":"d88f07472b444c05d101a3417c415a54c20803e2"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"17743b43d754edeb768f5769b3300a675c77ffef","unresolved":false,"context_lines":[{"line_number":65,"context_line":"        super(DracRedfishInspect, self).inspect_hardware(task)"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"        node \u003d task.node"},{"line_number":68,"context_line":"        pxe_port_macs \u003d self._get_pxe_port_macs(task)"},{"line_number":69,"context_line":"        if pxe_port_macs is None:"},{"line_number":70,"context_line":"            LOG.warning(\"No PXE enabled NIC was found for node \""},{"line_number":71,"context_line":"                        \"%(node_uuid)s.\", {\u0027node_uuid\u0027: node.uuid})"}],"source_content_type":"text/x-python","patch_set":20,"id":"dab3173e_15abcfc7","line":68,"updated":"2020-11-24 10:08:06.000000000","message":"This whole function is vendor-agnostic, I wonder if we should move it to the base Redfish class and leave _get_pxe_port_macs vendor-specific.","commit_id":"d88f07472b444c05d101a3417c415a54c20803e2"},{"author":{"_account_id":25726,"name":"sonali bhausaheb borkar","email":"sonaliborkar85@gmail.com","username":"sonaliborkar85"},"change_message_id":"4df0887449181cf8538b40d36fcf5e53e2021955","unresolved":false,"context_lines":[{"line_number":65,"context_line":"        super(DracRedfishInspect, self).inspect_hardware(task)"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"        node \u003d task.node"},{"line_number":68,"context_line":"        pxe_port_macs \u003d self._get_pxe_port_macs(task)"},{"line_number":69,"context_line":"        if pxe_port_macs is None:"},{"line_number":70,"context_line":"            LOG.warning(\"No PXE enabled NIC was found for node \""},{"line_number":71,"context_line":"                        \"%(node_uuid)s.\", {\u0027node_uuid\u0027: node.uuid})"}],"source_content_type":"text/x-python","patch_set":20,"id":"45fdba50_a560450c","line":68,"in_reply_to":"1d35c5c0_c5c9e4bb","updated":"2021-01-14 10:00:38.000000000","message":"Done","commit_id":"d88f07472b444c05d101a3417c415a54c20803e2"},{"author":{"_account_id":23847,"name":"Richard G. Pioso","email":"richard.pioso@gmail.com","username":"richard.pioso"},"change_message_id":"2b47c803af4c341b1cc06fe8ff32a7a74b2c0523","unresolved":true,"context_lines":[{"line_number":65,"context_line":"        super(DracRedfishInspect, self).inspect_hardware(task)"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"        node \u003d task.node"},{"line_number":68,"context_line":"        pxe_port_macs \u003d self._get_pxe_port_macs(task)"},{"line_number":69,"context_line":"        if pxe_port_macs is None:"},{"line_number":70,"context_line":"            LOG.warning(\"No PXE enabled NIC was found for node \""},{"line_number":71,"context_line":"                        \"%(node_uuid)s.\", {\u0027node_uuid\u0027: node.uuid})"}],"source_content_type":"text/x-python","patch_set":20,"id":"1d35c5c0_c5c9e4bb","line":68,"in_reply_to":"dab3173e_15abcfc7","updated":"2020-11-26 01:31:36.000000000","message":"I like this idea of refactoring the changes proposed to this source module by moving most of them to .../drivers/modules/redfish/inspect.py.\n\nThe definition of _get_pxe_port_macs() in the base class RedfishInspect would return an empty list. Vendor-specific implementations, such as the one proposed here, would interrogate the hardware to return a list of MAC addresses of ports which are configured to PXE boot.","commit_id":"d88f07472b444c05d101a3417c415a54c20803e2"},{"author":{"_account_id":23847,"name":"Richard G. Pioso","email":"richard.pioso@gmail.com","username":"richard.pioso"},"change_message_id":"2b47c803af4c341b1cc06fe8ff32a7a74b2c0523","unresolved":true,"context_lines":[{"line_number":66,"context_line":""},{"line_number":67,"context_line":"        node \u003d task.node"},{"line_number":68,"context_line":"        pxe_port_macs \u003d self._get_pxe_port_macs(task)"},{"line_number":69,"context_line":"        if pxe_port_macs is None:"},{"line_number":70,"context_line":"            LOG.warning(\"No PXE enabled NIC was found for node \""},{"line_number":71,"context_line":"                        \"%(node_uuid)s.\", {\u0027node_uuid\u0027: node.uuid})"},{"line_number":72,"context_line":"            ports \u003d objects.Port.list_by_node_id(task.context, node.id)"}],"source_content_type":"text/x-python","patch_set":20,"id":"42fe3bff_de1056f2","line":69,"updated":"2020-11-26 01:31:36.000000000","message":"Can _get_pxe_port_macs() return None?","commit_id":"d88f07472b444c05d101a3417c415a54c20803e2"},{"author":{"_account_id":25726,"name":"sonali bhausaheb borkar","email":"sonaliborkar85@gmail.com","username":"sonaliborkar85"},"change_message_id":"66e6c9b5fbefc93b33bb63dad853760929611984","unresolved":true,"context_lines":[{"line_number":66,"context_line":""},{"line_number":67,"context_line":"        node \u003d task.node"},{"line_number":68,"context_line":"        pxe_port_macs \u003d self._get_pxe_port_macs(task)"},{"line_number":69,"context_line":"        if pxe_port_macs is None:"},{"line_number":70,"context_line":"            LOG.warning(\"No PXE enabled NIC was found for node \""},{"line_number":71,"context_line":"                        \"%(node_uuid)s.\", {\u0027node_uuid\u0027: node.uuid})"},{"line_number":72,"context_line":"            ports \u003d objects.Port.list_by_node_id(task.context, node.id)"}],"source_content_type":"text/x-python","patch_set":20,"id":"7a02fc5b_e411dce9","line":69,"in_reply_to":"42fe3bff_de1056f2","updated":"2020-12-01 11:59:54.000000000","message":"No it will return empty list . Will change line according to the result","commit_id":"d88f07472b444c05d101a3417c415a54c20803e2"},{"author":{"_account_id":25726,"name":"sonali bhausaheb borkar","email":"sonaliborkar85@gmail.com","username":"sonaliborkar85"},"change_message_id":"4df0887449181cf8538b40d36fcf5e53e2021955","unresolved":false,"context_lines":[{"line_number":66,"context_line":""},{"line_number":67,"context_line":"        node \u003d task.node"},{"line_number":68,"context_line":"        pxe_port_macs \u003d self._get_pxe_port_macs(task)"},{"line_number":69,"context_line":"        if pxe_port_macs is None:"},{"line_number":70,"context_line":"            LOG.warning(\"No PXE enabled NIC was found for node \""},{"line_number":71,"context_line":"                        \"%(node_uuid)s.\", {\u0027node_uuid\u0027: node.uuid})"},{"line_number":72,"context_line":"            ports \u003d objects.Port.list_by_node_id(task.context, node.id)"}],"source_content_type":"text/x-python","patch_set":20,"id":"99850025_43cc1f27","line":69,"in_reply_to":"7a02fc5b_e411dce9","updated":"2021-01-14 10:00:38.000000000","message":"Done","commit_id":"d88f07472b444c05d101a3417c415a54c20803e2"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"17743b43d754edeb768f5769b3300a675c77ffef","unresolved":false,"context_lines":[{"line_number":70,"context_line":"            LOG.warning(\"No PXE enabled NIC was found for node \""},{"line_number":71,"context_line":"                        \"%(node_uuid)s.\", {\u0027node_uuid\u0027: node.uuid})"},{"line_number":72,"context_line":"            ports \u003d objects.Port.list_by_node_id(task.context, node.id)"},{"line_number":73,"context_line":"            if ports:"},{"line_number":74,"context_line":"                for port in ports:"},{"line_number":75,"context_line":"                    if port.pxe_enabled:"},{"line_number":76,"context_line":"                        port.pxe_enabled \u003d False"}],"source_content_type":"text/x-python","patch_set":20,"id":"935b89fd_460f79cd","line":73,"updated":"2020-11-24 10:08:06.000000000","message":"nit: not needed","commit_id":"d88f07472b444c05d101a3417c415a54c20803e2"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"17743b43d754edeb768f5769b3300a675c77ffef","unresolved":false,"context_lines":[{"line_number":73,"context_line":"            if ports:"},{"line_number":74,"context_line":"                for port in ports:"},{"line_number":75,"context_line":"                    if port.pxe_enabled:"},{"line_number":76,"context_line":"                        port.pxe_enabled \u003d False"},{"line_number":77,"context_line":"                        port.save()"},{"line_number":78,"context_line":"            return states.MANAGEABLE"},{"line_number":79,"context_line":""}],"source_content_type":"text/x-python","patch_set":20,"id":"c62c7786_88a2354d","line":76,"updated":"2020-11-24 10:08:06.000000000","message":"This is the default for new ports, but may overwrite operator-provided values. I\u0027d prefer not to do it.","commit_id":"d88f07472b444c05d101a3417c415a54c20803e2"},{"author":{"_account_id":23847,"name":"Richard G. Pioso","email":"richard.pioso@gmail.com","username":"richard.pioso"},"change_message_id":"2b47c803af4c341b1cc06fe8ff32a7a74b2c0523","unresolved":true,"context_lines":[{"line_number":73,"context_line":"            if ports:"},{"line_number":74,"context_line":"                for port in ports:"},{"line_number":75,"context_line":"                    if port.pxe_enabled:"},{"line_number":76,"context_line":"                        port.pxe_enabled \u003d False"},{"line_number":77,"context_line":"                        port.save()"},{"line_number":78,"context_line":"            return states.MANAGEABLE"},{"line_number":79,"context_line":""}],"source_content_type":"text/x-python","patch_set":20,"id":"384547bc_62e043cd","line":76,"in_reply_to":"c62c7786_88a2354d","updated":"2020-11-26 01:31:36.000000000","message":"Dmitry, do we have a use case in mind that could help me better understand why operator-provided values should take precedence over the actual hardware configuration? Could giving operator-provided values precedence result in a poor user experience, such as deployment failure?\n\nWhatever we decide, my inclination would be to make the behavior consistent when the list is empty and non-empty. Presently, it is consistent. Please note that if we decide to change this, the code below would also need to be changed to retain consistency.","commit_id":"d88f07472b444c05d101a3417c415a54c20803e2"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"17743b43d754edeb768f5769b3300a675c77ffef","unresolved":false,"context_lines":[{"line_number":87,"context_line":"        ethernet_interfaces_mac \u003d {interface.mac_address: interface.identity"},{"line_number":88,"context_line":"                                   for interface in ethernet_interfaces}"},{"line_number":89,"context_line":"        if ethernet_interfaces_mac:"},{"line_number":90,"context_line":"            inspect_utils.create_ports_if_not_exist("},{"line_number":91,"context_line":"                task, ethernet_interfaces_mac, get_mac_address\u003dlambda x: x[0])"},{"line_number":92,"context_line":"        else:"},{"line_number":93,"context_line":"            LOG.warning(\"Not attempting to create any port as no NICs \""}],"source_content_type":"text/x-python","patch_set":20,"id":"ff422bcd_052d8722","line":90,"updated":"2020-11-24 10:08:06.000000000","message":"Unless I\u0027m mistaked, the base inspect_hardware will have already created MAC addresses at this point. This part can be safely skipped then?","commit_id":"d88f07472b444c05d101a3417c415a54c20803e2"},{"author":{"_account_id":25726,"name":"sonali bhausaheb borkar","email":"sonaliborkar85@gmail.com","username":"sonaliborkar85"},"change_message_id":"66e6c9b5fbefc93b33bb63dad853760929611984","unresolved":true,"context_lines":[{"line_number":87,"context_line":"        ethernet_interfaces_mac \u003d {interface.mac_address: interface.identity"},{"line_number":88,"context_line":"                                   for interface in ethernet_interfaces}"},{"line_number":89,"context_line":"        if ethernet_interfaces_mac:"},{"line_number":90,"context_line":"            inspect_utils.create_ports_if_not_exist("},{"line_number":91,"context_line":"                task, ethernet_interfaces_mac, get_mac_address\u003dlambda x: x[0])"},{"line_number":92,"context_line":"        else:"},{"line_number":93,"context_line":"            LOG.warning(\"Not attempting to create any port as no NICs \""}],"source_content_type":"text/x-python","patch_set":20,"id":"c0257379_036f3ea8","line":90,"in_reply_to":"0d3f3238_e74b7319","updated":"2020-12-01 11:59:54.000000000","message":"We required this section as we need to ensure NIC port consistency . In some cases we have seen that NIC port was not in required state . This Block will take care of that","commit_id":"d88f07472b444c05d101a3417c415a54c20803e2"},{"author":{"_account_id":25726,"name":"sonali bhausaheb borkar","email":"sonaliborkar85@gmail.com","username":"sonaliborkar85"},"change_message_id":"4df0887449181cf8538b40d36fcf5e53e2021955","unresolved":true,"context_lines":[{"line_number":87,"context_line":"        ethernet_interfaces_mac \u003d {interface.mac_address: interface.identity"},{"line_number":88,"context_line":"                                   for interface in ethernet_interfaces}"},{"line_number":89,"context_line":"        if ethernet_interfaces_mac:"},{"line_number":90,"context_line":"            inspect_utils.create_ports_if_not_exist("},{"line_number":91,"context_line":"                task, ethernet_interfaces_mac, get_mac_address\u003dlambda x: x[0])"},{"line_number":92,"context_line":"        else:"},{"line_number":93,"context_line":"            LOG.warning(\"Not attempting to create any port as no NICs \""}],"source_content_type":"text/x-python","patch_set":20,"id":"7e644b34_e136417f","line":90,"in_reply_to":"b31f97b7_471e1944","updated":"2021-01-14 10:00:38.000000000","message":"We have done testing on different platform to Ensure we create a port for every NIC port found for consistency. But we seen the issue on AMD server  where querying ethernet interfaces via redfish , the status dictionary port for NIC ports does not returns all ports \nWith commenting this code . Reported issue for the same .\nAs we have discuss will keep this code in this file and will replace it before enabling the pxe .","commit_id":"d88f07472b444c05d101a3417c415a54c20803e2"},{"author":{"_account_id":23847,"name":"Richard G. Pioso","email":"richard.pioso@gmail.com","username":"richard.pioso"},"change_message_id":"8b50f9142f0926d2d7a45983edf2fc23ddc74b23","unresolved":true,"context_lines":[{"line_number":87,"context_line":"        ethernet_interfaces_mac \u003d {interface.mac_address: interface.identity"},{"line_number":88,"context_line":"                                   for interface in ethernet_interfaces}"},{"line_number":89,"context_line":"        if ethernet_interfaces_mac:"},{"line_number":90,"context_line":"            inspect_utils.create_ports_if_not_exist("},{"line_number":91,"context_line":"                task, ethernet_interfaces_mac, get_mac_address\u003dlambda x: x[0])"},{"line_number":92,"context_line":"        else:"},{"line_number":93,"context_line":"            LOG.warning(\"Not attempting to create any port as no NICs \""}],"source_content_type":"text/x-python","patch_set":20,"id":"b31f97b7_471e1944","line":90,"in_reply_to":"c0257379_036f3ea8","updated":"2020-12-01 22:34:22.000000000","message":"\u003e We required this section as we need to ensure NIC port consistency . In some cases we have seen that NIC port was not in required state . This Block will take care of that\n\nYou raise a couple of good points. I asked Chris Dearborn for his recollection of this.\n\nChris reminded me it was added to ensure this Redfish implementation is consistent with WS-Man\u0027s below. WS-Man creates a port object for every NIC port in the system, regardless of its health status; however, the base inspect_hardware() creates one (1) only if the health status of the Ethernet interface is OK.\n\nAlso, some versions of the iDRAC firmware may not correctly report the health status.\n\nTherefore, even if more recent versions of iDRAC firmware accurately report the health status, I suggest leaving this logic in. While it could be redundant, it is idempotent and should not require any additional Redfish RESTful API calls. However, it should be executed earlier, before dealing with PXE enabled. The code presently identifies PXE enabled MAC addresses before this block and returns if there are none. That is inconsistent with the WS-Man implementation.","commit_id":"d88f07472b444c05d101a3417c415a54c20803e2"},{"author":{"_account_id":23847,"name":"Richard G. Pioso","email":"richard.pioso@gmail.com","username":"richard.pioso"},"change_message_id":"2b47c803af4c341b1cc06fe8ff32a7a74b2c0523","unresolved":true,"context_lines":[{"line_number":87,"context_line":"        ethernet_interfaces_mac \u003d {interface.mac_address: interface.identity"},{"line_number":88,"context_line":"                                   for interface in ethernet_interfaces}"},{"line_number":89,"context_line":"        if ethernet_interfaces_mac:"},{"line_number":90,"context_line":"            inspect_utils.create_ports_if_not_exist("},{"line_number":91,"context_line":"                task, ethernet_interfaces_mac, get_mac_address\u003dlambda x: x[0])"},{"line_number":92,"context_line":"        else:"},{"line_number":93,"context_line":"            LOG.warning(\"Not attempting to create any port as no NICs \""}],"source_content_type":"text/x-python","patch_set":20,"id":"0d3f3238_e74b7319","line":90,"in_reply_to":"ff422bcd_052d8722","updated":"2020-11-26 01:31:36.000000000","message":"That is what I see, too. The node\u0027s bare metal ports are created by the base inspect_hardware() here: https://opendev.org/openstack/ironic/src/commit/a08da8551a66815bedef7c6444fde5f9082a6aea/ironic/drivers/modules/redfish/inspect.py#L158.","commit_id":"d88f07472b444c05d101a3417c415a54c20803e2"},{"author":{"_account_id":23847,"name":"Richard G. Pioso","email":"richard.pioso@gmail.com","username":"richard.pioso"},"change_message_id":"2b47c803af4c341b1cc06fe8ff32a7a74b2c0523","unresolved":true,"context_lines":[{"line_number":77,"context_line":"                        port.save()"},{"line_number":78,"context_line":"            return states.MANAGEABLE"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"        # Ensure we create a port for every NIC port found for consistency"},{"line_number":81,"context_line":"        # with our WSMAN inspect behavior and to work around a bug in some"},{"line_number":82,"context_line":"        # versions of the firmware where the port state is not being"},{"line_number":83,"context_line":"        # reported correctly."},{"line_number":84,"context_line":"        system \u003d redfish_utils.get_system(task.node)"},{"line_number":85,"context_line":"        # Get dictionary of ethernet interfaces"},{"line_number":86,"context_line":"        ethernet_interfaces \u003d system.ethernet_interfaces.get_members()"},{"line_number":87,"context_line":"        ethernet_interfaces_mac \u003d {interface.mac_address: interface.identity"},{"line_number":88,"context_line":"                                   for interface in ethernet_interfaces}"},{"line_number":89,"context_line":"        if ethernet_interfaces_mac:"},{"line_number":90,"context_line":"            inspect_utils.create_ports_if_not_exist("},{"line_number":91,"context_line":"                task, ethernet_interfaces_mac, get_mac_address\u003dlambda x: x[0])"},{"line_number":92,"context_line":"        else:"},{"line_number":93,"context_line":"            LOG.warning(\"Not attempting to create any port as no NICs \""},{"line_number":94,"context_line":"                        \"were discovered for node %(node)s: %(mac_data)s\","},{"line_number":95,"context_line":"                        {\u0027mac_data\u0027: ethernet_interfaces_mac,"},{"line_number":96,"context_line":"                         \u0027node\u0027: task.node.uuid})"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"        ports \u003d objects.Port.list_by_node_id(task.context, node.id)"},{"line_number":99,"context_line":"        if ports:"},{"line_number":100,"context_line":"            for port in ports:"}],"source_content_type":"text/x-python","patch_set":20,"id":"b56b7399_898dbdfe","line":97,"range":{"start_line":80,"start_character":0,"end_line":97,"end_character":0},"updated":"2020-11-26 01:31:36.000000000","message":"To expand on Dmitry\u0027s observation above, this code is not needed.","commit_id":"d88f07472b444c05d101a3417c415a54c20803e2"},{"author":{"_account_id":25726,"name":"sonali bhausaheb borkar","email":"sonaliborkar85@gmail.com","username":"sonaliborkar85"},"change_message_id":"4df0887449181cf8538b40d36fcf5e53e2021955","unresolved":false,"context_lines":[{"line_number":77,"context_line":"                        port.save()"},{"line_number":78,"context_line":"            return states.MANAGEABLE"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"        # Ensure we create a port for every NIC port found for consistency"},{"line_number":81,"context_line":"        # with our WSMAN inspect behavior and to work around a bug in some"},{"line_number":82,"context_line":"        # versions of the firmware where the port state is not being"},{"line_number":83,"context_line":"        # reported correctly."},{"line_number":84,"context_line":"        system \u003d redfish_utils.get_system(task.node)"},{"line_number":85,"context_line":"        # Get dictionary of ethernet interfaces"},{"line_number":86,"context_line":"        ethernet_interfaces \u003d system.ethernet_interfaces.get_members()"},{"line_number":87,"context_line":"        ethernet_interfaces_mac \u003d {interface.mac_address: interface.identity"},{"line_number":88,"context_line":"                                   for interface in ethernet_interfaces}"},{"line_number":89,"context_line":"        if ethernet_interfaces_mac:"},{"line_number":90,"context_line":"            inspect_utils.create_ports_if_not_exist("},{"line_number":91,"context_line":"                task, ethernet_interfaces_mac, get_mac_address\u003dlambda x: x[0])"},{"line_number":92,"context_line":"        else:"},{"line_number":93,"context_line":"            LOG.warning(\"Not attempting to create any port as no NICs \""},{"line_number":94,"context_line":"                        \"were discovered for node %(node)s: %(mac_data)s\","},{"line_number":95,"context_line":"                        {\u0027mac_data\u0027: ethernet_interfaces_mac,"},{"line_number":96,"context_line":"                         \u0027node\u0027: task.node.uuid})"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"        ports \u003d objects.Port.list_by_node_id(task.context, node.id)"},{"line_number":99,"context_line":"        if ports:"},{"line_number":100,"context_line":"            for port in ports:"}],"source_content_type":"text/x-python","patch_set":20,"id":"b2013148_7b85ddd7","line":97,"range":{"start_line":80,"start_character":0,"end_line":97,"end_character":0},"in_reply_to":"b56b7399_898dbdfe","updated":"2021-01-14 10:00:38.000000000","message":"Done","commit_id":"d88f07472b444c05d101a3417c415a54c20803e2"},{"author":{"_account_id":23847,"name":"Richard G. Pioso","email":"richard.pioso@gmail.com","username":"richard.pioso"},"change_message_id":"2b47c803af4c341b1cc06fe8ff32a7a74b2c0523","unresolved":true,"context_lines":[{"line_number":98,"context_line":"        ports \u003d objects.Port.list_by_node_id(task.context, node.id)"},{"line_number":99,"context_line":"        if ports:"},{"line_number":100,"context_line":"            for port in ports:"},{"line_number":101,"context_line":"                is_baremetal_pxe_port \u003d (port.address.upper() in pxe_port_macs)"},{"line_number":102,"context_line":"                if port.pxe_enabled !\u003d is_baremetal_pxe_port:"},{"line_number":103,"context_line":"                    port.pxe_enabled \u003d is_baremetal_pxe_port"},{"line_number":104,"context_line":"                    port.save()"}],"source_content_type":"text/x-python","patch_set":20,"id":"8c0bd4ef_b04159e8","line":101,"range":{"start_line":101,"start_character":65,"end_line":101,"end_character":78},"updated":"2020-11-26 01:31:36.000000000","message":"Are we certain the MAC addresses in this list will be all uppercase?","commit_id":"d88f07472b444c05d101a3417c415a54c20803e2"},{"author":{"_account_id":25726,"name":"sonali bhausaheb borkar","email":"sonaliborkar85@gmail.com","username":"sonaliborkar85"},"change_message_id":"4df0887449181cf8538b40d36fcf5e53e2021955","unresolved":false,"context_lines":[{"line_number":98,"context_line":"        ports \u003d objects.Port.list_by_node_id(task.context, node.id)"},{"line_number":99,"context_line":"        if ports:"},{"line_number":100,"context_line":"            for port in ports:"},{"line_number":101,"context_line":"                is_baremetal_pxe_port \u003d (port.address.upper() in pxe_port_macs)"},{"line_number":102,"context_line":"                if port.pxe_enabled !\u003d is_baremetal_pxe_port:"},{"line_number":103,"context_line":"                    port.pxe_enabled \u003d is_baremetal_pxe_port"},{"line_number":104,"context_line":"                    port.save()"}],"source_content_type":"text/x-python","patch_set":20,"id":"f2cd885b_77177983","line":101,"range":{"start_line":101,"start_character":65,"end_line":101,"end_character":78},"in_reply_to":"755748c3_472d9e07","updated":"2021-01-14 10:00:38.000000000","message":"Done","commit_id":"d88f07472b444c05d101a3417c415a54c20803e2"},{"author":{"_account_id":25726,"name":"sonali bhausaheb borkar","email":"sonaliborkar85@gmail.com","username":"sonaliborkar85"},"change_message_id":"3e1d8ac3898e31860efe88aa0906433e5a91fd1b","unresolved":true,"context_lines":[{"line_number":98,"context_line":"        ports \u003d objects.Port.list_by_node_id(task.context, node.id)"},{"line_number":99,"context_line":"        if ports:"},{"line_number":100,"context_line":"            for port in ports:"},{"line_number":101,"context_line":"                is_baremetal_pxe_port \u003d (port.address.upper() in pxe_port_macs)"},{"line_number":102,"context_line":"                if port.pxe_enabled !\u003d is_baremetal_pxe_port:"},{"line_number":103,"context_line":"                    port.pxe_enabled \u003d is_baremetal_pxe_port"},{"line_number":104,"context_line":"                    port.save()"}],"source_content_type":"text/x-python","patch_set":20,"id":"755748c3_472d9e07","line":101,"range":{"start_line":101,"start_character":65,"end_line":101,"end_character":78},"in_reply_to":"8c0bd4ef_b04159e8","updated":"2021-01-04 11:35:30.000000000","message":"yes","commit_id":"d88f07472b444c05d101a3417c415a54c20803e2"},{"author":{"_account_id":23847,"name":"Richard G. Pioso","email":"richard.pioso@gmail.com","username":"richard.pioso"},"change_message_id":"2b47c803af4c341b1cc06fe8ff32a7a74b2c0523","unresolved":true,"context_lines":[{"line_number":98,"context_line":"        ports \u003d objects.Port.list_by_node_id(task.context, node.id)"},{"line_number":99,"context_line":"        if ports:"},{"line_number":100,"context_line":"            for port in ports:"},{"line_number":101,"context_line":"                is_baremetal_pxe_port \u003d (port.address.upper() in pxe_port_macs)"},{"line_number":102,"context_line":"                if port.pxe_enabled !\u003d is_baremetal_pxe_port:"},{"line_number":103,"context_line":"                    port.pxe_enabled \u003d is_baremetal_pxe_port"},{"line_number":104,"context_line":"                    port.save()"},{"line_number":105,"context_line":"                    LOG.info(\u0027Port %(port)s having %(mac_address)s updated \u0027"},{"line_number":106,"context_line":"                             \u0027with pxe_enabled %(pxe)s for node %(node_uuid)s \u0027"}],"source_content_type":"text/x-python","patch_set":20,"id":"4a61fba9_b2026dae","line":103,"range":{"start_line":101,"start_character":0,"end_line":103,"end_character":60},"updated":"2020-11-26 01:31:36.000000000","message":"This is the consistent logic I refer to above.","commit_id":"d88f07472b444c05d101a3417c415a54c20803e2"},{"author":{"_account_id":25726,"name":"sonali bhausaheb borkar","email":"sonaliborkar85@gmail.com","username":"sonaliborkar85"},"change_message_id":"4df0887449181cf8538b40d36fcf5e53e2021955","unresolved":false,"context_lines":[{"line_number":98,"context_line":"        ports \u003d objects.Port.list_by_node_id(task.context, node.id)"},{"line_number":99,"context_line":"        if ports:"},{"line_number":100,"context_line":"            for port in ports:"},{"line_number":101,"context_line":"                is_baremetal_pxe_port \u003d (port.address.upper() in pxe_port_macs)"},{"line_number":102,"context_line":"                if port.pxe_enabled !\u003d is_baremetal_pxe_port:"},{"line_number":103,"context_line":"                    port.pxe_enabled \u003d is_baremetal_pxe_port"},{"line_number":104,"context_line":"                    port.save()"},{"line_number":105,"context_line":"                    LOG.info(\u0027Port %(port)s having %(mac_address)s updated \u0027"},{"line_number":106,"context_line":"                             \u0027with pxe_enabled %(pxe)s for node %(node_uuid)s \u0027"}],"source_content_type":"text/x-python","patch_set":20,"id":"e2918a19_ff43d7d9","line":103,"range":{"start_line":101,"start_character":0,"end_line":103,"end_character":60},"in_reply_to":"4a61fba9_b2026dae","updated":"2021-01-14 10:00:38.000000000","message":"Done","commit_id":"d88f07472b444c05d101a3417c415a54c20803e2"},{"author":{"_account_id":23847,"name":"Richard G. Pioso","email":"richard.pioso@gmail.com","username":"richard.pioso"},"change_message_id":"2b47c803af4c341b1cc06fe8ff32a7a74b2c0523","unresolved":true,"context_lines":[{"line_number":122,"context_line":"        system \u003d redfish_utils.get_system(task.node)"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"        pxe_port_macs \u003d []"},{"line_number":125,"context_line":"        pxe_params \u003d [\"PxeDev1EnDis\", \"PxeDev2EnDis\","},{"line_number":126,"context_line":"                      \"PxeDev3EnDis\", \"PxeDev4EnDis\"]"},{"line_number":127,"context_line":"        pxe_nics \u003d [\"PxeDev1Interface\", \"PxeDev2Interface\","},{"line_number":128,"context_line":"                    \"PxeDev3Interface\", \"PxeDev4Interface\"]"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"        # Get dictionary of ethernet interfaces"},{"line_number":131,"context_line":"        ethernet_interfaces \u003d system.ethernet_interfaces.get_members()"}],"source_content_type":"text/x-python","patch_set":20,"id":"e291f15f_da6ecd02","line":128,"range":{"start_line":125,"start_character":0,"end_line":128,"end_character":59},"updated":"2020-11-26 01:31:36.000000000","message":"Please consider defining private constants for these two (2) lists.","commit_id":"d88f07472b444c05d101a3417c415a54c20803e2"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"17743b43d754edeb768f5769b3300a675c77ffef","unresolved":false,"context_lines":[{"line_number":125,"context_line":"        pxe_params \u003d [\"PxeDev1EnDis\", \"PxeDev2EnDis\","},{"line_number":126,"context_line":"                      \"PxeDev3EnDis\", \"PxeDev4EnDis\"]"},{"line_number":127,"context_line":"        pxe_nics \u003d [\"PxeDev1Interface\", \"PxeDev2Interface\","},{"line_number":128,"context_line":"                    \"PxeDev3Interface\", \"PxeDev4Interface\"]"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"        # Get dictionary of ethernet interfaces"},{"line_number":131,"context_line":"        ethernet_interfaces \u003d system.ethernet_interfaces.get_members()"}],"source_content_type":"text/x-python","patch_set":20,"id":"2e94e782_a00f0b2e","line":128,"updated":"2020-11-24 10:08:06.000000000","message":"Why 4? Maybe leave a comment where this number comes from?","commit_id":"d88f07472b444c05d101a3417c415a54c20803e2"},{"author":{"_account_id":23847,"name":"Richard G. Pioso","email":"richard.pioso@gmail.com","username":"richard.pioso"},"change_message_id":"2b47c803af4c341b1cc06fe8ff32a7a74b2c0523","unresolved":true,"context_lines":[{"line_number":125,"context_line":"        pxe_params \u003d [\"PxeDev1EnDis\", \"PxeDev2EnDis\","},{"line_number":126,"context_line":"                      \"PxeDev3EnDis\", \"PxeDev4EnDis\"]"},{"line_number":127,"context_line":"        pxe_nics \u003d [\"PxeDev1Interface\", \"PxeDev2Interface\","},{"line_number":128,"context_line":"                    \"PxeDev3Interface\", \"PxeDev4Interface\"]"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"        # Get dictionary of ethernet interfaces"},{"line_number":131,"context_line":"        ethernet_interfaces \u003d system.ethernet_interfaces.get_members()"}],"source_content_type":"text/x-python","patch_set":20,"id":"a4905f84_f1d567ab","line":128,"in_reply_to":"2e94e782_a00f0b2e","updated":"2020-11-26 01:31:36.000000000","message":"TL;DR, the Dell BIOS. When the Dell EMC system boot mode is set to UEFI, its BIOS offers the ability to configure four (4) PXE devices. There is a group of several attributes per device.\n\nFor more details, please see https://www.dell.com/support/manuals/en-us/idrac9-lifecycle-controller-v4.x-series/idrac_4.00.00.00_racadm_ar_referenceguide/bios-attributes?guid\u003dguid-05afb2d0-ebbb-4d8f-b55e-810426af1414\u0026lang\u003den-us. Note that link is of course subject to change. We may not want to cite it in the comment.","commit_id":"d88f07472b444c05d101a3417c415a54c20803e2"},{"author":{"_account_id":25726,"name":"sonali bhausaheb borkar","email":"sonaliborkar85@gmail.com","username":"sonaliborkar85"},"change_message_id":"4df0887449181cf8538b40d36fcf5e53e2021955","unresolved":false,"context_lines":[{"line_number":122,"context_line":"        system \u003d redfish_utils.get_system(task.node)"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"        pxe_port_macs \u003d []"},{"line_number":125,"context_line":"        pxe_params \u003d [\"PxeDev1EnDis\", \"PxeDev2EnDis\","},{"line_number":126,"context_line":"                      \"PxeDev3EnDis\", \"PxeDev4EnDis\"]"},{"line_number":127,"context_line":"        pxe_nics \u003d [\"PxeDev1Interface\", \"PxeDev2Interface\","},{"line_number":128,"context_line":"                    \"PxeDev3Interface\", \"PxeDev4Interface\"]"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"        # Get dictionary of ethernet interfaces"},{"line_number":131,"context_line":"        ethernet_interfaces \u003d system.ethernet_interfaces.get_members()"}],"source_content_type":"text/x-python","patch_set":20,"id":"7636e309_c98fe9f7","line":128,"range":{"start_line":125,"start_character":0,"end_line":128,"end_character":59},"in_reply_to":"e291f15f_da6ecd02","updated":"2021-01-14 10:00:38.000000000","message":"Done","commit_id":"d88f07472b444c05d101a3417c415a54c20803e2"},{"author":{"_account_id":23847,"name":"Richard G. Pioso","email":"richard.pioso@gmail.com","username":"richard.pioso"},"change_message_id":"2b47c803af4c341b1cc06fe8ff32a7a74b2c0523","unresolved":true,"context_lines":[{"line_number":133,"context_line":"            interface.identity: interface.mac_address"},{"line_number":134,"context_line":"            for interface in ethernet_interfaces}"},{"line_number":135,"context_line":""},{"line_number":136,"context_line":"        if system.boot.mode \u003d\u003d \u0027uefi\u0027:"},{"line_number":137,"context_line":"            # When a server is in UEFI boot mode, the PXE NIC ports are"},{"line_number":138,"context_line":"            # stored in the PxeDevXEnDis and PxeDevXInterface BIOS"},{"line_number":139,"context_line":"            # settings. Get the PXE NIC ports from these settings and"}],"source_content_type":"text/x-python","patch_set":20,"id":"233e88aa_fb8deae6","line":136,"range":{"start_line":136,"start_character":31,"end_line":136,"end_character":37},"updated":"2020-11-26 01:31:36.000000000","message":"sushy defines a constant for this. Please use it.","commit_id":"d88f07472b444c05d101a3417c415a54c20803e2"},{"author":{"_account_id":25726,"name":"sonali bhausaheb borkar","email":"sonaliborkar85@gmail.com","username":"sonaliborkar85"},"change_message_id":"4df0887449181cf8538b40d36fcf5e53e2021955","unresolved":false,"context_lines":[{"line_number":133,"context_line":"            interface.identity: interface.mac_address"},{"line_number":134,"context_line":"            for interface in ethernet_interfaces}"},{"line_number":135,"context_line":""},{"line_number":136,"context_line":"        if system.boot.mode \u003d\u003d \u0027uefi\u0027:"},{"line_number":137,"context_line":"            # When a server is in UEFI boot mode, the PXE NIC ports are"},{"line_number":138,"context_line":"            # stored in the PxeDevXEnDis and PxeDevXInterface BIOS"},{"line_number":139,"context_line":"            # settings. Get the PXE NIC ports from these settings and"}],"source_content_type":"text/x-python","patch_set":20,"id":"e33305ca_6904d365","line":136,"range":{"start_line":136,"start_character":31,"end_line":136,"end_character":37},"in_reply_to":"233e88aa_fb8deae6","updated":"2021-01-14 10:00:38.000000000","message":"Done","commit_id":"d88f07472b444c05d101a3417c415a54c20803e2"},{"author":{"_account_id":23847,"name":"Richard G. Pioso","email":"richard.pioso@gmail.com","username":"richard.pioso"},"change_message_id":"2b47c803af4c341b1cc06fe8ff32a7a74b2c0523","unresolved":true,"context_lines":[{"line_number":139,"context_line":"            # settings. Get the PXE NIC ports from these settings and"},{"line_number":140,"context_line":"            # their MAC addresses."},{"line_number":141,"context_line":"            for param, nic in zip(pxe_params, pxe_nics):"},{"line_number":142,"context_line":"                if system.bios.attributes[param] \u003d\u003d \u0027Enabled\u0027:"},{"line_number":143,"context_line":"                    nic_id \u003d system.bios.attributes[nic]"},{"line_number":144,"context_line":"                    # Get MAC address of the given nic_id"},{"line_number":145,"context_line":"                    mac_address \u003d ethernet_interfaces_mac[nic_id]"}],"source_content_type":"text/x-python","patch_set":20,"id":"54f8ed3a_86460e1f","line":142,"range":{"start_line":142,"start_character":52,"end_line":142,"end_character":61},"updated":"2020-11-26 01:31:36.000000000","message":"nit: Please use a constant here. There are more opportunities in this method.","commit_id":"d88f07472b444c05d101a3417c415a54c20803e2"},{"author":{"_account_id":25726,"name":"sonali bhausaheb borkar","email":"sonaliborkar85@gmail.com","username":"sonaliborkar85"},"change_message_id":"4df0887449181cf8538b40d36fcf5e53e2021955","unresolved":false,"context_lines":[{"line_number":139,"context_line":"            # settings. Get the PXE NIC ports from these settings and"},{"line_number":140,"context_line":"            # their MAC addresses."},{"line_number":141,"context_line":"            for param, nic in zip(pxe_params, pxe_nics):"},{"line_number":142,"context_line":"                if system.bios.attributes[param] \u003d\u003d \u0027Enabled\u0027:"},{"line_number":143,"context_line":"                    nic_id \u003d system.bios.attributes[nic]"},{"line_number":144,"context_line":"                    # Get MAC address of the given nic_id"},{"line_number":145,"context_line":"                    mac_address \u003d ethernet_interfaces_mac[nic_id]"}],"source_content_type":"text/x-python","patch_set":20,"id":"c5ad6dad_fde0f0dc","line":142,"range":{"start_line":142,"start_character":52,"end_line":142,"end_character":61},"in_reply_to":"54f8ed3a_86460e1f","updated":"2021-01-14 10:00:38.000000000","message":"Done","commit_id":"d88f07472b444c05d101a3417c415a54c20803e2"},{"author":{"_account_id":23847,"name":"Richard G. Pioso","email":"richard.pioso@gmail.com","username":"richard.pioso"},"change_message_id":"2b47c803af4c341b1cc06fe8ff32a7a74b2c0523","unresolved":true,"context_lines":[{"line_number":144,"context_line":"                    # Get MAC address of the given nic_id"},{"line_number":145,"context_line":"                    mac_address \u003d ethernet_interfaces_mac[nic_id]"},{"line_number":146,"context_line":"                    pxe_port_macs.append(mac_address)"},{"line_number":147,"context_line":"        elif system.boot.mode \u003d\u003d \u0027bios\u0027:"},{"line_number":148,"context_line":"            # When a server is in BIOS boot mode, whether or not a"},{"line_number":149,"context_line":"            # NIC port is set to PXE boot is stored on the NIC port"},{"line_number":150,"context_line":"            # itself internally to the BMC. Getting this information"}],"source_content_type":"text/x-python","patch_set":20,"id":"d8938835_58971823","line":147,"range":{"start_line":147,"start_character":33,"end_line":147,"end_character":39},"updated":"2020-11-26 01:31:36.000000000","message":"Ditto","commit_id":"d88f07472b444c05d101a3417c415a54c20803e2"},{"author":{"_account_id":25726,"name":"sonali bhausaheb borkar","email":"sonaliborkar85@gmail.com","username":"sonaliborkar85"},"change_message_id":"4df0887449181cf8538b40d36fcf5e53e2021955","unresolved":false,"context_lines":[{"line_number":144,"context_line":"                    # Get MAC address of the given nic_id"},{"line_number":145,"context_line":"                    mac_address \u003d ethernet_interfaces_mac[nic_id]"},{"line_number":146,"context_line":"                    pxe_port_macs.append(mac_address)"},{"line_number":147,"context_line":"        elif system.boot.mode \u003d\u003d \u0027bios\u0027:"},{"line_number":148,"context_line":"            # When a server is in BIOS boot mode, whether or not a"},{"line_number":149,"context_line":"            # NIC port is set to PXE boot is stored on the NIC port"},{"line_number":150,"context_line":"            # itself internally to the BMC. Getting this information"}],"source_content_type":"text/x-python","patch_set":20,"id":"731ac622_ed032bf0","line":147,"range":{"start_line":147,"start_character":33,"end_line":147,"end_character":39},"in_reply_to":"d8938835_58971823","updated":"2021-01-14 10:00:38.000000000","message":"Done","commit_id":"d88f07472b444c05d101a3417c415a54c20803e2"},{"author":{"_account_id":23847,"name":"Richard G. Pioso","email":"richard.pioso@gmail.com","username":"richard.pioso"},"change_message_id":"2b47c803af4c341b1cc06fe8ff32a7a74b2c0523","unresolved":true,"context_lines":[{"line_number":145,"context_line":"                    mac_address \u003d ethernet_interfaces_mac[nic_id]"},{"line_number":146,"context_line":"                    pxe_port_macs.append(mac_address)"},{"line_number":147,"context_line":"        elif system.boot.mode \u003d\u003d \u0027bios\u0027:"},{"line_number":148,"context_line":"            # When a server is in BIOS boot mode, whether or not a"},{"line_number":149,"context_line":"            # NIC port is set to PXE boot is stored on the NIC port"},{"line_number":150,"context_line":"            # itself internally to the BMC. Getting this information"},{"line_number":151,"context_line":"            # requires using an OEM extension to export the system"},{"line_number":152,"context_line":"            # configuration, as the redfish standard does not specify"},{"line_number":153,"context_line":"            # how to get it, and Dell does not have OEM redfish calls"},{"line_number":154,"context_line":"            # to selectively retrieve it at this time."},{"line_number":155,"context_line":"            # Get instance of Sushy OEM manager object"},{"line_number":156,"context_line":"            oem_manager \u003d drac_common.get_sushy_oem_manager(task.node)"},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"            # Get NIC configuration"},{"line_number":159,"context_line":"            bios_nic_settings \u003d oem_manager.export_system_configuration("},{"line_number":160,"context_line":"                target\u003d\"NIC\")"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"            if bios_nic_settings.status_code !\u003d _RESPONSE_CODE:"},{"line_number":163,"context_line":"                error \u003d (_(\u0027An error occurred when attempting to export \u0027"},{"line_number":164,"context_line":"                           \u0027the system configuration. Status code: %(code), \u0027"},{"line_number":165,"context_line":"                           \u0027Error details: %(err)\u0027),"},{"line_number":166,"context_line":"                         {\u0027code\u0027: bios_nic_settings.status_code,"},{"line_number":167,"context_line":"                          \u0027err\u0027: bios_nic_settings.__dict__})"},{"line_number":168,"context_line":"                LOG.error(error)"},{"line_number":169,"context_line":"                raise exception.HardwareInspectionFailure(error\u003derror)"},{"line_number":170,"context_line":"            # Parse the exported system configuration for the NIC"},{"line_number":171,"context_line":"            # ports that are set to PXE boot"},{"line_number":172,"context_line":"            if _SYSTEM_CONFIG_TAG in str(bios_nic_settings.__dict__):"},{"line_number":173,"context_line":"                xml_string \u003d bios_nic_settings.__dict__.get(\u0027_content\u0027)"},{"line_number":174,"context_line":"                root \u003d et.fromstring(xml_string)"},{"line_number":175,"context_line":"                for child in root:"},{"line_number":176,"context_line":"                    for ch in child:"},{"line_number":177,"context_line":"                        if ch.attrib.get(\"Name\") \u003d\u003d \"LegacyBootProto\":"},{"line_number":178,"context_line":"                            if ch.text \u003d\u003d \"PXE\":"},{"line_number":179,"context_line":"                                nic_id \u003d child.attrib.get(\u0027FQDD\u0027)"},{"line_number":180,"context_line":"                                mac_address \u003d ethernet_interfaces_mac[nic_id]"},{"line_number":181,"context_line":"                                pxe_port_macs.append(mac_address)"},{"line_number":182,"context_line":"                return pxe_port_macs"},{"line_number":183,"context_line":"            else:"},{"line_number":184,"context_line":"                error \u003d (_(\u0027Failed to get system configuration from response\u0027))"},{"line_number":185,"context_line":"                raise exception.HardwareInspectionFailure(error\u003derror)"}],"source_content_type":"text/x-python","patch_set":20,"id":"7399b6b9_dcbef50a","line":182,"range":{"start_line":148,"start_character":0,"end_line":182,"end_character":36},"updated":"2020-11-26 01:31:36.000000000","message":"Please consider moving this code into a new, friendly method in sushy-oem-idrac. That would eliminate the proposed addition of an XML dependency to ironic.","commit_id":"d88f07472b444c05d101a3417c415a54c20803e2"},{"author":{"_account_id":25726,"name":"sonali bhausaheb borkar","email":"sonaliborkar85@gmail.com","username":"sonaliborkar85"},"change_message_id":"4df0887449181cf8538b40d36fcf5e53e2021955","unresolved":false,"context_lines":[{"line_number":145,"context_line":"                    mac_address \u003d ethernet_interfaces_mac[nic_id]"},{"line_number":146,"context_line":"                    pxe_port_macs.append(mac_address)"},{"line_number":147,"context_line":"        elif system.boot.mode \u003d\u003d \u0027bios\u0027:"},{"line_number":148,"context_line":"            # When a server is in BIOS boot mode, whether or not a"},{"line_number":149,"context_line":"            # NIC port is set to PXE boot is stored on the NIC port"},{"line_number":150,"context_line":"            # itself internally to the BMC. Getting this information"},{"line_number":151,"context_line":"            # requires using an OEM extension to export the system"},{"line_number":152,"context_line":"            # configuration, as the redfish standard does not specify"},{"line_number":153,"context_line":"            # how to get it, and Dell does not have OEM redfish calls"},{"line_number":154,"context_line":"            # to selectively retrieve it at this time."},{"line_number":155,"context_line":"            # Get instance of Sushy OEM manager object"},{"line_number":156,"context_line":"            oem_manager \u003d drac_common.get_sushy_oem_manager(task.node)"},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"            # Get NIC configuration"},{"line_number":159,"context_line":"            bios_nic_settings \u003d oem_manager.export_system_configuration("},{"line_number":160,"context_line":"                target\u003d\"NIC\")"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"            if bios_nic_settings.status_code !\u003d _RESPONSE_CODE:"},{"line_number":163,"context_line":"                error \u003d (_(\u0027An error occurred when attempting to export \u0027"},{"line_number":164,"context_line":"                           \u0027the system configuration. Status code: %(code), \u0027"},{"line_number":165,"context_line":"                           \u0027Error details: %(err)\u0027),"},{"line_number":166,"context_line":"                         {\u0027code\u0027: bios_nic_settings.status_code,"},{"line_number":167,"context_line":"                          \u0027err\u0027: bios_nic_settings.__dict__})"},{"line_number":168,"context_line":"                LOG.error(error)"},{"line_number":169,"context_line":"                raise exception.HardwareInspectionFailure(error\u003derror)"},{"line_number":170,"context_line":"            # Parse the exported system configuration for the NIC"},{"line_number":171,"context_line":"            # ports that are set to PXE boot"},{"line_number":172,"context_line":"            if _SYSTEM_CONFIG_TAG in str(bios_nic_settings.__dict__):"},{"line_number":173,"context_line":"                xml_string \u003d bios_nic_settings.__dict__.get(\u0027_content\u0027)"},{"line_number":174,"context_line":"                root \u003d et.fromstring(xml_string)"},{"line_number":175,"context_line":"                for child in root:"},{"line_number":176,"context_line":"                    for ch in child:"},{"line_number":177,"context_line":"                        if ch.attrib.get(\"Name\") \u003d\u003d \"LegacyBootProto\":"},{"line_number":178,"context_line":"                            if ch.text \u003d\u003d \"PXE\":"},{"line_number":179,"context_line":"                                nic_id \u003d child.attrib.get(\u0027FQDD\u0027)"},{"line_number":180,"context_line":"                                mac_address \u003d ethernet_interfaces_mac[nic_id]"},{"line_number":181,"context_line":"                                pxe_port_macs.append(mac_address)"},{"line_number":182,"context_line":"                return pxe_port_macs"},{"line_number":183,"context_line":"            else:"},{"line_number":184,"context_line":"                error \u003d (_(\u0027Failed to get system configuration from response\u0027))"},{"line_number":185,"context_line":"                raise exception.HardwareInspectionFailure(error\u003derror)"}],"source_content_type":"text/x-python","patch_set":20,"id":"ccba3bea_48c15d2d","line":182,"range":{"start_line":148,"start_character":0,"end_line":182,"end_character":36},"in_reply_to":"7399b6b9_dcbef50a","updated":"2021-01-14 10:00:38.000000000","message":"Done","commit_id":"d88f07472b444c05d101a3417c415a54c20803e2"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"ee306eb038173f40c1bf0f132a453564b6e15527","unresolved":true,"context_lines":[{"line_number":52,"context_line":"        \"\"\"Get a list of pxe port MAC addresses."},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"        :param task: a TaskManager instance."},{"line_number":55,"context_line":"        :returns: Returns list of pxe port MAC addresses in upper case."},{"line_number":56,"context_line":"        \"\"\""},{"line_number":57,"context_line":"        system \u003d redfish_utils.get_system(task.node)"},{"line_number":58,"context_line":""}],"source_content_type":"text/x-python","patch_set":31,"id":"6583ea08_88a94175","line":55,"range":{"start_line":55,"start_character":56,"end_line":55,"end_character":71},"updated":"2021-03-17 13:15:55.000000000","message":"let\u0027s remove this - will handle MAC address case when comparing.","commit_id":"fba2bb0a07d1560d9170976e830a72d5ab90fbd1"},{"author":{"_account_id":25726,"name":"sonali bhausaheb borkar","email":"sonaliborkar85@gmail.com","username":"sonaliborkar85"},"change_message_id":"2e6236f1b139738b47ae4ff209f08c03ab82701b","unresolved":false,"context_lines":[{"line_number":52,"context_line":"        \"\"\"Get a list of pxe port MAC addresses."},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"        :param task: a TaskManager instance."},{"line_number":55,"context_line":"        :returns: Returns list of pxe port MAC addresses in upper case."},{"line_number":56,"context_line":"        \"\"\""},{"line_number":57,"context_line":"        system \u003d redfish_utils.get_system(task.node)"},{"line_number":58,"context_line":""}],"source_content_type":"text/x-python","patch_set":31,"id":"120f04e7_e43d0bb6","line":55,"range":{"start_line":55,"start_character":56,"end_line":55,"end_character":71},"in_reply_to":"6583ea08_88a94175","updated":"2021-03-19 07:39:08.000000000","message":"Done","commit_id":"fba2bb0a07d1560d9170976e830a72d5ab90fbd1"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"c3d1e6acc6a018986eaa8564d98e08e1d5080cbc","unresolved":true,"context_lines":[{"line_number":39,"context_line":""},{"line_number":40,"context_line":"METRICS \u003d metrics_utils.get_metrics_logger(__name__)"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"_pxe_params \u003d [\"PxeDev1EnDis\", \"PxeDev2EnDis\","},{"line_number":43,"context_line":"               \"PxeDev3EnDis\", \"PxeDev4EnDis\"]"},{"line_number":44,"context_line":"_pxe_nics \u003d [\"PxeDev1Interface\", \"PxeDev2Interface\","},{"line_number":45,"context_line":"             \"PxeDev3Interface\", \"PxeDev4Interface\"]"}],"source_content_type":"text/x-python","patch_set":32,"id":"3bc939fd_6acb1a13","line":42,"range":{"start_line":42,"start_character":0,"end_line":42,"end_character":11},"updated":"2021-03-20 01:01:52.000000000","message":"nit: you should use uppercase for global constants, here and below","commit_id":"a004fae33fd5cd2560c63b57b30af854ba5aed22"},{"author":{"_account_id":25726,"name":"sonali bhausaheb borkar","email":"sonaliborkar85@gmail.com","username":"sonaliborkar85"},"change_message_id":"a5e13ac148320732aef683dc13958b94a1abb7a9","unresolved":true,"context_lines":[{"line_number":39,"context_line":""},{"line_number":40,"context_line":"METRICS \u003d metrics_utils.get_metrics_logger(__name__)"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"_pxe_params \u003d [\"PxeDev1EnDis\", \"PxeDev2EnDis\","},{"line_number":43,"context_line":"               \"PxeDev3EnDis\", \"PxeDev4EnDis\"]"},{"line_number":44,"context_line":"_pxe_nics \u003d [\"PxeDev1Interface\", \"PxeDev2Interface\","},{"line_number":45,"context_line":"             \"PxeDev3Interface\", \"PxeDev4Interface\"]"}],"source_content_type":"text/x-python","patch_set":32,"id":"49dbf2b3_e7cac64e","line":42,"range":{"start_line":42,"start_character":0,"end_line":42,"end_character":11},"in_reply_to":"3bc939fd_6acb1a13","updated":"2021-03-22 08:53:45.000000000","message":"sure","commit_id":"a004fae33fd5cd2560c63b57b30af854ba5aed22"},{"author":{"_account_id":25726,"name":"sonali bhausaheb borkar","email":"sonaliborkar85@gmail.com","username":"sonaliborkar85"},"change_message_id":"fa826a838a0e51087a4d9db96c6927ac1ff7f8f8","unresolved":false,"context_lines":[{"line_number":39,"context_line":""},{"line_number":40,"context_line":"METRICS \u003d metrics_utils.get_metrics_logger(__name__)"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"_pxe_params \u003d [\"PxeDev1EnDis\", \"PxeDev2EnDis\","},{"line_number":43,"context_line":"               \"PxeDev3EnDis\", \"PxeDev4EnDis\"]"},{"line_number":44,"context_line":"_pxe_nics \u003d [\"PxeDev1Interface\", \"PxeDev2Interface\","},{"line_number":45,"context_line":"             \"PxeDev3Interface\", \"PxeDev4Interface\"]"}],"source_content_type":"text/x-python","patch_set":32,"id":"92040f99_58218e19","line":42,"range":{"start_line":42,"start_character":0,"end_line":42,"end_character":11},"in_reply_to":"49dbf2b3_e7cac64e","updated":"2021-03-22 11:44:17.000000000","message":"Done","commit_id":"a004fae33fd5cd2560c63b57b30af854ba5aed22"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"f0247f8fb6c3ab15d5ffd5396a1596f9ef0a2b95","unresolved":true,"context_lines":[{"line_number":79,"context_line":"                        \"were discovered for node %(node)s: %(mac_data)s\","},{"line_number":80,"context_line":"                        {\u0027mac_data\u0027: ethernet_interfaces_mac,"},{"line_number":81,"context_line":"                         \u0027node\u0027: task.node.uuid})"},{"line_number":82,"context_line":"        super(DracRedfishInspect, self).inspect_hardware(task)"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"        return states.MANAGEABLE"},{"line_number":85,"context_line":""}],"source_content_type":"text/x-python","patch_set":32,"id":"4bd6a7d5_ee161a14","line":82,"updated":"2021-03-19 13:18:00.000000000","message":"`return super(...)` instead of explicit return below","commit_id":"a004fae33fd5cd2560c63b57b30af854ba5aed22"},{"author":{"_account_id":25726,"name":"sonali bhausaheb borkar","email":"sonaliborkar85@gmail.com","username":"sonaliborkar85"},"change_message_id":"fa826a838a0e51087a4d9db96c6927ac1ff7f8f8","unresolved":false,"context_lines":[{"line_number":79,"context_line":"                        \"were discovered for node %(node)s: %(mac_data)s\","},{"line_number":80,"context_line":"                        {\u0027mac_data\u0027: ethernet_interfaces_mac,"},{"line_number":81,"context_line":"                         \u0027node\u0027: task.node.uuid})"},{"line_number":82,"context_line":"        super(DracRedfishInspect, self).inspect_hardware(task)"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"        return states.MANAGEABLE"},{"line_number":85,"context_line":""}],"source_content_type":"text/x-python","patch_set":32,"id":"35e324fc_2fddb40f","line":82,"in_reply_to":"4bd6a7d5_ee161a14","updated":"2021-03-22 11:44:17.000000000","message":"Done","commit_id":"a004fae33fd5cd2560c63b57b30af854ba5aed22"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"c3d1e6acc6a018986eaa8564d98e08e1d5080cbc","unresolved":true,"context_lines":[{"line_number":91,"context_line":"        \"\"\""},{"line_number":92,"context_line":"        system \u003d redfish_utils.get_system(task.node)"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"        pxe_port_macs \u003d []"},{"line_number":95,"context_line":"        # Get dictionary of ethernet interfaces"},{"line_number":96,"context_line":"        ethernet_interfaces \u003d system.ethernet_interfaces.get_members()"},{"line_number":97,"context_line":"        ethernet_interfaces_mac \u003d {"}],"source_content_type":"text/x-python","patch_set":32,"id":"709dd6e7_3d69a659","line":94,"range":{"start_line":94,"start_character":8,"end_line":94,"end_character":26},"updated":"2021-03-20 01:01:52.000000000","message":"you can move this down","commit_id":"a004fae33fd5cd2560c63b57b30af854ba5aed22"},{"author":{"_account_id":25726,"name":"sonali bhausaheb borkar","email":"sonaliborkar85@gmail.com","username":"sonaliborkar85"},"change_message_id":"fa826a838a0e51087a4d9db96c6927ac1ff7f8f8","unresolved":true,"context_lines":[{"line_number":91,"context_line":"        \"\"\""},{"line_number":92,"context_line":"        system \u003d redfish_utils.get_system(task.node)"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"        pxe_port_macs \u003d []"},{"line_number":95,"context_line":"        # Get dictionary of ethernet interfaces"},{"line_number":96,"context_line":"        ethernet_interfaces \u003d system.ethernet_interfaces.get_members()"},{"line_number":97,"context_line":"        ethernet_interfaces_mac \u003d {"}],"source_content_type":"text/x-python","patch_set":32,"id":"ab25e90b_f8fa56a1","line":94,"range":{"start_line":94,"start_character":8,"end_line":94,"end_character":26},"in_reply_to":"709dd6e7_3d69a659","updated":"2021-03-22 11:44:17.000000000","message":"Thanks for review .\nWill discuss with team and will get back to you","commit_id":"a004fae33fd5cd2560c63b57b30af854ba5aed22"},{"author":{"_account_id":25726,"name":"sonali bhausaheb borkar","email":"sonaliborkar85@gmail.com","username":"sonaliborkar85"},"change_message_id":"007f8d145990e308b2001501e5bd358963b1260f","unresolved":true,"context_lines":[{"line_number":91,"context_line":"        \"\"\""},{"line_number":92,"context_line":"        system \u003d redfish_utils.get_system(task.node)"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"        pxe_port_macs \u003d []"},{"line_number":95,"context_line":"        # Get dictionary of ethernet interfaces"},{"line_number":96,"context_line":"        ethernet_interfaces \u003d system.ethernet_interfaces.get_members()"},{"line_number":97,"context_line":"        ethernet_interfaces_mac \u003d {"}],"source_content_type":"text/x-python","patch_set":32,"id":"fed52070_0edfaf22","line":94,"range":{"start_line":94,"start_character":8,"end_line":94,"end_character":26},"in_reply_to":"ab25e90b_f8fa56a1","updated":"2021-03-24 13:32:36.000000000","message":"Thanks Riccardo for this suggestion .\nWill be implementing new get_mac_address function to have this common code","commit_id":"a004fae33fd5cd2560c63b57b30af854ba5aed22"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"c3d1e6acc6a018986eaa8564d98e08e1d5080cbc","unresolved":true,"context_lines":[{"line_number":89,"context_line":"        :param task: a TaskManager instance."},{"line_number":90,"context_line":"        :returns: Returns list of PXE port MAC addresses."},{"line_number":91,"context_line":"        \"\"\""},{"line_number":92,"context_line":"        system \u003d redfish_utils.get_system(task.node)"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"        pxe_port_macs \u003d []"},{"line_number":95,"context_line":"        # Get dictionary of ethernet interfaces"},{"line_number":96,"context_line":"        ethernet_interfaces \u003d system.ethernet_interfaces.get_members()"},{"line_number":97,"context_line":"        ethernet_interfaces_mac \u003d {"},{"line_number":98,"context_line":"            interface.identity: interface.mac_address"},{"line_number":99,"context_line":"            for interface in ethernet_interfaces}"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"        if system.boot.mode \u003d\u003d boot_modes.UEFI:"},{"line_number":102,"context_line":"            # When a server is in UEFI boot mode, the PXE NIC ports are"}],"source_content_type":"text/x-python","patch_set":32,"id":"fd79354c_7c6ee9f1","line":99,"range":{"start_line":92,"start_character":0,"end_line":99,"end_character":49},"updated":"2021-03-20 01:01:52.000000000","message":"see duplicated code here with L69-72, maybe can be in a common function ?","commit_id":"a004fae33fd5cd2560c63b57b30af854ba5aed22"},{"author":{"_account_id":25726,"name":"sonali bhausaheb borkar","email":"sonaliborkar85@gmail.com","username":"sonaliborkar85"},"change_message_id":"007f8d145990e308b2001501e5bd358963b1260f","unresolved":false,"context_lines":[{"line_number":89,"context_line":"        :param task: a TaskManager instance."},{"line_number":90,"context_line":"        :returns: Returns list of PXE port MAC addresses."},{"line_number":91,"context_line":"        \"\"\""},{"line_number":92,"context_line":"        system \u003d redfish_utils.get_system(task.node)"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"        pxe_port_macs \u003d []"},{"line_number":95,"context_line":"        # Get dictionary of ethernet interfaces"},{"line_number":96,"context_line":"        ethernet_interfaces \u003d system.ethernet_interfaces.get_members()"},{"line_number":97,"context_line":"        ethernet_interfaces_mac \u003d {"},{"line_number":98,"context_line":"            interface.identity: interface.mac_address"},{"line_number":99,"context_line":"            for interface in ethernet_interfaces}"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"        if system.boot.mode \u003d\u003d boot_modes.UEFI:"},{"line_number":102,"context_line":"            # When a server is in UEFI boot mode, the PXE NIC ports are"}],"source_content_type":"text/x-python","patch_set":32,"id":"b6ecb229_18d3bad6","line":99,"range":{"start_line":92,"start_character":0,"end_line":99,"end_character":49},"in_reply_to":"c0f4c316_394e635a","updated":"2021-03-24 13:32:36.000000000","message":"Done","commit_id":"a004fae33fd5cd2560c63b57b30af854ba5aed22"},{"author":{"_account_id":25726,"name":"sonali bhausaheb borkar","email":"sonaliborkar85@gmail.com","username":"sonaliborkar85"},"change_message_id":"a5e13ac148320732aef683dc13958b94a1abb7a9","unresolved":true,"context_lines":[{"line_number":89,"context_line":"        :param task: a TaskManager instance."},{"line_number":90,"context_line":"        :returns: Returns list of PXE port MAC addresses."},{"line_number":91,"context_line":"        \"\"\""},{"line_number":92,"context_line":"        system \u003d redfish_utils.get_system(task.node)"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"        pxe_port_macs \u003d []"},{"line_number":95,"context_line":"        # Get dictionary of ethernet interfaces"},{"line_number":96,"context_line":"        ethernet_interfaces \u003d system.ethernet_interfaces.get_members()"},{"line_number":97,"context_line":"        ethernet_interfaces_mac \u003d {"},{"line_number":98,"context_line":"            interface.identity: interface.mac_address"},{"line_number":99,"context_line":"            for interface in ethernet_interfaces}"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"        if system.boot.mode \u003d\u003d boot_modes.UEFI:"},{"line_number":102,"context_line":"            # When a server is in UEFI boot mode, the PXE NIC ports are"}],"source_content_type":"text/x-python","patch_set":32,"id":"c0f4c316_394e635a","line":99,"range":{"start_line":92,"start_character":0,"end_line":99,"end_character":49},"in_reply_to":"fd79354c_7c6ee9f1","updated":"2021-03-22 08:53:45.000000000","message":"Hi Riccardo ,\nThough line L69-72 are duplicated but they serve different purpose so solve creation ports for nics ..\nand here we want to keep that logic with inspect_hardware specific .\n\nWill discuss with team and will get back to you .","commit_id":"a004fae33fd5cd2560c63b57b30af854ba5aed22"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"c3d1e6acc6a018986eaa8564d98e08e1d5080cbc","unresolved":true,"context_lines":[{"line_number":104,"context_line":"            # settings. Get the PXE NIC ports from these settings and"},{"line_number":105,"context_line":"            # their MAC addresses."},{"line_number":106,"context_line":"            for param, nic in zip(_pxe_params, _pxe_nics):"},{"line_number":107,"context_line":"                if system.bios.attributes[param] \u003d\u003d \\"},{"line_number":108,"context_line":"                        _system_bios_attribute_enabled_value:"},{"line_number":109,"context_line":"                    nic_id \u003d system.bios.attributes[nic]"},{"line_number":110,"context_line":"                    # Get MAC address of the given nic_id"},{"line_number":111,"context_line":"                    mac_address \u003d ethernet_interfaces_mac[nic_id]"}],"source_content_type":"text/x-python","patch_set":32,"id":"01f2e764_3fc4091e","line":108,"range":{"start_line":107,"start_character":16,"end_line":108,"end_character":61},"updated":"2021-03-20 01:01:52.000000000","message":"we usually don\u0027t split lines this way, or maybe you can reduce the length of the constant name? Not even sure you need a constant for this as it looks like a single word, unless you plan to reuse it in other places in the same module.","commit_id":"a004fae33fd5cd2560c63b57b30af854ba5aed22"},{"author":{"_account_id":25726,"name":"sonali bhausaheb borkar","email":"sonaliborkar85@gmail.com","username":"sonaliborkar85"},"change_message_id":"007f8d145990e308b2001501e5bd358963b1260f","unresolved":true,"context_lines":[{"line_number":104,"context_line":"            # settings. Get the PXE NIC ports from these settings and"},{"line_number":105,"context_line":"            # their MAC addresses."},{"line_number":106,"context_line":"            for param, nic in zip(_pxe_params, _pxe_nics):"},{"line_number":107,"context_line":"                if system.bios.attributes[param] \u003d\u003d \\"},{"line_number":108,"context_line":"                        _system_bios_attribute_enabled_value:"},{"line_number":109,"context_line":"                    nic_id \u003d system.bios.attributes[nic]"},{"line_number":110,"context_line":"                    # Get MAC address of the given nic_id"},{"line_number":111,"context_line":"                    mac_address \u003d ethernet_interfaces_mac[nic_id]"}],"source_content_type":"text/x-python","patch_set":32,"id":"6eeba4a2_342daa13","line":108,"range":{"start_line":107,"start_character":16,"end_line":108,"end_character":61},"in_reply_to":"01f2e764_3fc4091e","updated":"2021-03-24 13:32:36.000000000","message":"yeah sure will change variable name to _bios_enabled_value in upper case","commit_id":"a004fae33fd5cd2560c63b57b30af854ba5aed22"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"91d056aca4dc06b3e0b730d27ea090f293d1084b","unresolved":true,"context_lines":[{"line_number":39,"context_line":""},{"line_number":40,"context_line":"METRICS \u003d metrics_utils.get_metrics_logger(__name__)"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"_PXE_PARAMS \u003d [\"PxeDev1EnDis\", \"PxeDev2EnDis\","},{"line_number":43,"context_line":"               \"PxeDev3EnDis\", \"PxeDev4EnDis\"]"},{"line_number":44,"context_line":"_PXE_NICS \u003d [\"PxeDev1Interface\", \"PxeDev2Interface\","},{"line_number":45,"context_line":"             \"PxeDev3Interface\", \"PxeDev4Interface\"]"}],"source_content_type":"text/x-python","patch_set":33,"id":"8496ead6_abb1b187","line":42,"updated":"2021-03-22 13:02:25.000000000","message":"pair _PXE_PARAMS and _PXE_NICS to avoid `zip` later as these are not used otherwise - \n\n[(\"PxeDev1EnDis\", \"PxeDev1Interface\"), (...)]\n\nname could be:\n_PXE_DEV_ENABLED_INTERFACES","commit_id":"ece1f2bf09da8fcef39f1662aa4e42b5abfa4dae"},{"author":{"_account_id":25726,"name":"sonali bhausaheb borkar","email":"sonaliborkar85@gmail.com","username":"sonaliborkar85"},"change_message_id":"007f8d145990e308b2001501e5bd358963b1260f","unresolved":false,"context_lines":[{"line_number":39,"context_line":""},{"line_number":40,"context_line":"METRICS \u003d metrics_utils.get_metrics_logger(__name__)"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"_PXE_PARAMS \u003d [\"PxeDev1EnDis\", \"PxeDev2EnDis\","},{"line_number":43,"context_line":"               \"PxeDev3EnDis\", \"PxeDev4EnDis\"]"},{"line_number":44,"context_line":"_PXE_NICS \u003d [\"PxeDev1Interface\", \"PxeDev2Interface\","},{"line_number":45,"context_line":"             \"PxeDev3Interface\", \"PxeDev4Interface\"]"}],"source_content_type":"text/x-python","patch_set":33,"id":"a0d9c783_1fe0a267","line":42,"in_reply_to":"8352cf38_84f24267","updated":"2021-03-24 13:32:36.000000000","message":"Done","commit_id":"ece1f2bf09da8fcef39f1662aa4e42b5abfa4dae"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"96d710135c58eb17b2ac7c18041123f04e732776","unresolved":true,"context_lines":[{"line_number":39,"context_line":""},{"line_number":40,"context_line":"METRICS \u003d metrics_utils.get_metrics_logger(__name__)"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"_PXE_PARAMS \u003d [\"PxeDev1EnDis\", \"PxeDev2EnDis\","},{"line_number":43,"context_line":"               \"PxeDev3EnDis\", \"PxeDev4EnDis\"]"},{"line_number":44,"context_line":"_PXE_NICS \u003d [\"PxeDev1Interface\", \"PxeDev2Interface\","},{"line_number":45,"context_line":"             \"PxeDev3Interface\", \"PxeDev4Interface\"]"}],"source_content_type":"text/x-python","patch_set":33,"id":"8352cf38_84f24267","line":42,"in_reply_to":"8496ead6_abb1b187","updated":"2021-03-22 20:30:39.000000000","message":"Or a dictionary, any sort of combined structure would be good.","commit_id":"ece1f2bf09da8fcef39f1662aa4e42b5abfa4dae"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"91d056aca4dc06b3e0b730d27ea090f293d1084b","unresolved":true,"context_lines":[{"line_number":69,"context_line":"        system \u003d redfish_utils.get_system(task.node)"},{"line_number":70,"context_line":"        # Get dictionary of ethernet interfaces"},{"line_number":71,"context_line":"        ethernet_interfaces \u003d system.ethernet_interfaces.get_members()"},{"line_number":72,"context_line":"        ethernet_interfaces_mac \u003d {interface.mac_address: interface.identity"},{"line_number":73,"context_line":"                                   for interface in ethernet_interfaces}"},{"line_number":74,"context_line":"        if ethernet_interfaces_mac:"},{"line_number":75,"context_line":"            inspect_utils.create_ports_if_not_exist("}],"source_content_type":"text/x-python","patch_set":33,"id":"9ec09f19_4afc13ce","line":72,"range":{"start_line":72,"start_character":35,"end_line":72,"end_character":76},"updated":"2021-03-22 13:02:25.000000000","message":"let\u0027s make it:\n\n  interface.identity: interface.mac_address\n\nto match with line 98\n\nand then on line 76 don\u0027t override get_mac_address param as mac will be x[1] in create_ports_if_not_exist","commit_id":"ece1f2bf09da8fcef39f1662aa4e42b5abfa4dae"},{"author":{"_account_id":25726,"name":"sonali bhausaheb borkar","email":"sonaliborkar85@gmail.com","username":"sonaliborkar85"},"change_message_id":"007f8d145990e308b2001501e5bd358963b1260f","unresolved":false,"context_lines":[{"line_number":69,"context_line":"        system \u003d redfish_utils.get_system(task.node)"},{"line_number":70,"context_line":"        # Get dictionary of ethernet interfaces"},{"line_number":71,"context_line":"        ethernet_interfaces \u003d system.ethernet_interfaces.get_members()"},{"line_number":72,"context_line":"        ethernet_interfaces_mac \u003d {interface.mac_address: interface.identity"},{"line_number":73,"context_line":"                                   for interface in ethernet_interfaces}"},{"line_number":74,"context_line":"        if ethernet_interfaces_mac:"},{"line_number":75,"context_line":"            inspect_utils.create_ports_if_not_exist("}],"source_content_type":"text/x-python","patch_set":33,"id":"e92763af_3882809d","line":72,"range":{"start_line":72,"start_character":35,"end_line":72,"end_character":76},"in_reply_to":"9ec09f19_4afc13ce","updated":"2021-03-24 13:32:36.000000000","message":"Done","commit_id":"ece1f2bf09da8fcef39f1662aa4e42b5abfa4dae"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"96d710135c58eb17b2ac7c18041123f04e732776","unresolved":true,"context_lines":[{"line_number":71,"context_line":"        ethernet_interfaces \u003d system.ethernet_interfaces.get_members()"},{"line_number":72,"context_line":"        ethernet_interfaces_mac \u003d {interface.mac_address: interface.identity"},{"line_number":73,"context_line":"                                   for interface in ethernet_interfaces}"},{"line_number":74,"context_line":"        if ethernet_interfaces_mac:"},{"line_number":75,"context_line":"            inspect_utils.create_ports_if_not_exist("},{"line_number":76,"context_line":"                task, ethernet_interfaces_mac, get_mac_address\u003dlambda x: x[0])"},{"line_number":77,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":33,"id":"22db6b09_2f3814c6","line":74,"range":{"start_line":74,"start_character":8,"end_line":74,"end_character":35},"updated":"2021-03-22 20:30:39.000000000","message":"This will always be true as your setting up the dictionary above to hae contents. The only way it would be false I think is if it ends up being a dictionary like {None: None}  I guess that may be okay, but I\u0027d prefer a little more logic here.","commit_id":"ece1f2bf09da8fcef39f1662aa4e42b5abfa4dae"},{"author":{"_account_id":25726,"name":"sonali bhausaheb borkar","email":"sonaliborkar85@gmail.com","username":"sonaliborkar85"},"change_message_id":"007f8d145990e308b2001501e5bd358963b1260f","unresolved":true,"context_lines":[{"line_number":71,"context_line":"        ethernet_interfaces \u003d system.ethernet_interfaces.get_members()"},{"line_number":72,"context_line":"        ethernet_interfaces_mac \u003d {interface.mac_address: interface.identity"},{"line_number":73,"context_line":"                                   for interface in ethernet_interfaces}"},{"line_number":74,"context_line":"        if ethernet_interfaces_mac:"},{"line_number":75,"context_line":"            inspect_utils.create_ports_if_not_exist("},{"line_number":76,"context_line":"                task, ethernet_interfaces_mac, get_mac_address\u003dlambda x: x[0])"},{"line_number":77,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":33,"id":"ffa61de3_c94fd53f","line":74,"range":{"start_line":74,"start_character":8,"end_line":74,"end_character":35},"in_reply_to":"22db6b09_2f3814c6","updated":"2021-03-24 13:32:36.000000000","message":"create_ports_if_not_exist function will handle the case which you have suggested .","commit_id":"ece1f2bf09da8fcef39f1662aa4e42b5abfa4dae"},{"author":{"_account_id":25726,"name":"sonali bhausaheb borkar","email":"sonaliborkar85@gmail.com","username":"sonaliborkar85"},"change_message_id":"a1e74cd4c139d2495ea8e90395d8bf196a205995","unresolved":true,"context_lines":[{"line_number":71,"context_line":"        ethernet_interfaces \u003d system.ethernet_interfaces.get_members()"},{"line_number":72,"context_line":"        ethernet_interfaces_mac \u003d {interface.mac_address: interface.identity"},{"line_number":73,"context_line":"                                   for interface in ethernet_interfaces}"},{"line_number":74,"context_line":"        if ethernet_interfaces_mac:"},{"line_number":75,"context_line":"            inspect_utils.create_ports_if_not_exist("},{"line_number":76,"context_line":"                task, ethernet_interfaces_mac, get_mac_address\u003dlambda x: x[0])"},{"line_number":77,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":33,"id":"90f7dbb8_c028bed2","line":74,"range":{"start_line":74,"start_character":8,"end_line":74,"end_character":35},"in_reply_to":"f820f656_39eb2661","updated":"2021-03-25 10:19:27.000000000","message":"thanks for raising this valuable concern here .\nWill be removing if-else conditions here because there will be message logged in redfish driver if there are no ethernet interfaces.","commit_id":"ece1f2bf09da8fcef39f1662aa4e42b5abfa4dae"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"ad10278b8b0b6764f289062faf2d2999212d7164","unresolved":true,"context_lines":[{"line_number":71,"context_line":"        ethernet_interfaces \u003d system.ethernet_interfaces.get_members()"},{"line_number":72,"context_line":"        ethernet_interfaces_mac \u003d {interface.mac_address: interface.identity"},{"line_number":73,"context_line":"                                   for interface in ethernet_interfaces}"},{"line_number":74,"context_line":"        if ethernet_interfaces_mac:"},{"line_number":75,"context_line":"            inspect_utils.create_ports_if_not_exist("},{"line_number":76,"context_line":"                task, ethernet_interfaces_mac, get_mac_address\u003dlambda x: x[0])"},{"line_number":77,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":33,"id":"f820f656_39eb2661","line":74,"range":{"start_line":74,"start_character":8,"end_line":74,"end_character":35},"in_reply_to":"ffa61de3_c94fd53f","updated":"2021-03-24 15:49:41.000000000","message":"Yes, except I don\u0027t think you understand what I\u0027m trying to communicate. The if statement you\u0027ve put here is moderately redundant. The odds of ever hitting false is low and thus the warning being triggered is low. That is all, not the method being called if there is a list of port data returned.","commit_id":"ece1f2bf09da8fcef39f1662aa4e42b5abfa4dae"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"96d710135c58eb17b2ac7c18041123f04e732776","unresolved":true,"context_lines":[{"line_number":77,"context_line":"        else:"},{"line_number":78,"context_line":"            LOG.warning(\"Not attempting to create any port as no NICs \""},{"line_number":79,"context_line":"                        \"were discovered for node %(node)s: %(mac_data)s\","},{"line_number":80,"context_line":"                        {\u0027mac_data\u0027: ethernet_interfaces_mac,"},{"line_number":81,"context_line":"                         \u0027node\u0027: task.node.uuid})"},{"line_number":82,"context_line":"        return super(DracRedfishInspect, self).inspect_hardware(task)"},{"line_number":83,"context_line":""}],"source_content_type":"text/x-python","patch_set":33,"id":"51dfde51_70b2109a","line":80,"range":{"start_line":80,"start_character":38,"end_line":80,"end_character":61},"updated":"2021-03-22 20:30:39.000000000","message":"I\u0027m not sure we should be logging raw data. Maybe in debug?\n\nMaybe instead, maybe log the length of elements? Just an idea, but that could correspond to line 74 which is a little weird as well.","commit_id":"ece1f2bf09da8fcef39f1662aa4e42b5abfa4dae"},{"author":{"_account_id":25726,"name":"sonali bhausaheb borkar","email":"sonaliborkar85@gmail.com","username":"sonaliborkar85"},"change_message_id":"007f8d145990e308b2001501e5bd358963b1260f","unresolved":true,"context_lines":[{"line_number":77,"context_line":"        else:"},{"line_number":78,"context_line":"            LOG.warning(\"Not attempting to create any port as no NICs \""},{"line_number":79,"context_line":"                        \"were discovered for node %(node)s: %(mac_data)s\","},{"line_number":80,"context_line":"                        {\u0027mac_data\u0027: ethernet_interfaces_mac,"},{"line_number":81,"context_line":"                         \u0027node\u0027: task.node.uuid})"},{"line_number":82,"context_line":"        return super(DracRedfishInspect, self).inspect_hardware(task)"},{"line_number":83,"context_line":""}],"source_content_type":"text/x-python","patch_set":33,"id":"7d3232ec_1bd89734","line":80,"range":{"start_line":80,"start_character":38,"end_line":80,"end_character":61},"in_reply_to":"51dfde51_70b2109a","updated":"2021-03-24 13:32:36.000000000","message":"yes your right here .\nWill remove ethernet_interfaces_mac from warning message .","commit_id":"ece1f2bf09da8fcef39f1662aa4e42b5abfa4dae"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"96d710135c58eb17b2ac7c18041123f04e732776","unresolved":true,"context_lines":[{"line_number":101,"context_line":"            # stored in the PxeDevXEnDis and PxeDevXInterface BIOS"},{"line_number":102,"context_line":"            # settings. Get the PXE NIC ports from these settings and"},{"line_number":103,"context_line":"            # their MAC addresses."},{"line_number":104,"context_line":"            for param, nic in zip(_PXE_PARAMS, _PXE_NICS):"},{"line_number":105,"context_line":"                if system.bios.attributes[param] \u003d\u003d \\"},{"line_number":106,"context_line":"                        _SYSTEM_BIOS_ATTRIBUTE_ENABLED_VALUE:"},{"line_number":107,"context_line":"                    nic_id \u003d system.bios.attributes[nic]"}],"source_content_type":"text/x-python","patch_set":33,"id":"f44a300e_e816f0b6","line":104,"range":{"start_line":104,"start_character":0,"end_line":104,"end_character":58},"updated":"2021-03-22 20:30:39.000000000","message":"I would just pre-construct a dictionary or tuple, or some sort of key/value pair object to sort through.","commit_id":"ece1f2bf09da8fcef39f1662aa4e42b5abfa4dae"},{"author":{"_account_id":25726,"name":"sonali bhausaheb borkar","email":"sonaliborkar85@gmail.com","username":"sonaliborkar85"},"change_message_id":"007f8d145990e308b2001501e5bd358963b1260f","unresolved":false,"context_lines":[{"line_number":101,"context_line":"            # stored in the PxeDevXEnDis and PxeDevXInterface BIOS"},{"line_number":102,"context_line":"            # settings. Get the PXE NIC ports from these settings and"},{"line_number":103,"context_line":"            # their MAC addresses."},{"line_number":104,"context_line":"            for param, nic in zip(_PXE_PARAMS, _PXE_NICS):"},{"line_number":105,"context_line":"                if system.bios.attributes[param] \u003d\u003d \\"},{"line_number":106,"context_line":"                        _SYSTEM_BIOS_ATTRIBUTE_ENABLED_VALUE:"},{"line_number":107,"context_line":"                    nic_id \u003d system.bios.attributes[nic]"}],"source_content_type":"text/x-python","patch_set":33,"id":"7ec3bac1_f42af781","line":104,"range":{"start_line":104,"start_character":0,"end_line":104,"end_character":58},"in_reply_to":"f44a300e_e816f0b6","updated":"2021-03-24 13:32:36.000000000","message":"Done","commit_id":"ece1f2bf09da8fcef39f1662aa4e42b5abfa4dae"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"96d710135c58eb17b2ac7c18041123f04e732776","unresolved":true,"context_lines":[{"line_number":118,"context_line":"            # to selectively retrieve it at this time."},{"line_number":119,"context_line":"            # Get instance of Sushy OEM manager object"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"            for manager in system.managers:"},{"line_number":122,"context_line":"                try:"},{"line_number":123,"context_line":"                    # Get instance of Sushy OEM manager object"},{"line_number":124,"context_line":"                    oem_manager \u003d manager.get_oem_extension(\u0027Dell\u0027)"},{"line_number":125,"context_line":"                except sushy.exceptions.OEMExtensionNotFoundError as e:"},{"line_number":126,"context_line":"                    error_msg \u003d (_(\"Search for Sushy OEM extension package \""},{"line_number":127,"context_line":"                                   \"\u0027sushy-oem-idrac\u0027 failed for node \""},{"line_number":128,"context_line":"                                   \"%(node)s. Ensure it\u0027s installed. \""},{"line_number":129,"context_line":"                                   \" Error: %(error)s\") %"},{"line_number":130,"context_line":"                                 {\u0027node\u0027: task.node.uuid, \u0027error\u0027: e})"},{"line_number":131,"context_line":"                    LOG.error(error_msg)"},{"line_number":132,"context_line":"                    raise exception.RedfishError(error\u003derror_msg)"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"                try:"},{"line_number":135,"context_line":"                    pxe_port_macs_list \u003d oem_manager.get_pxe_port_macs_bios("},{"line_number":136,"context_line":"                        ethernet_interfaces_mac)"},{"line_number":137,"context_line":"                    pxe_port_macs \u003d [mac for mac in pxe_port_macs_list]"},{"line_number":138,"context_line":"                    return pxe_port_macs"},{"line_number":139,"context_line":"                except sushy.exceptions.OEMExtensionNotFoundError as e:"},{"line_number":140,"context_line":"                    error_msg \u003d (_(\"Search for Sushy OEM extension package \""},{"line_number":141,"context_line":"                                   \"\u0027sushy-oem-idrac\u0027 failed for node \""},{"line_number":142,"context_line":"                                   \" %(node)s. Ensure it is installed. \""},{"line_number":143,"context_line":"                                   \"Error: %(error)s\") %"},{"line_number":144,"context_line":"                                 {\u0027node\u0027: task.node.uuid, \u0027error\u0027: e})"},{"line_number":145,"context_line":"                    LOG.debug(error_msg)"},{"line_number":146,"context_line":"                    continue"},{"line_number":147,"context_line":"                LOG.info(\"Get pxe port MAC addresses for  %(node)s via OEM\","},{"line_number":148,"context_line":"                         {\u0027node\u0027: task.node.uuid})"},{"line_number":149,"context_line":"                break"},{"line_number":150,"context_line":"            else:"},{"line_number":151,"context_line":"                error_msg \u003d (_(\u0027iDRAC Redfish Get pxe port MAC addresse \u0027"},{"line_number":152,"context_line":"                               \u0027failed for node %(node)s, because system \u0027"},{"line_number":153,"context_line":"                               \u0027%(system)s has no \u0027"},{"line_number":154,"context_line":"                               \u0027manager%(no_manager)s.\u0027) %"},{"line_number":155,"context_line":"                             {\u0027node\u0027: task.node.uuid,"},{"line_number":156,"context_line":"                              \u0027system\u0027: system.uuid if system.uuid else"},{"line_number":157,"context_line":"                              system.identity,"},{"line_number":158,"context_line":"                              \u0027no_manager\u0027: \u0027\u0027 if not system.managers else"},{"line_number":159,"context_line":"                              \u0027 which could\u0027})"},{"line_number":160,"context_line":"                LOG.error(error_msg)"},{"line_number":161,"context_line":"                raise exception.RedfishError(error\u003derror_msg)"},{"line_number":162,"context_line":"        return pxe_port_macs"},{"line_number":163,"context_line":""}],"source_content_type":"text/x-python","patch_set":33,"id":"1a6c823a_f38aad47","line":160,"range":{"start_line":121,"start_character":0,"end_line":160,"end_character":36},"updated":"2021-03-22 20:30:39.000000000","message":"Not a now request: I keep seeing this basic repeating pattern in Dell patches. Next cycle, I\u0027d really appreciate if we were to de-duplicate the loader loader repetition, possibly with a helper that just calls another method back or something. In part because it seem like 40 lines of code for 3 important lines of code directly pertinent to the task at hand. I get customized error messages, but a pre-canned action type can be passed in as well as an argument.","commit_id":"ece1f2bf09da8fcef39f1662aa4e42b5abfa4dae"},{"author":{"_account_id":25726,"name":"sonali bhausaheb borkar","email":"sonaliborkar85@gmail.com","username":"sonaliborkar85"},"change_message_id":"9070ad7a3b87cb0d97120241398eead386b2739c","unresolved":true,"context_lines":[{"line_number":118,"context_line":"            # to selectively retrieve it at this time."},{"line_number":119,"context_line":"            # Get instance of Sushy OEM manager object"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"            for manager in system.managers:"},{"line_number":122,"context_line":"                try:"},{"line_number":123,"context_line":"                    # Get instance of Sushy OEM manager object"},{"line_number":124,"context_line":"                    oem_manager \u003d manager.get_oem_extension(\u0027Dell\u0027)"},{"line_number":125,"context_line":"                except sushy.exceptions.OEMExtensionNotFoundError as e:"},{"line_number":126,"context_line":"                    error_msg \u003d (_(\"Search for Sushy OEM extension package \""},{"line_number":127,"context_line":"                                   \"\u0027sushy-oem-idrac\u0027 failed for node \""},{"line_number":128,"context_line":"                                   \"%(node)s. Ensure it\u0027s installed. \""},{"line_number":129,"context_line":"                                   \" Error: %(error)s\") %"},{"line_number":130,"context_line":"                                 {\u0027node\u0027: task.node.uuid, \u0027error\u0027: e})"},{"line_number":131,"context_line":"                    LOG.error(error_msg)"},{"line_number":132,"context_line":"                    raise exception.RedfishError(error\u003derror_msg)"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"                try:"},{"line_number":135,"context_line":"                    pxe_port_macs_list \u003d oem_manager.get_pxe_port_macs_bios("},{"line_number":136,"context_line":"                        ethernet_interfaces_mac)"},{"line_number":137,"context_line":"                    pxe_port_macs \u003d [mac for mac in pxe_port_macs_list]"},{"line_number":138,"context_line":"                    return pxe_port_macs"},{"line_number":139,"context_line":"                except sushy.exceptions.OEMExtensionNotFoundError as e:"},{"line_number":140,"context_line":"                    error_msg \u003d (_(\"Search for Sushy OEM extension package \""},{"line_number":141,"context_line":"                                   \"\u0027sushy-oem-idrac\u0027 failed for node \""},{"line_number":142,"context_line":"                                   \" %(node)s. Ensure it is installed. \""},{"line_number":143,"context_line":"                                   \"Error: %(error)s\") %"},{"line_number":144,"context_line":"                                 {\u0027node\u0027: task.node.uuid, \u0027error\u0027: e})"},{"line_number":145,"context_line":"                    LOG.debug(error_msg)"},{"line_number":146,"context_line":"                    continue"},{"line_number":147,"context_line":"                LOG.info(\"Get pxe port MAC addresses for  %(node)s via OEM\","},{"line_number":148,"context_line":"                         {\u0027node\u0027: task.node.uuid})"},{"line_number":149,"context_line":"                break"},{"line_number":150,"context_line":"            else:"},{"line_number":151,"context_line":"                error_msg \u003d (_(\u0027iDRAC Redfish Get pxe port MAC addresse \u0027"},{"line_number":152,"context_line":"                               \u0027failed for node %(node)s, because system \u0027"},{"line_number":153,"context_line":"                               \u0027%(system)s has no \u0027"},{"line_number":154,"context_line":"                               \u0027manager%(no_manager)s.\u0027) %"},{"line_number":155,"context_line":"                             {\u0027node\u0027: task.node.uuid,"},{"line_number":156,"context_line":"                              \u0027system\u0027: system.uuid if system.uuid else"},{"line_number":157,"context_line":"                              system.identity,"},{"line_number":158,"context_line":"                              \u0027no_manager\u0027: \u0027\u0027 if not system.managers else"},{"line_number":159,"context_line":"                              \u0027 which could\u0027})"},{"line_number":160,"context_line":"                LOG.error(error_msg)"},{"line_number":161,"context_line":"                raise exception.RedfishError(error\u003derror_msg)"},{"line_number":162,"context_line":"        return pxe_port_macs"},{"line_number":163,"context_line":""}],"source_content_type":"text/x-python","patch_set":33,"id":"6a535004_3be97ae4","line":160,"range":{"start_line":121,"start_character":0,"end_line":160,"end_character":36},"in_reply_to":"1a6c823a_f38aad47","updated":"2021-03-24 13:34:51.000000000","message":"we will take a look at this separately. Need to investigate what can be reused across other patches and why need to iterate through managers. Currently, it\u0027s following the pattern established by virtual media boot that was first need for OEM extension.","commit_id":"ece1f2bf09da8fcef39f1662aa4e42b5abfa4dae"},{"author":{"_account_id":25726,"name":"sonali bhausaheb borkar","email":"sonaliborkar85@gmail.com","username":"sonaliborkar85"},"change_message_id":"a1e74cd4c139d2495ea8e90395d8bf196a205995","unresolved":true,"context_lines":[{"line_number":118,"context_line":"            # to selectively retrieve it at this time."},{"line_number":119,"context_line":"            # Get instance of Sushy OEM manager object"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"            for manager in system.managers:"},{"line_number":122,"context_line":"                try:"},{"line_number":123,"context_line":"                    # Get instance of Sushy OEM manager object"},{"line_number":124,"context_line":"                    oem_manager \u003d manager.get_oem_extension(\u0027Dell\u0027)"},{"line_number":125,"context_line":"                except sushy.exceptions.OEMExtensionNotFoundError as e:"},{"line_number":126,"context_line":"                    error_msg \u003d (_(\"Search for Sushy OEM extension package \""},{"line_number":127,"context_line":"                                   \"\u0027sushy-oem-idrac\u0027 failed for node \""},{"line_number":128,"context_line":"                                   \"%(node)s. Ensure it\u0027s installed. \""},{"line_number":129,"context_line":"                                   \" Error: %(error)s\") %"},{"line_number":130,"context_line":"                                 {\u0027node\u0027: task.node.uuid, \u0027error\u0027: e})"},{"line_number":131,"context_line":"                    LOG.error(error_msg)"},{"line_number":132,"context_line":"                    raise exception.RedfishError(error\u003derror_msg)"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"                try:"},{"line_number":135,"context_line":"                    pxe_port_macs_list \u003d oem_manager.get_pxe_port_macs_bios("},{"line_number":136,"context_line":"                        ethernet_interfaces_mac)"},{"line_number":137,"context_line":"                    pxe_port_macs \u003d [mac for mac in pxe_port_macs_list]"},{"line_number":138,"context_line":"                    return pxe_port_macs"},{"line_number":139,"context_line":"                except sushy.exceptions.OEMExtensionNotFoundError as e:"},{"line_number":140,"context_line":"                    error_msg \u003d (_(\"Search for Sushy OEM extension package \""},{"line_number":141,"context_line":"                                   \"\u0027sushy-oem-idrac\u0027 failed for node \""},{"line_number":142,"context_line":"                                   \" %(node)s. Ensure it is installed. \""},{"line_number":143,"context_line":"                                   \"Error: %(error)s\") %"},{"line_number":144,"context_line":"                                 {\u0027node\u0027: task.node.uuid, \u0027error\u0027: e})"},{"line_number":145,"context_line":"                    LOG.debug(error_msg)"},{"line_number":146,"context_line":"                    continue"},{"line_number":147,"context_line":"                LOG.info(\"Get pxe port MAC addresses for  %(node)s via OEM\","},{"line_number":148,"context_line":"                         {\u0027node\u0027: task.node.uuid})"},{"line_number":149,"context_line":"                break"},{"line_number":150,"context_line":"            else:"},{"line_number":151,"context_line":"                error_msg \u003d (_(\u0027iDRAC Redfish Get pxe port MAC addresse \u0027"},{"line_number":152,"context_line":"                               \u0027failed for node %(node)s, because system \u0027"},{"line_number":153,"context_line":"                               \u0027%(system)s has no \u0027"},{"line_number":154,"context_line":"                               \u0027manager%(no_manager)s.\u0027) %"},{"line_number":155,"context_line":"                             {\u0027node\u0027: task.node.uuid,"},{"line_number":156,"context_line":"                              \u0027system\u0027: system.uuid if system.uuid else"},{"line_number":157,"context_line":"                              system.identity,"},{"line_number":158,"context_line":"                              \u0027no_manager\u0027: \u0027\u0027 if not system.managers else"},{"line_number":159,"context_line":"                              \u0027 which could\u0027})"},{"line_number":160,"context_line":"                LOG.error(error_msg)"},{"line_number":161,"context_line":"                raise exception.RedfishError(error\u003derror_msg)"},{"line_number":162,"context_line":"        return pxe_port_macs"},{"line_number":163,"context_line":""}],"source_content_type":"text/x-python","patch_set":33,"id":"9068635b_dc6e79c0","line":160,"range":{"start_line":121,"start_character":0,"end_line":160,"end_character":36},"in_reply_to":"5092ba5d_693779a5","updated":"2021-03-25 10:19:27.000000000","message":"Sure . Will take care of this.\nThanks for raising this concern .","commit_id":"ece1f2bf09da8fcef39f1662aa4e42b5abfa4dae"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"ad10278b8b0b6764f289062faf2d2999212d7164","unresolved":true,"context_lines":[{"line_number":118,"context_line":"            # to selectively retrieve it at this time."},{"line_number":119,"context_line":"            # Get instance of Sushy OEM manager object"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"            for manager in system.managers:"},{"line_number":122,"context_line":"                try:"},{"line_number":123,"context_line":"                    # Get instance of Sushy OEM manager object"},{"line_number":124,"context_line":"                    oem_manager \u003d manager.get_oem_extension(\u0027Dell\u0027)"},{"line_number":125,"context_line":"                except sushy.exceptions.OEMExtensionNotFoundError as e:"},{"line_number":126,"context_line":"                    error_msg \u003d (_(\"Search for Sushy OEM extension package \""},{"line_number":127,"context_line":"                                   \"\u0027sushy-oem-idrac\u0027 failed for node \""},{"line_number":128,"context_line":"                                   \"%(node)s. Ensure it\u0027s installed. \""},{"line_number":129,"context_line":"                                   \" Error: %(error)s\") %"},{"line_number":130,"context_line":"                                 {\u0027node\u0027: task.node.uuid, \u0027error\u0027: e})"},{"line_number":131,"context_line":"                    LOG.error(error_msg)"},{"line_number":132,"context_line":"                    raise exception.RedfishError(error\u003derror_msg)"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"                try:"},{"line_number":135,"context_line":"                    pxe_port_macs_list \u003d oem_manager.get_pxe_port_macs_bios("},{"line_number":136,"context_line":"                        ethernet_interfaces_mac)"},{"line_number":137,"context_line":"                    pxe_port_macs \u003d [mac for mac in pxe_port_macs_list]"},{"line_number":138,"context_line":"                    return pxe_port_macs"},{"line_number":139,"context_line":"                except sushy.exceptions.OEMExtensionNotFoundError as e:"},{"line_number":140,"context_line":"                    error_msg \u003d (_(\"Search for Sushy OEM extension package \""},{"line_number":141,"context_line":"                                   \"\u0027sushy-oem-idrac\u0027 failed for node \""},{"line_number":142,"context_line":"                                   \" %(node)s. Ensure it is installed. \""},{"line_number":143,"context_line":"                                   \"Error: %(error)s\") %"},{"line_number":144,"context_line":"                                 {\u0027node\u0027: task.node.uuid, \u0027error\u0027: e})"},{"line_number":145,"context_line":"                    LOG.debug(error_msg)"},{"line_number":146,"context_line":"                    continue"},{"line_number":147,"context_line":"                LOG.info(\"Get pxe port MAC addresses for  %(node)s via OEM\","},{"line_number":148,"context_line":"                         {\u0027node\u0027: task.node.uuid})"},{"line_number":149,"context_line":"                break"},{"line_number":150,"context_line":"            else:"},{"line_number":151,"context_line":"                error_msg \u003d (_(\u0027iDRAC Redfish Get pxe port MAC addresse \u0027"},{"line_number":152,"context_line":"                               \u0027failed for node %(node)s, because system \u0027"},{"line_number":153,"context_line":"                               \u0027%(system)s has no \u0027"},{"line_number":154,"context_line":"                               \u0027manager%(no_manager)s.\u0027) %"},{"line_number":155,"context_line":"                             {\u0027node\u0027: task.node.uuid,"},{"line_number":156,"context_line":"                              \u0027system\u0027: system.uuid if system.uuid else"},{"line_number":157,"context_line":"                              system.identity,"},{"line_number":158,"context_line":"                              \u0027no_manager\u0027: \u0027\u0027 if not system.managers else"},{"line_number":159,"context_line":"                              \u0027 which could\u0027})"},{"line_number":160,"context_line":"                LOG.error(error_msg)"},{"line_number":161,"context_line":"                raise exception.RedfishError(error\u003derror_msg)"},{"line_number":162,"context_line":"        return pxe_port_macs"},{"line_number":163,"context_line":""}],"source_content_type":"text/x-python","patch_set":33,"id":"5092ba5d_693779a5","line":160,"range":{"start_line":121,"start_character":0,"end_line":160,"end_character":36},"in_reply_to":"6a535004_3be97ae4","updated":"2021-03-24 15:49:41.000000000","message":"I\u0027m aware of the history, I\u0027m just asking for some time to be spent to try and improve it since it is kind of a lot to look at and pick out the important details.","commit_id":"ece1f2bf09da8fcef39f1662aa4e42b5abfa4dae"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"ad10278b8b0b6764f289062faf2d2999212d7164","unresolved":true,"context_lines":[{"line_number":82,"context_line":""},{"line_number":83,"context_line":"        :param task: a TaskManager instance."},{"line_number":84,"context_line":"        :returns: Returns list of MAC addresses."},{"line_number":85,"context_line":"        \"\"\""},{"line_number":86,"context_line":"        system \u003d redfish_utils.get_system(task.node)"},{"line_number":87,"context_line":"        # Get dictionary of ethernet interfaces"},{"line_number":88,"context_line":"        ethernet_interfaces \u003d system.ethernet_interfaces.get_members()"},{"line_number":89,"context_line":"        ethernet_interfaces_mac \u003d {"},{"line_number":90,"context_line":"            interface.identity: interface.mac_address"},{"line_number":91,"context_line":"            for interface in ethernet_interfaces}"},{"line_number":92,"context_line":"        return ethernet_interfaces_mac"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"    def _get_pxe_port_macs(self, task):"},{"line_number":95,"context_line":"        \"\"\"Get a list of PXE port MAC addresses."}],"source_content_type":"text/x-python","patch_set":34,"id":"e60be3d5_2eb597db","line":92,"range":{"start_line":85,"start_character":4,"end_line":92,"end_character":38},"updated":"2021-03-24 15:49:41.000000000","message":"It might be good to have some error handling in terms of if it can\u0027t connect to the bmc or if the BMC doesn\u0027t return a list of ports.","commit_id":"32ce23945e8cf59c699d74cffae4c8f4a1e0030c"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"775adbe78a968944331d7e7341a104165e4471cd","unresolved":true,"context_lines":[{"line_number":82,"context_line":""},{"line_number":83,"context_line":"        :param task: a TaskManager instance."},{"line_number":84,"context_line":"        :returns: Returns list of MAC addresses."},{"line_number":85,"context_line":"        \"\"\""},{"line_number":86,"context_line":"        system \u003d redfish_utils.get_system(task.node)"},{"line_number":87,"context_line":"        # Get dictionary of ethernet interfaces"},{"line_number":88,"context_line":"        ethernet_interfaces \u003d system.ethernet_interfaces.get_members()"},{"line_number":89,"context_line":"        ethernet_interfaces_mac \u003d {"},{"line_number":90,"context_line":"            interface.identity: interface.mac_address"},{"line_number":91,"context_line":"            for interface in ethernet_interfaces}"},{"line_number":92,"context_line":"        return ethernet_interfaces_mac"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"    def _get_pxe_port_macs(self, task):"},{"line_number":95,"context_line":"        \"\"\"Get a list of PXE port MAC addresses."}],"source_content_type":"text/x-python","patch_set":34,"id":"7cdcf3dd_0c8dcd32","line":92,"range":{"start_line":85,"start_character":4,"end_line":92,"end_character":38},"in_reply_to":"01508055_f0cca4c4","updated":"2021-03-25 12:36:08.000000000","message":"could check the same way as for processors in the base class(to be added after line 86 here):\n\n  if system.ethernet_interfaces and system.ethernet_interfaces.summary:\n    return []\n\n- in case nothing found returns empty list, otherwise execute current code","commit_id":"32ce23945e8cf59c699d74cffae4c8f4a1e0030c"},{"author":{"_account_id":25726,"name":"sonali bhausaheb borkar","email":"sonaliborkar85@gmail.com","username":"sonaliborkar85"},"change_message_id":"377d259cceb4dd5257df5575cbecee2f449dce1b","unresolved":false,"context_lines":[{"line_number":82,"context_line":""},{"line_number":83,"context_line":"        :param task: a TaskManager instance."},{"line_number":84,"context_line":"        :returns: Returns list of MAC addresses."},{"line_number":85,"context_line":"        \"\"\""},{"line_number":86,"context_line":"        system \u003d redfish_utils.get_system(task.node)"},{"line_number":87,"context_line":"        # Get dictionary of ethernet interfaces"},{"line_number":88,"context_line":"        ethernet_interfaces \u003d system.ethernet_interfaces.get_members()"},{"line_number":89,"context_line":"        ethernet_interfaces_mac \u003d {"},{"line_number":90,"context_line":"            interface.identity: interface.mac_address"},{"line_number":91,"context_line":"            for interface in ethernet_interfaces}"},{"line_number":92,"context_line":"        return ethernet_interfaces_mac"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"    def _get_pxe_port_macs(self, task):"},{"line_number":95,"context_line":"        \"\"\"Get a list of PXE port MAC addresses."}],"source_content_type":"text/x-python","patch_set":34,"id":"7937482c_176d27a6","line":92,"range":{"start_line":85,"start_character":4,"end_line":92,"end_character":38},"in_reply_to":"7cdcf3dd_0c8dcd32","updated":"2021-03-25 14:50:07.000000000","message":"Done","commit_id":"32ce23945e8cf59c699d74cffae4c8f4a1e0030c"},{"author":{"_account_id":25726,"name":"sonali bhausaheb borkar","email":"sonaliborkar85@gmail.com","username":"sonaliborkar85"},"change_message_id":"a1e74cd4c139d2495ea8e90395d8bf196a205995","unresolved":true,"context_lines":[{"line_number":82,"context_line":""},{"line_number":83,"context_line":"        :param task: a TaskManager instance."},{"line_number":84,"context_line":"        :returns: Returns list of MAC addresses."},{"line_number":85,"context_line":"        \"\"\""},{"line_number":86,"context_line":"        system \u003d redfish_utils.get_system(task.node)"},{"line_number":87,"context_line":"        # Get dictionary of ethernet interfaces"},{"line_number":88,"context_line":"        ethernet_interfaces \u003d system.ethernet_interfaces.get_members()"},{"line_number":89,"context_line":"        ethernet_interfaces_mac \u003d {"},{"line_number":90,"context_line":"            interface.identity: interface.mac_address"},{"line_number":91,"context_line":"            for interface in ethernet_interfaces}"},{"line_number":92,"context_line":"        return ethernet_interfaces_mac"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"    def _get_pxe_port_macs(self, task):"},{"line_number":95,"context_line":"        \"\"\"Get a list of PXE port MAC addresses."}],"source_content_type":"text/x-python","patch_set":34,"id":"01508055_f0cca4c4","line":92,"range":{"start_line":85,"start_character":4,"end_line":92,"end_character":38},"in_reply_to":"e60be3d5_2eb597db","updated":"2021-03-25 10:19:27.000000000","message":"sure . will have discuss with team","commit_id":"32ce23945e8cf59c699d74cffae4c8f4a1e0030c"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"ba315fa456a3b85fac55b03b368e3e34f20bcf55","unresolved":true,"context_lines":[{"line_number":85,"context_line":"                interface.identity: interface.mac_address"},{"line_number":86,"context_line":"                for interface in ethernet_interfaces}"},{"line_number":87,"context_line":"            return ethernet_interfaces_mac"},{"line_number":88,"context_line":"        else:"},{"line_number":89,"context_line":"            return {}"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"    def _get_pxe_port_macs(self, task):"}],"source_content_type":"text/x-python","patch_set":37,"id":"3d0e97fb_af444ab5","line":88,"updated":"2021-03-29 08:22:00.000000000","message":"nit: else not needed here","commit_id":"7d82d7f3dd12d5b2227cd2dd7ee886d5f689fdad"}],"ironic/drivers/modules/redfish/inspect.py":[{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"fbda5f2da53a7a8d55579afebbcc9adb5074f2d4","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":24,"id":"5f2b7f7a_b3083165","updated":"2021-02-25 10:27:38.000000000","message":"all changes in this file are iDRAC specific, they need to go to drac/inspect.py instead of generic Redfish.","commit_id":"e81ed402d91d719fbfc29df9bb9dce0f4305c4f7"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"9c03d9c7b691b8deb0f2e67ce6760cc798f7cd2c","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":24,"id":"31c34618_4b05e4e7","in_reply_to":"2877f3bd_2d2f791a","updated":"2021-02-26 11:14:48.000000000","message":"clarified offline - need to move code between redfish/inspect.py (generic part) and drac/inspect.py (vendor specific _get_pxe_port_macs).","commit_id":"e81ed402d91d719fbfc29df9bb9dce0f4305c4f7"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"bccf6ee726b30941184b52959eb9333918f03414","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":24,"id":"2877f3bd_2d2f791a","in_reply_to":"2e77c91c_1b9c0b31","updated":"2021-02-26 10:04:05.000000000","message":"This could be some misunderstanding. I remember we talked about moving processing to sushy-oem-idrac so don\u0027t need to parse JSON/XML in Ironic and have a method that returns just exactly what we need. This has been solved by the patch [1].\n\n_pxe_params, _pxe_nics are iDRAC specific values, also method _get_pxe_port_macs uses sushy-oem-idrac. This library is only for iDRAC and any calls for it should be only inside ironic/drivers/modules/drac. This is not going to work for other vendors. Location of these things were OK in patchset 18.\n\n\n[1] https://review.opendev.org/c/openstack/sushy/+/777733","commit_id":"e81ed402d91d719fbfc29df9bb9dce0f4305c4f7"},{"author":{"_account_id":25726,"name":"sonali bhausaheb borkar","email":"sonaliborkar85@gmail.com","username":"sonaliborkar85"},"change_message_id":"63d388c6923b758a8d631e7b460c7468ca9ee2c1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":24,"id":"53418759_0e6474ef","in_reply_to":"31c34618_4b05e4e7","updated":"2021-03-05 05:25:48.000000000","message":"Done","commit_id":"e81ed402d91d719fbfc29df9bb9dce0f4305c4f7"},{"author":{"_account_id":25726,"name":"sonali bhausaheb borkar","email":"sonaliborkar85@gmail.com","username":"sonaliborkar85"},"change_message_id":"6d8b24b0ba189921b31726391a0a74e4747fc003","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":24,"id":"2e77c91c_1b9c0b31","in_reply_to":"5f2b7f7a_b3083165","updated":"2021-02-26 08:49:15.000000000","message":"Hi Aija,\nAs last time we had discussion for patchset-20 to moving this code to redfish/inspect.py .\nWhere you and Richard has suggested that this whole function is vendor-agnostic, We should move it to the base Redfish class and leave _get_pxe_port_macs vendor-specific.\nplease find the link for the same https://review.opendev.org/c/openstack/ironic/+/693328/20/ironic/drivers/modules/drac/inspect.py#18","commit_id":"e81ed402d91d719fbfc29df9bb9dce0f4305c4f7"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"fbda5f2da53a7a8d55579afebbcc9adb5074f2d4","unresolved":true,"context_lines":[{"line_number":49,"context_line":"               \"PxeDev3EnDis\", \"PxeDev4EnDis\"]"},{"line_number":50,"context_line":"_pxe_nics \u003d [\"PxeDev1Interface\", \"PxeDev2Interface\","},{"line_number":51,"context_line":"             \"PxeDev3Interface\", \"PxeDev4Interface\"]"},{"line_number":52,"context_line":"_system_bios_attributes \u003d \u0027Enabled\u0027"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"class RedfishInspect(base.InspectInterface):"}],"source_content_type":"text/x-python","patch_set":24,"id":"8e7851bc_019e37bc","line":52,"range":{"start_line":52,"start_character":0,"end_line":52,"end_character":23},"updated":"2021-02-25 10:27:38.000000000","message":"could this be named more descriptive? Attributes do not seem to be the same thing as \u0027enabled\u0027. Is it something like \u0027_system_bios_attribute_enabled_value\u0027?","commit_id":"e81ed402d91d719fbfc29df9bb9dce0f4305c4f7"},{"author":{"_account_id":25726,"name":"sonali bhausaheb borkar","email":"sonaliborkar85@gmail.com","username":"sonaliborkar85"},"change_message_id":"6d8b24b0ba189921b31726391a0a74e4747fc003","unresolved":true,"context_lines":[{"line_number":49,"context_line":"               \"PxeDev3EnDis\", \"PxeDev4EnDis\"]"},{"line_number":50,"context_line":"_pxe_nics \u003d [\"PxeDev1Interface\", \"PxeDev2Interface\","},{"line_number":51,"context_line":"             \"PxeDev3Interface\", \"PxeDev4Interface\"]"},{"line_number":52,"context_line":"_system_bios_attributes \u003d \u0027Enabled\u0027"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"class RedfishInspect(base.InspectInterface):"}],"source_content_type":"text/x-python","patch_set":24,"id":"bcd82bd1_ac908b0b","line":52,"range":{"start_line":52,"start_character":0,"end_line":52,"end_character":23},"in_reply_to":"8e7851bc_019e37bc","updated":"2021-02-26 08:49:15.000000000","message":"sure will rename the variable","commit_id":"e81ed402d91d719fbfc29df9bb9dce0f4305c4f7"},{"author":{"_account_id":25726,"name":"sonali bhausaheb borkar","email":"sonaliborkar85@gmail.com","username":"sonaliborkar85"},"change_message_id":"63d388c6923b758a8d631e7b460c7468ca9ee2c1","unresolved":false,"context_lines":[{"line_number":49,"context_line":"               \"PxeDev3EnDis\", \"PxeDev4EnDis\"]"},{"line_number":50,"context_line":"_pxe_nics \u003d [\"PxeDev1Interface\", \"PxeDev2Interface\","},{"line_number":51,"context_line":"             \"PxeDev3Interface\", \"PxeDev4Interface\"]"},{"line_number":52,"context_line":"_system_bios_attributes \u003d \u0027Enabled\u0027"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"class RedfishInspect(base.InspectInterface):"}],"source_content_type":"text/x-python","patch_set":24,"id":"bed19f54_6571de91","line":52,"range":{"start_line":52,"start_character":0,"end_line":52,"end_character":23},"in_reply_to":"bcd82bd1_ac908b0b","updated":"2021-03-05 05:25:48.000000000","message":"Done","commit_id":"e81ed402d91d719fbfc29df9bb9dce0f4305c4f7"},{"author":{"_account_id":25726,"name":"sonali bhausaheb borkar","email":"sonaliborkar85@gmail.com","username":"sonaliborkar85"},"change_message_id":"5d1f5b80bbf15f164167fa6415942421a27b3c99","unresolved":false,"context_lines":[{"line_number":159,"context_line":""},{"line_number":160,"context_line":"        self._create_ports(task, system)"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"        # Ensure we create a port for every NIC port found for consistency"},{"line_number":163,"context_line":"        # with our WSMAN inspect behavior and to work around a bug in some"},{"line_number":164,"context_line":"        # versions of the firmware where the port state is not being"},{"line_number":165,"context_line":"        # reported correctly."}],"source_content_type":"text/x-python","patch_set":29,"id":"04b10b5d_ab372842","line":162,"updated":"2021-03-11 08:35:53.000000000","message":"As discussed with Aija removing description line number from 162-166.\nAs this is dell sepecific","commit_id":"12f193a715b2e7c011c235b2bdac321d30193393"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"99f04c91568b807e66327da48cae08faa7428e1f","unresolved":false,"context_lines":[{"line_number":163,"context_line":"                                   for interface in ethernet_interfaces}"},{"line_number":164,"context_line":"        if ethernet_interfaces_mac:"},{"line_number":165,"context_line":"            inspect_utils.create_ports_if_not_exist("},{"line_number":166,"context_line":"                task, ethernet_interfaces_mac, get_mac_address\u003dlambda x: x[0])"},{"line_number":167,"context_line":"        else:"},{"line_number":168,"context_line":"            LOG.warning(\"Not attempting to create any port as no NICs \""},{"line_number":169,"context_line":"                        \"were discovered for node %(node)s: %(mac_data)s\","}],"source_content_type":"text/x-python","patch_set":30,"id":"63428244_7921a321","line":166,"updated":"2021-03-10 15:39:55.000000000","message":"This logic partly duplicates _create_ports and should be moved there","commit_id":"1dd0e276d16077e511f57fc04b6a40204ac90d21"},{"author":{"_account_id":25726,"name":"sonali bhausaheb borkar","email":"sonaliborkar85@gmail.com","username":"sonaliborkar85"},"change_message_id":"4be9abb31f3026fe33c671a99567081cad786f37","unresolved":false,"context_lines":[{"line_number":163,"context_line":"                                   for interface in ethernet_interfaces}"},{"line_number":164,"context_line":"        if ethernet_interfaces_mac:"},{"line_number":165,"context_line":"            inspect_utils.create_ports_if_not_exist("},{"line_number":166,"context_line":"                task, ethernet_interfaces_mac, get_mac_address\u003dlambda x: x[0])"},{"line_number":167,"context_line":"        else:"},{"line_number":168,"context_line":"            LOG.warning(\"Not attempting to create any port as no NICs \""},{"line_number":169,"context_line":"                        \"were discovered for node %(node)s: %(mac_data)s\","}],"source_content_type":"text/x-python","patch_set":30,"id":"757ed616_45d5408b","line":166,"in_reply_to":"4b27aeb9_e384eeea","updated":"2021-03-17 10:02:59.000000000","message":"Not sure about adding this part in _create_ports function.\nAs this functions will Create ports for the discovered NICs being in \u0027enabled\u0027 state\nCoz if will add in this code in _create_ports function it could break the generic redfish .\n\nAnd here in our case  we are trying to create ports for all nics .\nWill discuss this internally and  will get back to you guys .\n\nfor now will remove logic (line number 161-171) in if  pxe_port_macs.","commit_id":"1dd0e276d16077e511f57fc04b6a40204ac90d21"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"84500d39e2bdca688b1b34db91702bbf120503dc","unresolved":false,"context_lines":[{"line_number":163,"context_line":"                                   for interface in ethernet_interfaces}"},{"line_number":164,"context_line":"        if ethernet_interfaces_mac:"},{"line_number":165,"context_line":"            inspect_utils.create_ports_if_not_exist("},{"line_number":166,"context_line":"                task, ethernet_interfaces_mac, get_mac_address\u003dlambda x: x[0])"},{"line_number":167,"context_line":"        else:"},{"line_number":168,"context_line":"            LOG.warning(\"Not attempting to create any port as no NICs \""},{"line_number":169,"context_line":"                        \"were discovered for node %(node)s: %(mac_data)s\","}],"source_content_type":"text/x-python","patch_set":30,"id":"4b27aeb9_e384eeea","line":166,"in_reply_to":"63428244_7921a321","updated":"2021-03-15 14:31:07.000000000","message":"++","commit_id":"1dd0e276d16077e511f57fc04b6a40204ac90d21"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"99f04c91568b807e66327da48cae08faa7428e1f","unresolved":false,"context_lines":[{"line_number":172,"context_line":""},{"line_number":173,"context_line":"        node \u003d task.node"},{"line_number":174,"context_line":"        pxe_port_macs \u003d self._get_pxe_port_macs(task)"},{"line_number":175,"context_line":"        if len(pxe_port_macs) \u003d\u003d 0:"},{"line_number":176,"context_line":"            LOG.warning(\"No PXE enabled NIC was found for node \""},{"line_number":177,"context_line":"                        \"%(node_uuid)s.\", {\u0027node_uuid\u0027: node.uuid})"},{"line_number":178,"context_line":"            ports \u003d objects.Port.list_by_node_id(task.context, node.id)"}],"source_content_type":"text/x-python","patch_set":30,"id":"cb6abb20_e4e18677","line":175,"updated":"2021-03-10 15:39:55.000000000","message":"nit: if not pxe_port_macs.\n\nactually, let us distinguish between values of None (not supported) and [] (empty list). If None, let\u0027s not touch any existing settings.","commit_id":"1dd0e276d16077e511f57fc04b6a40204ac90d21"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"23f3ad6f2f579f48f770f25c257ecc1383347ab7","unresolved":false,"context_lines":[{"line_number":172,"context_line":""},{"line_number":173,"context_line":"        node \u003d task.node"},{"line_number":174,"context_line":"        pxe_port_macs \u003d self._get_pxe_port_macs(task)"},{"line_number":175,"context_line":"        if len(pxe_port_macs) \u003d\u003d 0:"},{"line_number":176,"context_line":"            LOG.warning(\"No PXE enabled NIC was found for node \""},{"line_number":177,"context_line":"                        \"%(node_uuid)s.\", {\u0027node_uuid\u0027: node.uuid})"},{"line_number":178,"context_line":"            ports \u003d objects.Port.list_by_node_id(task.context, node.id)"}],"source_content_type":"text/x-python","patch_set":30,"id":"a972c406_f079a4ea","line":175,"in_reply_to":"23bca095_1994d2e7","updated":"2021-03-11 10:54:03.000000000","message":"Well, let\u0027s make it return None. Or anyhow else solve the problem of changing existing pxe_enabled if the driver does not support this feature (like with the generic redfish).","commit_id":"1dd0e276d16077e511f57fc04b6a40204ac90d21"},{"author":{"_account_id":25726,"name":"sonali bhausaheb borkar","email":"sonaliborkar85@gmail.com","username":"sonaliborkar85"},"change_message_id":"43eb8992a0a12b44b2a1eb249475c78daf94c158","unresolved":true,"context_lines":[{"line_number":172,"context_line":""},{"line_number":173,"context_line":"        node \u003d task.node"},{"line_number":174,"context_line":"        pxe_port_macs \u003d self._get_pxe_port_macs(task)"},{"line_number":175,"context_line":"        if len(pxe_port_macs) \u003d\u003d 0:"},{"line_number":176,"context_line":"            LOG.warning(\"No PXE enabled NIC was found for node \""},{"line_number":177,"context_line":"                        \"%(node_uuid)s.\", {\u0027node_uuid\u0027: node.uuid})"},{"line_number":178,"context_line":"            ports \u003d objects.Port.list_by_node_id(task.context, node.id)"}],"source_content_type":"text/x-python","patch_set":30,"id":"aea8888d_2485cd55","line":175,"in_reply_to":"a972c406_f079a4ea","updated":"2021-03-11 15:43:17.000000000","message":"sure . Understood your concern .\nWill come up with the solution \nthanks for raising this point","commit_id":"1dd0e276d16077e511f57fc04b6a40204ac90d21"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"84500d39e2bdca688b1b34db91702bbf120503dc","unresolved":true,"context_lines":[{"line_number":172,"context_line":""},{"line_number":173,"context_line":"        node \u003d task.node"},{"line_number":174,"context_line":"        pxe_port_macs \u003d self._get_pxe_port_macs(task)"},{"line_number":175,"context_line":"        if len(pxe_port_macs) \u003d\u003d 0:"},{"line_number":176,"context_line":"            LOG.warning(\"No PXE enabled NIC was found for node \""},{"line_number":177,"context_line":"                        \"%(node_uuid)s.\", {\u0027node_uuid\u0027: node.uuid})"},{"line_number":178,"context_line":"            ports \u003d objects.Port.list_by_node_id(task.context, node.id)"}],"source_content_type":"text/x-python","patch_set":30,"id":"f2ddc952_fe2faabb","line":175,"in_reply_to":"aea8888d_2485cd55","updated":"2021-03-15 14:31:07.000000000","message":"Concur, if or if not.","commit_id":"1dd0e276d16077e511f57fc04b6a40204ac90d21"},{"author":{"_account_id":25726,"name":"sonali bhausaheb borkar","email":"sonaliborkar85@gmail.com","username":"sonaliborkar85"},"change_message_id":"5d1f5b80bbf15f164167fa6415942421a27b3c99","unresolved":false,"context_lines":[{"line_number":172,"context_line":""},{"line_number":173,"context_line":"        node \u003d task.node"},{"line_number":174,"context_line":"        pxe_port_macs \u003d self._get_pxe_port_macs(task)"},{"line_number":175,"context_line":"        if len(pxe_port_macs) \u003d\u003d 0:"},{"line_number":176,"context_line":"            LOG.warning(\"No PXE enabled NIC was found for node \""},{"line_number":177,"context_line":"                        \"%(node_uuid)s.\", {\u0027node_uuid\u0027: node.uuid})"},{"line_number":178,"context_line":"            ports \u003d objects.Port.list_by_node_id(task.context, node.id)"}],"source_content_type":"text/x-python","patch_set":30,"id":"23bca095_1994d2e7","line":175,"in_reply_to":"cb6abb20_e4e18677","updated":"2021-03-11 08:35:53.000000000","message":"pxe_port_macs will have list with mac or empty . \nIt wont return None","commit_id":"1dd0e276d16077e511f57fc04b6a40204ac90d21"},{"author":{"_account_id":25726,"name":"sonali bhausaheb borkar","email":"sonaliborkar85@gmail.com","username":"sonaliborkar85"},"change_message_id":"4be9abb31f3026fe33c671a99567081cad786f37","unresolved":false,"context_lines":[{"line_number":172,"context_line":""},{"line_number":173,"context_line":"        node \u003d task.node"},{"line_number":174,"context_line":"        pxe_port_macs \u003d self._get_pxe_port_macs(task)"},{"line_number":175,"context_line":"        if len(pxe_port_macs) \u003d\u003d 0:"},{"line_number":176,"context_line":"            LOG.warning(\"No PXE enabled NIC was found for node \""},{"line_number":177,"context_line":"                        \"%(node_uuid)s.\", {\u0027node_uuid\u0027: node.uuid})"},{"line_number":178,"context_line":"            ports \u003d objects.Port.list_by_node_id(task.context, node.id)"}],"source_content_type":"text/x-python","patch_set":30,"id":"09c7b077_51b8fee3","line":175,"in_reply_to":"f2ddc952_fe2faabb","updated":"2021-03-17 10:02:59.000000000","message":"Done","commit_id":"1dd0e276d16077e511f57fc04b6a40204ac90d21"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"99f04c91568b807e66327da48cae08faa7428e1f","unresolved":false,"context_lines":[{"line_number":185,"context_line":"        ports \u003d objects.Port.list_by_node_id(task.context, node.id)"},{"line_number":186,"context_line":"        if ports:"},{"line_number":187,"context_line":"            for port in ports:"},{"line_number":188,"context_line":"                is_baremetal_pxe_port \u003d (port.address.upper() in pxe_port_macs)"},{"line_number":189,"context_line":"                if port.pxe_enabled !\u003d is_baremetal_pxe_port:"},{"line_number":190,"context_line":"                    port.pxe_enabled \u003d is_baremetal_pxe_port"},{"line_number":191,"context_line":"                    port.save()"}],"source_content_type":"text/x-python","patch_set":30,"id":"4a7b306e_cac5f3f6","line":188,"updated":"2021-03-10 15:39:55.000000000","message":"nothing in the description of get_pxe_port_macs says they should be upper case","commit_id":"1dd0e276d16077e511f57fc04b6a40204ac90d21"},{"author":{"_account_id":25726,"name":"sonali bhausaheb borkar","email":"sonaliborkar85@gmail.com","username":"sonaliborkar85"},"change_message_id":"5d1f5b80bbf15f164167fa6415942421a27b3c99","unresolved":false,"context_lines":[{"line_number":185,"context_line":"        ports \u003d objects.Port.list_by_node_id(task.context, node.id)"},{"line_number":186,"context_line":"        if ports:"},{"line_number":187,"context_line":"            for port in ports:"},{"line_number":188,"context_line":"                is_baremetal_pxe_port \u003d (port.address.upper() in pxe_port_macs)"},{"line_number":189,"context_line":"                if port.pxe_enabled !\u003d is_baremetal_pxe_port:"},{"line_number":190,"context_line":"                    port.pxe_enabled \u003d is_baremetal_pxe_port"},{"line_number":191,"context_line":"                    port.save()"}],"source_content_type":"text/x-python","patch_set":30,"id":"633b7267_620d0b26","line":188,"in_reply_to":"4a7b306e_cac5f3f6","updated":"2021-03-11 08:35:53.000000000","message":"Sure Will add this  description for _get_pxe_port_macs function that :\nreturns: Returns list of pxe port MAC addresses in upper cases","commit_id":"1dd0e276d16077e511f57fc04b6a40204ac90d21"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"ee306eb038173f40c1bf0f132a453564b6e15527","unresolved":false,"context_lines":[{"line_number":185,"context_line":"        ports \u003d objects.Port.list_by_node_id(task.context, node.id)"},{"line_number":186,"context_line":"        if ports:"},{"line_number":187,"context_line":"            for port in ports:"},{"line_number":188,"context_line":"                is_baremetal_pxe_port \u003d (port.address.upper() in pxe_port_macs)"},{"line_number":189,"context_line":"                if port.pxe_enabled !\u003d is_baremetal_pxe_port:"},{"line_number":190,"context_line":"                    port.pxe_enabled \u003d is_baremetal_pxe_port"},{"line_number":191,"context_line":"                    port.save()"}],"source_content_type":"text/x-python","patch_set":30,"id":"f791a4d3_8e306250","line":188,"in_reply_to":"633b7267_620d0b26","updated":"2021-03-17 13:15:55.000000000","message":"better try to compare in case insensitive manner?","commit_id":"1dd0e276d16077e511f57fc04b6a40204ac90d21"},{"author":{"_account_id":25726,"name":"sonali bhausaheb borkar","email":"sonaliborkar85@gmail.com","username":"sonaliborkar85"},"change_message_id":"20a0711a9ddb22a72fdf6f349f4d68382e30bb87","unresolved":true,"context_lines":[{"line_number":159,"context_line":"        self._create_ports(task, system)"},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"        pxe_port_macs \u003d self._get_pxe_port_macs(task)"},{"line_number":162,"context_line":"        if not pxe_port_macs:"},{"line_number":163,"context_line":"            LOG.warning(\"No PXE enabled NIC was found for node \""},{"line_number":164,"context_line":"                        \"%(node_uuid)s.\", {\u0027node_uuid\u0027: task.node.uuid})"},{"line_number":165,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":31,"id":"6d894ebc_96b50784","line":162,"updated":"2021-03-17 11:07:42.000000000","message":"TODO :Need to check with internal team. This condition does not support to our implementation as it will always show True for pxe_enabled for all ports as its defined in  generic redfish implementation .\nwhich is not the case in our implementation .Need to add one more check to match dell specific implementation","commit_id":"fba2bb0a07d1560d9170976e830a72d5ab90fbd1"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"ee306eb038173f40c1bf0f132a453564b6e15527","unresolved":true,"context_lines":[{"line_number":159,"context_line":"        self._create_ports(task, system)"},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"        pxe_port_macs \u003d self._get_pxe_port_macs(task)"},{"line_number":162,"context_line":"        if not pxe_port_macs:"},{"line_number":163,"context_line":"            LOG.warning(\"No PXE enabled NIC was found for node \""},{"line_number":164,"context_line":"                        \"%(node_uuid)s.\", {\u0027node_uuid\u0027: task.node.uuid})"},{"line_number":165,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":31,"id":"acb14d61_360978db","line":162,"in_reply_to":"6d894ebc_96b50784","updated":"2021-03-17 13:15:55.000000000","message":"if pxe_port_macs is None\n\nto avoid calling this for empty list, and empty list will be handled in else block together with non-empty list (should check if this can be done in the same block and 3rd option is not necessary). Make sure this is covered by test cases if not already.","commit_id":"fba2bb0a07d1560d9170976e830a72d5ab90fbd1"},{"author":{"_account_id":25726,"name":"sonali bhausaheb borkar","email":"sonaliborkar85@gmail.com","username":"sonaliborkar85"},"change_message_id":"2e6236f1b139738b47ae4ff209f08c03ab82701b","unresolved":false,"context_lines":[{"line_number":159,"context_line":"        self._create_ports(task, system)"},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"        pxe_port_macs \u003d self._get_pxe_port_macs(task)"},{"line_number":162,"context_line":"        if not pxe_port_macs:"},{"line_number":163,"context_line":"            LOG.warning(\"No PXE enabled NIC was found for node \""},{"line_number":164,"context_line":"                        \"%(node_uuid)s.\", {\u0027node_uuid\u0027: task.node.uuid})"},{"line_number":165,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":31,"id":"d10d8a39_ed6f05e2","line":162,"in_reply_to":"acb14d61_360978db","updated":"2021-03-19 07:39:08.000000000","message":"Done","commit_id":"fba2bb0a07d1560d9170976e830a72d5ab90fbd1"},{"author":{"_account_id":25726,"name":"sonali bhausaheb borkar","email":"sonaliborkar85@gmail.com","username":"sonaliborkar85"},"change_message_id":"810a59580247bf3466b77ff7c6d82a64987c9658","unresolved":true,"context_lines":[{"line_number":163,"context_line":"            LOG.warning(\"No PXE enabled NIC was found for node \""},{"line_number":164,"context_line":"                        \"%(node_uuid)s.\", {\u0027node_uuid\u0027: task.node.uuid})"},{"line_number":165,"context_line":"        else:"},{"line_number":166,"context_line":"            ethernet_interfaces \u003d system.ethernet_interfaces.get_members()"},{"line_number":167,"context_line":"            ethernet_interfaces_mac \u003d {interface.mac_address:"},{"line_number":168,"context_line":"                                       interface.identity"},{"line_number":169,"context_line":"                                       for interface in ethernet_interfaces}"}],"source_content_type":"text/x-python","patch_set":31,"id":"6a8f5f72_e821244e","line":166,"updated":"2021-03-17 10:07:22.000000000","message":"TODO: check line number 166-178 need to move in _create_port() \nAs we have added this logic for dell specific","commit_id":"fba2bb0a07d1560d9170976e830a72d5ab90fbd1"},{"author":{"_account_id":25726,"name":"sonali bhausaheb borkar","email":"sonaliborkar85@gmail.com","username":"sonaliborkar85"},"change_message_id":"2e6236f1b139738b47ae4ff209f08c03ab82701b","unresolved":false,"context_lines":[{"line_number":163,"context_line":"            LOG.warning(\"No PXE enabled NIC was found for node \""},{"line_number":164,"context_line":"                        \"%(node_uuid)s.\", {\u0027node_uuid\u0027: task.node.uuid})"},{"line_number":165,"context_line":"        else:"},{"line_number":166,"context_line":"            ethernet_interfaces \u003d system.ethernet_interfaces.get_members()"},{"line_number":167,"context_line":"            ethernet_interfaces_mac \u003d {interface.mac_address:"},{"line_number":168,"context_line":"                                       interface.identity"},{"line_number":169,"context_line":"                                       for interface in ethernet_interfaces}"}],"source_content_type":"text/x-python","patch_set":31,"id":"c6bc8ae7_3cb9448d","line":166,"in_reply_to":"1ce7dd8d_079552c4","updated":"2021-03-19 07:39:08.000000000","message":"Done","commit_id":"fba2bb0a07d1560d9170976e830a72d5ab90fbd1"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"ee306eb038173f40c1bf0f132a453564b6e15527","unresolved":true,"context_lines":[{"line_number":163,"context_line":"            LOG.warning(\"No PXE enabled NIC was found for node \""},{"line_number":164,"context_line":"                        \"%(node_uuid)s.\", {\u0027node_uuid\u0027: task.node.uuid})"},{"line_number":165,"context_line":"        else:"},{"line_number":166,"context_line":"            ethernet_interfaces \u003d system.ethernet_interfaces.get_members()"},{"line_number":167,"context_line":"            ethernet_interfaces_mac \u003d {interface.mac_address:"},{"line_number":168,"context_line":"                                       interface.identity"},{"line_number":169,"context_line":"                                       for interface in ethernet_interfaces}"}],"source_content_type":"text/x-python","patch_set":31,"id":"1ce7dd8d_079552c4","line":166,"in_reply_to":"6a8f5f72_e821244e","updated":"2021-03-17 13:15:55.000000000","message":"ln 166-178 should be moved to drac/inspect.py and placed before \n\n  super(DracRedfishInspect, self).inspect_hardware(task)\n\nin overridden inspect_hardware that needs to be put back","commit_id":"fba2bb0a07d1560d9170976e830a72d5ab90fbd1"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"ee306eb038173f40c1bf0f132a453564b6e15527","unresolved":true,"context_lines":[{"line_number":288,"context_line":"        return max(0, int(local_gb / units.Gi - 1))"},{"line_number":289,"context_line":""},{"line_number":290,"context_line":"    def _get_pxe_port_macs(self, task):"},{"line_number":291,"context_line":"        \"\"\"Get a list of pxe port MAC addresses."},{"line_number":292,"context_line":""},{"line_number":293,"context_line":"        :param task: a TaskManager instance."},{"line_number":294,"context_line":"        :returns: Returns list of pxe port MAC addresses."}],"source_content_type":"text/x-python","patch_set":31,"id":"9133f8eb_69a5a5ce","line":291,"updated":"2021-03-17 13:15:55.000000000","message":"Capital - PXE everywhere.\n\n:returns:\n\"Returns list of PXE port MAC addresses. If cannot be determined, returns None.\"","commit_id":"fba2bb0a07d1560d9170976e830a72d5ab90fbd1"},{"author":{"_account_id":25726,"name":"sonali bhausaheb borkar","email":"sonaliborkar85@gmail.com","username":"sonaliborkar85"},"change_message_id":"2e6236f1b139738b47ae4ff209f08c03ab82701b","unresolved":false,"context_lines":[{"line_number":288,"context_line":"        return max(0, int(local_gb / units.Gi - 1))"},{"line_number":289,"context_line":""},{"line_number":290,"context_line":"    def _get_pxe_port_macs(self, task):"},{"line_number":291,"context_line":"        \"\"\"Get a list of pxe port MAC addresses."},{"line_number":292,"context_line":""},{"line_number":293,"context_line":"        :param task: a TaskManager instance."},{"line_number":294,"context_line":"        :returns: Returns list of pxe port MAC addresses."}],"source_content_type":"text/x-python","patch_set":31,"id":"7c6e1ded_23f5aea6","line":291,"in_reply_to":"9133f8eb_69a5a5ce","updated":"2021-03-19 07:39:08.000000000","message":"Done","commit_id":"fba2bb0a07d1560d9170976e830a72d5ab90fbd1"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"ee306eb038173f40c1bf0f132a453564b6e15527","unresolved":true,"context_lines":[{"line_number":293,"context_line":"        :param task: a TaskManager instance."},{"line_number":294,"context_line":"        :returns: Returns list of pxe port MAC addresses."},{"line_number":295,"context_line":"        \"\"\""},{"line_number":296,"context_line":"        return []"}],"source_content_type":"text/x-python","patch_set":31,"id":"8d3ff0fe_301ec244","line":296,"range":{"start_line":296,"start_character":8,"end_line":296,"end_character":17},"updated":"2021-03-17 13:15:55.000000000","message":"return None here","commit_id":"fba2bb0a07d1560d9170976e830a72d5ab90fbd1"},{"author":{"_account_id":25726,"name":"sonali bhausaheb borkar","email":"sonaliborkar85@gmail.com","username":"sonaliborkar85"},"change_message_id":"2e6236f1b139738b47ae4ff209f08c03ab82701b","unresolved":false,"context_lines":[{"line_number":293,"context_line":"        :param task: a TaskManager instance."},{"line_number":294,"context_line":"        :returns: Returns list of pxe port MAC addresses."},{"line_number":295,"context_line":"        \"\"\""},{"line_number":296,"context_line":"        return []"}],"source_content_type":"text/x-python","patch_set":31,"id":"08a31823_3f86f9a2","line":296,"range":{"start_line":296,"start_character":8,"end_line":296,"end_character":17},"in_reply_to":"8d3ff0fe_301ec244","updated":"2021-03-19 07:39:08.000000000","message":"Done","commit_id":"fba2bb0a07d1560d9170976e830a72d5ab90fbd1"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"f0247f8fb6c3ab15d5ffd5396a1596f9ef0a2b95","unresolved":true,"context_lines":[{"line_number":163,"context_line":"            LOG.warning(\"No PXE enabled NIC was found for node \""},{"line_number":164,"context_line":"                        \"%(node_uuid)s.\", {\u0027node_uuid\u0027: task.node.uuid})"},{"line_number":165,"context_line":"        else:"},{"line_number":166,"context_line":"            if pxe_port_macs:"},{"line_number":167,"context_line":"                pxe_port_macs \u003d [macs.lower() for macs in pxe_port_macs]"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"            ports \u003d objects.Port.list_by_node_id(task.context, task.node.id)"}],"source_content_type":"text/x-python","patch_set":32,"id":"10043f69_5ce8bb7e","line":166,"range":{"start_line":166,"start_character":11,"end_line":166,"end_character":29},"updated":"2021-03-19 13:18:00.000000000","message":"don\u0027t need this additiona check, the code should work on empty list","commit_id":"a004fae33fd5cd2560c63b57b30af854ba5aed22"},{"author":{"_account_id":25726,"name":"sonali bhausaheb borkar","email":"sonaliborkar85@gmail.com","username":"sonaliborkar85"},"change_message_id":"fa826a838a0e51087a4d9db96c6927ac1ff7f8f8","unresolved":false,"context_lines":[{"line_number":163,"context_line":"            LOG.warning(\"No PXE enabled NIC was found for node \""},{"line_number":164,"context_line":"                        \"%(node_uuid)s.\", {\u0027node_uuid\u0027: task.node.uuid})"},{"line_number":165,"context_line":"        else:"},{"line_number":166,"context_line":"            if pxe_port_macs:"},{"line_number":167,"context_line":"                pxe_port_macs \u003d [macs.lower() for macs in pxe_port_macs]"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"            ports \u003d objects.Port.list_by_node_id(task.context, task.node.id)"}],"source_content_type":"text/x-python","patch_set":32,"id":"aa494d70_cb0fc5e8","line":166,"range":{"start_line":166,"start_character":11,"end_line":166,"end_character":29},"in_reply_to":"10043f69_5ce8bb7e","updated":"2021-03-22 11:44:17.000000000","message":"Done","commit_id":"a004fae33fd5cd2560c63b57b30af854ba5aed22"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"f0247f8fb6c3ab15d5ffd5396a1596f9ef0a2b95","unresolved":true,"context_lines":[{"line_number":169,"context_line":"            ports \u003d objects.Port.list_by_node_id(task.context, task.node.id)"},{"line_number":170,"context_line":"            if ports:"},{"line_number":171,"context_line":"                for port in ports:"},{"line_number":172,"context_line":"                    is_baremetal_pxe_port \u003d (port.address"},{"line_number":173,"context_line":"                                             in pxe_port_macs)"},{"line_number":174,"context_line":"                    if port.pxe_enabled !\u003d is_baremetal_pxe_port:"},{"line_number":175,"context_line":"                        port.pxe_enabled \u003d is_baremetal_pxe_port"}],"source_content_type":"text/x-python","patch_set":32,"id":"444ea6d4_45f231aa","line":172,"range":{"start_line":172,"start_character":50,"end_line":172,"end_character":57},"updated":"2021-03-19 13:18:00.000000000","message":"make port.address.lower() to be sure that cases match with what\u0027s set in ln 167","commit_id":"a004fae33fd5cd2560c63b57b30af854ba5aed22"},{"author":{"_account_id":25726,"name":"sonali bhausaheb borkar","email":"sonaliborkar85@gmail.com","username":"sonaliborkar85"},"change_message_id":"fa826a838a0e51087a4d9db96c6927ac1ff7f8f8","unresolved":false,"context_lines":[{"line_number":169,"context_line":"            ports \u003d objects.Port.list_by_node_id(task.context, task.node.id)"},{"line_number":170,"context_line":"            if ports:"},{"line_number":171,"context_line":"                for port in ports:"},{"line_number":172,"context_line":"                    is_baremetal_pxe_port \u003d (port.address"},{"line_number":173,"context_line":"                                             in pxe_port_macs)"},{"line_number":174,"context_line":"                    if port.pxe_enabled !\u003d is_baremetal_pxe_port:"},{"line_number":175,"context_line":"                        port.pxe_enabled \u003d is_baremetal_pxe_port"}],"source_content_type":"text/x-python","patch_set":32,"id":"0734af35_d6edbb2b","line":172,"range":{"start_line":172,"start_character":50,"end_line":172,"end_character":57},"in_reply_to":"444ea6d4_45f231aa","updated":"2021-03-22 11:44:17.000000000","message":"Done","commit_id":"a004fae33fd5cd2560c63b57b30af854ba5aed22"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"96d710135c58eb17b2ac7c18041123f04e732776","unresolved":true,"context_lines":[{"line_number":166,"context_line":"            pxe_port_macs \u003d [macs.lower() for macs in pxe_port_macs]"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"            ports \u003d objects.Port.list_by_node_id(task.context, task.node.id)"},{"line_number":169,"context_line":"            if ports:"},{"line_number":170,"context_line":"                for port in ports:"},{"line_number":171,"context_line":"                    is_baremetal_pxe_port \u003d (port.address.lower()"},{"line_number":172,"context_line":"                                             in pxe_port_macs)"}],"source_content_type":"text/x-python","patch_set":33,"id":"68ecf361_110beffc","line":169,"range":{"start_line":169,"start_character":6,"end_line":169,"end_character":21},"updated":"2021-03-22 20:30:39.000000000","message":"I would just remove this if statement, and move it down to line 184 \"if not  ports:\" as the loop is not going to execute if the list of ports are empty.","commit_id":"ece1f2bf09da8fcef39f1662aa4e42b5abfa4dae"},{"author":{"_account_id":25726,"name":"sonali bhausaheb borkar","email":"sonaliborkar85@gmail.com","username":"sonaliborkar85"},"change_message_id":"007f8d145990e308b2001501e5bd358963b1260f","unresolved":true,"context_lines":[{"line_number":166,"context_line":"            pxe_port_macs \u003d [macs.lower() for macs in pxe_port_macs]"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"            ports \u003d objects.Port.list_by_node_id(task.context, task.node.id)"},{"line_number":169,"context_line":"            if ports:"},{"line_number":170,"context_line":"                for port in ports:"},{"line_number":171,"context_line":"                    is_baremetal_pxe_port \u003d (port.address.lower()"},{"line_number":172,"context_line":"                                             in pxe_port_macs)"}],"source_content_type":"text/x-python","patch_set":33,"id":"f3fd6d26_43087f60","line":169,"range":{"start_line":169,"start_character":6,"end_line":169,"end_character":21},"in_reply_to":"68ecf361_110beffc","updated":"2021-03-24 13:32:36.000000000","message":"yes your right .\nBut here also if port has items it will execute if block and else for empty list .\nVise versa . I think its good to have . Let me know your thoughts","commit_id":"ece1f2bf09da8fcef39f1662aa4e42b5abfa4dae"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"cfd2ee6fe05d3079cf24743767f3bbfcfbf3be84","unresolved":true,"context_lines":[{"line_number":180,"context_line":"                                  \u0027mac_address\u0027: port.address,"},{"line_number":181,"context_line":"                                  \u0027pxe\u0027: port.pxe_enabled,"},{"line_number":182,"context_line":"                                  \u0027node_uuid\u0027: task.node.uuid})"},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"            else:"},{"line_number":185,"context_line":"                LOG.warning(\"No port information discovered \""},{"line_number":186,"context_line":"                            \"for node %(node)s\", {\u0027node\u0027: task.node.uuid})"}],"source_content_type":"text/x-python","patch_set":36,"id":"c58e318c_6a63b988","line":183,"updated":"2021-03-25 15:20:58.000000000","message":"nit: empty line could be removed","commit_id":"d31493fae5bb27f713c454f640997d5118212d17"},{"author":{"_account_id":25726,"name":"sonali bhausaheb borkar","email":"sonaliborkar85@gmail.com","username":"sonaliborkar85"},"change_message_id":"455f62e4d70729dea0efaf2029f3fa489b53e8cb","unresolved":false,"context_lines":[{"line_number":180,"context_line":"                                  \u0027mac_address\u0027: port.address,"},{"line_number":181,"context_line":"                                  \u0027pxe\u0027: port.pxe_enabled,"},{"line_number":182,"context_line":"                                  \u0027node_uuid\u0027: task.node.uuid})"},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"            else:"},{"line_number":185,"context_line":"                LOG.warning(\"No port information discovered \""},{"line_number":186,"context_line":"                            \"for node %(node)s\", {\u0027node\u0027: task.node.uuid})"}],"source_content_type":"text/x-python","patch_set":36,"id":"8f04fe3c_3182658c","line":183,"in_reply_to":"c58e318c_6a63b988","updated":"2021-03-26 08:49:45.000000000","message":"Done","commit_id":"d31493fae5bb27f713c454f640997d5118212d17"}],"ironic/tests/unit/drivers/modules/drac/test_inspect.py":[{"author":{"_account_id":10250,"name":"Christopher Dearborn","email":"Christopher.Dearborn@dell.com","username":"cdearbor"},"change_message_id":"3631e3a7cc6ff3e3fdfeb02d96e2f2d31c17216a","unresolved":false,"context_lines":[{"line_number":520,"context_line":"            port \u003d mock_list_by_node_id.return_value"},{"line_number":521,"context_line":"            self.assertFalse(port[0].pxe_enabled)"},{"line_number":522,"context_line":""},{"line_number":523,"context_line":"            return_value \u003d task.driver.inspect.inspect_hardware(task)"},{"line_number":524,"context_line":"            self.assertEqual(states.MANAGEABLE, return_value)"},{"line_number":525,"context_line":""},{"line_number":526,"context_line":"    @mock.patch.object(objects.Port, \u0027list_by_node_id\u0027, autospec\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_f3e43310","line":523,"updated":"2019-11-19 21:54:29.000000000","message":"I think we only want to call inspect_hardware once in this test case.  We should probably change line 519 to:\nreturn_value \u003d task.driver.inspect.inspect_hardware(task)\nand delete the line above.","commit_id":"5777e763bf329b1a7daf5174030f53157b509f2d"},{"author":{"_account_id":7321,"name":"Prakash Ramchandran","email":"pramchan@yahoo.com","username":"pramchan"},"change_message_id":"f61fdfcc4865d9abae02b856c4c06e29b18a4cea","unresolved":false,"context_lines":[{"line_number":457,"context_line":"        mock_post.return_value.__dict__ \u003d {\u0027status_code\u0027: 202, \u0027headers\u0027: {"},{"line_number":458,"context_line":"            \u0027Location\u0027: \u0027/redfish/v1/TaskService/Tasks/JID_704694755409\u0027}}"},{"line_number":459,"context_line":"        mock_get.return_value.__dict__ \u003d {"},{"line_number":460,"context_line":"            \u0027_content\u0027: \u0027\u003cSystemConfiguration Model\u003d\"PowerEdge R640\" \u0027"},{"line_number":461,"context_line":"            \u0027ServiceTag\u003d\"7T1NHK2\" TimeStamp\u003d\"Wed Oct 16 11:38:17 2019\"\u003e \\n \u0027"},{"line_number":462,"context_line":"            \u0027\u003cComponent FQDD\u003d\"NIC.Slot.1-1-1\"\u003e \\n \u0027"},{"line_number":463,"context_line":"            \u0027\u003cAttribute Name\u003d\"LegacyBootProto\"\u003eNONE\u003c/Attribute\u003e \\n \u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa7e38b_efb03f90","line":460,"updated":"2020-02-03 20:00:15.000000000","message":"Will there be a separate mock/test for R740xD?","commit_id":"180c0cf374d7bbfce19d0de23a92ee0efb444893"},{"author":{"_account_id":10250,"name":"Christopher Dearborn","email":"Christopher.Dearborn@dell.com","username":"cdearbor"},"change_message_id":"37051ceefd7618047b2a52e1fe0816b869b28868","unresolved":false,"context_lines":[{"line_number":457,"context_line":"        mock_post.return_value.__dict__ \u003d {\u0027status_code\u0027: 202, \u0027headers\u0027: {"},{"line_number":458,"context_line":"            \u0027Location\u0027: \u0027/redfish/v1/TaskService/Tasks/JID_704694755409\u0027}}"},{"line_number":459,"context_line":"        mock_get.return_value.__dict__ \u003d {"},{"line_number":460,"context_line":"            \u0027_content\u0027: \u0027\u003cSystemConfiguration Model\u003d\"PowerEdge R640\" \u0027"},{"line_number":461,"context_line":"            \u0027ServiceTag\u003d\"7T1NHK2\" TimeStamp\u003d\"Wed Oct 16 11:38:17 2019\"\u003e \\n \u0027"},{"line_number":462,"context_line":"            \u0027\u003cComponent FQDD\u003d\"NIC.Slot.1-1-1\"\u003e \\n \u0027"},{"line_number":463,"context_line":"            \u0027\u003cAttribute Name\u003d\"LegacyBootProto\"\u003eNONE\u003c/Attribute\u003e \\n \u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"1fa4df85_207dee6d","line":460,"in_reply_to":"3fa7e38b_efb03f90","updated":"2020-03-16 22:03:34.000000000","message":"Hey Prakash, there won\u0027t be a separate test for R740xd because the test would be identical other than changing the server model.","commit_id":"180c0cf374d7bbfce19d0de23a92ee0efb444893"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"ba941644b804d4f78b9693966a797e1215b57029","unresolved":false,"context_lines":[{"line_number":41,"context_line":"# System Management Constant"},{"line_number":42,"context_line":"_SERVICE_ROOT \u003d \u0027/redfish/v1/Managers/\u0027"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"authenticator \u003d sushy.auth.BasicAuth("},{"line_number":45,"context_line":"    DRAC_REDFISH_INFO_DICT[\"redfish_username\"],"},{"line_number":46,"context_line":"    DRAC_REDFISH_INFO_DICT[\"redfish_password\"])"},{"line_number":47,"context_line":"url \u003d \u0027%s%s\u0027 % (DRAC_REDFISH_INFO_DICT[\"redfish_address\"], _SERVICE_ROOT)"},{"line_number":48,"context_line":"conn \u003d sushy.Sushy(url, verify\u003dFalse, auth\u003dauthenticator)"},{"line_number":49,"context_line":"manager \u003d conn.get_manager(\u0027iDRAC.Embedded.1\u0027)"},{"line_number":50,"context_line":"oem_manager \u003d manager.get_oem_extension(\u0027Dell\u0027)"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"class DracInspectionTestCase(test_utils.BaseDracTest):"}],"source_content_type":"text/x-python","patch_set":7,"id":"df33271e_c52c1cae","line":50,"range":{"start_line":44,"start_character":0,"end_line":50,"end_character":47},"updated":"2020-03-30 14:15:11.000000000","message":"You really can\u0027t do it this way. This actually instantiates a copy of the sushy libary which attempts to connect to https://example.com/redfish/v1.....\n\nIt also *loooks* like this is unused?\n\n-----------------\n\n2020-03-26 18:37:27.444988 | ubuntu-bionic | --- stdout ---\n2020-03-26 18:37:27.445022 | ubuntu-bionic | 2020-03-26 18:37:25.408 3913 WARNING sushy.exceptions [-] Error response from GET https://example.com/redfish/v1/ with status code 404 has no JSON body: simplejson.errors.JSONDecodeError: Expecting value: line 1 column 1 (char 0)\u001b[00m\n2020-03-26 18:37:27.445055 | ubuntu-bionic | --- import errors ---\n2020-03-26 18:37:27.445077 | ubuntu-bionic | Failed to import test module: ironic.tests.unit.drivers.modules.drac.test_inspect\n2020-03-26 18:37:27.445101 | ubuntu-bionic | Traceback (most recent call last):\n2020-03-26 18:37:27.445121 | ubuntu-bionic |   File \"/usr/lib/python3.6/unittest/loader.py\", line 428, in _find_test_path\n2020-03-26 18:37:27.445140 | ubuntu-bionic |     module \u003d self._get_module_from_name(name)\n2020-03-26 18:37:27.445159 | ubuntu-bionic |   File \"/usr/lib/python3.6/unittest/loader.py\", line 369, in _get_module_from_name\n2020-03-26 18:37:27.445179 | ubuntu-bionic |     __import__(name)\n2020-03-26 18:37:27.445198 | ubuntu-bionic |   File \"/home/zuul/src/opendev.org/openstack/ironic/ironic/tests/unit/drivers/modules/drac/test_inspect.py\", line 48, in \u003cmodule\u003e\n2020-03-26 18:37:27.445218 | ubuntu-bionic |     conn \u003d sushy.Sushy(url, verify\u003dFalse, auth\u003dauthenticator)\n2020-03-26 18:37:27.445237 | ubuntu-bionic |   File \"/home/zuul/src/opendev.org/openstack/ironic/.tox/unit-with-driver-libs/lib/python3.6/site-packages/sushy/main.py\", line 141, in __init__\n2020-03-26 18:37:27.445259 | ubuntu-bionic |     path\u003dself._root_prefix)\n2020-03-26 18:37:27.445286 | ubuntu-bionic |   File \"/home/zuul/src/opendev.org/openstack/ironic/.tox/unit-with-driver-libs/lib/python3.6/site-packages/sushy/resources/base.py\", line 437, in __init__\n2020-03-26 18:37:27.445307 | ubuntu-bionic |     self.refresh()\n2020-03-26 18:37:27.445326 | ubuntu-bionic |   File \"/home/zuul/src/opendev.org/openstack/ironic/.tox/unit-with-driver-libs/lib/python3.6/site-packages/sushy/resources/base.py\", line 472, in refresh\n2020-03-26 18:37:27.445345 | ubuntu-bionic |     self._json \u003d self._reader.get_json()\n2020-03-26 18:37:27.445364 | ubuntu-bionic |   File \"/home/zuul/src/opendev.org/openstack/ironic/.tox/unit-with-driver-libs/lib/python3.6/site-packages/sushy/resources/base.py\", line 339, in get_json\n2020-03-26 18:37:27.445383 | ubuntu-bionic |     data \u003d self._conn.get(path\u003dself._path)\n2020-03-26 18:37:27.445402 | ubuntu-bionic |   File \"/home/zuul/src/opendev.org/openstack/ironic/.tox/unit-with-driver-libs/lib/python3.6/site-packages/sushy/connector.py\", line 168, in get\n2020-03-26 18:37:27.445421 | ubuntu-bionic |     **extra_session_req_kwargs)\n2020-03-26 18:37:27.445440 | ubuntu-bionic |   File \"/home/zuul/src/opendev.org/openstack/ironic/.tox/unit-with-driver-libs/lib/python3.6/site-packages/sushy/connector.py\", line 108, in _op\n2020-03-26 18:37:27.445459 | ubuntu-bionic |     exceptions.raise_for_response(method, url, response)\n2020-03-26 18:37:27.445478 | ubuntu-bionic |   File \"/home/zuul/src/opendev.org/openstack/ironic/.tox/unit-with-driver-libs/lib/python3.6/site-packages/sushy/exceptions.py\", line 154, in raise_for_response\n2020-03-26 18:37:27.445498 | ubuntu-bionic |     raise ResourceNotFoundError(method, url, response)\n2020-03-26 18:37:27.445516 | ubuntu-bionic | sushy.exceptions.ResourceNotFoundError: Resource https://example.com/redfish/v1/ not found\n2020-03-26 18:37:27.445537 | ubuntu-bionic |","commit_id":"fa51fcc92433b5b6c8c1a30b208ed23707dd9dfd"},{"author":{"_account_id":31418,"name":"Mahendra Kamble","email":"mahendra.kamble358@gmail.com","username":"MahendraKamble"},"change_message_id":"f214837016f7b994950ecb9657b1d2cf8878ca8d","unresolved":false,"context_lines":[{"line_number":41,"context_line":"# System Management Constant"},{"line_number":42,"context_line":"_SERVICE_ROOT \u003d \u0027/redfish/v1/Managers/\u0027"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"authenticator \u003d sushy.auth.BasicAuth("},{"line_number":45,"context_line":"    DRAC_REDFISH_INFO_DICT[\"redfish_username\"],"},{"line_number":46,"context_line":"    DRAC_REDFISH_INFO_DICT[\"redfish_password\"])"},{"line_number":47,"context_line":"url \u003d \u0027%s%s\u0027 % (DRAC_REDFISH_INFO_DICT[\"redfish_address\"], _SERVICE_ROOT)"},{"line_number":48,"context_line":"conn \u003d sushy.Sushy(url, verify\u003dFalse, auth\u003dauthenticator)"},{"line_number":49,"context_line":"manager \u003d conn.get_manager(\u0027iDRAC.Embedded.1\u0027)"},{"line_number":50,"context_line":"oem_manager \u003d manager.get_oem_extension(\u0027Dell\u0027)"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"class DracInspectionTestCase(test_utils.BaseDracTest):"}],"source_content_type":"text/x-python","patch_set":7,"id":"df33271e_7ea1b695","line":50,"range":{"start_line":44,"start_character":0,"end_line":50,"end_character":47},"in_reply_to":"df33271e_81495f32","updated":"2020-04-07 04:50:34.000000000","message":"Done","commit_id":"fa51fcc92433b5b6c8c1a30b208ed23707dd9dfd"},{"author":{"_account_id":10250,"name":"Christopher Dearborn","email":"Christopher.Dearborn@dell.com","username":"cdearbor"},"change_message_id":"8bc0b2c439001d2dc945995a84cb89ea014b39ff","unresolved":false,"context_lines":[{"line_number":41,"context_line":"# System Management Constant"},{"line_number":42,"context_line":"_SERVICE_ROOT \u003d \u0027/redfish/v1/Managers/\u0027"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"authenticator \u003d sushy.auth.BasicAuth("},{"line_number":45,"context_line":"    DRAC_REDFISH_INFO_DICT[\"redfish_username\"],"},{"line_number":46,"context_line":"    DRAC_REDFISH_INFO_DICT[\"redfish_password\"])"},{"line_number":47,"context_line":"url \u003d \u0027%s%s\u0027 % (DRAC_REDFISH_INFO_DICT[\"redfish_address\"], _SERVICE_ROOT)"},{"line_number":48,"context_line":"conn \u003d sushy.Sushy(url, verify\u003dFalse, auth\u003dauthenticator)"},{"line_number":49,"context_line":"manager \u003d conn.get_manager(\u0027iDRAC.Embedded.1\u0027)"},{"line_number":50,"context_line":"oem_manager \u003d manager.get_oem_extension(\u0027Dell\u0027)"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"class DracInspectionTestCase(test_utils.BaseDracTest):"}],"source_content_type":"text/x-python","patch_set":7,"id":"df33271e_81495f32","line":50,"range":{"start_line":44,"start_character":0,"end_line":50,"end_character":47},"in_reply_to":"df33271e_c52c1cae","updated":"2020-03-30 20:58:17.000000000","message":"Hey Mahendra, how about adding a get_sushy_oem_manager() method to drac/common.py?\nThen we could call that from the code and mock it here using the same technique that we use for get_drac_client().\n\nSee: https://github.com/openstack/ironic/blob/master/ironic/drivers/modules/drac/common.py#L101","commit_id":"fa51fcc92433b5b6c8c1a30b208ed23707dd9dfd"},{"author":{"_account_id":10250,"name":"Christopher Dearborn","email":"Christopher.Dearborn@dell.com","username":"cdearbor"},"change_message_id":"95b62ec0228bc258684c8ff52ee3042371101b6a","unresolved":false,"context_lines":[{"line_number":491,"context_line":"            pxe_port_macs \u003d task.driver.inspect._get_pxe_port_macs(task)"},{"line_number":492,"context_line":"            self.assertEqual(expected_pxe_mac, pxe_port_macs)"},{"line_number":493,"context_line":""},{"line_number":494,"context_line":"    @mock.patch.object(objects.Port, \u0027list_by_node_id\u0027)"},{"line_number":495,"context_line":"    @mock.patch.object(DracRedfishInspect, \u0027_get_pxe_port_macs\u0027, autospec\u003dTrue)"},{"line_number":496,"context_line":"    @mock.patch.object(redfish_utils, \u0027get_system\u0027, autospec\u003dTrue)"},{"line_number":497,"context_line":"    def test_inspect_hardware_without_pxe_port_macs("}],"source_content_type":"text/x-python","patch_set":16,"id":"1f493fa4_8186d164","line":494,"updated":"2020-05-06 19:57:29.000000000","message":"Don\u0027t we want autospec\u003dTrue here, and in the other change sites below?","commit_id":"a2c09f99ca0c67ced262007d37a1ba2151c77589"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"9418704f893ec44f72b503a528323049a7186d4d","unresolved":false,"context_lines":[{"line_number":491,"context_line":"            pxe_port_macs \u003d task.driver.inspect._get_pxe_port_macs(task)"},{"line_number":492,"context_line":"            self.assertEqual(expected_pxe_mac, pxe_port_macs)"},{"line_number":493,"context_line":""},{"line_number":494,"context_line":"    @mock.patch.object(objects.Port, \u0027list_by_node_id\u0027)"},{"line_number":495,"context_line":"    @mock.patch.object(DracRedfishInspect, \u0027_get_pxe_port_macs\u0027, autospec\u003dTrue)"},{"line_number":496,"context_line":"    @mock.patch.object(redfish_utils, \u0027get_system\u0027, autospec\u003dTrue)"},{"line_number":497,"context_line":"    def test_inspect_hardware_without_pxe_port_macs("}],"source_content_type":"text/x-python","patch_set":16,"id":"1f493fa4_b84faebc","line":494,"updated":"2020-05-07 13:54:23.000000000","message":"Please add a `# noqa` comment, we\u0027re trying to enable enforcing autospec\u003dTrue globally (and yes, what you\u0027re hitting is a known bug in python 3.6)","commit_id":"a2c09f99ca0c67ced262007d37a1ba2151c77589"},{"author":{"_account_id":10250,"name":"Christopher Dearborn","email":"Christopher.Dearborn@dell.com","username":"cdearbor"},"change_message_id":"4005dd4a79b2d51775b21d4b2d7c4c6c3eeebd79","unresolved":false,"context_lines":[{"line_number":491,"context_line":"            pxe_port_macs \u003d task.driver.inspect._get_pxe_port_macs(task)"},{"line_number":492,"context_line":"            self.assertEqual(expected_pxe_mac, pxe_port_macs)"},{"line_number":493,"context_line":""},{"line_number":494,"context_line":"    @mock.patch.object(objects.Port, \u0027list_by_node_id\u0027)"},{"line_number":495,"context_line":"    @mock.patch.object(DracRedfishInspect, \u0027_get_pxe_port_macs\u0027, autospec\u003dTrue)"},{"line_number":496,"context_line":"    @mock.patch.object(redfish_utils, \u0027get_system\u0027, autospec\u003dTrue)"},{"line_number":497,"context_line":"    def test_inspect_hardware_without_pxe_port_macs("}],"source_content_type":"text/x-python","patch_set":16,"id":"1f493fa4_98275265","line":494,"in_reply_to":"1f493fa4_1adfbf0c","updated":"2020-05-07 13:46:07.000000000","message":"Nice find!  Let\u0027s leave the code as-is then.","commit_id":"a2c09f99ca0c67ced262007d37a1ba2151c77589"},{"author":{"_account_id":31418,"name":"Mahendra Kamble","email":"mahendra.kamble358@gmail.com","username":"MahendraKamble"},"change_message_id":"bef40569211bd1f623809d172d39840fc4261335","unresolved":false,"context_lines":[{"line_number":491,"context_line":"            pxe_port_macs \u003d task.driver.inspect._get_pxe_port_macs(task)"},{"line_number":492,"context_line":"            self.assertEqual(expected_pxe_mac, pxe_port_macs)"},{"line_number":493,"context_line":""},{"line_number":494,"context_line":"    @mock.patch.object(objects.Port, \u0027list_by_node_id\u0027)"},{"line_number":495,"context_line":"    @mock.patch.object(DracRedfishInspect, \u0027_get_pxe_port_macs\u0027, autospec\u003dTrue)"},{"line_number":496,"context_line":"    @mock.patch.object(redfish_utils, \u0027get_system\u0027, autospec\u003dTrue)"},{"line_number":497,"context_line":"    def test_inspect_hardware_without_pxe_port_macs("}],"source_content_type":"text/x-python","patch_set":16,"id":"1f493fa4_1adfbf0c","line":494,"in_reply_to":"1f493fa4_8186d164","updated":"2020-05-07 07:55:32.000000000","message":"When we use autospec\u003dTrue for this list_by_node_id(classmethod) then after running tox we get error \"TypeError: \u0027NonCallableMagicMock\u0027 object is not callable\" as we are using mock from unittest. so I removed the autospec\u003dTrue parameter.","commit_id":"a2c09f99ca0c67ced262007d37a1ba2151c77589"},{"author":{"_account_id":31418,"name":"Mahendra Kamble","email":"mahendra.kamble358@gmail.com","username":"MahendraKamble"},"change_message_id":"f9adcdfb69331a982a98b4e97b8fd081d7bfcc9c","unresolved":false,"context_lines":[{"line_number":491,"context_line":"            pxe_port_macs \u003d task.driver.inspect._get_pxe_port_macs(task)"},{"line_number":492,"context_line":"            self.assertEqual(expected_pxe_mac, pxe_port_macs)"},{"line_number":493,"context_line":""},{"line_number":494,"context_line":"    @mock.patch.object(objects.Port, \u0027list_by_node_id\u0027)"},{"line_number":495,"context_line":"    @mock.patch.object(DracRedfishInspect, \u0027_get_pxe_port_macs\u0027, autospec\u003dTrue)"},{"line_number":496,"context_line":"    @mock.patch.object(redfish_utils, \u0027get_system\u0027, autospec\u003dTrue)"},{"line_number":497,"context_line":"    def test_inspect_hardware_without_pxe_port_macs("}],"source_content_type":"text/x-python","patch_set":16,"id":"1f493fa4_8f737c80","line":494,"in_reply_to":"1f493fa4_b84faebc","updated":"2020-05-08 06:59:55.000000000","message":"Done","commit_id":"a2c09f99ca0c67ced262007d37a1ba2151c77589"},{"author":{"_account_id":10250,"name":"Christopher Dearborn","email":"Christopher.Dearborn@dell.com","username":"cdearbor"},"change_message_id":"95b62ec0228bc258684c8ff52ee3042371101b6a","unresolved":false,"context_lines":[{"line_number":513,"context_line":"            self.assertFalse(port[0].pxe_enabled)"},{"line_number":514,"context_line":"            self.assertEqual(states.MANAGEABLE, return_value)"},{"line_number":515,"context_line":""},{"line_number":516,"context_line":"    @mock.patch.object(objects.Port, \u0027list_by_node_id\u0027)"},{"line_number":517,"context_line":"    @mock.patch.object(DracRedfishInspect, \u0027_get_pxe_port_macs\u0027, autospec\u003dTrue)"},{"line_number":518,"context_line":"    @mock.patch.object(redfish_utils, \u0027get_system\u0027, autospec\u003dTrue)"},{"line_number":519,"context_line":"    def test_inspect_hardware_with_set_port_pxe_enabled("}],"source_content_type":"text/x-python","patch_set":16,"id":"1f493fa4_41ba090a","line":516,"updated":"2020-05-06 19:57:29.000000000","message":"Here too","commit_id":"a2c09f99ca0c67ced262007d37a1ba2151c77589"},{"author":{"_account_id":10250,"name":"Christopher Dearborn","email":"Christopher.Dearborn@dell.com","username":"cdearbor"},"change_message_id":"4005dd4a79b2d51775b21d4b2d7c4c6c3eeebd79","unresolved":false,"context_lines":[{"line_number":513,"context_line":"            self.assertFalse(port[0].pxe_enabled)"},{"line_number":514,"context_line":"            self.assertEqual(states.MANAGEABLE, return_value)"},{"line_number":515,"context_line":""},{"line_number":516,"context_line":"    @mock.patch.object(objects.Port, \u0027list_by_node_id\u0027)"},{"line_number":517,"context_line":"    @mock.patch.object(DracRedfishInspect, \u0027_get_pxe_port_macs\u0027, autospec\u003dTrue)"},{"line_number":518,"context_line":"    @mock.patch.object(redfish_utils, \u0027get_system\u0027, autospec\u003dTrue)"},{"line_number":519,"context_line":"    def test_inspect_hardware_with_set_port_pxe_enabled("}],"source_content_type":"text/x-python","patch_set":16,"id":"1f493fa4_b81b2e1a","line":516,"in_reply_to":"1f493fa4_41ba090a","updated":"2020-05-07 13:46:07.000000000","message":"Let\u0027s leave the code as-is.","commit_id":"a2c09f99ca0c67ced262007d37a1ba2151c77589"},{"author":{"_account_id":10250,"name":"Christopher Dearborn","email":"Christopher.Dearborn@dell.com","username":"cdearbor"},"change_message_id":"95b62ec0228bc258684c8ff52ee3042371101b6a","unresolved":false,"context_lines":[{"line_number":534,"context_line":"            port \u003d mock_list_by_node_id.return_value"},{"line_number":535,"context_line":"            self.assertTrue(port[0].pxe_enabled)"},{"line_number":536,"context_line":""},{"line_number":537,"context_line":"    @mock.patch.object(objects.Port, \u0027list_by_node_id\u0027)"},{"line_number":538,"context_line":"    @mock.patch.object(DracRedfishInspect, \u0027_get_pxe_port_macs\u0027, autospec\u003dTrue)"},{"line_number":539,"context_line":"    @mock.patch.object(redfish_utils, \u0027get_system\u0027, autospec\u003dTrue)"},{"line_number":540,"context_line":"    def test_inspect_hardware_with_set_port_pxe_disabled("}],"source_content_type":"text/x-python","patch_set":16,"id":"1f493fa4_01c0017c","line":537,"updated":"2020-05-06 19:57:29.000000000","message":"Here too","commit_id":"a2c09f99ca0c67ced262007d37a1ba2151c77589"},{"author":{"_account_id":10250,"name":"Christopher Dearborn","email":"Christopher.Dearborn@dell.com","username":"cdearbor"},"change_message_id":"4005dd4a79b2d51775b21d4b2d7c4c6c3eeebd79","unresolved":false,"context_lines":[{"line_number":534,"context_line":"            port \u003d mock_list_by_node_id.return_value"},{"line_number":535,"context_line":"            self.assertTrue(port[0].pxe_enabled)"},{"line_number":536,"context_line":""},{"line_number":537,"context_line":"    @mock.patch.object(objects.Port, \u0027list_by_node_id\u0027)"},{"line_number":538,"context_line":"    @mock.patch.object(DracRedfishInspect, \u0027_get_pxe_port_macs\u0027, autospec\u003dTrue)"},{"line_number":539,"context_line":"    @mock.patch.object(redfish_utils, \u0027get_system\u0027, autospec\u003dTrue)"},{"line_number":540,"context_line":"    def test_inspect_hardware_with_set_port_pxe_disabled("}],"source_content_type":"text/x-python","patch_set":16,"id":"1f493fa4_181b421b","line":537,"in_reply_to":"1f493fa4_01c0017c","updated":"2020-05-07 13:46:07.000000000","message":"Let\u0027s leave the code as-is.","commit_id":"a2c09f99ca0c67ced262007d37a1ba2151c77589"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"f0247f8fb6c3ab15d5ffd5396a1596f9ef0a2b95","unresolved":true,"context_lines":[{"line_number":670,"context_line":"        with task_manager.acquire(self.context, self.node.uuid,"},{"line_number":671,"context_line":"                                  shared\u003dTrue) as task:"},{"line_number":672,"context_line":"            return_value \u003d task.driver.inspect.inspect_hardware(task)"},{"line_number":673,"context_line":"            self.assertEqual(states.MANAGEABLE, return_value)"}],"source_content_type":"text/x-python","patch_set":32,"id":"d7823307_53ff2d5c","line":673,"updated":"2021-03-19 13:18:00.000000000","message":"assert that inspect_utils.create_ports_if_not_exist was called with expected mac addresses","commit_id":"a004fae33fd5cd2560c63b57b30af854ba5aed22"},{"author":{"_account_id":25726,"name":"sonali bhausaheb borkar","email":"sonaliborkar85@gmail.com","username":"sonaliborkar85"},"change_message_id":"fa826a838a0e51087a4d9db96c6927ac1ff7f8f8","unresolved":true,"context_lines":[{"line_number":670,"context_line":"        with task_manager.acquire(self.context, self.node.uuid,"},{"line_number":671,"context_line":"                                  shared\u003dTrue) as task:"},{"line_number":672,"context_line":"            return_value \u003d task.driver.inspect.inspect_hardware(task)"},{"line_number":673,"context_line":"            self.assertEqual(states.MANAGEABLE, return_value)"}],"source_content_type":"text/x-python","patch_set":32,"id":"7003ccae_b37e8ac6","line":673,"in_reply_to":"d7823307_53ff2d5c","updated":"2021-03-22 11:44:17.000000000","message":"One will have discussion regarding https://review.opendev.org/c/openstack/ironic/+/693328/32/ironic/drivers/modules/drac/inspect.py#99\nbased on that will make changes for this and below comment","commit_id":"a004fae33fd5cd2560c63b57b30af854ba5aed22"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"f0247f8fb6c3ab15d5ffd5396a1596f9ef0a2b95","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":32,"id":"05c9b996_bfd45786","line":674,"updated":"2021-03-19 13:18:00.000000000","message":"add another test case for inspect_hardware where `if ethernet_interfaces_mac` on ln 74 is false to check that LOG is called","commit_id":"a004fae33fd5cd2560c63b57b30af854ba5aed22"},{"author":{"_account_id":25726,"name":"sonali bhausaheb borkar","email":"sonaliborkar85@gmail.com","username":"sonaliborkar85"},"change_message_id":"a1e74cd4c139d2495ea8e90395d8bf196a205995","unresolved":true,"context_lines":[{"line_number":684,"context_line":"            mock_create_ports_if_not_exist.assert_called_once_with("},{"line_number":685,"context_line":"                task, ethernet_interfaces_mac)"},{"line_number":686,"context_line":""},{"line_number":687,"context_line":"    @mock.patch.object(redfish_inspect.RedfishInspect, \u0027inspect_hardware\u0027,"},{"line_number":688,"context_line":"                       autospec\u003dTrue)"},{"line_number":689,"context_line":"    @mock.patch.object(drac_inspect.LOG, \u0027warning\u0027, autospec\u003dTrue)"},{"line_number":690,"context_line":"    def test_inspect_hardware_without_ethernet_interfaces_mac("}],"source_content_type":"text/x-python","patch_set":34,"id":"77149ffc_c5114c84","line":687,"updated":"2021-03-25 10:19:27.000000000","message":"removed tc as we are not having else condition","commit_id":"32ce23945e8cf59c699d74cffae4c8f4a1e0030c"},{"author":{"_account_id":25726,"name":"sonali bhausaheb borkar","email":"sonaliborkar85@gmail.com","username":"sonaliborkar85"},"change_message_id":"a1e74cd4c139d2495ea8e90395d8bf196a205995","unresolved":true,"context_lines":[{"line_number":669,"context_line":"                       autospec\u003dTrue)"},{"line_number":670,"context_line":"    @mock.patch.object(inspect_utils, \u0027create_ports_if_not_exist\u0027,"},{"line_number":671,"context_line":"                       autospec\u003dTrue)"},{"line_number":672,"context_line":"    def test_inspect_hardware_with_ethernet_interfaces_mac("},{"line_number":673,"context_line":"            self, mock_create_ports_if_not_exist, mock_inspect_hardware):"},{"line_number":674,"context_line":"        ethernet_interfaces_mac \u003d {\u0027NIC.Integrated.1-1-1\u0027:"},{"line_number":675,"context_line":"                                   \u002724:6E:96:70:49:00\u0027}"}],"source_content_type":"text/x-python","patch_set":35,"id":"6777de03_07c70b27","line":672,"updated":"2021-03-25 10:19:27.000000000","message":"asserted create_ports_if_not_exist as per last discussion and added new code as we have added new function and update https://review.opendev.org/c/openstack/ironic/+/693328/33/ironic/drivers/modules/drac/inspect.py#52","commit_id":"6067b88b70d2d3a9051c0f235c14669e46d11981"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"cfd2ee6fe05d3079cf24743767f3bbfcfbf3be84","unresolved":true,"context_lines":[{"line_number":38,"context_line":""},{"line_number":39,"context_line":"INFO_DICT \u003d test_utils.INFO_DICT"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"DRAC_REDFISH_INFO_DICT \u003d db_utils.get_test_redfish_info()"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"class DracInspectionTestCase(test_utils.BaseDracTest):"}],"source_content_type":"text/x-python","patch_set":36,"id":"10e2cdd3_07363725","line":41,"range":{"start_line":41,"start_character":0,"end_line":41,"end_character":57},"updated":"2021-03-25 15:20:58.000000000","message":"to avoid creating this, Redfish properties can be added to drac test data, like it\u0027s going to be done in another patch[1], then can keep using INFO_DICT\n\nhttps://review.opendev.org/c/openstack/ironic/+/759428/8/ironic/tests/unit/db/utils.py","commit_id":"d31493fae5bb27f713c454f640997d5118212d17"},{"author":{"_account_id":25726,"name":"sonali bhausaheb borkar","email":"sonaliborkar85@gmail.com","username":"sonaliborkar85"},"change_message_id":"455f62e4d70729dea0efaf2029f3fa489b53e8cb","unresolved":false,"context_lines":[{"line_number":38,"context_line":""},{"line_number":39,"context_line":"INFO_DICT \u003d test_utils.INFO_DICT"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"DRAC_REDFISH_INFO_DICT \u003d db_utils.get_test_redfish_info()"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"class DracInspectionTestCase(test_utils.BaseDracTest):"}],"source_content_type":"text/x-python","patch_set":36,"id":"c15b063a_0e2e88c6","line":41,"range":{"start_line":41,"start_character":0,"end_line":41,"end_character":57},"in_reply_to":"10e2cdd3_07363725","updated":"2021-03-26 08:49:45.000000000","message":"Done","commit_id":"d31493fae5bb27f713c454f640997d5118212d17"},{"author":{"_account_id":25726,"name":"sonali bhausaheb borkar","email":"sonaliborkar85@gmail.com","username":"sonaliborkar85"},"change_message_id":"377d259cceb4dd5257df5575cbecee2f449dce1b","unresolved":true,"context_lines":[{"line_number":697,"context_line":"    def test__get_mac_address_without_ethernet_interfaces(self,"},{"line_number":698,"context_line":"                                                          mock_get_system):"},{"line_number":699,"context_line":"        mock_system \u003d self.init_system_mock(mock_get_system.return_value)"},{"line_number":700,"context_line":"        mock_system.ethernet_interfaces.summary \u003d None"},{"line_number":701,"context_line":"        expected_value \u003d {}"},{"line_number":702,"context_line":"        with task_manager.acquire(self.context, self.node.uuid,"},{"line_number":703,"context_line":"                                  shared\u003dTrue) as task:"}],"source_content_type":"text/x-python","patch_set":36,"id":"d1db6554_1d2e3afc","line":700,"updated":"2021-03-25 14:50:07.000000000","message":"changed the condition as we have changed the main function","commit_id":"d31493fae5bb27f713c454f640997d5118212d17"}],"ironic/tests/unit/drivers/modules/redfish/test_inspect.py":[{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"f0247f8fb6c3ab15d5ffd5396a1596f9ef0a2b95","unresolved":true,"context_lines":[{"line_number":284,"context_line":""},{"line_number":285,"context_line":"    @mock.patch.object(objects.Port, \u0027list_by_node_id\u0027) # noqa"},{"line_number":286,"context_line":"    @mock.patch.object(redfish_utils, \u0027get_system\u0027, autospec\u003dTrue)"},{"line_number":287,"context_line":"    def test_inspect_hardware_with_None_pxe_port_macs("},{"line_number":288,"context_line":"            self, mock_get_system, mock_list_by_node_id):"},{"line_number":289,"context_line":"        self.init_system_mock(mock_get_system.return_value)"},{"line_number":290,"context_line":""}],"source_content_type":"text/x-python","patch_set":32,"id":"60ee4615_35461655","line":287,"range":{"start_line":287,"start_character":35,"end_line":287,"end_character":36},"updated":"2021-03-19 13:18:00.000000000","message":"lowercase _none_ in the name","commit_id":"a004fae33fd5cd2560c63b57b30af854ba5aed22"},{"author":{"_account_id":25726,"name":"sonali bhausaheb borkar","email":"sonaliborkar85@gmail.com","username":"sonaliborkar85"},"change_message_id":"fa826a838a0e51087a4d9db96c6927ac1ff7f8f8","unresolved":false,"context_lines":[{"line_number":284,"context_line":""},{"line_number":285,"context_line":"    @mock.patch.object(objects.Port, \u0027list_by_node_id\u0027) # noqa"},{"line_number":286,"context_line":"    @mock.patch.object(redfish_utils, \u0027get_system\u0027, autospec\u003dTrue)"},{"line_number":287,"context_line":"    def test_inspect_hardware_with_None_pxe_port_macs("},{"line_number":288,"context_line":"            self, mock_get_system, mock_list_by_node_id):"},{"line_number":289,"context_line":"        self.init_system_mock(mock_get_system.return_value)"},{"line_number":290,"context_line":""}],"source_content_type":"text/x-python","patch_set":32,"id":"56c649ed_2ea9dcfb","line":287,"range":{"start_line":287,"start_character":35,"end_line":287,"end_character":36},"in_reply_to":"60ee4615_35461655","updated":"2021-03-22 11:44:17.000000000","message":"Done","commit_id":"a004fae33fd5cd2560c63b57b30af854ba5aed22"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"f0247f8fb6c3ab15d5ffd5396a1596f9ef0a2b95","unresolved":true,"context_lines":[{"line_number":299,"context_line":"            task.driver.inspect._get_pxe_port_macs \u003d mock.Mock()"},{"line_number":300,"context_line":"            task.driver.inspect._get_pxe_port_macs.return_value \u003d None"},{"line_number":301,"context_line":"            port \u003d mock_list_by_node_id.return_value"},{"line_number":302,"context_line":"            self.assertTrue(port[0].pxe_enabled)"},{"line_number":303,"context_line":""},{"line_number":304,"context_line":"    @mock.patch.object(redfish_utils, \u0027get_system\u0027, autospec\u003dTrue)"},{"line_number":305,"context_line":"    def test_create_port_when_its_state_is_none(self, mock_get_system):"}],"source_content_type":"text/x-python","patch_set":32,"id":"d2c1273e_58c2845c","line":302,"updated":"2021-03-19 13:18:00.000000000","message":"assert that LOG.warning was called from ln 163-164","commit_id":"a004fae33fd5cd2560c63b57b30af854ba5aed22"},{"author":{"_account_id":25726,"name":"sonali bhausaheb borkar","email":"sonaliborkar85@gmail.com","username":"sonaliborkar85"},"change_message_id":"fa826a838a0e51087a4d9db96c6927ac1ff7f8f8","unresolved":false,"context_lines":[{"line_number":299,"context_line":"            task.driver.inspect._get_pxe_port_macs \u003d mock.Mock()"},{"line_number":300,"context_line":"            task.driver.inspect._get_pxe_port_macs.return_value \u003d None"},{"line_number":301,"context_line":"            port \u003d mock_list_by_node_id.return_value"},{"line_number":302,"context_line":"            self.assertTrue(port[0].pxe_enabled)"},{"line_number":303,"context_line":""},{"line_number":304,"context_line":"    @mock.patch.object(redfish_utils, \u0027get_system\u0027, autospec\u003dTrue)"},{"line_number":305,"context_line":"    def test_create_port_when_its_state_is_none(self, mock_get_system):"}],"source_content_type":"text/x-python","patch_set":32,"id":"5671b31a_ee4e2474","line":302,"in_reply_to":"d2c1273e_58c2845c","updated":"2021-03-22 11:44:17.000000000","message":"Done","commit_id":"a004fae33fd5cd2560c63b57b30af854ba5aed22"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"cfd2ee6fe05d3079cf24743767f3bbfcfbf3be84","unresolved":true,"context_lines":[{"line_number":66,"context_line":"            \u002700:11:22:33:44:55\u0027: sushy.STATE_ENABLED,"},{"line_number":67,"context_line":"            \u002766:77:88:99:AA:BB\u0027: sushy.STATE_DISABLED,"},{"line_number":68,"context_line":"        }"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"        return system_mock"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"    def test_get_properties(self):"}],"source_content_type":"text/x-python","patch_set":36,"id":"d35b12e0_8f22e1f7","side":"PARENT","line":69,"updated":"2021-03-25 15:20:58.000000000","message":"nit here and below - unrelated line deletions.","commit_id":"ea6dff7d314da9fd9cd5c1cf5135b69edaca9b3f"},{"author":{"_account_id":25726,"name":"sonali bhausaheb borkar","email":"sonaliborkar85@gmail.com","username":"sonaliborkar85"},"change_message_id":"455f62e4d70729dea0efaf2029f3fa489b53e8cb","unresolved":false,"context_lines":[{"line_number":66,"context_line":"            \u002700:11:22:33:44:55\u0027: sushy.STATE_ENABLED,"},{"line_number":67,"context_line":"            \u002766:77:88:99:AA:BB\u0027: sushy.STATE_DISABLED,"},{"line_number":68,"context_line":"        }"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"        return system_mock"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"    def test_get_properties(self):"}],"source_content_type":"text/x-python","patch_set":36,"id":"9bf820f9_dd8781c8","side":"PARENT","line":69,"in_reply_to":"d35b12e0_8f22e1f7","updated":"2021-03-26 08:49:45.000000000","message":"Done","commit_id":"ea6dff7d314da9fd9cd5c1cf5135b69edaca9b3f"}],"releasenotes/notes/add-pxe-nic-support-in-redfish-5359897135df1348.yaml":[{"author":{"_account_id":23847,"name":"Richard G. Pioso","email":"richard.pioso@gmail.com","username":"richard.pioso"},"change_message_id":"02d9dcf02d64ce74a66788e62e0cfc9b2eb5122a","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 pxe nic support in ``idrac-redfish`` inspect interface to"},{"line_number":5,"context_line":"    hardware type ``idrac``."},{"line_number":6,"context_line":"    It checks the boot mode(BIOS or UEFI) of the node and"},{"line_number":7,"context_line":"    retrieve the list of pxe device MAC addresses using redfish api"},{"line_number":8,"context_line":"    and updates the pxe_enabled field of Port."}],"source_content_type":"text/x-yaml","patch_set":1,"id":"3fa7e38b_8307311e","line":8,"range":{"start_line":4,"start_character":4,"end_line":8,"end_character":46},"updated":"2019-11-08 12:12:11.000000000","message":"My comments about the \"Commit Message\" also apply to this release note.","commit_id":"59fe564349f72e51b15017195ffddbec3eedc913"},{"author":{"_account_id":29834,"name":"Pradip Kadam","email":"pradip.kadam001@gmail.com","username":"pradip.kadam001"},"change_message_id":"334f93cec0fdfaa62fbee988e97d1c850e87975f","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 pxe nic support in ``idrac-redfish`` inspect interface to"},{"line_number":5,"context_line":"    hardware type ``idrac``."},{"line_number":6,"context_line":"    It checks the boot mode(BIOS or UEFI) of the node and"},{"line_number":7,"context_line":"    retrieve the list of pxe device MAC addresses using redfish api"},{"line_number":8,"context_line":"    and updates the pxe_enabled field of Port."}],"source_content_type":"text/x-yaml","patch_set":1,"id":"3fa7e38b_9b2ba380","line":8,"range":{"start_line":4,"start_character":4,"end_line":8,"end_character":46},"in_reply_to":"3fa7e38b_8307311e","updated":"2019-11-19 09:19:46.000000000","message":"Done","commit_id":"59fe564349f72e51b15017195ffddbec3eedc913"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"992a4d9e9d3bb445aa7c143b3a06a7367b70d4bc","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 pxe nic support in ``idrac-redfish`` inspect interface to"},{"line_number":5,"context_line":"    hardware type ``idrac``."},{"line_number":6,"context_line":"    It retrieve the list of pxe port MAC addresses using redfish api"},{"line_number":7,"context_line":"    and updates the pxe_enabled field of Port."}],"source_content_type":"text/x-yaml","patch_set":3,"id":"3fa7e38b_02a4a9a2","line":4,"range":{"start_line":4,"start_character":8,"end_line":4,"end_character":16},"updated":"2019-12-17 04:44:30.000000000","message":"s/  pxe nic / PXE NIC /","commit_id":"180c0cf374d7bbfce19d0de23a92ee0efb444893"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"992a4d9e9d3bb445aa7c143b3a06a7367b70d4bc","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Adds pxe nic support in ``idrac-redfish`` inspect interface to"},{"line_number":5,"context_line":"    hardware type ``idrac``."},{"line_number":6,"context_line":"    It retrieve the list of pxe port MAC addresses using redfish api"},{"line_number":7,"context_line":"    and updates the pxe_enabled field of Port."}],"source_content_type":"text/x-yaml","patch_set":3,"id":"3fa7e38b_62ac7d88","line":6,"range":{"start_line":6,"start_character":28,"end_line":6,"end_character":31},"updated":"2019-12-17 04:44:30.000000000","message":"s/ pxe / PXE /","commit_id":"180c0cf374d7bbfce19d0de23a92ee0efb444893"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"992a4d9e9d3bb445aa7c143b3a06a7367b70d4bc","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Adds pxe nic support in ``idrac-redfish`` inspect interface to"},{"line_number":5,"context_line":"    hardware type ``idrac``."},{"line_number":6,"context_line":"    It retrieve the list of pxe port MAC addresses using redfish api"},{"line_number":7,"context_line":"    and updates the pxe_enabled field of Port."}],"source_content_type":"text/x-yaml","patch_set":3,"id":"3fa7e38b_82b179e3","line":6,"range":{"start_line":6,"start_character":57,"end_line":6,"end_character":68},"updated":"2019-12-17 04:44:30.000000000","message":"s/ redfish api / Redfish API /","commit_id":"180c0cf374d7bbfce19d0de23a92ee0efb444893"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"992a4d9e9d3bb445aa7c143b3a06a7367b70d4bc","unresolved":false,"context_lines":[{"line_number":4,"context_line":"    Adds pxe nic support in ``idrac-redfish`` inspect interface to"},{"line_number":5,"context_line":"    hardware type ``idrac``."},{"line_number":6,"context_line":"    It retrieve the list of pxe port MAC addresses using redfish api"},{"line_number":7,"context_line":"    and updates the pxe_enabled field of Port."}],"source_content_type":"text/x-yaml","patch_set":3,"id":"3fa7e38b_42c3813a","line":7,"range":{"start_line":7,"start_character":41,"end_line":7,"end_character":45},"updated":"2019-12-17 04:44:30.000000000","message":"s/ Port / Ironic port of the node /","commit_id":"180c0cf374d7bbfce19d0de23a92ee0efb444893"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"992a4d9e9d3bb445aa7c143b3a06a7367b70d4bc","unresolved":false,"context_lines":[{"line_number":4,"context_line":"    Adds pxe nic support in ``idrac-redfish`` inspect interface to"},{"line_number":5,"context_line":"    hardware type ``idrac``."},{"line_number":6,"context_line":"    It retrieve the list of pxe port MAC addresses using redfish api"},{"line_number":7,"context_line":"    and updates the pxe_enabled field of Port."}],"source_content_type":"text/x-yaml","patch_set":3,"id":"3fa7e38b_22c6854c","line":7,"range":{"start_line":7,"start_character":20,"end_line":7,"end_character":32},"updated":"2019-12-17 04:44:30.000000000","message":"s/ pxe_enabled / \u0027pxe_enabled\u0027 /","commit_id":"180c0cf374d7bbfce19d0de23a92ee0efb444893"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"4b0c9cdd83182ffeb27346caeaaa03d720cabe84","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 PXE NIC support in ``idrac-redfish`` inspect interface to"},{"line_number":5,"context_line":"    hardware type ``idrac``."}],"source_content_type":"text/x-yaml","patch_set":13,"id":"1f493fa4_bc66b450","line":2,"updated":"2020-04-22 13:05:52.000000000","message":"I guess you don\u0027t plan to backport the change?","commit_id":"118d198162e32ef8d0b415992cd7d79e5b449fcd"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"f29886068cacacce5e7bcd78d46bb39b18c1b849","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 PXE NIC support in ``idrac-redfish`` inspect interface to"},{"line_number":5,"context_line":"    hardware type ``idrac``."}],"source_content_type":"text/x-yaml","patch_set":13,"id":"1f493fa4_3728fa84","line":2,"in_reply_to":"1f493fa4_94c8ec55","updated":"2020-04-22 15:27:18.000000000","message":"You may (I don\u0027t insist) rework the patch so that if sushy-oem-idrac is in fact installed (nothing prevents an operator from doing it), the new behavior kicks in. Up to you.","commit_id":"118d198162e32ef8d0b415992cd7d79e5b449fcd"},{"author":{"_account_id":10250,"name":"Christopher Dearborn","email":"Christopher.Dearborn@dell.com","username":"cdearbor"},"change_message_id":"7de89060ae7873137702c45d4cc22f77493a26bf","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 PXE NIC support in ``idrac-redfish`` inspect interface to"},{"line_number":5,"context_line":"    hardware type ``idrac``."}],"source_content_type":"text/x-yaml","patch_set":13,"id":"1f493fa4_94c8ec55","line":2,"in_reply_to":"1f493fa4_bc66b450","updated":"2020-04-22 15:14:16.000000000","message":"Would love to backport the change, but cannot unless sushy-oem-idrac is added to driver-requirements.txt in stable/train, and that patch was rejected.","commit_id":"118d198162e32ef8d0b415992cd7d79e5b449fcd"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"4b0c9cdd83182ffeb27346caeaaa03d720cabe84","unresolved":false,"context_lines":[{"line_number":4,"context_line":"    Adds PXE NIC support in ``idrac-redfish`` inspect interface to"},{"line_number":5,"context_line":"    hardware type ``idrac``."},{"line_number":6,"context_line":"    It retrieve the list of PXE port MAC addresses using Redfish API"},{"line_number":7,"context_line":"    and updates the \u0027pxe_enabled\u0027 field of Ironic port of the node."}],"source_content_type":"text/x-yaml","patch_set":13,"id":"1f493fa4_1c5c087d","line":7,"updated":"2020-04-22 13:05:52.000000000","message":"Please add an upgrade release note stating that sushy-oem-idrac is now mandatory for the idrac-redfish inspection (unless you implement my suggestion, in which case please specify that it\u0027s required for PXE NIC detection).","commit_id":"118d198162e32ef8d0b415992cd7d79e5b449fcd"},{"author":{"_account_id":23847,"name":"Richard G. Pioso","email":"richard.pioso@gmail.com","username":"richard.pioso"},"change_message_id":"2b47c803af4c341b1cc06fe8ff32a7a74b2c0523","unresolved":true,"context_lines":[{"line_number":5,"context_line":"    hardware type ``idrac``."},{"line_number":6,"context_line":"    It retrieves the list of PXE port MAC address using Redfish API"},{"line_number":7,"context_line":"    and updates the \u0027pxe_enabled\u0027 field of Ironic port of the node."},{"line_number":8,"context_line":"    ``Sushy-oem-idrac`` is mandatory library for PXE NIC detection"},{"line_number":9,"context_line":"    of node in BIOS boot-mode using the ``idrac-redfish``"},{"line_number":10,"context_line":"    inspect interface."}],"source_content_type":"text/x-yaml","patch_set":20,"id":"cf5c992a_d6148b87","line":8,"range":{"start_line":8,"start_character":6,"end_line":8,"end_character":21},"updated":"2020-11-26 01:31:36.000000000","message":"nit: sushy-oem-idrac","commit_id":"d88f07472b444c05d101a3417c415a54c20803e2"},{"author":{"_account_id":25726,"name":"sonali bhausaheb borkar","email":"sonaliborkar85@gmail.com","username":"sonaliborkar85"},"change_message_id":"4df0887449181cf8538b40d36fcf5e53e2021955","unresolved":false,"context_lines":[{"line_number":5,"context_line":"    hardware type ``idrac``."},{"line_number":6,"context_line":"    It retrieves the list of PXE port MAC address using Redfish API"},{"line_number":7,"context_line":"    and updates the \u0027pxe_enabled\u0027 field of Ironic port of the node."},{"line_number":8,"context_line":"    ``Sushy-oem-idrac`` is mandatory library for PXE NIC detection"},{"line_number":9,"context_line":"    of node in BIOS boot-mode using the ``idrac-redfish``"},{"line_number":10,"context_line":"    inspect interface."}],"source_content_type":"text/x-yaml","patch_set":20,"id":"df5c0a47_da4acffe","line":8,"range":{"start_line":8,"start_character":6,"end_line":8,"end_character":21},"in_reply_to":"cf5c992a_d6148b87","updated":"2021-01-14 10:00:38.000000000","message":"Done","commit_id":"d88f07472b444c05d101a3417c415a54c20803e2"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"e26785557b81396fce89b7166ed916b2d9bbb6f2","unresolved":true,"context_lines":[{"line_number":5,"context_line":"    hardware type ``idrac``."},{"line_number":6,"context_line":"    It retrieves the list of PXE port MAC address using Redfish API"},{"line_number":7,"context_line":"    and updates the \u0027pxe_enabled\u0027 field of Ironic port of the node."},{"line_number":8,"context_line":"    ``Sushy-oem-idrac`` is mandatory library for PXE NIC detection"},{"line_number":9,"context_line":"    of node in BIOS boot-mode using the ``idrac-redfish``"},{"line_number":10,"context_line":"    inspect interface."}],"source_content_type":"text/x-yaml","patch_set":23,"id":"820dfa1e_07bf182f","line":8,"range":{"start_line":8,"start_character":6,"end_line":8,"end_character":11},"updated":"2020-12-18 12:06:59.000000000","message":"s/ Sushy / sushy /","commit_id":"82f180edb3b9d05254dc931ab543e05957363c98"},{"author":{"_account_id":25726,"name":"sonali bhausaheb borkar","email":"sonaliborkar85@gmail.com","username":"sonaliborkar85"},"change_message_id":"1ff33bd63e46ad79f02edf81d003e4b5a9c83220","unresolved":false,"context_lines":[{"line_number":5,"context_line":"    hardware type ``idrac``."},{"line_number":6,"context_line":"    It retrieves the list of PXE port MAC address using Redfish API"},{"line_number":7,"context_line":"    and updates the \u0027pxe_enabled\u0027 field of Ironic port of the node."},{"line_number":8,"context_line":"    ``Sushy-oem-idrac`` is mandatory library for PXE NIC detection"},{"line_number":9,"context_line":"    of node in BIOS boot-mode using the ``idrac-redfish``"},{"line_number":10,"context_line":"    inspect interface."}],"source_content_type":"text/x-yaml","patch_set":23,"id":"6304c1c4_87a6b34c","line":8,"range":{"start_line":8,"start_character":6,"end_line":8,"end_character":11},"in_reply_to":"820dfa1e_07bf182f","updated":"2021-01-14 09:46:33.000000000","message":"Done","commit_id":"82f180edb3b9d05254dc931ab543e05957363c98"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"e26785557b81396fce89b7166ed916b2d9bbb6f2","unresolved":true,"context_lines":[{"line_number":5,"context_line":"    hardware type ``idrac``."},{"line_number":6,"context_line":"    It retrieves the list of PXE port MAC address using Redfish API"},{"line_number":7,"context_line":"    and updates the \u0027pxe_enabled\u0027 field of Ironic port of the node."},{"line_number":8,"context_line":"    ``Sushy-oem-idrac`` is mandatory library for PXE NIC detection"},{"line_number":9,"context_line":"    of node in BIOS boot-mode using the ``idrac-redfish``"},{"line_number":10,"context_line":"    inspect interface."}],"source_content_type":"text/x-yaml","patch_set":23,"id":"eaf25940_529c2ba0","line":10,"range":{"start_line":8,"start_character":4,"end_line":10,"end_character":22},"updated":"2020-12-18 12:06:59.000000000","message":"Is this required? sushy-oem-idrac is part of driver requirements,","commit_id":"82f180edb3b9d05254dc931ab543e05957363c98"},{"author":{"_account_id":25726,"name":"sonali bhausaheb borkar","email":"sonaliborkar85@gmail.com","username":"sonaliborkar85"},"change_message_id":"3e1d8ac3898e31860efe88aa0906433e5a91fd1b","unresolved":true,"context_lines":[{"line_number":5,"context_line":"    hardware type ``idrac``."},{"line_number":6,"context_line":"    It retrieves the list of PXE port MAC address using Redfish API"},{"line_number":7,"context_line":"    and updates the \u0027pxe_enabled\u0027 field of Ironic port of the node."},{"line_number":8,"context_line":"    ``Sushy-oem-idrac`` is mandatory library for PXE NIC detection"},{"line_number":9,"context_line":"    of node in BIOS boot-mode using the ``idrac-redfish``"},{"line_number":10,"context_line":"    inspect interface."}],"source_content_type":"text/x-yaml","patch_set":23,"id":"e0a49c46_923098db","line":10,"range":{"start_line":8,"start_character":4,"end_line":10,"end_character":22},"in_reply_to":"eaf25940_529c2ba0","updated":"2021-01-04 11:35:30.000000000","message":"Yes. This is required .","commit_id":"82f180edb3b9d05254dc931ab543e05957363c98"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"99f04c91568b807e66327da48cae08faa7428e1f","unresolved":false,"context_lines":[{"line_number":4,"context_line":"    Adds PXE NIC support in ``idrac-redfish`` inspect interface to"},{"line_number":5,"context_line":"    hardware type ``idrac``."},{"line_number":6,"context_line":"    It retrieves the list of PXE port MAC address using Redfish API"},{"line_number":7,"context_line":"    and updates the \u0027pxe_enabled\u0027 field of Ironic port of the node."},{"line_number":8,"context_line":"    ``sushy-oem-idrac`` is mandatory library for PXE NIC detection"},{"line_number":9,"context_line":"    of node in BIOS boot-mode using the ``idrac-redfish``"},{"line_number":10,"context_line":"    inspect interface."}],"source_content_type":"text/x-yaml","patch_set":30,"id":"98a05c79_ad543a99","line":7,"updated":"2021-03-10 15:39:55.000000000","message":"nit: ``pxe_enabled``","commit_id":"1dd0e276d16077e511f57fc04b6a40204ac90d21"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"84500d39e2bdca688b1b34db91702bbf120503dc","unresolved":false,"context_lines":[{"line_number":4,"context_line":"    Adds PXE NIC support in ``idrac-redfish`` inspect interface to"},{"line_number":5,"context_line":"    hardware type ``idrac``."},{"line_number":6,"context_line":"    It retrieves the list of PXE port MAC address using Redfish API"},{"line_number":7,"context_line":"    and updates the \u0027pxe_enabled\u0027 field of Ironic port of the node."},{"line_number":8,"context_line":"    ``sushy-oem-idrac`` is mandatory library for PXE NIC detection"},{"line_number":9,"context_line":"    of node in BIOS boot-mode using the ``idrac-redfish``"},{"line_number":10,"context_line":"    inspect interface."}],"source_content_type":"text/x-yaml","patch_set":30,"id":"ee5b7fa6_44e40063","line":7,"in_reply_to":"594769fb_5cfeec27","updated":"2021-03-15 14:31:07.000000000","message":"Lets definitely change it to ``pxe_enabled`` so we don\u0027t have to change it right before release.","commit_id":"1dd0e276d16077e511f57fc04b6a40204ac90d21"},{"author":{"_account_id":25726,"name":"sonali bhausaheb borkar","email":"sonaliborkar85@gmail.com","username":"sonaliborkar85"},"change_message_id":"5d1f5b80bbf15f164167fa6415942421a27b3c99","unresolved":false,"context_lines":[{"line_number":4,"context_line":"    Adds PXE NIC support in ``idrac-redfish`` inspect interface to"},{"line_number":5,"context_line":"    hardware type ``idrac``."},{"line_number":6,"context_line":"    It retrieves the list of PXE port MAC address using Redfish API"},{"line_number":7,"context_line":"    and updates the \u0027pxe_enabled\u0027 field of Ironic port of the node."},{"line_number":8,"context_line":"    ``sushy-oem-idrac`` is mandatory library for PXE NIC detection"},{"line_number":9,"context_line":"    of node in BIOS boot-mode using the ``idrac-redfish``"},{"line_number":10,"context_line":"    inspect interface."}],"source_content_type":"text/x-yaml","patch_set":30,"id":"594769fb_5cfeec27","line":7,"in_reply_to":"98a05c79_ad543a99","updated":"2021-03-11 08:35:53.000000000","message":"sure will update it","commit_id":"1dd0e276d16077e511f57fc04b6a40204ac90d21"},{"author":{"_account_id":25726,"name":"sonali bhausaheb borkar","email":"sonaliborkar85@gmail.com","username":"sonaliborkar85"},"change_message_id":"4be9abb31f3026fe33c671a99567081cad786f37","unresolved":false,"context_lines":[{"line_number":4,"context_line":"    Adds PXE NIC support in ``idrac-redfish`` inspect interface to"},{"line_number":5,"context_line":"    hardware type ``idrac``."},{"line_number":6,"context_line":"    It retrieves the list of PXE port MAC address using Redfish API"},{"line_number":7,"context_line":"    and updates the \u0027pxe_enabled\u0027 field of Ironic port of the node."},{"line_number":8,"context_line":"    ``sushy-oem-idrac`` is mandatory library for PXE NIC detection"},{"line_number":9,"context_line":"    of node in BIOS boot-mode using the ``idrac-redfish``"},{"line_number":10,"context_line":"    inspect interface."}],"source_content_type":"text/x-yaml","patch_set":30,"id":"a62579dc_766ac3fb","line":7,"in_reply_to":"ee5b7fa6_44e40063","updated":"2021-03-17 10:02:59.000000000","message":"Done","commit_id":"1dd0e276d16077e511f57fc04b6a40204ac90d21"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"96d710135c58eb17b2ac7c18041123f04e732776","unresolved":true,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Adds PXE NIC support in ``idrac-redfish`` inspect interface to"},{"line_number":5,"context_line":"    hardware type ``idrac``."},{"line_number":6,"context_line":"    It retrieves the list of PXE port MAC address using Redfish API"},{"line_number":7,"context_line":"    and updates the ``pxe_enabled`` field of Ironic port of the node."}],"source_content_type":"text/x-yaml","patch_set":33,"id":"95640dfb_aab0209e","line":4,"range":{"start_line":4,"start_character":8,"end_line":4,"end_character":28},"updated":"2021-03-22 20:30:39.000000000","message":"I\u0027m afraid this doesn\u0027t really make sense.\n\nWe already have support for PXE NICs...\n\nI think what you mean \"Adds support for the discovery of PXE Enabled NICs using the ``idrac-redfish`` inspect interface with the ``idrac`` hardware type. With this feature, a port\u0027s ``pxe_enabled`` status will be recorded on the bare metal port.\"","commit_id":"ece1f2bf09da8fcef39f1662aa4e42b5abfa4dae"},{"author":{"_account_id":25726,"name":"sonali bhausaheb borkar","email":"sonaliborkar85@gmail.com","username":"sonaliborkar85"},"change_message_id":"007f8d145990e308b2001501e5bd358963b1260f","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 PXE NIC support in ``idrac-redfish`` inspect interface to"},{"line_number":5,"context_line":"    hardware type ``idrac``."},{"line_number":6,"context_line":"    It retrieves the list of PXE port MAC address using Redfish API"},{"line_number":7,"context_line":"    and updates the ``pxe_enabled`` field of Ironic port of the node."}],"source_content_type":"text/x-yaml","patch_set":33,"id":"659059cc_a93634f9","line":4,"range":{"start_line":4,"start_character":8,"end_line":4,"end_character":28},"in_reply_to":"95640dfb_aab0209e","updated":"2021-03-24 13:32:36.000000000","message":"Done","commit_id":"ece1f2bf09da8fcef39f1662aa4e42b5abfa4dae"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"96d710135c58eb17b2ac7c18041123f04e732776","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":33,"id":"8cdc6dcd_151a4515","line":11,"range":{"start_line":6,"start_character":3,"end_line":11,"end_character":0},"updated":"2021-03-22 20:30:39.000000000","message":"This seems redundant if the first sentence is reworded.","commit_id":"ece1f2bf09da8fcef39f1662aa4e42b5abfa4dae"},{"author":{"_account_id":25726,"name":"sonali bhausaheb borkar","email":"sonaliborkar85@gmail.com","username":"sonaliborkar85"},"change_message_id":"007f8d145990e308b2001501e5bd358963b1260f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":33,"id":"3bfb2ff7_a80405b7","line":11,"range":{"start_line":6,"start_character":3,"end_line":11,"end_character":0},"in_reply_to":"8cdc6dcd_151a4515","updated":"2021-03-24 13:32:36.000000000","message":"Done","commit_id":"ece1f2bf09da8fcef39f1662aa4e42b5abfa4dae"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"ad10278b8b0b6764f289062faf2d2999212d7164","unresolved":true,"context_lines":[{"line_number":4,"context_line":"    Adds support for the discovery of PXE Enabled NICs using the"},{"line_number":5,"context_line":"    ``idrac-redfish`` inspect interface with the ``idrac`` hardware"},{"line_number":6,"context_line":"    type. With this feature, a port\u0027s ``pxe_enabled`` status will"},{"line_number":7,"context_line":"    be recorded on the bare metal port.\""}],"source_content_type":"text/x-yaml","patch_set":34,"id":"5eb70d12_fff3c481","line":7,"range":{"start_line":7,"start_character":39,"end_line":7,"end_character":40},"updated":"2021-03-24 15:49:41.000000000","message":"excess \"","commit_id":"32ce23945e8cf59c699d74cffae4c8f4a1e0030c"},{"author":{"_account_id":25726,"name":"sonali bhausaheb borkar","email":"sonaliborkar85@gmail.com","username":"sonaliborkar85"},"change_message_id":"a1e74cd4c139d2495ea8e90395d8bf196a205995","unresolved":false,"context_lines":[{"line_number":4,"context_line":"    Adds support for the discovery of PXE Enabled NICs using the"},{"line_number":5,"context_line":"    ``idrac-redfish`` inspect interface with the ``idrac`` hardware"},{"line_number":6,"context_line":"    type. With this feature, a port\u0027s ``pxe_enabled`` status will"},{"line_number":7,"context_line":"    be recorded on the bare metal port.\""}],"source_content_type":"text/x-yaml","patch_set":34,"id":"858279ba_0857abce","line":7,"range":{"start_line":7,"start_character":39,"end_line":7,"end_character":40},"in_reply_to":"5eb70d12_fff3c481","updated":"2021-03-25 10:19:27.000000000","message":"Done","commit_id":"32ce23945e8cf59c699d74cffae4c8f4a1e0030c"}],"test-requirements.txt":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"17743b43d754edeb768f5769b3300a675c77ffef","unresolved":false,"context_lines":[{"line_number":19,"context_line":"flake8-import-order\u003e\u003d0.17.1 # LGPLv3"},{"line_number":20,"context_line":"Pygments\u003e\u003d2.2.0 # BSD"},{"line_number":21,"context_line":"bandit!\u003d1.6.0,\u003e\u003d1.1.0,\u003c2.0.0 # Apache-2.0"},{"line_number":22,"context_line":"defusedxml\u003e\u003d0.6.0 # PSF"}],"source_content_type":"text/plain","patch_set":20,"id":"d40e4323_244eed36","line":22,"updated":"2020-11-24 10:08:06.000000000","message":"not need to repeat requirements","commit_id":"d88f07472b444c05d101a3417c415a54c20803e2"},{"author":{"_account_id":25726,"name":"sonali bhausaheb borkar","email":"sonaliborkar85@gmail.com","username":"sonaliborkar85"},"change_message_id":"4df0887449181cf8538b40d36fcf5e53e2021955","unresolved":false,"context_lines":[{"line_number":19,"context_line":"flake8-import-order\u003e\u003d0.17.1 # LGPLv3"},{"line_number":20,"context_line":"Pygments\u003e\u003d2.2.0 # BSD"},{"line_number":21,"context_line":"bandit!\u003d1.6.0,\u003e\u003d1.1.0,\u003c2.0.0 # Apache-2.0"},{"line_number":22,"context_line":"defusedxml\u003e\u003d0.6.0 # PSF"}],"source_content_type":"text/plain","patch_set":20,"id":"be76286e_fe3fe740","line":22,"in_reply_to":"d40e4323_244eed36","updated":"2021-01-14 10:00:38.000000000","message":"Done","commit_id":"d88f07472b444c05d101a3417c415a54c20803e2"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"fbda5f2da53a7a8d55579afebbcc9adb5074f2d4","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":24,"id":"ffa70b0c_d8cf8c3f","line":18,"updated":"2021-02-25 10:27:38.000000000","message":"unnecessary change","commit_id":"e81ed402d91d719fbfc29df9bb9dce0f4305c4f7"},{"author":{"_account_id":25726,"name":"sonali bhausaheb borkar","email":"sonaliborkar85@gmail.com","username":"sonaliborkar85"},"change_message_id":"6d8b24b0ba189921b31726391a0a74e4747fc003","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":24,"id":"a19e4152_3eaa8f1a","line":18,"in_reply_to":"ffa70b0c_d8cf8c3f","updated":"2021-02-26 08:49:15.000000000","message":"It got added while rebasing with master . Will remove this","commit_id":"e81ed402d91d719fbfc29df9bb9dce0f4305c4f7"},{"author":{"_account_id":25726,"name":"sonali bhausaheb borkar","email":"sonaliborkar85@gmail.com","username":"sonaliborkar85"},"change_message_id":"1043705d872beb6db8f4d48d7bbf281e9000f888","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":28,"id":"fe665d0c_1f73279c","line":17,"updated":"2021-03-05 11:24:24.000000000","message":"not sure why this showing package removed .\nthough I have rebase it with master .","commit_id":"5d86108de260ddb750055a266d2a69f5719c64ee"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"84500d39e2bdca688b1b34db91702bbf120503dc","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":30,"id":"811c02b6_adacafe6","line":18,"updated":"2021-03-15 14:31:07.000000000","message":"Extra carriage return added, should likely be removed.","commit_id":"1dd0e276d16077e511f57fc04b6a40204ac90d21"},{"author":{"_account_id":25726,"name":"sonali bhausaheb borkar","email":"sonaliborkar85@gmail.com","username":"sonaliborkar85"},"change_message_id":"810a59580247bf3466b77ff7c6d82a64987c9658","unresolved":true,"context_lines":[{"line_number":14,"context_line":"testtools\u003e\u003d2.2.0 # MIT"},{"line_number":15,"context_line":"WebTest\u003e\u003d2.0.27 # MIT"},{"line_number":16,"context_line":"pysnmp\u003e\u003d4.4.12"},{"line_number":17,"context_line":"bandit!\u003d1.6.0,\u003e\u003d1.1.0,\u003c2.0.0 # Apache-2.0"}],"source_content_type":"text/plain","patch_set":31,"id":"a191c7a7_88ce8655","line":17,"updated":"2021-03-17 10:07:22.000000000","message":"TODO: remove extra line","commit_id":"fba2bb0a07d1560d9170976e830a72d5ab90fbd1"},{"author":{"_account_id":25726,"name":"sonali bhausaheb borkar","email":"sonaliborkar85@gmail.com","username":"sonaliborkar85"},"change_message_id":"2e6236f1b139738b47ae4ff209f08c03ab82701b","unresolved":false,"context_lines":[{"line_number":14,"context_line":"testtools\u003e\u003d2.2.0 # MIT"},{"line_number":15,"context_line":"WebTest\u003e\u003d2.0.27 # MIT"},{"line_number":16,"context_line":"pysnmp\u003e\u003d4.4.12"},{"line_number":17,"context_line":"bandit!\u003d1.6.0,\u003e\u003d1.1.0,\u003c2.0.0 # Apache-2.0"}],"source_content_type":"text/plain","patch_set":31,"id":"866949eb_82e40552","line":17,"in_reply_to":"a191c7a7_88ce8655","updated":"2021-03-19 07:39:08.000000000","message":"Done","commit_id":"fba2bb0a07d1560d9170976e830a72d5ab90fbd1"}]}
