)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":13702,"name":"yushiro","username":"yushiro","inactive":true},"change_message_id":"22912d4ae9d36a59335bd0d7ac5c667d84121ebb","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Nguyen Van Trung \u003ctrungnv@vn.fujitsu.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2018-03-28 16:46:43 +0700"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Implement raid configuration for BM via irmc driver"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"- This is OOB solution which using create/delete raid config via"},{"line_number":10,"context_line":"Fujitsu irmc driver."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"bf659307_53f5faeb","line":7,"range":{"start_line":7,"start_character":0,"end_line":7,"end_character":9},"updated":"2018-03-30 03:57:58.000000000","message":"\"Add support\"  or \"Support\" look good.","commit_id":"732134cc196e7a4636d434eda096677f4e4c94b0"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"fae89283bd36ec24dda5b9156f68180b39eba463","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Nguyen Van Trung \u003ctrungnv@vn.fujitsu.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2018-03-28 16:46:43 +0700"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Implement raid configuration for BM via irmc driver"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"- This is OOB solution which using create/delete raid config via"},{"line_number":10,"context_line":"Fujitsu irmc driver."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"bf659307_1650b40a","line":7,"range":{"start_line":7,"start_character":0,"end_line":7,"end_character":9},"in_reply_to":"bf659307_53f5faeb","updated":"2018-04-02 03:23:12.000000000","message":"Done","commit_id":"732134cc196e7a4636d434eda096677f4e4c94b0"},{"author":{"_account_id":13702,"name":"yushiro","username":"yushiro","inactive":true},"change_message_id":"22912d4ae9d36a59335bd0d7ac5c667d84121ebb","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"- This is OOB solution which using create/delete raid config via"},{"line_number":10,"context_line":"Fujitsu irmc driver."},{"line_number":11,"context_line":"- This implementation will enable raid interface via irmc driver."},{"line_number":12,"context_line":"eg:"},{"line_number":13,"context_line":"        | Interface | Result | Reason"},{"line_number":14,"context_line":"        | raid      | True   |"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"bf659307_f398cec0","line":11,"range":{"start_line":11,"start_character":0,"end_line":11,"end_character":65},"updated":"2018-03-30 03:57:58.000000000","message":"I think this message should move into L.9.  In addition, \"This patch\" or \"This commit\" looks good.","commit_id":"732134cc196e7a4636d434eda096677f4e4c94b0"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"fae89283bd36ec24dda5b9156f68180b39eba463","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"- This is OOB solution which using create/delete raid config via"},{"line_number":10,"context_line":"Fujitsu irmc driver."},{"line_number":11,"context_line":"- This implementation will enable raid interface via irmc driver."},{"line_number":12,"context_line":"eg:"},{"line_number":13,"context_line":"        | Interface | Result | Reason"},{"line_number":14,"context_line":"        | raid      | True   |"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"bf659307_16799492","line":11,"range":{"start_line":11,"start_character":0,"end_line":11,"end_character":65},"in_reply_to":"bf659307_f398cec0","updated":"2018-04-02 03:23:12.000000000","message":"Done","commit_id":"732134cc196e7a4636d434eda096677f4e4c94b0"},{"author":{"_account_id":13702,"name":"yushiro","username":"yushiro","inactive":true},"change_message_id":"22912d4ae9d36a59335bd0d7ac5c667d84121ebb","unresolved":false,"context_lines":[{"line_number":9,"context_line":"- This is OOB solution which using create/delete raid config via"},{"line_number":10,"context_line":"Fujitsu irmc driver."},{"line_number":11,"context_line":"- This implementation will enable raid interface via irmc driver."},{"line_number":12,"context_line":"eg:"},{"line_number":13,"context_line":"        | Interface | Result | Reason"},{"line_number":14,"context_line":"        | raid      | True   |"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"The work items:"},{"line_number":17,"context_line":"- Implement raid config code-base."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"bf659307_93ef121d","line":14,"range":{"start_line":12,"start_character":0,"end_line":14,"end_character":30},"updated":"2018-03-30 03:57:58.000000000","message":"This table is not so easy to understand.  This patch will support RAID configuration via iRMC driver, right?  If so, it is not necessary.","commit_id":"732134cc196e7a4636d434eda096677f4e4c94b0"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"fae89283bd36ec24dda5b9156f68180b39eba463","unresolved":false,"context_lines":[{"line_number":9,"context_line":"- This is OOB solution which using create/delete raid config via"},{"line_number":10,"context_line":"Fujitsu irmc driver."},{"line_number":11,"context_line":"- This implementation will enable raid interface via irmc driver."},{"line_number":12,"context_line":"eg:"},{"line_number":13,"context_line":"        | Interface | Result | Reason"},{"line_number":14,"context_line":"        | raid      | True   |"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"The work items:"},{"line_number":17,"context_line":"- Implement raid config code-base."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"bf659307_f658a031","line":14,"range":{"start_line":12,"start_character":0,"end_line":14,"end_character":30},"in_reply_to":"bf659307_93ef121d","updated":"2018-04-02 03:23:12.000000000","message":"Done","commit_id":"732134cc196e7a4636d434eda096677f4e4c94b0"},{"author":{"_account_id":13702,"name":"yushiro","username":"yushiro","inactive":true},"change_message_id":"22912d4ae9d36a59335bd0d7ac5c667d84121ebb","unresolved":false,"context_lines":[{"line_number":13,"context_line":"        | Interface | Result | Reason"},{"line_number":14,"context_line":"        | raid      | True   |"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"The work items:"},{"line_number":17,"context_line":"- Implement raid config code-base."},{"line_number":18,"context_line":"- Implement test code."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Depends-On: Ib8db508fcd8d405191415e5fa56de11b53fcb7c8"},{"line_number":21,"context_line":"Change-Id: Iacaf213f76abf130d5570fc13704b1d1bfcf49d7"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"bf659307_d3b90a15","line":18,"range":{"start_line":16,"start_character":0,"end_line":18,"end_character":22},"updated":"2018-03-30 03:57:58.000000000","message":"I think it\u0027s not necessary.","commit_id":"732134cc196e7a4636d434eda096677f4e4c94b0"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"fae89283bd36ec24dda5b9156f68180b39eba463","unresolved":false,"context_lines":[{"line_number":13,"context_line":"        | Interface | Result | Reason"},{"line_number":14,"context_line":"        | raid      | True   |"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"The work items:"},{"line_number":17,"context_line":"- Implement raid config code-base."},{"line_number":18,"context_line":"- Implement test code."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Depends-On: Ib8db508fcd8d405191415e5fa56de11b53fcb7c8"},{"line_number":21,"context_line":"Change-Id: Iacaf213f76abf130d5570fc13704b1d1bfcf49d7"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"bf659307_96436442","line":18,"range":{"start_line":16,"start_character":0,"end_line":18,"end_character":22},"in_reply_to":"bf659307_d3b90a15","updated":"2018-04-02 03:23:12.000000000","message":"Done","commit_id":"732134cc196e7a4636d434eda096677f4e4c94b0"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"1d7e07c40a0d1d717c2bb0951cd2c6ed5744beea","unresolved":false,"context_lines":[{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Depends-On: Ib8db508fcd8d405191415e5fa56de11b53fcb7c8"},{"line_number":17,"context_line":"Change-Id: Iacaf213f76abf130d5570fc13704b1d1bfcf49d7"},{"line_number":18,"context_line":"Closes-bug: #1699695"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"bf659307_97a71ebd","line":18,"updated":"2018-04-11 02:30:46.000000000","message":"Please change to a storyboard story/task label set.","commit_id":"b368ddbfd49641c0f3c5f868f6630edb9cf4a63e"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"3879fac3c326f46493de61c34bb304ef4434c5d6","unresolved":false,"context_lines":[{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Depends-On: Ib8db508fcd8d405191415e5fa56de11b53fcb7c8"},{"line_number":17,"context_line":"Change-Id: Iacaf213f76abf130d5570fc13704b1d1bfcf49d7"},{"line_number":18,"context_line":"Closes-bug: #1699695"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"bf659307_74e7dd13","line":18,"in_reply_to":"bf659307_97a71ebd","updated":"2018-04-11 10:20:30.000000000","message":"Done","commit_id":"b368ddbfd49641c0f3c5f868f6630edb9cf4a63e"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"033afd6b38676c8a7ea35a90ae04a67cb91aac87","unresolved":false,"context_lines":[{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Depends-On: Ib8db508fcd8d405191415e5fa56de11b53fcb7c8"},{"line_number":17,"context_line":"Change-Id: Iacaf213f76abf130d5570fc13704b1d1bfcf49d7"},{"line_number":18,"context_line":"Story: #2001825"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"9f6a8fd7_c51c34c3","line":18,"updated":"2018-04-19 02:26:56.000000000","message":"We should use Story 1699695","commit_id":"59fe39fcb7202c2b12bdad0aa2f54fc3fb5a2019"},{"author":{"_account_id":23847,"name":"Richard G. Pioso","email":"richard.pioso@gmail.com","username":"richard.pioso"},"change_message_id":"f964204f53d1765e19c79a73c722c324a9dfeb62","unresolved":false,"context_lines":[{"line_number":14,"context_line":"SP(Service Platform) available."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Depends-On: https://review.openstack.org/#/c/508796/"},{"line_number":17,"context_line":"Change-Id: Iacaf213f76abf130d5570fc13704b1d1bfcf49d7"},{"line_number":18,"context_line":"Story: #1699695"},{"line_number":19,"context_line":"Task: #10597"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":14,"id":"5f7c97a3_87361be7","line":17,"updated":"2018-05-24 16:02:58.000000000","message":"Please mark this as dependent on https://review.openstack.org/#/c/570109\n\nDepends-On: https://review.openstack.org/#/c/570109","commit_id":"21d331cb38f5a6b20dcd2882a90077ec532c959b"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"cededb9aa319d0c4dbffc33588cd7c0689e9c557","unresolved":false,"context_lines":[{"line_number":14,"context_line":"SP(Service Platform) available."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Depends-On: https://review.openstack.org/#/c/508796/"},{"line_number":17,"context_line":"Change-Id: Iacaf213f76abf130d5570fc13704b1d1bfcf49d7"},{"line_number":18,"context_line":"Story: #1699695"},{"line_number":19,"context_line":"Task: #10597"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":14,"id":"5f7c97a3_66e38ad9","line":17,"in_reply_to":"5f7c97a3_87361be7","updated":"2018-05-30 01:18:52.000000000","message":"Done","commit_id":"21d331cb38f5a6b20dcd2882a90077ec532c959b"},{"author":{"_account_id":13702,"name":"yushiro","username":"yushiro","inactive":true},"change_message_id":"f23f2c99fd0a5821f620da7e05c2e060df7ffd53","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Nguyen Van Trung \u003ctrungnv@vn.fujitsu.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2018-06-19 10:56:15 +0700"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Support raid configuration for BM via irmc driver"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This is OOB solution which using create/delete raid config via"},{"line_number":10,"context_line":"Fujitsu irmc driver. In addition, This commit will enable raid"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":22,"id":"5f7c97a3_913acf31","line":7,"range":{"start_line":7,"start_character":8,"end_line":7,"end_character":12},"updated":"2018-06-21 09:06:42.000000000","message":"RAID","commit_id":"45a8ce7d7b9e9147fecd822dbe5627485616d6e5"},{"author":{"_account_id":13702,"name":"yushiro","username":"yushiro","inactive":true},"change_message_id":"f23f2c99fd0a5821f620da7e05c2e060df7ffd53","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Nguyen Van Trung \u003ctrungnv@vn.fujitsu.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2018-06-19 10:56:15 +0700"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Support raid configuration for BM via irmc driver"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This is OOB solution which using create/delete raid config via"},{"line_number":10,"context_line":"Fujitsu irmc driver. In addition, This commit will enable raid"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":22,"id":"5f7c97a3_b1082b80","line":7,"range":{"start_line":7,"start_character":38,"end_line":7,"end_character":42},"updated":"2018-06-21 09:06:42.000000000","message":"iRMC","commit_id":"45a8ce7d7b9e9147fecd822dbe5627485616d6e5"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"2522d420e64e4fa97dc6ea650b89572c0477672f","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Nguyen Van Trung \u003ctrungnv@vn.fujitsu.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2018-06-19 10:56:15 +0700"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Support raid configuration for BM via irmc driver"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This is OOB solution which using create/delete raid config via"},{"line_number":10,"context_line":"Fujitsu irmc driver. In addition, This commit will enable raid"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":22,"id":"5f7c97a3_4b9f8eb3","line":7,"range":{"start_line":7,"start_character":8,"end_line":7,"end_character":12},"in_reply_to":"5f7c97a3_913acf31","updated":"2018-06-22 01:57:04.000000000","message":"Done","commit_id":"45a8ce7d7b9e9147fecd822dbe5627485616d6e5"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"2522d420e64e4fa97dc6ea650b89572c0477672f","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Nguyen Van Trung \u003ctrungnv@vn.fujitsu.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2018-06-19 10:56:15 +0700"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Support raid configuration for BM via irmc driver"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This is OOB solution which using create/delete raid config via"},{"line_number":10,"context_line":"Fujitsu irmc driver. In addition, This commit will enable raid"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":22,"id":"5f7c97a3_eb9f7ab0","line":7,"range":{"start_line":7,"start_character":38,"end_line":7,"end_character":42},"in_reply_to":"5f7c97a3_b1082b80","updated":"2018-06-22 01:57:04.000000000","message":"Done","commit_id":"45a8ce7d7b9e9147fecd822dbe5627485616d6e5"},{"author":{"_account_id":13702,"name":"yushiro","username":"yushiro","inactive":true},"change_message_id":"f23f2c99fd0a5821f620da7e05c2e060df7ffd53","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Support raid configuration for BM via irmc driver"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This is OOB solution which using create/delete raid config via"},{"line_number":10,"context_line":"Fujitsu irmc driver. In addition, This commit will enable raid"},{"line_number":11,"context_line":"interface via irmc driver."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Tested successfully on TX2540 M1 along with eLCM license, SDcard and"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":22,"id":"5f7c97a3_9123af05","line":10,"range":{"start_line":10,"start_character":8,"end_line":10,"end_character":12},"updated":"2018-06-21 09:06:42.000000000","message":"ditto","commit_id":"45a8ce7d7b9e9147fecd822dbe5627485616d6e5"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"2522d420e64e4fa97dc6ea650b89572c0477672f","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Support raid configuration for BM via irmc driver"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This is OOB solution which using create/delete raid config via"},{"line_number":10,"context_line":"Fujitsu irmc driver. In addition, This commit will enable raid"},{"line_number":11,"context_line":"interface via irmc driver."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Tested successfully on TX2540 M1 along with eLCM license, SDcard and"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":22,"id":"5f7c97a3_0ba51603","line":10,"range":{"start_line":10,"start_character":8,"end_line":10,"end_character":12},"in_reply_to":"5f7c97a3_9123af05","updated":"2018-06-22 01:57:04.000000000","message":"Done","commit_id":"45a8ce7d7b9e9147fecd822dbe5627485616d6e5"},{"author":{"_account_id":13702,"name":"yushiro","username":"yushiro","inactive":true},"change_message_id":"f23f2c99fd0a5821f620da7e05c2e060df7ffd53","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This is OOB solution which using create/delete raid config via"},{"line_number":10,"context_line":"Fujitsu irmc driver. In addition, This commit will enable raid"},{"line_number":11,"context_line":"interface via irmc driver."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Tested successfully on TX2540 M1 along with eLCM license, SDcard and"},{"line_number":14,"context_line":"SP(Service Platform) available."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":22,"id":"5f7c97a3_511997ce","line":11,"range":{"start_line":11,"start_character":14,"end_line":11,"end_character":18},"updated":"2018-06-21 09:06:42.000000000","message":"ditto","commit_id":"45a8ce7d7b9e9147fecd822dbe5627485616d6e5"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"2522d420e64e4fa97dc6ea650b89572c0477672f","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This is OOB solution which using create/delete raid config via"},{"line_number":10,"context_line":"Fujitsu irmc driver. In addition, This commit will enable raid"},{"line_number":11,"context_line":"interface via irmc driver."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Tested successfully on TX2540 M1 along with eLCM license, SDcard and"},{"line_number":14,"context_line":"SP(Service Platform) available."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":22,"id":"5f7c97a3_abad02eb","line":11,"range":{"start_line":11,"start_character":14,"end_line":11,"end_character":18},"in_reply_to":"5f7c97a3_511997ce","updated":"2018-06-22 01:57:04.000000000","message":"Done","commit_id":"45a8ce7d7b9e9147fecd822dbe5627485616d6e5"}],"doc/source/admin/drivers/irmc.rst":[{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"722f09c6404d04f227208ec573d1b9ec30cf597b","unresolved":false,"context_lines":[{"line_number":661,"context_line":"are installed. See `iRMC S4 Manual \u003chttp://manuals.ts.fujitsu.com/index.php?id\u003d5406-5873-5925-5988\u003e`_"},{"line_number":662,"context_line":"for more details."},{"line_number":663,"context_line":""},{"line_number":664,"context_line":"RAID configuration Support"},{"line_number":665,"context_line":"^^^^^^^^^^^^^^^^^^^^^^^^^^"},{"line_number":666,"context_line":""},{"line_number":667,"context_line":"The ``irmc`` hardware type (without iRMC classic drivers) provides the"}],"source_content_type":"text/x-rst","patch_set":9,"id":"bf659307_5d043d18","line":664,"updated":"2018-04-11 12:27:43.000000000","message":"Please put this section at line 650.","commit_id":"4f47b407272e31997e82d532b52afe5dc457dc1b"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"548ecc33b063ac7ad1344d1fa48ce9206c2cdd4f","unresolved":false,"context_lines":[{"line_number":661,"context_line":"are installed. See `iRMC S4 Manual \u003chttp://manuals.ts.fujitsu.com/index.php?id\u003d5406-5873-5925-5988\u003e`_"},{"line_number":662,"context_line":"for more details."},{"line_number":663,"context_line":""},{"line_number":664,"context_line":"RAID configuration Support"},{"line_number":665,"context_line":"^^^^^^^^^^^^^^^^^^^^^^^^^^"},{"line_number":666,"context_line":""},{"line_number":667,"context_line":"The ``irmc`` hardware type (without iRMC classic drivers) provides the"}],"source_content_type":"text/x-rst","patch_set":9,"id":"bf659307_399b8717","line":664,"in_reply_to":"bf659307_5d043d18","updated":"2018-04-12 04:48:16.000000000","message":"Done","commit_id":"4f47b407272e31997e82d532b52afe5dc457dc1b"},{"author":{"_account_id":22255,"name":"Tuan","email":"tuanla@vn.fujitsu.com","username":"Tuan"},"change_message_id":"81e83fe0caf04b4cd6c7a0a9060e985fe9231d0f","unresolved":false,"context_lines":[{"line_number":87,"context_line":"   enabled_management_interfaces \u003d irmc"},{"line_number":88,"context_line":"   enabled_network_interfaces \u003d flat,neutron"},{"line_number":89,"context_line":"   enabled_power_interfaces \u003d irmc"},{"line_number":90,"context_line":"   enabled_raid_interfaces \u003d no-raid, raid"},{"line_number":91,"context_line":"   enabled_storage_interfaces \u003d noop,cinder"},{"line_number":92,"context_line":"   enabled_vendor_interfaces \u003d no-vendor,ipmitool"},{"line_number":93,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"5f7c97a3_03540320","line":90,"range":{"start_line":90,"start_character":38,"end_line":90,"end_character":42},"updated":"2018-05-14 06:46:43.000000000","message":"s /raid/irmc","commit_id":"d50df8c722aa55403c48a5d2b3e71e0fe4bb6018"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"6efc6838cfd762d5731f89e19991074e2b3dc79a","unresolved":false,"context_lines":[{"line_number":66,"context_line":"    Command Interface (SCCI)."},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"* raid"},{"line_number":69,"context_line":"    Supports only ``irmc``."},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"For other hardware interfaces, ``irmc`` hardware type supports the"},{"line_number":72,"context_line":"Bare Metal reference interfaces. For more details about the hardware"}],"source_content_type":"text/x-rst","patch_set":14,"id":"5f7c97a3_7373dc4e","line":69,"range":{"start_line":69,"start_character":4,"end_line":69,"end_character":27},"updated":"2018-05-22 10:43:34.000000000","message":"This looks incorrect as compared with [1]. Driver file indicates it supports \u0027no-raid\u0027 and \u0027agent\u0027 as well. \n[1] https://review.openstack.org/#/c/512979/14/ironic/drivers/irmc.py","commit_id":"21d331cb38f5a6b20dcd2882a90077ec532c959b"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"cededb9aa319d0c4dbffc33588cd7c0689e9c557","unresolved":false,"context_lines":[{"line_number":66,"context_line":"    Command Interface (SCCI)."},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"* raid"},{"line_number":69,"context_line":"    Supports only ``irmc``."},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"For other hardware interfaces, ``irmc`` hardware type supports the"},{"line_number":72,"context_line":"Bare Metal reference interfaces. For more details about the hardware"}],"source_content_type":"text/x-rst","patch_set":14,"id":"5f7c97a3_2d66efc2","line":69,"range":{"start_line":69,"start_character":4,"end_line":69,"end_character":27},"in_reply_to":"5f7c97a3_7373dc4e","updated":"2018-05-30 01:18:52.000000000","message":"Done","commit_id":"21d331cb38f5a6b20dcd2882a90077ec532c959b"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"6efc6838cfd762d5731f89e19991074e2b3dc79a","unresolved":false,"context_lines":[{"line_number":651,"context_line":"RAID configuration Support"},{"line_number":652,"context_line":"^^^^^^^^^^^^^^^^^^^^^^^^^^"},{"line_number":653,"context_line":""},{"line_number":654,"context_line":"The ``irmc`` hardware type (without iRMC classic drivers) provides the"},{"line_number":655,"context_line":"iRMC raid configuration with ``irmc`` raid interface."},{"line_number":656,"context_line":""},{"line_number":657,"context_line":".. note::"}],"source_content_type":"text/x-rst","patch_set":14,"id":"5f7c97a3_13b708db","line":654,"range":{"start_line":654,"start_character":27,"end_line":654,"end_character":57},"updated":"2018-05-22 10:43:34.000000000","message":"May be better to put this as a separate note in this section.","commit_id":"21d331cb38f5a6b20dcd2882a90077ec532c959b"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"cededb9aa319d0c4dbffc33588cd7c0689e9c557","unresolved":false,"context_lines":[{"line_number":651,"context_line":"RAID configuration Support"},{"line_number":652,"context_line":"^^^^^^^^^^^^^^^^^^^^^^^^^^"},{"line_number":653,"context_line":""},{"line_number":654,"context_line":"The ``irmc`` hardware type (without iRMC classic drivers) provides the"},{"line_number":655,"context_line":"iRMC raid configuration with ``irmc`` raid interface."},{"line_number":656,"context_line":""},{"line_number":657,"context_line":".. note::"}],"source_content_type":"text/x-rst","patch_set":14,"id":"5f7c97a3_8d74e369","line":654,"range":{"start_line":654,"start_character":27,"end_line":654,"end_character":57},"in_reply_to":"5f7c97a3_13b708db","updated":"2018-05-30 01:18:52.000000000","message":"Done","commit_id":"21d331cb38f5a6b20dcd2882a90077ec532c959b"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"6efc6838cfd762d5731f89e19991074e2b3dc79a","unresolved":false,"context_lines":[{"line_number":655,"context_line":"iRMC raid configuration with ``irmc`` raid interface."},{"line_number":656,"context_line":""},{"line_number":657,"context_line":".. note::"},{"line_number":658,"context_line":"   eLCM require a license and SDCard for raid configuration. Otherwise,"},{"line_number":659,"context_line":"   SP(Service Platform) in lifecycle management must be available."},{"line_number":660,"context_line":""},{"line_number":661,"context_line":"Configuration"}],"source_content_type":"text/x-rst","patch_set":14,"id":"5f7c97a3_d3e510de","line":658,"range":{"start_line":658,"start_character":3,"end_line":658,"end_character":7},"updated":"2018-05-22 10:43:34.000000000","message":"Context is not set with regards \u0027eLCM\u0027. If it is software required for RAID configuration, may be you can indicate that RAID implementation for `irmc\u0027 hardware type is based on eLCM.","commit_id":"21d331cb38f5a6b20dcd2882a90077ec532c959b"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"cededb9aa319d0c4dbffc33588cd7c0689e9c557","unresolved":false,"context_lines":[{"line_number":655,"context_line":"iRMC raid configuration with ``irmc`` raid interface."},{"line_number":656,"context_line":""},{"line_number":657,"context_line":".. note::"},{"line_number":658,"context_line":"   eLCM require a license and SDCard for raid configuration. Otherwise,"},{"line_number":659,"context_line":"   SP(Service Platform) in lifecycle management must be available."},{"line_number":660,"context_line":""},{"line_number":661,"context_line":"Configuration"}],"source_content_type":"text/x-rst","patch_set":14,"id":"5f7c97a3_ad719f78","line":658,"range":{"start_line":658,"start_character":3,"end_line":658,"end_character":7},"in_reply_to":"5f7c97a3_d3e510de","updated":"2018-05-30 01:18:52.000000000","message":"Done","commit_id":"21d331cb38f5a6b20dcd2882a90077ec532c959b"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"6efc6838cfd762d5731f89e19991074e2b3dc79a","unresolved":false,"context_lines":[{"line_number":664,"context_line":"The RAID configuration Support in the iRMC drivers requires the following"},{"line_number":665,"context_line":"configuration:"},{"line_number":666,"context_line":""},{"line_number":667,"context_line":"* It is necessary to set ironic configuration with ``target_raid_config.json``"},{"line_number":668,"context_line":"  option in ``[irmc]`` section."},{"line_number":669,"context_line":""},{"line_number":670,"context_line":"  ``target_raid_config.json`` is a list of ``logical_disks`` where:"},{"line_number":671,"context_line":""}],"source_content_type":"text/x-rst","patch_set":14,"id":"5f7c97a3_f3860cdc","line":668,"range":{"start_line":667,"start_character":0,"end_line":668,"end_character":31},"updated":"2018-05-22 10:43:34.000000000","message":"Isnt this to be set on the node?","commit_id":"21d331cb38f5a6b20dcd2882a90077ec532c959b"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"cededb9aa319d0c4dbffc33588cd7c0689e9c557","unresolved":false,"context_lines":[{"line_number":664,"context_line":"The RAID configuration Support in the iRMC drivers requires the following"},{"line_number":665,"context_line":"configuration:"},{"line_number":666,"context_line":""},{"line_number":667,"context_line":"* It is necessary to set ironic configuration with ``target_raid_config.json``"},{"line_number":668,"context_line":"  option in ``[irmc]`` section."},{"line_number":669,"context_line":""},{"line_number":670,"context_line":"  ``target_raid_config.json`` is a list of ``logical_disks`` where:"},{"line_number":671,"context_line":""}],"source_content_type":"text/x-rst","patch_set":14,"id":"5f7c97a3_6d6707b9","line":668,"range":{"start_line":667,"start_character":0,"end_line":668,"end_character":31},"in_reply_to":"5f7c97a3_f3860cdc","updated":"2018-05-30 01:18:52.000000000","message":"We will set into Node.","commit_id":"21d331cb38f5a6b20dcd2882a90077ec532c959b"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"6efc6838cfd762d5731f89e19991074e2b3dc79a","unresolved":false,"context_lines":[{"line_number":707,"context_line":"Note::"},{"line_number":708,"context_line":""},{"line_number":709,"context_line":"    - RAID 1+0 and 5+0 in iRMC driver not support to use ``physical_disks``"},{"line_number":710,"context_line":"      in ``target_raid_config.json`` during create raid configuration yet."},{"line_number":711,"context_line":""},{"line_number":712,"context_line":""},{"line_number":713,"context_line":"Supported properties"}],"source_content_type":"text/x-rst","patch_set":14,"id":"5f7c97a3_0ee83b14","line":710,"range":{"start_line":710,"start_character":29,"end_line":710,"end_character":34},"updated":"2018-05-22 10:43:34.000000000","message":"s/ target_raid_config.json/ target_raid_config /","commit_id":"21d331cb38f5a6b20dcd2882a90077ec532c959b"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"cededb9aa319d0c4dbffc33588cd7c0689e9c557","unresolved":false,"context_lines":[{"line_number":707,"context_line":"Note::"},{"line_number":708,"context_line":""},{"line_number":709,"context_line":"    - RAID 1+0 and 5+0 in iRMC driver not support to use ``physical_disks``"},{"line_number":710,"context_line":"      in ``target_raid_config.json`` during create raid configuration yet."},{"line_number":711,"context_line":""},{"line_number":712,"context_line":""},{"line_number":713,"context_line":"Supported properties"}],"source_content_type":"text/x-rst","patch_set":14,"id":"5f7c97a3_0d0693cf","line":710,"range":{"start_line":710,"start_character":29,"end_line":710,"end_character":34},"in_reply_to":"5f7c97a3_0ee83b14","updated":"2018-05-30 01:18:52.000000000","message":"Done","commit_id":"21d331cb38f5a6b20dcd2882a90077ec532c959b"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"6efc6838cfd762d5731f89e19991074e2b3dc79a","unresolved":false,"context_lines":[{"line_number":713,"context_line":"Supported properties"},{"line_number":714,"context_line":"~~~~~~~~~~~~~~~~~~~~"},{"line_number":715,"context_line":""},{"line_number":716,"context_line":"the raid configuration via iRMC driver only supports following items:"},{"line_number":717,"context_line":""},{"line_number":718,"context_line":"* ``raid_level``: raid level info"},{"line_number":719,"context_line":""}],"source_content_type":"text/x-rst","patch_set":14,"id":"5f7c97a3_eef61ffa","line":716,"range":{"start_line":716,"start_character":0,"end_line":716,"end_character":3},"updated":"2018-05-22 10:43:34.000000000","message":"nit: s/ the / The /","commit_id":"21d331cb38f5a6b20dcd2882a90077ec532c959b"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"6efc6838cfd762d5731f89e19991074e2b3dc79a","unresolved":false,"context_lines":[{"line_number":713,"context_line":"Supported properties"},{"line_number":714,"context_line":"~~~~~~~~~~~~~~~~~~~~"},{"line_number":715,"context_line":""},{"line_number":716,"context_line":"the raid configuration via iRMC driver only supports following items:"},{"line_number":717,"context_line":""},{"line_number":718,"context_line":"* ``raid_level``: raid level info"},{"line_number":719,"context_line":""}],"source_content_type":"text/x-rst","patch_set":14,"id":"5f7c97a3_0ed11b58","line":716,"range":{"start_line":716,"start_character":4,"end_line":716,"end_character":8},"updated":"2018-05-22 10:43:34.000000000","message":"s/ raid / RAID","commit_id":"21d331cb38f5a6b20dcd2882a90077ec532c959b"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"6efc6838cfd762d5731f89e19991074e2b3dc79a","unresolved":false,"context_lines":[{"line_number":713,"context_line":"Supported properties"},{"line_number":714,"context_line":"~~~~~~~~~~~~~~~~~~~~"},{"line_number":715,"context_line":""},{"line_number":716,"context_line":"the raid configuration via iRMC driver only supports following items:"},{"line_number":717,"context_line":""},{"line_number":718,"context_line":"* ``raid_level``: raid level info"},{"line_number":719,"context_line":""}],"source_content_type":"text/x-rst","patch_set":14,"id":"5f7c97a3_aec10783","line":716,"range":{"start_line":716,"start_character":63,"end_line":716,"end_character":68},"updated":"2018-05-22 10:43:34.000000000","message":"where? in target_raid_config?","commit_id":"21d331cb38f5a6b20dcd2882a90077ec532c959b"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"cededb9aa319d0c4dbffc33588cd7c0689e9c557","unresolved":false,"context_lines":[{"line_number":713,"context_line":"Supported properties"},{"line_number":714,"context_line":"~~~~~~~~~~~~~~~~~~~~"},{"line_number":715,"context_line":""},{"line_number":716,"context_line":"the raid configuration via iRMC driver only supports following items:"},{"line_number":717,"context_line":""},{"line_number":718,"context_line":"* ``raid_level``: raid level info"},{"line_number":719,"context_line":""}],"source_content_type":"text/x-rst","patch_set":14,"id":"5f7c97a3_2dd90f56","line":716,"range":{"start_line":716,"start_character":4,"end_line":716,"end_character":8},"in_reply_to":"5f7c97a3_0ed11b58","updated":"2018-05-30 01:18:52.000000000","message":"Done","commit_id":"21d331cb38f5a6b20dcd2882a90077ec532c959b"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"cededb9aa319d0c4dbffc33588cd7c0689e9c557","unresolved":false,"context_lines":[{"line_number":713,"context_line":"Supported properties"},{"line_number":714,"context_line":"~~~~~~~~~~~~~~~~~~~~"},{"line_number":715,"context_line":""},{"line_number":716,"context_line":"the raid configuration via iRMC driver only supports following items:"},{"line_number":717,"context_line":""},{"line_number":718,"context_line":"* ``raid_level``: raid level info"},{"line_number":719,"context_line":""}],"source_content_type":"text/x-rst","patch_set":14,"id":"5f7c97a3_cd0bbbd2","line":716,"range":{"start_line":716,"start_character":63,"end_line":716,"end_character":68},"in_reply_to":"5f7c97a3_aec10783","updated":"2018-05-30 01:18:52.000000000","message":"Yes.","commit_id":"21d331cb38f5a6b20dcd2882a90077ec532c959b"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"cededb9aa319d0c4dbffc33588cd7c0689e9c557","unresolved":false,"context_lines":[{"line_number":713,"context_line":"Supported properties"},{"line_number":714,"context_line":"~~~~~~~~~~~~~~~~~~~~"},{"line_number":715,"context_line":""},{"line_number":716,"context_line":"the raid configuration via iRMC driver only supports following items:"},{"line_number":717,"context_line":""},{"line_number":718,"context_line":"* ``raid_level``: raid level info"},{"line_number":719,"context_line":""}],"source_content_type":"text/x-rst","patch_set":14,"id":"5f7c97a3_cdd97b56","line":716,"range":{"start_line":716,"start_character":0,"end_line":716,"end_character":3},"in_reply_to":"5f7c97a3_eef61ffa","updated":"2018-05-30 01:18:52.000000000","message":"Done","commit_id":"21d331cb38f5a6b20dcd2882a90077ec532c959b"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"6efc6838cfd762d5731f89e19991074e2b3dc79a","unresolved":false,"context_lines":[{"line_number":722,"context_line":".. note::"},{"line_number":723,"context_line":""},{"line_number":724,"context_line":"   * iRMC driver supports RAID 0, 1, 5, 6, 1+0 and 5+0."},{"line_number":725,"context_line":"   * iRMC driver only supports raid_level of Mandatory properties and"},{"line_number":726,"context_line":"     physical_disks of backing physical disks."},{"line_number":727,"context_line":"   * The raid configuration will be working when eLCM License for"},{"line_number":728,"context_line":"     FUJITSU PRIMERGY servers are activated. If the license is not activated,"},{"line_number":729,"context_line":"     then raid configuration will only get raid mechanism along with"}],"source_content_type":"text/x-rst","patch_set":14,"id":"5f7c97a3_0e2d9b45","line":726,"range":{"start_line":725,"start_character":5,"end_line":726,"end_character":46},"updated":"2018-05-22 10:43:34.000000000","message":"This is repetition of L716-L720.","commit_id":"21d331cb38f5a6b20dcd2882a90077ec532c959b"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"cededb9aa319d0c4dbffc33588cd7c0689e9c557","unresolved":false,"context_lines":[{"line_number":722,"context_line":".. note::"},{"line_number":723,"context_line":""},{"line_number":724,"context_line":"   * iRMC driver supports RAID 0, 1, 5, 6, 1+0 and 5+0."},{"line_number":725,"context_line":"   * iRMC driver only supports raid_level of Mandatory properties and"},{"line_number":726,"context_line":"     physical_disks of backing physical disks."},{"line_number":727,"context_line":"   * The raid configuration will be working when eLCM License for"},{"line_number":728,"context_line":"     FUJITSU PRIMERGY servers are activated. If the license is not activated,"},{"line_number":729,"context_line":"     then raid configuration will only get raid mechanism along with"}],"source_content_type":"text/x-rst","patch_set":14,"id":"5f7c97a3_ed10f702","line":726,"range":{"start_line":725,"start_character":5,"end_line":726,"end_character":46},"in_reply_to":"5f7c97a3_0e2d9b45","updated":"2018-05-30 01:18:52.000000000","message":"Done","commit_id":"21d331cb38f5a6b20dcd2882a90077ec532c959b"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"6efc6838cfd762d5731f89e19991074e2b3dc79a","unresolved":false,"context_lines":[{"line_number":725,"context_line":"   * iRMC driver only supports raid_level of Mandatory properties and"},{"line_number":726,"context_line":"     physical_disks of backing physical disks."},{"line_number":727,"context_line":"   * The raid configuration will be working when eLCM License for"},{"line_number":728,"context_line":"     FUJITSU PRIMERGY servers are activated. If the license is not activated,"},{"line_number":729,"context_line":"     then raid configuration will only get raid mechanism along with"},{"line_number":730,"context_line":"     ``No RAID controller found!`` messenger and without create raid mechanism."},{"line_number":731,"context_line":"   * iRMC server will turn-off after create/delete raid configuration had done,"},{"line_number":732,"context_line":"     BGI (background initialize) will process raid configuration in iRMC"},{"line_number":733,"context_line":"     server, thus we need to power on during this mechanism."}],"source_content_type":"text/x-rst","patch_set":14,"id":"5f7c97a3_aee26700","line":730,"range":{"start_line":728,"start_character":45,"end_line":730,"end_character":79},"updated":"2018-05-22 10:43:34.000000000","message":"Is this required? May be we can say that RAID creation will error out if no active eLCM license is found.","commit_id":"21d331cb38f5a6b20dcd2882a90077ec532c959b"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"cededb9aa319d0c4dbffc33588cd7c0689e9c557","unresolved":false,"context_lines":[{"line_number":725,"context_line":"   * iRMC driver only supports raid_level of Mandatory properties and"},{"line_number":726,"context_line":"     physical_disks of backing physical disks."},{"line_number":727,"context_line":"   * The raid configuration will be working when eLCM License for"},{"line_number":728,"context_line":"     FUJITSU PRIMERGY servers are activated. If the license is not activated,"},{"line_number":729,"context_line":"     then raid configuration will only get raid mechanism along with"},{"line_number":730,"context_line":"     ``No RAID controller found!`` messenger and without create raid mechanism."},{"line_number":731,"context_line":"   * iRMC server will turn-off after create/delete raid configuration had done,"},{"line_number":732,"context_line":"     BGI (background initialize) will process raid configuration in iRMC"},{"line_number":733,"context_line":"     server, thus we need to power on during this mechanism."}],"source_content_type":"text/x-rst","patch_set":14,"id":"5f7c97a3_cd241b63","line":730,"range":{"start_line":728,"start_character":45,"end_line":730,"end_character":79},"in_reply_to":"5f7c97a3_aee26700","updated":"2018-05-30 01:18:52.000000000","message":"Done","commit_id":"21d331cb38f5a6b20dcd2882a90077ec532c959b"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"6efc6838cfd762d5731f89e19991074e2b3dc79a","unresolved":false,"context_lines":[{"line_number":728,"context_line":"     FUJITSU PRIMERGY servers are activated. If the license is not activated,"},{"line_number":729,"context_line":"     then raid configuration will only get raid mechanism along with"},{"line_number":730,"context_line":"     ``No RAID controller found!`` messenger and without create raid mechanism."},{"line_number":731,"context_line":"   * iRMC server will turn-off after create/delete raid configuration had done,"},{"line_number":732,"context_line":"     BGI (background initialize) will process raid configuration in iRMC"},{"line_number":733,"context_line":"     server, thus we need to power on during this mechanism."},{"line_number":734,"context_line":""}],"source_content_type":"text/x-rst","patch_set":14,"id":"5f7c97a3_8ece8b81","line":731,"range":{"start_line":731,"start_character":21,"end_line":731,"end_character":31},"updated":"2018-05-22 10:43:34.000000000","message":"s/  turn-off / power off/","commit_id":"21d331cb38f5a6b20dcd2882a90077ec532c959b"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"6efc6838cfd762d5731f89e19991074e2b3dc79a","unresolved":false,"context_lines":[{"line_number":728,"context_line":"     FUJITSU PRIMERGY servers are activated. If the license is not activated,"},{"line_number":729,"context_line":"     then raid configuration will only get raid mechanism along with"},{"line_number":730,"context_line":"     ``No RAID controller found!`` messenger and without create raid mechanism."},{"line_number":731,"context_line":"   * iRMC server will turn-off after create/delete raid configuration had done,"},{"line_number":732,"context_line":"     BGI (background initialize) will process raid configuration in iRMC"},{"line_number":733,"context_line":"     server, thus we need to power on during this mechanism."},{"line_number":734,"context_line":""}],"source_content_type":"text/x-rst","patch_set":14,"id":"5f7c97a3_0ea03ba5","line":731,"range":{"start_line":731,"start_character":70,"end_line":731,"end_character":79},"updated":"2018-05-22 10:43:34.000000000","message":"s/ had done, / is applied, /","commit_id":"21d331cb38f5a6b20dcd2882a90077ec532c959b"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"cededb9aa319d0c4dbffc33588cd7c0689e9c557","unresolved":false,"context_lines":[{"line_number":728,"context_line":"     FUJITSU PRIMERGY servers are activated. If the license is not activated,"},{"line_number":729,"context_line":"     then raid configuration will only get raid mechanism along with"},{"line_number":730,"context_line":"     ``No RAID controller found!`` messenger and without create raid mechanism."},{"line_number":731,"context_line":"   * iRMC server will turn-off after create/delete raid configuration had done,"},{"line_number":732,"context_line":"     BGI (background initialize) will process raid configuration in iRMC"},{"line_number":733,"context_line":"     server, thus we need to power on during this mechanism."},{"line_number":734,"context_line":""}],"source_content_type":"text/x-rst","patch_set":14,"id":"5f7c97a3_ed29d736","line":731,"range":{"start_line":731,"start_character":70,"end_line":731,"end_character":79},"in_reply_to":"5f7c97a3_0ea03ba5","updated":"2018-05-30 01:18:52.000000000","message":"Done","commit_id":"21d331cb38f5a6b20dcd2882a90077ec532c959b"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"cededb9aa319d0c4dbffc33588cd7c0689e9c557","unresolved":false,"context_lines":[{"line_number":728,"context_line":"     FUJITSU PRIMERGY servers are activated. If the license is not activated,"},{"line_number":729,"context_line":"     then raid configuration will only get raid mechanism along with"},{"line_number":730,"context_line":"     ``No RAID controller found!`` messenger and without create raid mechanism."},{"line_number":731,"context_line":"   * iRMC server will turn-off after create/delete raid configuration had done,"},{"line_number":732,"context_line":"     BGI (background initialize) will process raid configuration in iRMC"},{"line_number":733,"context_line":"     server, thus we need to power on during this mechanism."},{"line_number":734,"context_line":""}],"source_content_type":"text/x-rst","patch_set":14,"id":"5f7c97a3_8d22a351","line":731,"range":{"start_line":731,"start_character":21,"end_line":731,"end_character":31},"in_reply_to":"5f7c97a3_8ece8b81","updated":"2018-05-30 01:18:52.000000000","message":"Done","commit_id":"21d331cb38f5a6b20dcd2882a90077ec532c959b"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"6efc6838cfd762d5731f89e19991074e2b3dc79a","unresolved":false,"context_lines":[{"line_number":730,"context_line":"     ``No RAID controller found!`` messenger and without create raid mechanism."},{"line_number":731,"context_line":"   * iRMC server will turn-off after create/delete raid configuration had done,"},{"line_number":732,"context_line":"     BGI (background initialize) will process raid configuration in iRMC"},{"line_number":733,"context_line":"     server, thus we need to power on during this mechanism."},{"line_number":734,"context_line":""},{"line_number":735,"context_line":"The raid configuration support manual cleaning from Ironic. Create a JSON file"},{"line_number":736,"context_line":"as following content::"}],"source_content_type":"text/x-rst","patch_set":14,"id":"5f7c97a3_ae902750","line":733,"range":{"start_line":733,"start_character":38,"end_line":733,"end_character":60},"updated":"2018-05-22 10:43:34.000000000","message":"s/ during this mechanism./ to complete the operation./","commit_id":"21d331cb38f5a6b20dcd2882a90077ec532c959b"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"cededb9aa319d0c4dbffc33588cd7c0689e9c557","unresolved":false,"context_lines":[{"line_number":730,"context_line":"     ``No RAID controller found!`` messenger and without create raid mechanism."},{"line_number":731,"context_line":"   * iRMC server will turn-off after create/delete raid configuration had done,"},{"line_number":732,"context_line":"     BGI (background initialize) will process raid configuration in iRMC"},{"line_number":733,"context_line":"     server, thus we need to power on during this mechanism."},{"line_number":734,"context_line":""},{"line_number":735,"context_line":"The raid configuration support manual cleaning from Ironic. Create a JSON file"},{"line_number":736,"context_line":"as following content::"}],"source_content_type":"text/x-rst","patch_set":14,"id":"5f7c97a3_ad1f5f06","line":733,"range":{"start_line":733,"start_character":38,"end_line":733,"end_character":60},"in_reply_to":"5f7c97a3_ae902750","updated":"2018-05-30 01:18:52.000000000","message":"Done","commit_id":"21d331cb38f5a6b20dcd2882a90077ec532c959b"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"6efc6838cfd762d5731f89e19991074e2b3dc79a","unresolved":false,"context_lines":[{"line_number":732,"context_line":"     BGI (background initialize) will process raid configuration in iRMC"},{"line_number":733,"context_line":"     server, thus we need to power on during this mechanism."},{"line_number":734,"context_line":""},{"line_number":735,"context_line":"The raid configuration support manual cleaning from Ironic. Create a JSON file"},{"line_number":736,"context_line":"as following content::"},{"line_number":737,"context_line":""},{"line_number":738,"context_line":"    [{"}],"source_content_type":"text/x-rst","patch_set":14,"id":"5f7c97a3_6e73ef4e","line":735,"range":{"start_line":735,"start_character":4,"end_line":735,"end_character":8},"updated":"2018-05-22 10:43:34.000000000","message":"s/ raid / RAID /","commit_id":"21d331cb38f5a6b20dcd2882a90077ec532c959b"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"6efc6838cfd762d5731f89e19991074e2b3dc79a","unresolved":false,"context_lines":[{"line_number":732,"context_line":"     BGI (background initialize) will process raid configuration in iRMC"},{"line_number":733,"context_line":"     server, thus we need to power on during this mechanism."},{"line_number":734,"context_line":""},{"line_number":735,"context_line":"The raid configuration support manual cleaning from Ironic. Create a JSON file"},{"line_number":736,"context_line":"as following content::"},{"line_number":737,"context_line":""},{"line_number":738,"context_line":"    [{"}],"source_content_type":"text/x-rst","patch_set":14,"id":"5f7c97a3_ee9cdf5e","line":735,"range":{"start_line":735,"start_character":23,"end_line":735,"end_character":59},"updated":"2018-05-22 10:43:34.000000000","message":"s/ support manual cleaning from Ironic. / is supported as a manual cleaning step. /","commit_id":"21d331cb38f5a6b20dcd2882a90077ec532c959b"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"cededb9aa319d0c4dbffc33588cd7c0689e9c557","unresolved":false,"context_lines":[{"line_number":732,"context_line":"     BGI (background initialize) will process raid configuration in iRMC"},{"line_number":733,"context_line":"     server, thus we need to power on during this mechanism."},{"line_number":734,"context_line":""},{"line_number":735,"context_line":"The raid configuration support manual cleaning from Ironic. Create a JSON file"},{"line_number":736,"context_line":"as following content::"},{"line_number":737,"context_line":""},{"line_number":738,"context_line":"    [{"}],"source_content_type":"text/x-rst","patch_set":14,"id":"5f7c97a3_eddeb73c","line":735,"range":{"start_line":735,"start_character":4,"end_line":735,"end_character":8},"in_reply_to":"5f7c97a3_6e73ef4e","updated":"2018-05-30 01:18:52.000000000","message":"Done","commit_id":"21d331cb38f5a6b20dcd2882a90077ec532c959b"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"cededb9aa319d0c4dbffc33588cd7c0689e9c557","unresolved":false,"context_lines":[{"line_number":732,"context_line":"     BGI (background initialize) will process raid configuration in iRMC"},{"line_number":733,"context_line":"     server, thus we need to power on during this mechanism."},{"line_number":734,"context_line":""},{"line_number":735,"context_line":"The raid configuration support manual cleaning from Ironic. Create a JSON file"},{"line_number":736,"context_line":"as following content::"},{"line_number":737,"context_line":""},{"line_number":738,"context_line":"    [{"}],"source_content_type":"text/x-rst","patch_set":14,"id":"5f7c97a3_0dd4531f","line":735,"range":{"start_line":735,"start_character":23,"end_line":735,"end_character":59},"in_reply_to":"5f7c97a3_ee9cdf5e","updated":"2018-05-30 01:18:52.000000000","message":"Done","commit_id":"21d331cb38f5a6b20dcd2882a90077ec532c959b"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"6efc6838cfd762d5731f89e19991074e2b3dc79a","unresolved":false,"context_lines":[{"line_number":732,"context_line":"     BGI (background initialize) will process raid configuration in iRMC"},{"line_number":733,"context_line":"     server, thus we need to power on during this mechanism."},{"line_number":734,"context_line":""},{"line_number":735,"context_line":"The raid configuration support manual cleaning from Ironic. Create a JSON file"},{"line_number":736,"context_line":"as following content::"},{"line_number":737,"context_line":""},{"line_number":738,"context_line":"    [{"},{"line_number":739,"context_line":"    \"interface\": \"raid\","},{"line_number":740,"context_line":"    \"step\": \"delete_configuration\""},{"line_number":741,"context_line":"    },"},{"line_number":742,"context_line":"    {"},{"line_number":743,"context_line":"    \"interface\": \"raid\","},{"line_number":744,"context_line":"    \"step\": \"create_configuration\""},{"line_number":745,"context_line":"    }]"},{"line_number":746,"context_line":""},{"line_number":747,"context_line":"The operator could use following commands during raid configuration mechanism::"},{"line_number":748,"context_line":""},{"line_number":749,"context_line":"    openstack baremetal node validate \u003cnode-uuid\u003e"},{"line_number":750,"context_line":""},{"line_number":751,"context_line":"    openstack baremetal node show \u003cnode-uuid-or-name\u003e"},{"line_number":752,"context_line":""},{"line_number":753,"context_line":"    openstack baremetal node set \u003cnode-uuid-or-name\u003e \\"},{"line_number":754,"context_line":"       --target-raid-config \u003cJSON file containing target RAID configuration\u003e"},{"line_number":755,"context_line":""},{"line_number":756,"context_line":"See :ref:`raid` for more details and examples."},{"line_number":757,"context_line":""}],"source_content_type":"text/x-rst","patch_set":14,"id":"5f7c97a3_6ec1af2e","line":754,"range":{"start_line":735,"start_character":60,"end_line":754,"end_character":76},"updated":"2018-05-22 10:43:34.000000000","message":"May be you can refer user to \u0027Workflow\u0027 section in https://docs.openstack.org/ironic/queens/admin/raid.html","commit_id":"21d331cb38f5a6b20dcd2882a90077ec532c959b"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"cededb9aa319d0c4dbffc33588cd7c0689e9c557","unresolved":false,"context_lines":[{"line_number":732,"context_line":"     BGI (background initialize) will process raid configuration in iRMC"},{"line_number":733,"context_line":"     server, thus we need to power on during this mechanism."},{"line_number":734,"context_line":""},{"line_number":735,"context_line":"The raid configuration support manual cleaning from Ironic. Create a JSON file"},{"line_number":736,"context_line":"as following content::"},{"line_number":737,"context_line":""},{"line_number":738,"context_line":"    [{"},{"line_number":739,"context_line":"    \"interface\": \"raid\","},{"line_number":740,"context_line":"    \"step\": \"delete_configuration\""},{"line_number":741,"context_line":"    },"},{"line_number":742,"context_line":"    {"},{"line_number":743,"context_line":"    \"interface\": \"raid\","},{"line_number":744,"context_line":"    \"step\": \"create_configuration\""},{"line_number":745,"context_line":"    }]"},{"line_number":746,"context_line":""},{"line_number":747,"context_line":"The operator could use following commands during raid configuration mechanism::"},{"line_number":748,"context_line":""},{"line_number":749,"context_line":"    openstack baremetal node validate \u003cnode-uuid\u003e"},{"line_number":750,"context_line":""},{"line_number":751,"context_line":"    openstack baremetal node show \u003cnode-uuid-or-name\u003e"},{"line_number":752,"context_line":""},{"line_number":753,"context_line":"    openstack baremetal node set \u003cnode-uuid-or-name\u003e \\"},{"line_number":754,"context_line":"       --target-raid-config \u003cJSON file containing target RAID configuration\u003e"},{"line_number":755,"context_line":""},{"line_number":756,"context_line":"See :ref:`raid` for more details and examples."},{"line_number":757,"context_line":""}],"source_content_type":"text/x-rst","patch_set":14,"id":"5f7c97a3_6d15c7e4","line":754,"range":{"start_line":735,"start_character":60,"end_line":754,"end_character":76},"in_reply_to":"5f7c97a3_6ec1af2e","updated":"2018-05-30 01:18:52.000000000","message":"Done","commit_id":"21d331cb38f5a6b20dcd2882a90077ec532c959b"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"635984aa43b5985474f9a7a0120c4e34bb26a6ab","unresolved":false,"context_lines":[{"line_number":658,"context_line":".. note::"},{"line_number":659,"context_line":""},{"line_number":660,"context_line":"   * RAID configuration does not support for iRMC classic drivers."},{"line_number":661,"context_line":"   * RAID implementation for ``irmc`` hardware type is based on eLCM licence"},{"line_number":662,"context_line":"     and SDCard. Otherwise, SP(Service Platform) in lifecycle management"},{"line_number":663,"context_line":"     must be available."},{"line_number":664,"context_line":""}],"source_content_type":"text/x-rst","patch_set":15,"id":"5f7c97a3_68355944","line":661,"range":{"start_line":661,"start_character":69,"end_line":661,"end_character":76},"updated":"2018-06-01 19:48:27.000000000","message":"s/licence/license/","commit_id":"1d5d61e4eaa03d2426061784fbf80eed7d96a840"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"50f6d43dda01a1e4d77d14b52b27c0eb19f1f38c","unresolved":false,"context_lines":[{"line_number":658,"context_line":".. note::"},{"line_number":659,"context_line":""},{"line_number":660,"context_line":"   * RAID configuration does not support for iRMC classic drivers."},{"line_number":661,"context_line":"   * RAID implementation for ``irmc`` hardware type is based on eLCM licence"},{"line_number":662,"context_line":"     and SDCard. Otherwise, SP(Service Platform) in lifecycle management"},{"line_number":663,"context_line":"     must be available."},{"line_number":664,"context_line":""}],"source_content_type":"text/x-rst","patch_set":15,"id":"5f7c97a3_f8ebfb74","line":661,"range":{"start_line":661,"start_character":69,"end_line":661,"end_character":76},"in_reply_to":"5f7c97a3_68355944","updated":"2018-06-11 04:42:29.000000000","message":"Done","commit_id":"1d5d61e4eaa03d2426061784fbf80eed7d96a840"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"635984aa43b5985474f9a7a0120c4e34bb26a6ab","unresolved":false,"context_lines":[{"line_number":686,"context_line":"     \"logical_disks\": ["},{"line_number":687,"context_line":"                   {"},{"line_number":688,"context_line":"                    \"size_gb\": 1000,"},{"line_number":689,"context_line":"                    \"raid_level\": \"1\","},{"line_number":690,"context_line":"                   }"},{"line_number":691,"context_line":"                  ]"},{"line_number":692,"context_line":"    }"}],"source_content_type":"text/x-rst","patch_set":15,"id":"5f7c97a3_e86e492a","line":689,"range":{"start_line":689,"start_character":37,"end_line":689,"end_character":38},"updated":"2018-06-01 19:48:27.000000000","message":"This tailing comma is not valid for json. We can fix it in follow-up or re-rev the patch.","commit_id":"1d5d61e4eaa03d2426061784fbf80eed7d96a840"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"50f6d43dda01a1e4d77d14b52b27c0eb19f1f38c","unresolved":false,"context_lines":[{"line_number":686,"context_line":"     \"logical_disks\": ["},{"line_number":687,"context_line":"                   {"},{"line_number":688,"context_line":"                    \"size_gb\": 1000,"},{"line_number":689,"context_line":"                    \"raid_level\": \"1\","},{"line_number":690,"context_line":"                   }"},{"line_number":691,"context_line":"                  ]"},{"line_number":692,"context_line":"    }"}],"source_content_type":"text/x-rst","patch_set":15,"id":"5f7c97a3_78f7eb5a","line":689,"range":{"start_line":689,"start_character":37,"end_line":689,"end_character":38},"in_reply_to":"5f7c97a3_e86e492a","updated":"2018-06-11 04:42:29.000000000","message":"Done","commit_id":"1d5d61e4eaa03d2426061784fbf80eed7d96a840"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"635984aa43b5985474f9a7a0120c4e34bb26a6ab","unresolved":false,"context_lines":[{"line_number":711,"context_line":"Note::"},{"line_number":712,"context_line":""},{"line_number":713,"context_line":"    - RAID 1+0 and 5+0 in iRMC driver not support to use ``physical_disks``"},{"line_number":714,"context_line":"      in ``target_raid_config`` during create raid configuration yet."},{"line_number":715,"context_line":""},{"line_number":716,"context_line":""},{"line_number":717,"context_line":"Supported properties"}],"source_content_type":"text/x-rst","patch_set":15,"id":"5f7c97a3_88f1d56d","line":714,"updated":"2018-06-01 19:48:27.000000000","message":"I feel like a user might want to know what this looks like, so maybe not as a note, but as another example?","commit_id":"1d5d61e4eaa03d2426061784fbf80eed7d96a840"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"50f6d43dda01a1e4d77d14b52b27c0eb19f1f38c","unresolved":false,"context_lines":[{"line_number":711,"context_line":"Note::"},{"line_number":712,"context_line":""},{"line_number":713,"context_line":"    - RAID 1+0 and 5+0 in iRMC driver not support to use ``physical_disks``"},{"line_number":714,"context_line":"      in ``target_raid_config`` during create raid configuration yet."},{"line_number":715,"context_line":""},{"line_number":716,"context_line":""},{"line_number":717,"context_line":"Supported properties"}],"source_content_type":"text/x-rst","patch_set":15,"id":"5f7c97a3_988767b7","line":714,"in_reply_to":"5f7c97a3_88f1d56d","updated":"2018-06-11 04:42:29.000000000","message":"Done","commit_id":"1d5d61e4eaa03d2426061784fbf80eed7d96a840"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"635984aa43b5985474f9a7a0120c4e34bb26a6ab","unresolved":false,"context_lines":[{"line_number":727,"context_line":".. note::"},{"line_number":728,"context_line":""},{"line_number":729,"context_line":"   * iRMC driver supports RAID 0, 1, 5, 6, 1+0 and 5+0."},{"line_number":730,"context_line":"   * The raid configuration will be working when eLCM License for"},{"line_number":731,"context_line":"     FUJITSU PRIMERGY servers are activated. RAID creation will error out if"},{"line_number":732,"context_line":"     no active eLCM license is found."},{"line_number":733,"context_line":"   * iRMC server will power-off after create/delete raid configuration is"}],"source_content_type":"text/x-rst","patch_set":15,"id":"5f7c97a3_489c1d0d","line":730,"range":{"start_line":730,"start_character":36,"end_line":730,"end_character":43},"updated":"2018-06-01 19:48:27.000000000","message":"FYI, This is awkward to read in english. Maybe s/working/enabled/?\n\nNo action actually needed here. It makes sense upon reading the entire sentence","commit_id":"1d5d61e4eaa03d2426061784fbf80eed7d96a840"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"50f6d43dda01a1e4d77d14b52b27c0eb19f1f38c","unresolved":false,"context_lines":[{"line_number":727,"context_line":".. note::"},{"line_number":728,"context_line":""},{"line_number":729,"context_line":"   * iRMC driver supports RAID 0, 1, 5, 6, 1+0 and 5+0."},{"line_number":730,"context_line":"   * The raid configuration will be working when eLCM License for"},{"line_number":731,"context_line":"     FUJITSU PRIMERGY servers are activated. RAID creation will error out if"},{"line_number":732,"context_line":"     no active eLCM license is found."},{"line_number":733,"context_line":"   * iRMC server will power-off after create/delete raid configuration is"}],"source_content_type":"text/x-rst","patch_set":15,"id":"5f7c97a3_98b0c78d","line":730,"range":{"start_line":730,"start_character":36,"end_line":730,"end_character":43},"in_reply_to":"5f7c97a3_489c1d0d","updated":"2018-06-11 04:42:29.000000000","message":"Done","commit_id":"1d5d61e4eaa03d2426061784fbf80eed7d96a840"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"635984aa43b5985474f9a7a0120c4e34bb26a6ab","unresolved":false,"context_lines":[{"line_number":732,"context_line":"     no active eLCM license is found."},{"line_number":733,"context_line":"   * iRMC server will power-off after create/delete raid configuration is"},{"line_number":734,"context_line":"     applied, BGI (background initialize) will process raid configuration in"},{"line_number":735,"context_line":"     iRMC server, thus we need to power on to complete the operation."},{"line_number":736,"context_line":""},{"line_number":737,"context_line":"The RAID configuration is supported as a manual cleaning step."},{"line_number":738,"context_line":""}],"source_content_type":"text/x-rst","patch_set":15,"id":"5f7c97a3_e87889c1","line":735,"range":{"start_line":735,"start_character":23,"end_line":735,"end_character":33},"updated":"2018-06-01 19:48:27.000000000","message":"You might want to rephrase this. It sounds like it is required. Perhaps indicate that the operation will be completed upon power-on instead?","commit_id":"1d5d61e4eaa03d2426061784fbf80eed7d96a840"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"50f6d43dda01a1e4d77d14b52b27c0eb19f1f38c","unresolved":false,"context_lines":[{"line_number":732,"context_line":"     no active eLCM license is found."},{"line_number":733,"context_line":"   * iRMC server will power-off after create/delete raid configuration is"},{"line_number":734,"context_line":"     applied, BGI (background initialize) will process raid configuration in"},{"line_number":735,"context_line":"     iRMC server, thus we need to power on to complete the operation."},{"line_number":736,"context_line":""},{"line_number":737,"context_line":"The RAID configuration is supported as a manual cleaning step."},{"line_number":738,"context_line":""}],"source_content_type":"text/x-rst","patch_set":15,"id":"5f7c97a3_587f8faa","line":735,"range":{"start_line":735,"start_character":23,"end_line":735,"end_character":33},"in_reply_to":"5f7c97a3_e87889c1","updated":"2018-06-11 04:42:29.000000000","message":"Done","commit_id":"1d5d61e4eaa03d2426061784fbf80eed7d96a840"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"635984aa43b5985474f9a7a0120c4e34bb26a6ab","unresolved":false,"context_lines":[{"line_number":754,"context_line":"RAID configuration feature supports FUJITSU PRIMERGY servers with"},{"line_number":755,"context_line":"RAID-Ctrl-SAS-6G-1GB(D3116C) controller and above."},{"line_number":756,"context_line":"For detail supported controller with OOB-RAID configuration, please see"},{"line_number":757,"context_line":"following link https://sp.ts.fujitsu.com/dmsp/Publications/public/wp-SVS-ooB-RAID-HDD-en.pdf"}],"source_content_type":"text/x-rst","patch_set":15,"id":"5f7c97a3_08614505","line":757,"range":{"start_line":757,"start_character":15,"end_line":757,"end_character":92},"updated":"2018-06-01 19:48:27.000000000","message":"I\u0027d like to see this as a link, but I\u0027m not sure the best way to describe what the link is to.","commit_id":"1d5d61e4eaa03d2426061784fbf80eed7d96a840"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"50f6d43dda01a1e4d77d14b52b27c0eb19f1f38c","unresolved":false,"context_lines":[{"line_number":754,"context_line":"RAID configuration feature supports FUJITSU PRIMERGY servers with"},{"line_number":755,"context_line":"RAID-Ctrl-SAS-6G-1GB(D3116C) controller and above."},{"line_number":756,"context_line":"For detail supported controller with OOB-RAID configuration, please see"},{"line_number":757,"context_line":"following link https://sp.ts.fujitsu.com/dmsp/Publications/public/wp-SVS-ooB-RAID-HDD-en.pdf"}],"source_content_type":"text/x-rst","patch_set":15,"id":"5f7c97a3_9159d936","line":757,"range":{"start_line":757,"start_character":15,"end_line":757,"end_character":92},"in_reply_to":"5f7c97a3_08614505","updated":"2018-06-11 04:42:29.000000000","message":"I am not sure how to change it.","commit_id":"1d5d61e4eaa03d2426061784fbf80eed7d96a840"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"a1872140c4ed1ebb020f33ff1bfbb743468d4499","unresolved":false,"context_lines":[{"line_number":66,"context_line":"    Command Interface (SCCI)."},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"* raid"},{"line_number":69,"context_line":"    Supports  ``irmc``, ``no-raid`` and ``agent-raid``."},{"line_number":70,"context_line":"    The default is ``no-raid``."},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"For other hardware interfaces, ``irmc`` hardware type supports the"}],"source_content_type":"text/x-rst","patch_set":16,"id":"5f7c97a3_198439b0","line":69,"updated":"2018-06-14 08:51:46.000000000","message":"s/agent-raid/agent/","commit_id":"6b9f045ec0a10c040161cfb418ad263ac5c020e0"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"a8233bb860a4f2e84be48ba6d47d2e5348c50eac","unresolved":false,"context_lines":[{"line_number":66,"context_line":"    Command Interface (SCCI)."},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"* raid"},{"line_number":69,"context_line":"    Supports  ``irmc``, ``no-raid`` and ``agent-raid``."},{"line_number":70,"context_line":"    The default is ``no-raid``."},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"For other hardware interfaces, ``irmc`` hardware type supports the"}],"source_content_type":"text/x-rst","patch_set":16,"id":"5f7c97a3_92ba4d6f","line":69,"in_reply_to":"5f7c97a3_198439b0","updated":"2018-06-15 04:34:30.000000000","message":"Done","commit_id":"6b9f045ec0a10c040161cfb418ad263ac5c020e0"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"a1872140c4ed1ebb020f33ff1bfbb743468d4499","unresolved":false,"context_lines":[{"line_number":657,"context_line":""},{"line_number":658,"context_line":".. note::"},{"line_number":659,"context_line":""},{"line_number":660,"context_line":"   * RAID configuration does not support for iRMC classic drivers."},{"line_number":661,"context_line":"   * RAID implementation for ``irmc`` hardware type is based on eLCM license"},{"line_number":662,"context_line":"     and SDCard. Otherwise, SP(Service Platform) in lifecycle management"},{"line_number":663,"context_line":"     must be available."}],"source_content_type":"text/x-rst","patch_set":16,"id":"5f7c97a3_b98e65ce","line":660,"updated":"2018-06-14 08:51:46.000000000","message":"Please remove this, we\u0027re removing the classic drivers this cycle","commit_id":"6b9f045ec0a10c040161cfb418ad263ac5c020e0"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"a8233bb860a4f2e84be48ba6d47d2e5348c50eac","unresolved":false,"context_lines":[{"line_number":657,"context_line":""},{"line_number":658,"context_line":".. note::"},{"line_number":659,"context_line":""},{"line_number":660,"context_line":"   * RAID configuration does not support for iRMC classic drivers."},{"line_number":661,"context_line":"   * RAID implementation for ``irmc`` hardware type is based on eLCM license"},{"line_number":662,"context_line":"     and SDCard. Otherwise, SP(Service Platform) in lifecycle management"},{"line_number":663,"context_line":"     must be available."}],"source_content_type":"text/x-rst","patch_set":16,"id":"5f7c97a3_32ab391f","line":660,"in_reply_to":"5f7c97a3_b98e65ce","updated":"2018-06-15 04:34:30.000000000","message":"Done","commit_id":"6b9f045ec0a10c040161cfb418ad263ac5c020e0"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"a1872140c4ed1ebb020f33ff1bfbb743468d4499","unresolved":false,"context_lines":[{"line_number":669,"context_line":"configuration:"},{"line_number":670,"context_line":""},{"line_number":671,"context_line":"* It is necessary to set ironic configuration into Node with"},{"line_number":672,"context_line":"  ``target_raid_config.json`` option in ``[irmc]`` section."},{"line_number":673,"context_line":""},{"line_number":674,"context_line":"  ``target_raid_config.json`` is a list of ``logical_disks`` where:"},{"line_number":675,"context_line":""}],"source_content_type":"text/x-rst","patch_set":16,"id":"5f7c97a3_d989e1c6","line":672,"updated":"2018-06-14 08:51:46.000000000","message":"There is no such option, and I think you just mean updating the node. Maybe show an example and link to the generic RAID documentation for details?","commit_id":"6b9f045ec0a10c040161cfb418ad263ac5c020e0"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"a8233bb860a4f2e84be48ba6d47d2e5348c50eac","unresolved":false,"context_lines":[{"line_number":669,"context_line":"configuration:"},{"line_number":670,"context_line":""},{"line_number":671,"context_line":"* It is necessary to set ironic configuration into Node with"},{"line_number":672,"context_line":"  ``target_raid_config.json`` option in ``[irmc]`` section."},{"line_number":673,"context_line":""},{"line_number":674,"context_line":"  ``target_raid_config.json`` is a list of ``logical_disks`` where:"},{"line_number":675,"context_line":""}],"source_content_type":"text/x-rst","patch_set":16,"id":"5f7c97a3_72153149","line":672,"in_reply_to":"5f7c97a3_d989e1c6","updated":"2018-06-15 04:34:30.000000000","message":"Done","commit_id":"6b9f045ec0a10c040161cfb418ad263ac5c020e0"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"a1872140c4ed1ebb020f33ff1bfbb743468d4499","unresolved":false,"context_lines":[{"line_number":680,"context_line":"  - ``physical_disks``: are specific values for each raid array in"},{"line_number":681,"context_line":"    LogicalDrive which operator want to set them along with raid_level."},{"line_number":682,"context_line":""},{"line_number":683,"context_line":"  Here is some sample values for target_raid_config JSON file::"},{"line_number":684,"context_line":""},{"line_number":685,"context_line":"    {"},{"line_number":686,"context_line":"     \"logical_disks\": ["}],"source_content_type":"text/x-rst","patch_set":16,"id":"5f7c97a3_79be8d65","line":683,"updated":"2018-06-14 08:51:46.000000000","message":"nit: ``target_raid_config``","commit_id":"6b9f045ec0a10c040161cfb418ad263ac5c020e0"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"a8233bb860a4f2e84be48ba6d47d2e5348c50eac","unresolved":false,"context_lines":[{"line_number":680,"context_line":"  - ``physical_disks``: are specific values for each raid array in"},{"line_number":681,"context_line":"    LogicalDrive which operator want to set them along with raid_level."},{"line_number":682,"context_line":""},{"line_number":683,"context_line":"  Here is some sample values for target_raid_config JSON file::"},{"line_number":684,"context_line":""},{"line_number":685,"context_line":"    {"},{"line_number":686,"context_line":"     \"logical_disks\": ["}],"source_content_type":"text/x-rst","patch_set":16,"id":"5f7c97a3_f2a4e14d","line":683,"in_reply_to":"5f7c97a3_79be8d65","updated":"2018-06-15 04:34:30.000000000","message":"Done","commit_id":"6b9f045ec0a10c040161cfb418ad263ac5c020e0"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"a1872140c4ed1ebb020f33ff1bfbb743468d4499","unresolved":false,"context_lines":[{"line_number":688,"context_line":"                    \"size_gb\": 1000,"},{"line_number":689,"context_line":"                    \"raid_level\": \"1\""},{"line_number":690,"context_line":"                   }"},{"line_number":691,"context_line":"                  ]"},{"line_number":692,"context_line":"    }"},{"line_number":693,"context_line":""},{"line_number":694,"context_line":"    or"}],"source_content_type":"text/x-rst","patch_set":16,"id":"5f7c97a3_99c129e7","line":691,"updated":"2018-06-14 08:51:46.000000000","message":"nit: slightly weird indentation here","commit_id":"6b9f045ec0a10c040161cfb418ad263ac5c020e0"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"a8233bb860a4f2e84be48ba6d47d2e5348c50eac","unresolved":false,"context_lines":[{"line_number":688,"context_line":"                    \"size_gb\": 1000,"},{"line_number":689,"context_line":"                    \"raid_level\": \"1\""},{"line_number":690,"context_line":"                   }"},{"line_number":691,"context_line":"                  ]"},{"line_number":692,"context_line":"    }"},{"line_number":693,"context_line":""},{"line_number":694,"context_line":"    or"}],"source_content_type":"text/x-rst","patch_set":16,"id":"5f7c97a3_3259f95a","line":691,"in_reply_to":"5f7c97a3_99c129e7","updated":"2018-06-15 04:34:30.000000000","message":"Done","commit_id":"6b9f045ec0a10c040161cfb418ad263ac5c020e0"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"a1872140c4ed1ebb020f33ff1bfbb743468d4499","unresolved":false,"context_lines":[{"line_number":691,"context_line":"                  ]"},{"line_number":692,"context_line":"    }"},{"line_number":693,"context_line":""},{"line_number":694,"context_line":"    or"},{"line_number":695,"context_line":""},{"line_number":696,"context_line":"    {"},{"line_number":697,"context_line":"          \"logical_disks\":"}],"source_content_type":"text/x-rst","patch_set":16,"id":"5f7c97a3_39b49581","line":694,"updated":"2018-06-14 08:51:46.000000000","message":"\"or\" is rendered inside of JSON and should be unindented to the level of \"Here\"","commit_id":"6b9f045ec0a10c040161cfb418ad263ac5c020e0"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"a8233bb860a4f2e84be48ba6d47d2e5348c50eac","unresolved":false,"context_lines":[{"line_number":691,"context_line":"                  ]"},{"line_number":692,"context_line":"    }"},{"line_number":693,"context_line":""},{"line_number":694,"context_line":"    or"},{"line_number":695,"context_line":""},{"line_number":696,"context_line":"    {"},{"line_number":697,"context_line":"          \"logical_disks\":"}],"source_content_type":"text/x-rst","patch_set":16,"id":"5f7c97a3_120abd26","line":694,"in_reply_to":"5f7c97a3_39b49581","updated":"2018-06-15 04:34:30.000000000","message":"Done","commit_id":"6b9f045ec0a10c040161cfb418ad263ac5c020e0"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"a1872140c4ed1ebb020f33ff1bfbb743468d4499","unresolved":false,"context_lines":[{"line_number":710,"context_line":""},{"line_number":711,"context_line":"Note::"},{"line_number":712,"context_line":""},{"line_number":713,"context_line":"    - RAID 1+0 and 5+0 in iRMC driver not support to use ``physical_disks``"},{"line_number":714,"context_line":"      in ``target_raid_config`` during create raid configuration yet. See to"},{"line_number":715,"context_line":"      following example::"},{"line_number":716,"context_line":""}],"source_content_type":"text/x-rst","patch_set":16,"id":"5f7c97a3_59b71186","line":713,"updated":"2018-06-14 08:51:46.000000000","message":"this is rendered as a list inside of a blockquote. Please use the note syntax and remove the -\n\n .. note::\n     RAID 1+0 ....","commit_id":"6b9f045ec0a10c040161cfb418ad263ac5c020e0"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"a8233bb860a4f2e84be48ba6d47d2e5348c50eac","unresolved":false,"context_lines":[{"line_number":710,"context_line":""},{"line_number":711,"context_line":"Note::"},{"line_number":712,"context_line":""},{"line_number":713,"context_line":"    - RAID 1+0 and 5+0 in iRMC driver not support to use ``physical_disks``"},{"line_number":714,"context_line":"      in ``target_raid_config`` during create raid configuration yet. See to"},{"line_number":715,"context_line":"      following example::"},{"line_number":716,"context_line":""}],"source_content_type":"text/x-rst","patch_set":16,"id":"5f7c97a3_3207b920","line":713,"in_reply_to":"5f7c97a3_59b71186","updated":"2018-06-15 04:34:30.000000000","message":"Done","commit_id":"6b9f045ec0a10c040161cfb418ad263ac5c020e0"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"df775a7160d4c29ade6bfe59f2707dea0455c2c1","unresolved":false,"context_lines":[{"line_number":765,"context_line":"RAID configuration feature supports FUJITSU PRIMERGY servers with"},{"line_number":766,"context_line":"RAID-Ctrl-SAS-6G-1GB(D3116C) controller and above."},{"line_number":767,"context_line":"For detail supported controller with OOB-RAID configuration, please see"},{"line_number":768,"context_line":"following link https://sp.ts.fujitsu.com/dmsp/Publications/public/wp-SVS-ooB-RAID-HDD-en.pdf"}],"source_content_type":"text/x-rst","patch_set":16,"id":"5f7c97a3_396610ef","line":768,"updated":"2018-06-12 08:06:13.000000000","message":"You can make a link like:\n\n  See `the whitepaper for iRMC RAID configuration \u003chttps://sp.ts.fujitsu.com/dmsp/Publications/public/wp-SVS-ooB-RAID-HDD-en.pdf\u003e`_.","commit_id":"6b9f045ec0a10c040161cfb418ad263ac5c020e0"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"a8233bb860a4f2e84be48ba6d47d2e5348c50eac","unresolved":false,"context_lines":[{"line_number":765,"context_line":"RAID configuration feature supports FUJITSU PRIMERGY servers with"},{"line_number":766,"context_line":"RAID-Ctrl-SAS-6G-1GB(D3116C) controller and above."},{"line_number":767,"context_line":"For detail supported controller with OOB-RAID configuration, please see"},{"line_number":768,"context_line":"following link https://sp.ts.fujitsu.com/dmsp/Publications/public/wp-SVS-ooB-RAID-HDD-en.pdf"}],"source_content_type":"text/x-rst","patch_set":16,"id":"5f7c97a3_df95493e","line":768,"in_reply_to":"5f7c97a3_396610ef","updated":"2018-06-15 04:34:30.000000000","message":"Done","commit_id":"6b9f045ec0a10c040161cfb418ad263ac5c020e0"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"adfdd5445e7afed802d415adace61e8ce3021984","unresolved":false,"context_lines":[{"line_number":18,"context_line":"* Install `python-scciclient \u003chttps://pypi.org/project/python-scciclient\u003e`_"},{"line_number":19,"context_line":"  and `pysnmp \u003chttps://pypi.org/project/pysnmp\u003e`_ packages::"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"  $ pip install \"python-scciclient\u003e\u003d0.6.0\" pysnmp"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"Hardware Type"},{"line_number":24,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":17,"id":"5f7c97a3_282186fd","line":21,"range":{"start_line":21,"start_character":36,"end_line":21,"end_character":41},"updated":"2018-06-15 06:18:15.000000000","message":"Please update it to 0.7.0, which has a feature for RAID configuration.\n\nPlease also update driver-requirements.txt.","commit_id":"a3c2ab95118099b3c94b7661b06ecc5b9adc477e"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"6e8a14288b36cd306ce6de03f567b34f11e4898a","unresolved":false,"context_lines":[{"line_number":18,"context_line":"* Install `python-scciclient \u003chttps://pypi.org/project/python-scciclient\u003e`_"},{"line_number":19,"context_line":"  and `pysnmp \u003chttps://pypi.org/project/pysnmp\u003e`_ packages::"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"  $ pip install \"python-scciclient\u003e\u003d0.6.0\" pysnmp"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"Hardware Type"},{"line_number":24,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":17,"id":"5f7c97a3_03a6ecac","line":21,"range":{"start_line":21,"start_character":36,"end_line":21,"end_character":41},"in_reply_to":"5f7c97a3_282186fd","updated":"2018-06-15 07:35:53.000000000","message":"Done","commit_id":"a3c2ab95118099b3c94b7661b06ecc5b9adc477e"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"57e120df1c9f8815fe3e43d8b7477eceda340b1e","unresolved":false,"context_lines":[{"line_number":652,"context_line":"RAID configuration Support"},{"line_number":653,"context_line":"^^^^^^^^^^^^^^^^^^^^^^^^^^"},{"line_number":654,"context_line":""},{"line_number":655,"context_line":"The ``irmc`` hardware type provides the iRMC raid configuration with ``irmc``"},{"line_number":656,"context_line":"raid interface."},{"line_number":657,"context_line":""},{"line_number":658,"context_line":".. note::"}],"source_content_type":"text/x-rst","patch_set":22,"id":"5f7c97a3_318dfbd3","line":655,"range":{"start_line":655,"start_character":45,"end_line":655,"end_character":49},"updated":"2018-06-21 10:29:14.000000000","message":"s/ raid / RAID /","commit_id":"45a8ce7d7b9e9147fecd822dbe5627485616d6e5"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"2522d420e64e4fa97dc6ea650b89572c0477672f","unresolved":false,"context_lines":[{"line_number":652,"context_line":"RAID configuration Support"},{"line_number":653,"context_line":"^^^^^^^^^^^^^^^^^^^^^^^^^^"},{"line_number":654,"context_line":""},{"line_number":655,"context_line":"The ``irmc`` hardware type provides the iRMC raid configuration with ``irmc``"},{"line_number":656,"context_line":"raid interface."},{"line_number":657,"context_line":""},{"line_number":658,"context_line":".. note::"}],"source_content_type":"text/x-rst","patch_set":22,"id":"5f7c97a3_b07c9320","line":655,"range":{"start_line":655,"start_character":45,"end_line":655,"end_character":49},"in_reply_to":"5f7c97a3_318dfbd3","updated":"2018-06-22 01:57:04.000000000","message":"Done","commit_id":"45a8ce7d7b9e9147fecd822dbe5627485616d6e5"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"57e120df1c9f8815fe3e43d8b7477eceda340b1e","unresolved":false,"context_lines":[{"line_number":678,"context_line":"    supports following RAID levels: 0, 1, 5, 6, 1+0 and 5+0."},{"line_number":679,"context_line":"  - ``controller``: is name of the controller as read by the RAID interface."},{"line_number":680,"context_line":"  - ``physical_disks``: are specific values for each raid array in"},{"line_number":681,"context_line":"    LogicalDrive which operator want to set them along with raid_level."},{"line_number":682,"context_line":""},{"line_number":683,"context_line":"  Here is some sample values for ``target_raid_config`` JSON file::"},{"line_number":684,"context_line":""}],"source_content_type":"text/x-rst","patch_set":22,"id":"5f7c97a3_b1b26b95","line":681,"range":{"start_line":681,"start_character":60,"end_line":681,"end_character":70},"updated":"2018-06-21 10:29:14.000000000","message":"s/ raid_level / ``raid_level`` /","commit_id":"45a8ce7d7b9e9147fecd822dbe5627485616d6e5"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"2522d420e64e4fa97dc6ea650b89572c0477672f","unresolved":false,"context_lines":[{"line_number":678,"context_line":"    supports following RAID levels: 0, 1, 5, 6, 1+0 and 5+0."},{"line_number":679,"context_line":"  - ``controller``: is name of the controller as read by the RAID interface."},{"line_number":680,"context_line":"  - ``physical_disks``: are specific values for each raid array in"},{"line_number":681,"context_line":"    LogicalDrive which operator want to set them along with raid_level."},{"line_number":682,"context_line":""},{"line_number":683,"context_line":"  Here is some sample values for ``target_raid_config`` JSON file::"},{"line_number":684,"context_line":""}],"source_content_type":"text/x-rst","patch_set":22,"id":"5f7c97a3_d0790f2f","line":681,"range":{"start_line":681,"start_character":60,"end_line":681,"end_character":70},"in_reply_to":"5f7c97a3_b1b26b95","updated":"2018-06-22 01:57:04.000000000","message":"Done","commit_id":"45a8ce7d7b9e9147fecd822dbe5627485616d6e5"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"57e120df1c9f8815fe3e43d8b7477eceda340b1e","unresolved":false,"context_lines":[{"line_number":708,"context_line":""},{"line_number":709,"context_line":"..note::"},{"line_number":710,"context_line":""},{"line_number":711,"context_line":"    RAID 1+0 and 5+0 in iRMC driver not support to use ``physical_disks``"},{"line_number":712,"context_line":"    in ``target_raid_config`` during create raid configuration yet. See to"},{"line_number":713,"context_line":"    following example::"},{"line_number":714,"context_line":""}],"source_content_type":"text/x-rst","patch_set":22,"id":"5f7c97a3_5178b7bf","line":711,"range":{"start_line":711,"start_character":35,"end_line":711,"end_character":54},"updated":"2018-06-21 10:29:14.000000000","message":"s/ \u0027 not support to use \u0027 / \u0027does not support property \u0027 /","commit_id":"45a8ce7d7b9e9147fecd822dbe5627485616d6e5"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"2522d420e64e4fa97dc6ea650b89572c0477672f","unresolved":false,"context_lines":[{"line_number":708,"context_line":""},{"line_number":709,"context_line":"..note::"},{"line_number":710,"context_line":""},{"line_number":711,"context_line":"    RAID 1+0 and 5+0 in iRMC driver not support to use ``physical_disks``"},{"line_number":712,"context_line":"    in ``target_raid_config`` during create raid configuration yet. See to"},{"line_number":713,"context_line":"    following example::"},{"line_number":714,"context_line":""}],"source_content_type":"text/x-rst","patch_set":22,"id":"5f7c97a3_5093bf4f","line":711,"range":{"start_line":711,"start_character":35,"end_line":711,"end_character":54},"in_reply_to":"5f7c97a3_5178b7bf","updated":"2018-06-22 01:57:04.000000000","message":"Done","commit_id":"45a8ce7d7b9e9147fecd822dbe5627485616d6e5"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"57e120df1c9f8815fe3e43d8b7477eceda340b1e","unresolved":false,"context_lines":[{"line_number":709,"context_line":"..note::"},{"line_number":710,"context_line":""},{"line_number":711,"context_line":"    RAID 1+0 and 5+0 in iRMC driver not support to use ``physical_disks``"},{"line_number":712,"context_line":"    in ``target_raid_config`` during create raid configuration yet. See to"},{"line_number":713,"context_line":"    following example::"},{"line_number":714,"context_line":""},{"line_number":715,"context_line":"        {"}],"source_content_type":"text/x-rst","patch_set":22,"id":"5f7c97a3_1150ff31","line":712,"range":{"start_line":712,"start_character":72,"end_line":712,"end_character":74},"updated":"2018-06-21 10:29:14.000000000","message":"s/ to //","commit_id":"45a8ce7d7b9e9147fecd822dbe5627485616d6e5"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"2522d420e64e4fa97dc6ea650b89572c0477672f","unresolved":false,"context_lines":[{"line_number":709,"context_line":"..note::"},{"line_number":710,"context_line":""},{"line_number":711,"context_line":"    RAID 1+0 and 5+0 in iRMC driver not support to use ``physical_disks``"},{"line_number":712,"context_line":"    in ``target_raid_config`` during create raid configuration yet. See to"},{"line_number":713,"context_line":"    following example::"},{"line_number":714,"context_line":""},{"line_number":715,"context_line":"        {"}],"source_content_type":"text/x-rst","patch_set":22,"id":"5f7c97a3_f093eb4c","line":712,"range":{"start_line":712,"start_character":72,"end_line":712,"end_character":74},"in_reply_to":"5f7c97a3_1150ff31","updated":"2018-06-22 01:57:04.000000000","message":"Done","commit_id":"45a8ce7d7b9e9147fecd822dbe5627485616d6e5"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"57e120df1c9f8815fe3e43d8b7477eceda340b1e","unresolved":false,"context_lines":[{"line_number":726,"context_line":"Supported properties"},{"line_number":727,"context_line":"~~~~~~~~~~~~~~~~~~~~"},{"line_number":728,"context_line":""},{"line_number":729,"context_line":"The RAID configuration via iRMC driver only supports some parameters in"},{"line_number":730,"context_line":"``target_raid_config`` as following items:"},{"line_number":731,"context_line":""},{"line_number":732,"context_line":"* ``raid_level``: raid level info"}],"source_content_type":"text/x-rst","patch_set":22,"id":"5f7c97a3_915baf52","line":729,"range":{"start_line":729,"start_character":23,"end_line":729,"end_character":26},"updated":"2018-06-21 10:29:14.000000000","message":"s/ via / using /","commit_id":"45a8ce7d7b9e9147fecd822dbe5627485616d6e5"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"2522d420e64e4fa97dc6ea650b89572c0477672f","unresolved":false,"context_lines":[{"line_number":726,"context_line":"Supported properties"},{"line_number":727,"context_line":"~~~~~~~~~~~~~~~~~~~~"},{"line_number":728,"context_line":""},{"line_number":729,"context_line":"The RAID configuration via iRMC driver only supports some parameters in"},{"line_number":730,"context_line":"``target_raid_config`` as following items:"},{"line_number":731,"context_line":""},{"line_number":732,"context_line":"* ``raid_level``: raid level info"}],"source_content_type":"text/x-rst","patch_set":22,"id":"5f7c97a3_b0a1f397","line":729,"range":{"start_line":729,"start_character":23,"end_line":729,"end_character":26},"in_reply_to":"5f7c97a3_915baf52","updated":"2018-06-22 01:57:04.000000000","message":"Done","commit_id":"45a8ce7d7b9e9147fecd822dbe5627485616d6e5"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"57e120df1c9f8815fe3e43d8b7477eceda340b1e","unresolved":false,"context_lines":[{"line_number":726,"context_line":"Supported properties"},{"line_number":727,"context_line":"~~~~~~~~~~~~~~~~~~~~"},{"line_number":728,"context_line":""},{"line_number":729,"context_line":"The RAID configuration via iRMC driver only supports some parameters in"},{"line_number":730,"context_line":"``target_raid_config`` as following items:"},{"line_number":731,"context_line":""},{"line_number":732,"context_line":"* ``raid_level``: raid level info"},{"line_number":733,"context_line":""}],"source_content_type":"text/x-rst","patch_set":22,"id":"5f7c97a3_31297b9b","line":730,"range":{"start_line":729,"start_character":44,"end_line":730,"end_character":41},"updated":"2018-06-21 10:29:14.000000000","message":"s/ \"supports some parameters in ``target_raid_config`` as following items\u0027 \" / \"supports following parameters in ``target_raid_config`` \" /","commit_id":"45a8ce7d7b9e9147fecd822dbe5627485616d6e5"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"2522d420e64e4fa97dc6ea650b89572c0477672f","unresolved":false,"context_lines":[{"line_number":726,"context_line":"Supported properties"},{"line_number":727,"context_line":"~~~~~~~~~~~~~~~~~~~~"},{"line_number":728,"context_line":""},{"line_number":729,"context_line":"The RAID configuration via iRMC driver only supports some parameters in"},{"line_number":730,"context_line":"``target_raid_config`` as following items:"},{"line_number":731,"context_line":""},{"line_number":732,"context_line":"* ``raid_level``: raid level info"},{"line_number":733,"context_line":""}],"source_content_type":"text/x-rst","patch_set":22,"id":"5f7c97a3_d09eef52","line":730,"range":{"start_line":729,"start_character":44,"end_line":730,"end_character":41},"in_reply_to":"5f7c97a3_31297b9b","updated":"2018-06-22 01:57:04.000000000","message":"Done","commit_id":"45a8ce7d7b9e9147fecd822dbe5627485616d6e5"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"57e120df1c9f8815fe3e43d8b7477eceda340b1e","unresolved":false,"context_lines":[{"line_number":731,"context_line":""},{"line_number":732,"context_line":"* ``raid_level``: raid level info"},{"line_number":733,"context_line":""},{"line_number":734,"context_line":"* ``physical_disks``: specific physical disks in each raid_level"},{"line_number":735,"context_line":""},{"line_number":736,"context_line":".. note::"},{"line_number":737,"context_line":""}],"source_content_type":"text/x-rst","patch_set":22,"id":"5f7c97a3_f118e384","line":734,"range":{"start_line":734,"start_character":54,"end_line":734,"end_character":64},"updated":"2018-06-21 10:29:14.000000000","message":"s/ raid_level / ``raid_level`` /","commit_id":"45a8ce7d7b9e9147fecd822dbe5627485616d6e5"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"2522d420e64e4fa97dc6ea650b89572c0477672f","unresolved":false,"context_lines":[{"line_number":731,"context_line":""},{"line_number":732,"context_line":"* ``raid_level``: raid level info"},{"line_number":733,"context_line":""},{"line_number":734,"context_line":"* ``physical_disks``: specific physical disks in each raid_level"},{"line_number":735,"context_line":""},{"line_number":736,"context_line":".. note::"},{"line_number":737,"context_line":""}],"source_content_type":"text/x-rst","patch_set":22,"id":"5f7c97a3_90a4f7a4","line":734,"range":{"start_line":734,"start_character":54,"end_line":734,"end_character":64},"in_reply_to":"5f7c97a3_f118e384","updated":"2018-06-22 01:57:04.000000000","message":"Done","commit_id":"45a8ce7d7b9e9147fecd822dbe5627485616d6e5"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"57e120df1c9f8815fe3e43d8b7477eceda340b1e","unresolved":false,"context_lines":[{"line_number":735,"context_line":""},{"line_number":736,"context_line":".. note::"},{"line_number":737,"context_line":""},{"line_number":738,"context_line":"   * iRMC driver supports RAID 0, 1, 5, 6, 1+0 and 5+0."},{"line_number":739,"context_line":"   * The raid configuration will be enable when eLCM License for"},{"line_number":740,"context_line":"     FUJITSU PRIMERGY servers are activated. RAID creation will error out if"},{"line_number":741,"context_line":"     no active eLCM license is found."}],"source_content_type":"text/x-rst","patch_set":22,"id":"5f7c97a3_d1136764","line":738,"range":{"start_line":738,"start_character":26,"end_line":738,"end_character":30},"updated":"2018-06-21 10:29:14.000000000","message":"s/ RAID / RAID levels /","commit_id":"45a8ce7d7b9e9147fecd822dbe5627485616d6e5"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"2522d420e64e4fa97dc6ea650b89572c0477672f","unresolved":false,"context_lines":[{"line_number":735,"context_line":""},{"line_number":736,"context_line":".. note::"},{"line_number":737,"context_line":""},{"line_number":738,"context_line":"   * iRMC driver supports RAID 0, 1, 5, 6, 1+0 and 5+0."},{"line_number":739,"context_line":"   * The raid configuration will be enable when eLCM License for"},{"line_number":740,"context_line":"     FUJITSU PRIMERGY servers are activated. RAID creation will error out if"},{"line_number":741,"context_line":"     no active eLCM license is found."}],"source_content_type":"text/x-rst","patch_set":22,"id":"5f7c97a3_30b723db","line":738,"range":{"start_line":738,"start_character":26,"end_line":738,"end_character":30},"in_reply_to":"5f7c97a3_d1136764","updated":"2018-06-22 01:57:04.000000000","message":"Done","commit_id":"45a8ce7d7b9e9147fecd822dbe5627485616d6e5"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"57e120df1c9f8815fe3e43d8b7477eceda340b1e","unresolved":false,"context_lines":[{"line_number":740,"context_line":"     FUJITSU PRIMERGY servers are activated. RAID creation will error out if"},{"line_number":741,"context_line":"     no active eLCM license is found."},{"line_number":742,"context_line":"   * iRMC server will power-off after create/delete raid configuration is"},{"line_number":743,"context_line":"     applied, FGI (foreground initialize) will process raid configuration in"},{"line_number":744,"context_line":"     iRMC server, thus the operation will completed upon power-on."},{"line_number":745,"context_line":""},{"line_number":746,"context_line":"The RAID configuration is supported as a manual cleaning step."}],"source_content_type":"text/x-rst","patch_set":22,"id":"5f7c97a3_a46a27b2","line":743,"range":{"start_line":743,"start_character":19,"end_line":743,"end_character":40},"updated":"2018-06-21 10:29:14.000000000","message":"s/ foreground initialize / \u0027Foreground Initialize\u0027 /","commit_id":"45a8ce7d7b9e9147fecd822dbe5627485616d6e5"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"2522d420e64e4fa97dc6ea650b89572c0477672f","unresolved":false,"context_lines":[{"line_number":740,"context_line":"     FUJITSU PRIMERGY servers are activated. RAID creation will error out if"},{"line_number":741,"context_line":"     no active eLCM license is found."},{"line_number":742,"context_line":"   * iRMC server will power-off after create/delete raid configuration is"},{"line_number":743,"context_line":"     applied, FGI (foreground initialize) will process raid configuration in"},{"line_number":744,"context_line":"     iRMC server, thus the operation will completed upon power-on."},{"line_number":745,"context_line":""},{"line_number":746,"context_line":"The RAID configuration is supported as a manual cleaning step."}],"source_content_type":"text/x-rst","patch_set":22,"id":"5f7c97a3_f0ac4b89","line":743,"range":{"start_line":743,"start_character":19,"end_line":743,"end_character":40},"in_reply_to":"5f7c97a3_a46a27b2","updated":"2018-06-22 01:57:04.000000000","message":"Done","commit_id":"45a8ce7d7b9e9147fecd822dbe5627485616d6e5"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"61d004c58bdbed8d0a8d8a65d06e27f7cbf95690","unresolved":false,"context_lines":[{"line_number":88,"context_line":"   enabled_management_interfaces \u003d irmc"},{"line_number":89,"context_line":"   enabled_network_interfaces \u003d flat,neutron"},{"line_number":90,"context_line":"   enabled_power_interfaces \u003d irmc"},{"line_number":91,"context_line":"   enabled_raid_interfaces \u003d no-raid, irmc"},{"line_number":92,"context_line":"   enabled_storage_interfaces \u003d noop,cinder"},{"line_number":93,"context_line":"   enabled_vendor_interfaces \u003d no-vendor,ipmitool"},{"line_number":94,"context_line":""}],"source_content_type":"text/x-rst","patch_set":27,"id":"5f7c97a3_149a645f","line":91,"range":{"start_line":91,"start_character":29,"end_line":91,"end_character":42},"updated":"2018-07-02 06:51:47.000000000","message":"Remove space between \"no-raid, irmc\"\ns/ no-raid, irmc/ no-raid,irmc","commit_id":"512ec3dad7b2d315610891ead48d4c5c8c7f5072"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"44b31e148f87eeaee065138dde2d636cafb34f3c","unresolved":false,"context_lines":[{"line_number":88,"context_line":"   enabled_management_interfaces \u003d irmc"},{"line_number":89,"context_line":"   enabled_network_interfaces \u003d flat,neutron"},{"line_number":90,"context_line":"   enabled_power_interfaces \u003d irmc"},{"line_number":91,"context_line":"   enabled_raid_interfaces \u003d no-raid, irmc"},{"line_number":92,"context_line":"   enabled_storage_interfaces \u003d noop,cinder"},{"line_number":93,"context_line":"   enabled_vendor_interfaces \u003d no-vendor,ipmitool"},{"line_number":94,"context_line":""}],"source_content_type":"text/x-rst","patch_set":27,"id":"5f7c97a3_5f9d556a","line":91,"range":{"start_line":91,"start_character":29,"end_line":91,"end_character":42},"in_reply_to":"5f7c97a3_149a645f","updated":"2018-07-02 08:05:07.000000000","message":"Done","commit_id":"512ec3dad7b2d315610891ead48d4c5c8c7f5072"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"61d004c58bdbed8d0a8d8a65d06e27f7cbf95690","unresolved":false,"context_lines":[{"line_number":409,"context_line":"configuration:"},{"line_number":410,"context_line":""},{"line_number":411,"context_line":"* It is necessary to set ironic configuration into Node with"},{"line_number":412,"context_line":"  ``target_raid_config.json`` option in ``[irmc]`` section."},{"line_number":413,"context_line":"  See :ref:`raid` for more details and examples."},{"line_number":414,"context_line":""},{"line_number":415,"context_line":"  ``target_raid_config.json`` is a list of ``logical_disks`` where:"}],"source_content_type":"text/x-rst","patch_set":27,"id":"5f7c97a3_f4ffa832","line":412,"range":{"start_line":412,"start_character":2,"end_line":412,"end_character":58},"updated":"2018-07-02 06:51:47.000000000","message":"Is this a config param? I think its set on ironic node.\n\n$ openstack baremetal --os-baremetal-api-version 1.15 node set \u003cnode-uuid-or-name\u003e \\\n     --target-raid-config \u003cJSON file containing target RAID configuration\u003e","commit_id":"512ec3dad7b2d315610891ead48d4c5c8c7f5072"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"44b31e148f87eeaee065138dde2d636cafb34f3c","unresolved":false,"context_lines":[{"line_number":409,"context_line":"configuration:"},{"line_number":410,"context_line":""},{"line_number":411,"context_line":"* It is necessary to set ironic configuration into Node with"},{"line_number":412,"context_line":"  ``target_raid_config.json`` option in ``[irmc]`` section."},{"line_number":413,"context_line":"  See :ref:`raid` for more details and examples."},{"line_number":414,"context_line":""},{"line_number":415,"context_line":"  ``target_raid_config.json`` is a list of ``logical_disks`` where:"}],"source_content_type":"text/x-rst","patch_set":27,"id":"5f7c97a3_ffc22135","line":412,"range":{"start_line":412,"start_character":2,"end_line":412,"end_character":58},"in_reply_to":"5f7c97a3_f4ffa832","updated":"2018-07-02 08:05:07.000000000","message":"Done","commit_id":"512ec3dad7b2d315610891ead48d4c5c8c7f5072"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"61d004c58bdbed8d0a8d8a65d06e27f7cbf95690","unresolved":false,"context_lines":[{"line_number":447,"context_line":"        ]"},{"line_number":448,"context_line":"    }"},{"line_number":449,"context_line":""},{"line_number":450,"context_line":"..note::"},{"line_number":451,"context_line":""},{"line_number":452,"context_line":"    RAID 1+0 and 5+0 in iRMC driver does not support property ``physical_disks``"},{"line_number":453,"context_line":"    in ``target_raid_config`` during create raid configuration yet. See"}],"source_content_type":"text/x-rst","patch_set":27,"id":"5f7c97a3_942af4e3","line":450,"range":{"start_line":450,"start_character":0,"end_line":450,"end_character":8},"updated":"2018-07-02 06:51:47.000000000","message":"This is not formatted properly. I think you need to move it right by 2 spaces.","commit_id":"512ec3dad7b2d315610891ead48d4c5c8c7f5072"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"44b31e148f87eeaee065138dde2d636cafb34f3c","unresolved":false,"context_lines":[{"line_number":447,"context_line":"        ]"},{"line_number":448,"context_line":"    }"},{"line_number":449,"context_line":""},{"line_number":450,"context_line":"..note::"},{"line_number":451,"context_line":""},{"line_number":452,"context_line":"    RAID 1+0 and 5+0 in iRMC driver does not support property ``physical_disks``"},{"line_number":453,"context_line":"    in ``target_raid_config`` during create raid configuration yet. See"}],"source_content_type":"text/x-rst","patch_set":27,"id":"5f7c97a3_3f13b967","line":450,"range":{"start_line":450,"start_character":0,"end_line":450,"end_character":8},"in_reply_to":"5f7c97a3_942af4e3","updated":"2018-07-02 08:05:07.000000000","message":"Done","commit_id":"512ec3dad7b2d315610891ead48d4c5c8c7f5072"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"61d004c58bdbed8d0a8d8a65d06e27f7cbf95690","unresolved":false,"context_lines":[{"line_number":467,"context_line":"Supported properties"},{"line_number":468,"context_line":"~~~~~~~~~~~~~~~~~~~~"},{"line_number":469,"context_line":""},{"line_number":470,"context_line":"The RAID configuration using iRMC driver only supports following parameters in"},{"line_number":471,"context_line":"``target_raid_config``:"},{"line_number":472,"context_line":""},{"line_number":473,"context_line":"* ``raid_level``: raid level info"},{"line_number":474,"context_line":""}],"source_content_type":"text/x-rst","patch_set":27,"id":"5f7c97a3_347f60e0","line":471,"range":{"start_line":470,"start_character":55,"end_line":471,"end_character":23},"updated":"2018-07-02 06:51:47.000000000","message":"It also supports \u0027size_gb\u0027 and \u0027controller\u0027 as listed in examples above. Isn\u0027t it?","commit_id":"512ec3dad7b2d315610891ead48d4c5c8c7f5072"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"44b31e148f87eeaee065138dde2d636cafb34f3c","unresolved":false,"context_lines":[{"line_number":467,"context_line":"Supported properties"},{"line_number":468,"context_line":"~~~~~~~~~~~~~~~~~~~~"},{"line_number":469,"context_line":""},{"line_number":470,"context_line":"The RAID configuration using iRMC driver only supports following parameters in"},{"line_number":471,"context_line":"``target_raid_config``:"},{"line_number":472,"context_line":""},{"line_number":473,"context_line":"* ``raid_level``: raid level info"},{"line_number":474,"context_line":""}],"source_content_type":"text/x-rst","patch_set":27,"id":"5f7c97a3_fa09cf28","line":471,"range":{"start_line":470,"start_character":55,"end_line":471,"end_character":23},"in_reply_to":"5f7c97a3_347f60e0","updated":"2018-07-02 08:05:07.000000000","message":"Done","commit_id":"512ec3dad7b2d315610891ead48d4c5c8c7f5072"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"5abe6712d35e19e7928854e0ec410c5e45268634","unresolved":false,"context_lines":[{"line_number":410,"context_line":"* It is necessary to set ironic configuration into Node with"},{"line_number":411,"context_line":"  JSON file option in ``[irmc]`` section::"},{"line_number":412,"context_line":""},{"line_number":413,"context_line":"    $ openstack baremetal --os-baremetal-api-version 1.15 node set \u003cnode-uuid-or-name\u003e \\"},{"line_number":414,"context_line":"      --target-raid-config \u003cJSON file containing target RAID configuration\u003e"},{"line_number":415,"context_line":""},{"line_number":416,"context_line":"  See :ref:`raid` for more details and examples."}],"source_content_type":"text/x-rst","patch_set":29,"id":"5f7c97a3_2f05abc1","line":413,"range":{"start_line":413,"start_character":26,"end_line":413,"end_character":57},"updated":"2018-07-03 08:24:16.000000000","message":"nit: Now that the latest version is used by default, we don\u0027t need to specify the version.","commit_id":"134f1931378530004ed8bc6f7e0e4d9f3f530a27"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"53bf8c239d80f527ff6e5392b37ab86057356798","unresolved":false,"context_lines":[{"line_number":410,"context_line":"* It is necessary to set ironic configuration into Node with"},{"line_number":411,"context_line":"  JSON file option in ``[irmc]`` section::"},{"line_number":412,"context_line":""},{"line_number":413,"context_line":"    $ openstack baremetal --os-baremetal-api-version 1.15 node set \u003cnode-uuid-or-name\u003e \\"},{"line_number":414,"context_line":"      --target-raid-config \u003cJSON file containing target RAID configuration\u003e"},{"line_number":415,"context_line":""},{"line_number":416,"context_line":"  See :ref:`raid` for more details and examples."}],"source_content_type":"text/x-rst","patch_set":29,"id":"5f7c97a3_52a8d01e","line":413,"range":{"start_line":413,"start_character":26,"end_line":413,"end_character":57},"in_reply_to":"5f7c97a3_2f05abc1","updated":"2018-07-03 09:32:41.000000000","message":"Done","commit_id":"134f1931378530004ed8bc6f7e0e4d9f3f530a27"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"5abe6712d35e19e7928854e0ec410c5e45268634","unresolved":false,"context_lines":[{"line_number":470,"context_line":"Supported properties"},{"line_number":471,"context_line":"~~~~~~~~~~~~~~~~~~~~"},{"line_number":472,"context_line":""},{"line_number":473,"context_line":"The RAID configuration using iRMC driver supports following parameters in"},{"line_number":474,"context_line":"``target_raid_config``:"},{"line_number":475,"context_line":""},{"line_number":476,"context_line":"* ``size_gb``: size of virtual disk"},{"line_number":477,"context_line":""},{"line_number":478,"context_line":"* ``raid_level``: raid level info"},{"line_number":479,"context_line":""},{"line_number":480,"context_line":"* ``controller``: controller info"},{"line_number":481,"context_line":""},{"line_number":482,"context_line":"* ``physical_disks``: specific physical disks in each ``raid_level``"},{"line_number":483,"context_line":""},{"line_number":484,"context_line":".. note::"},{"line_number":485,"context_line":""},{"line_number":486,"context_line":"   * iRMC driver supports RAID levels 0, 1, 5, 6, 1+0 and 5+0."},{"line_number":487,"context_line":"   * The raid configuration will be enable when eLCM License for"},{"line_number":488,"context_line":"     FUJITSU PRIMERGY servers are activated. RAID creation will error out if"},{"line_number":489,"context_line":"     no active eLCM license is found."},{"line_number":490,"context_line":"   * iRMC server will power-off after create/delete raid configuration is"},{"line_number":491,"context_line":"     applied, FGI (Foreground Initialize) will process raid configuration in"},{"line_number":492,"context_line":"     iRMC server, thus the operation will completed upon power-on."}],"source_content_type":"text/x-rst","patch_set":29,"id":"5f7c97a3_4fed87ee","line":489,"range":{"start_line":473,"start_character":0,"end_line":489,"end_character":37},"updated":"2018-07-03 08:24:16.000000000","message":"These look duplicated. There is similar description above.","commit_id":"134f1931378530004ed8bc6f7e0e4d9f3f530a27"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"53bf8c239d80f527ff6e5392b37ab86057356798","unresolved":false,"context_lines":[{"line_number":470,"context_line":"Supported properties"},{"line_number":471,"context_line":"~~~~~~~~~~~~~~~~~~~~"},{"line_number":472,"context_line":""},{"line_number":473,"context_line":"The RAID configuration using iRMC driver supports following parameters in"},{"line_number":474,"context_line":"``target_raid_config``:"},{"line_number":475,"context_line":""},{"line_number":476,"context_line":"* ``size_gb``: size of virtual disk"},{"line_number":477,"context_line":""},{"line_number":478,"context_line":"* ``raid_level``: raid level info"},{"line_number":479,"context_line":""},{"line_number":480,"context_line":"* ``controller``: controller info"},{"line_number":481,"context_line":""},{"line_number":482,"context_line":"* ``physical_disks``: specific physical disks in each ``raid_level``"},{"line_number":483,"context_line":""},{"line_number":484,"context_line":".. note::"},{"line_number":485,"context_line":""},{"line_number":486,"context_line":"   * iRMC driver supports RAID levels 0, 1, 5, 6, 1+0 and 5+0."},{"line_number":487,"context_line":"   * The raid configuration will be enable when eLCM License for"},{"line_number":488,"context_line":"     FUJITSU PRIMERGY servers are activated. RAID creation will error out if"},{"line_number":489,"context_line":"     no active eLCM license is found."},{"line_number":490,"context_line":"   * iRMC server will power-off after create/delete raid configuration is"},{"line_number":491,"context_line":"     applied, FGI (Foreground Initialize) will process raid configuration in"},{"line_number":492,"context_line":"     iRMC server, thus the operation will completed upon power-on."}],"source_content_type":"text/x-rst","patch_set":29,"id":"5f7c97a3_d5536a15","line":489,"range":{"start_line":473,"start_character":0,"end_line":489,"end_character":37},"in_reply_to":"5f7c97a3_4fed87ee","updated":"2018-07-03 09:32:41.000000000","message":"Done","commit_id":"134f1931378530004ed8bc6f7e0e4d9f3f530a27"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"5302530e8189c993e19d4a7590513f4031fda3e2","unresolved":false,"context_lines":[{"line_number":467,"context_line":"        }"},{"line_number":468,"context_line":""},{"line_number":469,"context_line":""},{"line_number":470,"context_line":"Supported properties"},{"line_number":471,"context_line":"~~~~~~~~~~~~~~~~~~~~"},{"line_number":472,"context_line":""},{"line_number":473,"context_line":"The RAID configuration is supported as a manual cleaning step."}],"source_content_type":"text/x-rst","patch_set":30,"id":"5f7c97a3_bf0c7793","line":470,"updated":"2018-07-04 04:54:14.000000000","message":"nit: This section doesn\u0027t seem to mention Supported properties.","commit_id":"cb85c01291774c58605d380ef550e23836ae5989"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"a7f9a1a09e20a4ddd4619461ae1ff9e8177aec4c","unresolved":false,"context_lines":[{"line_number":467,"context_line":"        }"},{"line_number":468,"context_line":""},{"line_number":469,"context_line":""},{"line_number":470,"context_line":"Supported properties"},{"line_number":471,"context_line":"~~~~~~~~~~~~~~~~~~~~"},{"line_number":472,"context_line":""},{"line_number":473,"context_line":"The RAID configuration is supported as a manual cleaning step."}],"source_content_type":"text/x-rst","patch_set":30,"id":"5f7c97a3_9a98a91a","line":470,"in_reply_to":"5f7c97a3_bf0c7793","updated":"2018-07-04 06:05:33.000000000","message":"Done","commit_id":"cb85c01291774c58605d380ef550e23836ae5989"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"55524d53c1dbae40419ebb3419dc2c2c4d40a367","unresolved":false,"context_lines":[{"line_number":408,"context_line":"configuration:"},{"line_number":409,"context_line":""},{"line_number":410,"context_line":"* It is necessary to set ironic configuration into Node with"},{"line_number":411,"context_line":"  JSON file option in ``[irmc]`` section::"},{"line_number":412,"context_line":""},{"line_number":413,"context_line":"    $ openstack baremetal node set \u003cnode-uuid-or-name\u003e \\"},{"line_number":414,"context_line":"      --target-raid-config \u003cJSON file containing target RAID configuration\u003e"}],"source_content_type":"text/x-rst","patch_set":32,"id":"5f7c97a3_d1128761","line":411,"range":{"start_line":411,"start_character":19,"end_line":411,"end_character":40},"updated":"2018-07-04 08:22:12.000000000","message":"This sentence doesn\u0027t seem to mention config file options.","commit_id":"75f89118bb15e1e5b4da1f9ae1ae27e083694e46"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"29e978a137481cb193be0a2ec6c9d64c5e29d61d","unresolved":false,"context_lines":[{"line_number":408,"context_line":"configuration:"},{"line_number":409,"context_line":""},{"line_number":410,"context_line":"* It is necessary to set ironic configuration into Node with"},{"line_number":411,"context_line":"  JSON file option in ``[irmc]`` section::"},{"line_number":412,"context_line":""},{"line_number":413,"context_line":"    $ openstack baremetal node set \u003cnode-uuid-or-name\u003e \\"},{"line_number":414,"context_line":"      --target-raid-config \u003cJSON file containing target RAID configuration\u003e"}],"source_content_type":"text/x-rst","patch_set":32,"id":"5f7c97a3_4495533c","line":411,"range":{"start_line":411,"start_character":19,"end_line":411,"end_character":40},"in_reply_to":"5f7c97a3_d1128761","updated":"2018-07-04 08:42:34.000000000","message":"Done","commit_id":"75f89118bb15e1e5b4da1f9ae1ae27e083694e46"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"862c3a4ff39a3b17bff0922ecee0d8b80b7c6cb0","unresolved":false,"context_lines":[{"line_number":449,"context_line":"          \"logical_disks\":"},{"line_number":450,"context_line":"            ["},{"line_number":451,"context_line":"              {"},{"line_number":452,"context_line":"                \"size_gb\": \"Max\","},{"line_number":453,"context_line":"                \"raid_level\": \"1+0\""},{"line_number":454,"context_line":"              }"},{"line_number":455,"context_line":"            ]"}],"source_content_type":"text/x-rst","patch_set":33,"id":"5f7c97a3_9b7e2519","line":452,"range":{"start_line":452,"start_character":28,"end_line":452,"end_character":31},"updated":"2018-07-10 05:41:56.000000000","message":"s/Max/MAX/\n\nIsn\u0027t this case-sensitive?","commit_id":"84ae0c323cdc9e47822ac1969a4c706b2c66b71d"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"d553f2bd80df8452538b3ca0bf816d8bb383dfbe","unresolved":false,"context_lines":[{"line_number":449,"context_line":"          \"logical_disks\":"},{"line_number":450,"context_line":"            ["},{"line_number":451,"context_line":"              {"},{"line_number":452,"context_line":"                \"size_gb\": \"Max\","},{"line_number":453,"context_line":"                \"raid_level\": \"1+0\""},{"line_number":454,"context_line":"              }"},{"line_number":455,"context_line":"            ]"}],"source_content_type":"text/x-rst","patch_set":33,"id":"5f7c97a3_0edcf66e","line":452,"range":{"start_line":452,"start_character":28,"end_line":452,"end_character":31},"in_reply_to":"5f7c97a3_9b7e2519","updated":"2018-07-10 06:51:12.000000000","message":"Right. This case mention to auto create for RAID 1+0 along with whole virtual disk. I will fix it in the follow-up patch. Thanks Shiina.","commit_id":"84ae0c323cdc9e47822ac1969a4c706b2c66b71d"}],"ironic/conf/irmc.py":[{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"2d49508729be9fecd6f4a5ed4d21aab1148f3c98","unresolved":false,"context_lines":[{"line_number":80,"context_line":"    cfg.IntOpt(\u0027clean_priority_restore_irmc_bios_config\u0027,"},{"line_number":81,"context_line":"               default\u003d0,"},{"line_number":82,"context_line":"               help\u003d_(\u0027Priority for restore_irmc_bios_config clean step.\u0027)),"},{"line_number":83,"context_line":"    cfg.IntOpt(\u0027clean_priority_raid_irmc\u0027,"},{"line_number":84,"context_line":"               default\u003d0,"},{"line_number":85,"context_line":"               help\u003d_(\u0027Priority for config raid in clean step.\u0027)),"},{"line_number":86,"context_line":"    cfg.ListOpt(\u0027gpu_ids\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"bf659307_af06cd85","line":83,"range":{"start_line":83,"start_character":35,"end_line":83,"end_character":40},"updated":"2018-03-27 07:58:29.000000000","message":"This sounds redundant since this option belongs to \u0027irmc\u0027 group.","commit_id":"6664f87a098c28b36f4285e99e739ae07349e062"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"2ae122dc6e7c61e16b29147b2c7f413b028b9712","unresolved":false,"context_lines":[{"line_number":80,"context_line":"    cfg.IntOpt(\u0027clean_priority_restore_irmc_bios_config\u0027,"},{"line_number":81,"context_line":"               default\u003d0,"},{"line_number":82,"context_line":"               help\u003d_(\u0027Priority for restore_irmc_bios_config clean step.\u0027)),"},{"line_number":83,"context_line":"    cfg.IntOpt(\u0027clean_priority_raid_irmc\u0027,"},{"line_number":84,"context_line":"               default\u003d0,"},{"line_number":85,"context_line":"               help\u003d_(\u0027Priority for config raid in clean step.\u0027)),"},{"line_number":86,"context_line":"    cfg.ListOpt(\u0027gpu_ids\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"bf659307_ca9becc6","line":83,"range":{"start_line":83,"start_character":35,"end_line":83,"end_character":40},"in_reply_to":"bf659307_af06cd85","updated":"2018-03-28 02:31:36.000000000","message":"Done","commit_id":"6664f87a098c28b36f4285e99e739ae07349e062"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"635469402546e20060cee9577125fefbcffffee1","unresolved":false,"context_lines":[{"line_number":80,"context_line":"    cfg.IntOpt(\u0027clean_priority_restore_irmc_bios_config\u0027,"},{"line_number":81,"context_line":"               default\u003d0,"},{"line_number":82,"context_line":"               help\u003d_(\u0027Priority for restore_irmc_bios_config clean step.\u0027)),"},{"line_number":83,"context_line":"    cfg.IntOpt(\u0027clean_priority_raid\u0027,"},{"line_number":84,"context_line":"               default\u003d0,"},{"line_number":85,"context_line":"               help\u003d_(\u0027Priority for raid configuration clean step.\u0027)),"},{"line_number":86,"context_line":"    cfg.ListOpt(\u0027gpu_ids\u0027,"}],"source_content_type":"text/x-python","patch_set":6,"id":"bf659307_865f0f0d","line":83,"updated":"2018-03-28 05:48:44.000000000","message":"This is not necessary because we support raid configuration only for manual cleaning.","commit_id":"54b4f59d24833798ebc25d1df7e47751069564f3"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"5995b4a8b7da99e0f74f5259c303f6aae87ad72f","unresolved":false,"context_lines":[{"line_number":80,"context_line":"    cfg.IntOpt(\u0027clean_priority_restore_irmc_bios_config\u0027,"},{"line_number":81,"context_line":"               default\u003d0,"},{"line_number":82,"context_line":"               help\u003d_(\u0027Priority for restore_irmc_bios_config clean step.\u0027)),"},{"line_number":83,"context_line":"    cfg.IntOpt(\u0027clean_priority_raid\u0027,"},{"line_number":84,"context_line":"               default\u003d0,"},{"line_number":85,"context_line":"               help\u003d_(\u0027Priority for raid configuration clean step.\u0027)),"},{"line_number":86,"context_line":"    cfg.ListOpt(\u0027gpu_ids\u0027,"}],"source_content_type":"text/x-python","patch_set":6,"id":"bf659307_b9d6f4c2","line":83,"in_reply_to":"bf659307_865f0f0d","updated":"2018-03-28 09:46:29.000000000","message":"Done","commit_id":"54b4f59d24833798ebc25d1df7e47751069564f3"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"1e18ee58c0c0853e0bc4564e159ed1a474ce5516","unresolved":false,"context_lines":[{"line_number":91,"context_line":"                       \u0027Sample gpu_ids value: 0x1000/0x0079,0x2100/0x0080\u0027)),"},{"line_number":92,"context_line":"    cfg.IntOpt(\u0027query_raid_config_bgi_status_interval\u0027,"},{"line_number":93,"context_line":"               default\u003d300,"},{"line_number":94,"context_line":"               help\u003d_(\u0027Interval (in seconds) between periodic RAID status \u0027"},{"line_number":95,"context_line":"                      \u0027checks to determine whether the asynchronous RAID \u0027"},{"line_number":96,"context_line":"                      \u0027configuration was successfully finished or not. BGI\u0027"},{"line_number":97,"context_line":"                      \u0027will start 5 minutes after create the virtual drive\u0027)),"}],"source_content_type":"text/x-python","patch_set":14,"id":"5f7c97a3_e554d056","line":94,"updated":"2018-05-23 02:59:07.000000000","message":"\"min\u003d1\" is necessary. This periodic task must be effective to finish RAID configuration.","commit_id":"21d331cb38f5a6b20dcd2882a90077ec532c959b"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"cededb9aa319d0c4dbffc33588cd7c0689e9c557","unresolved":false,"context_lines":[{"line_number":91,"context_line":"                       \u0027Sample gpu_ids value: 0x1000/0x0079,0x2100/0x0080\u0027)),"},{"line_number":92,"context_line":"    cfg.IntOpt(\u0027query_raid_config_bgi_status_interval\u0027,"},{"line_number":93,"context_line":"               default\u003d300,"},{"line_number":94,"context_line":"               help\u003d_(\u0027Interval (in seconds) between periodic RAID status \u0027"},{"line_number":95,"context_line":"                      \u0027checks to determine whether the asynchronous RAID \u0027"},{"line_number":96,"context_line":"                      \u0027configuration was successfully finished or not. BGI\u0027"},{"line_number":97,"context_line":"                      \u0027will start 5 minutes after create the virtual drive\u0027)),"}],"source_content_type":"text/x-python","patch_set":14,"id":"5f7c97a3_ade43f0e","line":94,"in_reply_to":"5f7c97a3_e554d056","updated":"2018-05-30 01:18:52.000000000","message":"Done","commit_id":"21d331cb38f5a6b20dcd2882a90077ec532c959b"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"6efc6838cfd762d5731f89e19991074e2b3dc79a","unresolved":false,"context_lines":[{"line_number":94,"context_line":"               help\u003d_(\u0027Interval (in seconds) between periodic RAID status \u0027"},{"line_number":95,"context_line":"                      \u0027checks to determine whether the asynchronous RAID \u0027"},{"line_number":96,"context_line":"                      \u0027configuration was successfully finished or not. BGI\u0027"},{"line_number":97,"context_line":"                      \u0027will start 5 minutes after create the virtual drive\u0027)),"},{"line_number":98,"context_line":"]"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"5f7c97a3_eeea9faa","line":97,"range":{"start_line":97,"start_character":50,"end_line":97,"end_character":56},"updated":"2018-05-22 10:43:34.000000000","message":"creating?","commit_id":"21d331cb38f5a6b20dcd2882a90077ec532c959b"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"cededb9aa319d0c4dbffc33588cd7c0689e9c557","unresolved":false,"context_lines":[{"line_number":94,"context_line":"               help\u003d_(\u0027Interval (in seconds) between periodic RAID status \u0027"},{"line_number":95,"context_line":"                      \u0027checks to determine whether the asynchronous RAID \u0027"},{"line_number":96,"context_line":"                      \u0027configuration was successfully finished or not. BGI\u0027"},{"line_number":97,"context_line":"                      \u0027will start 5 minutes after create the virtual drive\u0027)),"},{"line_number":98,"context_line":"]"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"5f7c97a3_4ded6bee","line":97,"range":{"start_line":97,"start_character":50,"end_line":97,"end_character":56},"in_reply_to":"5f7c97a3_eeea9faa","updated":"2018-05-30 01:18:52.000000000","message":"Done","commit_id":"21d331cb38f5a6b20dcd2882a90077ec532c959b"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"635984aa43b5985474f9a7a0120c4e34bb26a6ab","unresolved":false,"context_lines":[{"line_number":90,"context_line":"                       \u0027pci_gpu_devices in capabilities property. \u0027"},{"line_number":91,"context_line":"                       \u0027Sample gpu_ids value: 0x1000/0x0079,0x2100/0x0080\u0027)),"},{"line_number":92,"context_line":"    cfg.IntOpt(\u0027query_raid_config_fgi_status_interval\u0027,"},{"line_number":93,"context_line":"               min\u003d1,"},{"line_number":94,"context_line":"               default\u003d300,"},{"line_number":95,"context_line":"               help\u003d_(\u0027Interval (in seconds) between periodic RAID status \u0027"},{"line_number":96,"context_line":"                      \u0027checks to determine whether the asynchronous RAID \u0027"}],"source_content_type":"text/x-python","patch_set":15,"id":"5f7c97a3_2821a1b4","line":93,"range":{"start_line":93,"start_character":15,"end_line":93,"end_character":20},"updated":"2018-06-01 19:48:27.000000000","message":"rloo is going through and trying to enable 0 to disable periodic tasks. There are some deployments that this makes sense where their scale requires a minimum number of periodic tasks. If we enable disabling of the task, then we likely ought to note impact (which I expect would be that it would fail.","commit_id":"1d5d61e4eaa03d2426061784fbf80eed7d96a840"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"4b3fff00741b19df93c79a3aaf096316de9ba37b","unresolved":false,"context_lines":[{"line_number":90,"context_line":"                       \u0027pci_gpu_devices in capabilities property. \u0027"},{"line_number":91,"context_line":"                       \u0027Sample gpu_ids value: 0x1000/0x0079,0x2100/0x0080\u0027)),"},{"line_number":92,"context_line":"    cfg.IntOpt(\u0027query_raid_config_fgi_status_interval\u0027,"},{"line_number":93,"context_line":"               min\u003d1,"},{"line_number":94,"context_line":"               default\u003d300,"},{"line_number":95,"context_line":"               help\u003d_(\u0027Interval (in seconds) between periodic RAID status \u0027"},{"line_number":96,"context_line":"                      \u0027checks to determine whether the asynchronous RAID \u0027"}],"source_content_type":"text/x-python","patch_set":15,"id":"5f7c97a3_330cb6ea","line":93,"range":{"start_line":93,"start_character":15,"end_line":93,"end_character":20},"in_reply_to":"5f7c97a3_2821a1b4","updated":"2018-06-01 20:08:27.000000000","message":"Yeah, I think it is useful to allow for people to turn off periodic tasks. can we set this to min\u003d0?\n\nSo, I skimmed the code. It isn\u0027t clear to me what that periodic task is doing, there is a bunch of stuff going on in there and not much in terms of comments. If you actually need that task because that is where you determine that the process is finished, then it cannot be turned off.\n\nI\u0027m not sure we have any tasks like this. Is a periodic task the best way to approach it? We use looping calls to check for things but offhand, I don\u0027t know which is better.\n\nwrt disabling periodic tasks, this is what i was trying to do: https://review.openstack.org/#/c/569166/","commit_id":"1d5d61e4eaa03d2426061784fbf80eed7d96a840"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"50f6d43dda01a1e4d77d14b52b27c0eb19f1f38c","unresolved":false,"context_lines":[{"line_number":90,"context_line":"                       \u0027pci_gpu_devices in capabilities property. \u0027"},{"line_number":91,"context_line":"                       \u0027Sample gpu_ids value: 0x1000/0x0079,0x2100/0x0080\u0027)),"},{"line_number":92,"context_line":"    cfg.IntOpt(\u0027query_raid_config_fgi_status_interval\u0027,"},{"line_number":93,"context_line":"               min\u003d1,"},{"line_number":94,"context_line":"               default\u003d300,"},{"line_number":95,"context_line":"               help\u003d_(\u0027Interval (in seconds) between periodic RAID status \u0027"},{"line_number":96,"context_line":"                      \u0027checks to determine whether the asynchronous RAID \u0027"}],"source_content_type":"text/x-python","patch_set":15,"id":"5f7c97a3_dc5c45ef","line":93,"range":{"start_line":93,"start_character":15,"end_line":93,"end_character":20},"in_reply_to":"5f7c97a3_330cb6ea","updated":"2018-06-11 04:42:29.000000000","message":"This periodic task will check FGI status of RAID configuration. Thus we cannot turn-off this periodic method during RAID configuration. I am not sure about what kind of better way, I think periodic task is good choice for checking RAID status until complete.","commit_id":"1d5d61e4eaa03d2426061784fbf80eed7d96a840"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"4b3fff00741b19df93c79a3aaf096316de9ba37b","unresolved":false,"context_lines":[{"line_number":94,"context_line":"               default\u003d300,"},{"line_number":95,"context_line":"               help\u003d_(\u0027Interval (in seconds) between periodic RAID status \u0027"},{"line_number":96,"context_line":"                      \u0027checks to determine whether the asynchronous RAID \u0027"},{"line_number":97,"context_line":"                      \u0027configuration was successfully finished or not. FGI\u0027"},{"line_number":98,"context_line":"                      \u0027will start 5 minutes after creating virtual drives\u0027)),"},{"line_number":99,"context_line":"]"},{"line_number":100,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"5f7c97a3_535a92f1","line":97,"updated":"2018-06-01 20:08:27.000000000","message":"missing space after \u0027FGI\u0027","commit_id":"1d5d61e4eaa03d2426061784fbf80eed7d96a840"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"50f6d43dda01a1e4d77d14b52b27c0eb19f1f38c","unresolved":false,"context_lines":[{"line_number":94,"context_line":"               default\u003d300,"},{"line_number":95,"context_line":"               help\u003d_(\u0027Interval (in seconds) between periodic RAID status \u0027"},{"line_number":96,"context_line":"                      \u0027checks to determine whether the asynchronous RAID \u0027"},{"line_number":97,"context_line":"                      \u0027configuration was successfully finished or not. FGI\u0027"},{"line_number":98,"context_line":"                      \u0027will start 5 minutes after creating virtual drives\u0027)),"},{"line_number":99,"context_line":"]"},{"line_number":100,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"5f7c97a3_3833b315","line":97,"in_reply_to":"5f7c97a3_535a92f1","updated":"2018-06-11 04:42:29.000000000","message":"Done","commit_id":"1d5d61e4eaa03d2426061784fbf80eed7d96a840"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"4b3fff00741b19df93c79a3aaf096316de9ba37b","unresolved":false,"context_lines":[{"line_number":95,"context_line":"               help\u003d_(\u0027Interval (in seconds) between periodic RAID status \u0027"},{"line_number":96,"context_line":"                      \u0027checks to determine whether the asynchronous RAID \u0027"},{"line_number":97,"context_line":"                      \u0027configuration was successfully finished or not. FGI\u0027"},{"line_number":98,"context_line":"                      \u0027will start 5 minutes after creating virtual drives\u0027)),"},{"line_number":99,"context_line":"]"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"5f7c97a3_f374fe69","line":98,"updated":"2018-06-01 20:08:27.000000000","message":"missing period at the end of the sentence.","commit_id":"1d5d61e4eaa03d2426061784fbf80eed7d96a840"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"50f6d43dda01a1e4d77d14b52b27c0eb19f1f38c","unresolved":false,"context_lines":[{"line_number":95,"context_line":"               help\u003d_(\u0027Interval (in seconds) between periodic RAID status \u0027"},{"line_number":96,"context_line":"                      \u0027checks to determine whether the asynchronous RAID \u0027"},{"line_number":97,"context_line":"                      \u0027configuration was successfully finished or not. FGI\u0027"},{"line_number":98,"context_line":"                      \u0027will start 5 minutes after creating virtual drives\u0027)),"},{"line_number":99,"context_line":"]"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"5f7c97a3_d8395ff2","line":98,"in_reply_to":"5f7c97a3_f374fe69","updated":"2018-06-11 04:42:29.000000000","message":"Done","commit_id":"1d5d61e4eaa03d2426061784fbf80eed7d96a840"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"b615fc8ad1bacea5ac9e20442643d9d0d6beba60","unresolved":false,"context_lines":[{"line_number":89,"context_line":"                       \u0027this option is not defined, then leave out \u0027"},{"line_number":90,"context_line":"                       \u0027pci_gpu_devices in capabilities property. \u0027"},{"line_number":91,"context_line":"                       \u0027Sample gpu_ids value: 0x1000/0x0079,0x2100/0x0080\u0027)),"},{"line_number":92,"context_line":"    cfg.IntOpt(\u0027query_raid_config_fgi_status_interval\u0027,"},{"line_number":93,"context_line":"               min\u003d1,"},{"line_number":94,"context_line":"               default\u003d300,"},{"line_number":95,"context_line":"               help\u003d_(\u0027Interval (in seconds) between periodic RAID status \u0027"}],"source_content_type":"text/x-python","patch_set":24,"id":"5f7c97a3_36d2915d","line":92,"updated":"2018-06-25 14:43:37.000000000","message":"I am kind of curious what fgi stands for.... And would an operator care or know about it?","commit_id":"0b276c93e725f52aadbb0d7a0147d4ba47e29a84"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"6ccfadd31d6b1ae78c67967251944ed4cc2a47a3","unresolved":false,"context_lines":[{"line_number":89,"context_line":"                       \u0027this option is not defined, then leave out \u0027"},{"line_number":90,"context_line":"                       \u0027pci_gpu_devices in capabilities property. \u0027"},{"line_number":91,"context_line":"                       \u0027Sample gpu_ids value: 0x1000/0x0079,0x2100/0x0080\u0027)),"},{"line_number":92,"context_line":"    cfg.IntOpt(\u0027query_raid_config_fgi_status_interval\u0027,"},{"line_number":93,"context_line":"               min\u003d1,"},{"line_number":94,"context_line":"               default\u003d300,"},{"line_number":95,"context_line":"               help\u003d_(\u0027Interval (in seconds) between periodic RAID status \u0027"}],"source_content_type":"text/x-python","patch_set":24,"id":"5f7c97a3_4c3a1a98","line":92,"in_reply_to":"5f7c97a3_36d2915d","updated":"2018-06-26 01:32:21.000000000","message":"FGI is Foreground Initialization which prevent data during RAID configuration mechanism against penetration. The operator only need when Node return completed status of FGI and their data will be prevented during this mechanism.","commit_id":"0b276c93e725f52aadbb0d7a0147d4ba47e29a84"}],"ironic/drivers/fake.py":[{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"635469402546e20060cee9577125fefbcffffee1","unresolved":false,"context_lines":[{"line_number":256,"context_line":"        self.deploy \u003d fake.FakeDeploy()"},{"line_number":257,"context_line":"        self.management \u003d irmc_management.IRMCManagement()"},{"line_number":258,"context_line":"        self.inspect \u003d irmc_inspect.IRMCInspect()"},{"line_number":259,"context_line":"        self.raid \u003d irmc_raid.IrmcRAID()"},{"line_number":260,"context_line":""},{"line_number":261,"context_line":"    @classmethod"},{"line_number":262,"context_line":"    def to_hardware_type(cls):"}],"source_content_type":"text/x-python","patch_set":6,"id":"bf659307_66b99b2c","line":259,"updated":"2018-03-28 05:48:44.000000000","message":"I prefer not modifying a classic driver even if it is a fake. Could you please consider adding a fake hardware type for iRMC?","commit_id":"54b4f59d24833798ebc25d1df7e47751069564f3"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"5995b4a8b7da99e0f74f5259c303f6aae87ad72f","unresolved":false,"context_lines":[{"line_number":256,"context_line":"        self.deploy \u003d fake.FakeDeploy()"},{"line_number":257,"context_line":"        self.management \u003d irmc_management.IRMCManagement()"},{"line_number":258,"context_line":"        self.inspect \u003d irmc_inspect.IRMCInspect()"},{"line_number":259,"context_line":"        self.raid \u003d irmc_raid.IrmcRAID()"},{"line_number":260,"context_line":""},{"line_number":261,"context_line":"    @classmethod"},{"line_number":262,"context_line":"    def to_hardware_type(cls):"}],"source_content_type":"text/x-python","patch_set":6,"id":"bf659307_28bfec61","line":259,"in_reply_to":"bf659307_66b99b2c","updated":"2018-03-28 09:46:29.000000000","message":"Done","commit_id":"54b4f59d24833798ebc25d1df7e47751069564f3"},{"author":{"_account_id":22255,"name":"Tuan","email":"tuanla@vn.fujitsu.com","username":"Tuan"},"change_message_id":"c49b114675cf51724b66f92212e89b3288913ddc","unresolved":false,"context_lines":[{"line_number":265,"context_line":"            \u0027deploy\u0027: \u0027fake\u0027,"},{"line_number":266,"context_line":"            \u0027inspect\u0027: \u0027irmc\u0027,"},{"line_number":267,"context_line":"            \u0027management\u0027: \u0027irmc\u0027,"},{"line_number":268,"context_line":"            \u0027power\u0027: \u0027irmc\u0027"},{"line_number":269,"context_line":"        }"},{"line_number":270,"context_line":""},{"line_number":271,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"bf659307_119a5a62","line":268,"range":{"start_line":268,"start_character":7,"end_line":268,"end_character":27},"updated":"2018-03-28 03:31:45.000000000","message":"Should add \u0027raid\u0027 in to_hardware_type","commit_id":"54b4f59d24833798ebc25d1df7e47751069564f3"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"5995b4a8b7da99e0f74f5259c303f6aae87ad72f","unresolved":false,"context_lines":[{"line_number":265,"context_line":"            \u0027deploy\u0027: \u0027fake\u0027,"},{"line_number":266,"context_line":"            \u0027inspect\u0027: \u0027irmc\u0027,"},{"line_number":267,"context_line":"            \u0027management\u0027: \u0027irmc\u0027,"},{"line_number":268,"context_line":"            \u0027power\u0027: \u0027irmc\u0027"},{"line_number":269,"context_line":"        }"},{"line_number":270,"context_line":""},{"line_number":271,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"bf659307_08bc6867","line":268,"range":{"start_line":268,"start_character":7,"end_line":268,"end_character":27},"in_reply_to":"bf659307_119a5a62","updated":"2018-03-28 09:46:29.000000000","message":"I will fake hardware_type in test code thus I will not change this item. Thanks","commit_id":"54b4f59d24833798ebc25d1df7e47751069564f3"}],"ironic/drivers/irmc.py":[{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"d9cd871d6ae4c413d9456a1789c0e232d2ea9fdd","unresolved":false,"context_lines":[{"line_number":140,"context_line":"    @property"},{"line_number":141,"context_line":"    def supported_raid_interfaces(self):"},{"line_number":142,"context_line":"        \"\"\"List of supported power interfaces.\"\"\""},{"line_number":143,"context_line":"        return [raid.IrmcRAID]"}],"source_content_type":"text/x-python","patch_set":4,"id":"df7087c5_7629cd34","line":143,"updated":"2018-03-16 05:30:35.000000000","message":"NoRAID also should be supported.","commit_id":"b349223ad4c997dc8ba625bd6b136642455833ec"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"38e221e0dd63110324fbb8c66bd0143a63836d52","unresolved":false,"context_lines":[{"line_number":140,"context_line":"    @property"},{"line_number":141,"context_line":"    def supported_raid_interfaces(self):"},{"line_number":142,"context_line":"        \"\"\"List of supported power interfaces.\"\"\""},{"line_number":143,"context_line":"        return [raid.IrmcRAID, noop.NoRAID]"}],"source_content_type":"text/x-python","patch_set":5,"id":"df7087c5_ec07fc17","line":143,"updated":"2018-03-20 08:17:27.000000000","message":"AgentRAID should also be supported. Ironic Python Agent doesn\u0027t support RAID configuration for iRMC. However, AgentRAID can be set to iRMC hardware before this change because this hardware is a subclass of GenericHardware. If AgentRAID is set to a node with irmc hardware, this node can be deployed, though raid configuration failes if requested. If we remove the support of AgentRAID here, the node with AgentRAID won\u0027t be able to be even deployed when ironic is upgraded.","commit_id":"6664f87a098c28b36f4285e99e739ae07349e062"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"2ae122dc6e7c61e16b29147b2c7f413b028b9712","unresolved":false,"context_lines":[{"line_number":140,"context_line":"    @property"},{"line_number":141,"context_line":"    def supported_raid_interfaces(self):"},{"line_number":142,"context_line":"        \"\"\"List of supported power interfaces.\"\"\""},{"line_number":143,"context_line":"        return [raid.IrmcRAID, noop.NoRAID]"}],"source_content_type":"text/x-python","patch_set":5,"id":"bf659307_63abf488","line":143,"in_reply_to":"df7087c5_ec07fc17","updated":"2018-03-28 02:31:36.000000000","message":"Done","commit_id":"6664f87a098c28b36f4285e99e739ae07349e062"},{"author":{"_account_id":19853,"name":"Nguyen Hung Phuong","email":"phuongnh@vn.fujitsu.com","username":"phuongnh"},"change_message_id":"8cdde8920c76361f5258d3bb17b04f7737bd2c48","unresolved":false,"context_lines":[{"line_number":139,"context_line":""},{"line_number":140,"context_line":"    @property"},{"line_number":141,"context_line":"    def supported_raid_interfaces(self):"},{"line_number":142,"context_line":"        \"\"\"List of supported power interfaces.\"\"\""},{"line_number":143,"context_line":"        return [noop.NoRAID, raid.IrmcRAID, agent.AgentRAID]"}],"source_content_type":"text/x-python","patch_set":7,"id":"bf659307_734262ad","line":142,"range":{"start_line":142,"start_character":29,"end_line":142,"end_character":45},"updated":"2018-04-02 07:35:00.000000000","message":"? \"power interfaces\"","commit_id":"732134cc196e7a4636d434eda096677f4e4c94b0"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"f01a5ecc94da8745870e5bcbbccc9023032eb3aa","unresolved":false,"context_lines":[{"line_number":139,"context_line":""},{"line_number":140,"context_line":"    @property"},{"line_number":141,"context_line":"    def supported_raid_interfaces(self):"},{"line_number":142,"context_line":"        \"\"\"List of supported power interfaces.\"\"\""},{"line_number":143,"context_line":"        return [noop.NoRAID, raid.IrmcRAID, agent.AgentRAID]"}],"source_content_type":"text/x-python","patch_set":13,"id":"5f7c97a3_895d607a","line":142,"range":{"start_line":142,"start_character":29,"end_line":142,"end_character":34},"updated":"2018-05-16 07:29:26.000000000","message":"nit: s/power/raid/","commit_id":"bcc986fee5c2b2f4d00147d1746e6e2214afaf56"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"7c859dd826cf972ee2f55ce99eb756c4cd239f2a","unresolved":false,"context_lines":[{"line_number":139,"context_line":""},{"line_number":140,"context_line":"    @property"},{"line_number":141,"context_line":"    def supported_raid_interfaces(self):"},{"line_number":142,"context_line":"        \"\"\"List of supported power interfaces.\"\"\""},{"line_number":143,"context_line":"        return [noop.NoRAID, raid.IrmcRAID, agent.AgentRAID]"}],"source_content_type":"text/x-python","patch_set":13,"id":"5f7c97a3_089aa5b7","line":142,"range":{"start_line":142,"start_character":29,"end_line":142,"end_character":34},"in_reply_to":"5f7c97a3_895d607a","updated":"2018-05-18 07:48:15.000000000","message":"Done","commit_id":"bcc986fee5c2b2f4d00147d1746e6e2214afaf56"}],"ironic/drivers/modules/irmc/common.py":[{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"6efc6838cfd762d5731f89e19991074e2b3dc79a","unresolved":false,"context_lines":[{"line_number":226,"context_line":"def resume_cleaning(task):"},{"line_number":227,"context_line":"    raid_common.update_raid_info("},{"line_number":228,"context_line":"        task.node, task.node.raid_config)"},{"line_number":229,"context_line":"    agent_base_vendor._notify_conductor_resume_clean(task)"}],"source_content_type":"text/x-python","patch_set":14,"id":"5f7c97a3_6e720f14","line":229,"range":{"start_line":229,"start_character":22,"end_line":229,"end_character":52},"updated":"2018-05-22 10:43:34.000000000","message":"This is currently a private method. You need to make this public. Change the method name in agent_base_vendor.py\ns/_notify_conductor_resume_clean / notify_conductor_resume_clean /","commit_id":"21d331cb38f5a6b20dcd2882a90077ec532c959b"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"1e18ee58c0c0853e0bc4564e159ed1a474ce5516","unresolved":false,"context_lines":[{"line_number":226,"context_line":"def resume_cleaning(task):"},{"line_number":227,"context_line":"    raid_common.update_raid_info("},{"line_number":228,"context_line":"        task.node, task.node.raid_config)"},{"line_number":229,"context_line":"    agent_base_vendor._notify_conductor_resume_clean(task)"}],"source_content_type":"text/x-python","patch_set":14,"id":"5f7c97a3_b5d59ce7","line":229,"range":{"start_line":229,"start_character":22,"end_line":229,"end_character":52},"in_reply_to":"5f7c97a3_6e720f14","updated":"2018-05-23 02:59:07.000000000","message":"+1\nI meant it at the last review.","commit_id":"21d331cb38f5a6b20dcd2882a90077ec532c959b"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"cededb9aa319d0c4dbffc33588cd7c0689e9c557","unresolved":false,"context_lines":[{"line_number":226,"context_line":"def resume_cleaning(task):"},{"line_number":227,"context_line":"    raid_common.update_raid_info("},{"line_number":228,"context_line":"        task.node, task.node.raid_config)"},{"line_number":229,"context_line":"    agent_base_vendor._notify_conductor_resume_clean(task)"}],"source_content_type":"text/x-python","patch_set":14,"id":"5f7c97a3_2dc26f5a","line":229,"range":{"start_line":229,"start_character":22,"end_line":229,"end_character":52},"in_reply_to":"5f7c97a3_6e720f14","updated":"2018-05-30 01:18:52.000000000","message":"Done","commit_id":"21d331cb38f5a6b20dcd2882a90077ec532c959b"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"cededb9aa319d0c4dbffc33588cd7c0689e9c557","unresolved":false,"context_lines":[{"line_number":226,"context_line":"def resume_cleaning(task):"},{"line_number":227,"context_line":"    raid_common.update_raid_info("},{"line_number":228,"context_line":"        task.node, task.node.raid_config)"},{"line_number":229,"context_line":"    agent_base_vendor._notify_conductor_resume_clean(task)"}],"source_content_type":"text/x-python","patch_set":14,"id":"5f7c97a3_0dbd33d7","line":229,"range":{"start_line":229,"start_character":22,"end_line":229,"end_character":52},"in_reply_to":"5f7c97a3_b5d59ce7","updated":"2018-05-30 01:18:52.000000000","message":"Due to this change have effected to an other method of Drac. Thus I suggest an other PS for this change in following link: https://review.openstack.org/#/c/570109/","commit_id":"21d331cb38f5a6b20dcd2882a90077ec532c959b"}],"ironic/drivers/modules/irmc/raid.py":[{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"d9cd871d6ae4c413d9456a1789c0e232d2ea9fdd","unresolved":false,"context_lines":[{"line_number":52,"context_line":"        \u0027min_disks\u0027: 4,"},{"line_number":53,"context_line":"        \u0027max_disks\u0027: 1000,"},{"line_number":54,"context_line":"    },"},{"line_number":55,"context_line":"    \u002710\u0027: {"},{"line_number":56,"context_line":"        \u0027min_disks\u0027: 4,"},{"line_number":57,"context_line":"        \u0027max_disks\u0027: 1000,"},{"line_number":58,"context_line":"    },"}],"source_content_type":"text/x-python","patch_set":4,"id":"df7087c5_d6c3f936","line":55,"range":{"start_line":55,"start_character":5,"end_line":55,"end_character":7},"updated":"2018-03-16 05:30:35.000000000","message":"While iRMC API supports \u002710\u0027 level, ironic supports \u00271+0\u0027. It is necessary to convert a value somewhere in this module.","commit_id":"b349223ad4c997dc8ba625bd6b136642455833ec"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"2ae122dc6e7c61e16b29147b2c7f413b028b9712","unresolved":false,"context_lines":[{"line_number":52,"context_line":"        \u0027min_disks\u0027: 4,"},{"line_number":53,"context_line":"        \u0027max_disks\u0027: 1000,"},{"line_number":54,"context_line":"    },"},{"line_number":55,"context_line":"    \u002710\u0027: {"},{"line_number":56,"context_line":"        \u0027min_disks\u0027: 4,"},{"line_number":57,"context_line":"        \u0027max_disks\u0027: 1000,"},{"line_number":58,"context_line":"    },"}],"source_content_type":"text/x-python","patch_set":4,"id":"df7087c5_01b49c34","line":55,"range":{"start_line":55,"start_character":5,"end_line":55,"end_character":7},"in_reply_to":"df7087c5_d6c3f936","updated":"2018-03-28 02:31:36.000000000","message":"Done","commit_id":"b349223ad4c997dc8ba625bd6b136642455833ec"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"d9cd871d6ae4c413d9456a1789c0e232d2ea9fdd","unresolved":false,"context_lines":[{"line_number":253,"context_line":"        :raises: IRMCOperationError on an error from python-irmcclient."},{"line_number":254,"context_line":"        \"\"\""},{"line_number":255,"context_line":"        node \u003d task.node"},{"line_number":256,"context_line":"        logical_disks \u003d node.target_raid_config[\u0027logical_disks\u0027]"},{"line_number":257,"context_line":""},{"line_number":258,"context_line":"        # Validate physical disks on Fujitsu BM Server"},{"line_number":259,"context_line":"        _physical_disks_validation(node, logical_disks)"}],"source_content_type":"text/x-python","patch_set":4,"id":"df7087c5_76854d06","line":256,"updated":"2018-03-16 05:30:35.000000000","message":"Don\u0027t we need see if target_raid_config is already set?","commit_id":"b349223ad4c997dc8ba625bd6b136642455833ec"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"635469402546e20060cee9577125fefbcffffee1","unresolved":false,"context_lines":[{"line_number":253,"context_line":"        :raises: IRMCOperationError on an error from python-irmcclient."},{"line_number":254,"context_line":"        \"\"\""},{"line_number":255,"context_line":"        node \u003d task.node"},{"line_number":256,"context_line":"        logical_disks \u003d node.target_raid_config[\u0027logical_disks\u0027]"},{"line_number":257,"context_line":""},{"line_number":258,"context_line":"        # Validate physical disks on Fujitsu BM Server"},{"line_number":259,"context_line":"        _physical_disks_validation(node, logical_disks)"}],"source_content_type":"text/x-python","patch_set":4,"id":"bf659307_86170fee","line":256,"in_reply_to":"df7087c5_61ca38a2","updated":"2018-03-28 05:48:44.000000000","message":"What happens if an operator forget to execute \"openstack baremetal node set bm --target-raid-config target_raid_cfg.json\" before requiring this clean step?","commit_id":"b349223ad4c997dc8ba625bd6b136642455833ec"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"2ae122dc6e7c61e16b29147b2c7f413b028b9712","unresolved":false,"context_lines":[{"line_number":253,"context_line":"        :raises: IRMCOperationError on an error from python-irmcclient."},{"line_number":254,"context_line":"        \"\"\""},{"line_number":255,"context_line":"        node \u003d task.node"},{"line_number":256,"context_line":"        logical_disks \u003d node.target_raid_config[\u0027logical_disks\u0027]"},{"line_number":257,"context_line":""},{"line_number":258,"context_line":"        # Validate physical disks on Fujitsu BM Server"},{"line_number":259,"context_line":"        _physical_disks_validation(node, logical_disks)"}],"source_content_type":"text/x-python","patch_set":4,"id":"df7087c5_61ca38a2","line":256,"in_reply_to":"df7087c5_76854d06","updated":"2018-03-28 02:31:36.000000000","message":"We will set tartget_raid_config via \"openstack baremetal node set bm --target-raid-config target_raid_cfg.json\" then get logical_disks from node which included tartget_raid_config in node.","commit_id":"b349223ad4c997dc8ba625bd6b136642455833ec"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"d9cd871d6ae4c413d9456a1789c0e232d2ea9fdd","unresolved":false,"context_lines":[{"line_number":261,"context_line":"        # Executing raid configuration on Fujitsu BM Server"},{"line_number":262,"context_line":"        create_virtual_disk(node)"},{"line_number":263,"context_line":""},{"line_number":264,"context_line":"        pass"},{"line_number":265,"context_line":""},{"line_number":266,"context_line":"    @staticmethod"},{"line_number":267,"context_line":"    @agent_base_vendor.post_clean_step_hook("}],"source_content_type":"text/x-python","patch_set":4,"id":"df7087c5_d6753933","line":264,"updated":"2018-03-16 05:30:35.000000000","message":"This is not necessary.","commit_id":"b349223ad4c997dc8ba625bd6b136642455833ec"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"2ae122dc6e7c61e16b29147b2c7f413b028b9712","unresolved":false,"context_lines":[{"line_number":261,"context_line":"        # Executing raid configuration on Fujitsu BM Server"},{"line_number":262,"context_line":"        create_virtual_disk(node)"},{"line_number":263,"context_line":""},{"line_number":264,"context_line":"        pass"},{"line_number":265,"context_line":""},{"line_number":266,"context_line":"    @staticmethod"},{"line_number":267,"context_line":"    @agent_base_vendor.post_clean_step_hook("}],"source_content_type":"text/x-python","patch_set":4,"id":"df7087c5_81cf4caf","line":264,"in_reply_to":"df7087c5_d6753933","updated":"2018-03-28 02:31:36.000000000","message":"Done","commit_id":"b349223ad4c997dc8ba625bd6b136642455833ec"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"d9cd871d6ae4c413d9456a1789c0e232d2ea9fdd","unresolved":false,"context_lines":[{"line_number":266,"context_line":"    @staticmethod"},{"line_number":267,"context_line":"    @agent_base_vendor.post_clean_step_hook("},{"line_number":268,"context_line":"        interface\u003d\u0027raid\u0027, step\u003d\u0027create_configuration\u0027)"},{"line_number":269,"context_line":"    def _create_configuration_final(task, command):"},{"line_number":270,"context_line":"        \"\"\"Clean step hook after a RAID configuration was created."},{"line_number":271,"context_line":""},{"line_number":272,"context_line":"        This method is invoked as a post clean step hook by the Ironic"}],"source_content_type":"text/x-python","patch_set":4,"id":"df7087c5_b6944538","line":269,"updated":"2018-03-16 05:30:35.000000000","message":"Is this method used? This interface seems to configure RAID via out of band interface without agent.","commit_id":"b349223ad4c997dc8ba625bd6b136642455833ec"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"2ae122dc6e7c61e16b29147b2c7f413b028b9712","unresolved":false,"context_lines":[{"line_number":266,"context_line":"    @staticmethod"},{"line_number":267,"context_line":"    @agent_base_vendor.post_clean_step_hook("},{"line_number":268,"context_line":"        interface\u003d\u0027raid\u0027, step\u003d\u0027create_configuration\u0027)"},{"line_number":269,"context_line":"    def _create_configuration_final(task, command):"},{"line_number":270,"context_line":"        \"\"\"Clean step hook after a RAID configuration was created."},{"line_number":271,"context_line":""},{"line_number":272,"context_line":"        This method is invoked as a post clean step hook by the Ironic"}],"source_content_type":"text/x-python","patch_set":4,"id":"df7087c5_a135b0aa","line":269,"in_reply_to":"df7087c5_b6944538","updated":"2018-03-28 02:31:36.000000000","message":"Sure. I will use _commit_raid_config() to save raid_config into node.","commit_id":"b349223ad4c997dc8ba625bd6b136642455833ec"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"2d49508729be9fecd6f4a5ed4d21aab1148f3c98","unresolved":false,"context_lines":[{"line_number":81,"context_line":"                 \u0027Let create new raid profile first \u0027"},{"line_number":82,"context_line":"                 \u0027%(node_uuid)s. Reason: %(error)s.\u0027,"},{"line_number":83,"context_line":"                 {\u0027node_uuid\u0027: node.uuid, \u0027error\u0027: exc})"},{"line_number":84,"context_line":"        pass"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"def create_virtual_disk(node):"}],"source_content_type":"text/x-python","patch_set":5,"id":"df7087c5_b977a4d4","line":84,"updated":"2018-03-27 07:58:29.000000000","message":"not necessary.","commit_id":"6664f87a098c28b36f4285e99e739ae07349e062"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"2ae122dc6e7c61e16b29147b2c7f413b028b9712","unresolved":false,"context_lines":[{"line_number":81,"context_line":"                 \u0027Let create new raid profile first \u0027"},{"line_number":82,"context_line":"                 \u0027%(node_uuid)s. Reason: %(error)s.\u0027,"},{"line_number":83,"context_line":"                 {\u0027node_uuid\u0027: node.uuid, \u0027error\u0027: exc})"},{"line_number":84,"context_line":"        pass"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"def create_virtual_disk(node):"}],"source_content_type":"text/x-python","patch_set":5,"id":"bf659307_a7035173","line":84,"in_reply_to":"df7087c5_b977a4d4","updated":"2018-03-28 02:31:36.000000000","message":"Done","commit_id":"6664f87a098c28b36f4285e99e739ae07349e062"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"2d49508729be9fecd6f4a5ed4d21aab1148f3c98","unresolved":false,"context_lines":[{"line_number":111,"context_line":"    irmc_info \u003d node.driver_info"},{"line_number":112,"context_line":"    node.raid_config \u003d {}"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"    _restart_bm \u003d pw.IRMCPower()"},{"line_number":115,"context_line":"    # Must to reboot to allow BM create raid configuration"},{"line_number":116,"context_line":"    if reboot is True:"},{"line_number":117,"context_line":"        _restart_bm.reboot(task)"}],"source_content_type":"text/x-python","patch_set":5,"id":"bf659307_159a666d","line":114,"updated":"2018-03-27 07:58:29.000000000","message":"We should use task.driver.power.","commit_id":"6664f87a098c28b36f4285e99e739ae07349e062"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"2ae122dc6e7c61e16b29147b2c7f413b028b9712","unresolved":false,"context_lines":[{"line_number":111,"context_line":"    irmc_info \u003d node.driver_info"},{"line_number":112,"context_line":"    node.raid_config \u003d {}"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"    _restart_bm \u003d pw.IRMCPower()"},{"line_number":115,"context_line":"    # Must to reboot to allow BM create raid configuration"},{"line_number":116,"context_line":"    if reboot is True:"},{"line_number":117,"context_line":"        _restart_bm.reboot(task)"}],"source_content_type":"text/x-python","patch_set":5,"id":"bf659307_ea791093","line":114,"in_reply_to":"bf659307_159a666d","updated":"2018-03-28 02:31:36.000000000","message":"Done","commit_id":"6664f87a098c28b36f4285e99e739ae07349e062"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"2d49508729be9fecd6f4a5ed4d21aab1148f3c98","unresolved":false,"context_lines":[{"line_number":132,"context_line":"                                logical_drive[\u0027@Number\u0027], \u0027raid_level\u0027:"},{"line_number":133,"context_line":"                                logical_drive[\u0027RaidLevel\u0027]})"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"    node.save()"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"    LOG.info(\u0027RAID config is created successfully on node %s\u0027,"},{"line_number":138,"context_line":"             node_uuid)"}],"source_content_type":"text/x-python","patch_set":5,"id":"bf659307_7546427f","line":135,"updated":"2018-03-27 07:58:29.000000000","message":"Shouldn\u0027t we update the raid_config with the common method[1]?\n\n[1] https://github.com/openstack/ironic/blob/master/ironic/common/raid.py#L91","commit_id":"6664f87a098c28b36f4285e99e739ae07349e062"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"2ae122dc6e7c61e16b29147b2c7f413b028b9712","unresolved":false,"context_lines":[{"line_number":132,"context_line":"                                logical_drive[\u0027@Number\u0027], \u0027raid_level\u0027:"},{"line_number":133,"context_line":"                                logical_drive[\u0027RaidLevel\u0027]})"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"    node.save()"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"    LOG.info(\u0027RAID config is created successfully on node %s\u0027,"},{"line_number":138,"context_line":"             node_uuid)"}],"source_content_type":"text/x-python","patch_set":5,"id":"bf659307_006463e3","line":135,"in_reply_to":"bf659307_7546427f","updated":"2018-03-28 02:31:36.000000000","message":"Done","commit_id":"6664f87a098c28b36f4285e99e739ae07349e062"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"2d49508729be9fecd6f4a5ed4d21aab1148f3c98","unresolved":false,"context_lines":[{"line_number":172,"context_line":"    \"\"\""},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"    irmc_raid \u003d get_virtual_disk(node)"},{"line_number":175,"context_line":"    valid_disks \u003d irmc_raid[0][\u0027Server\u0027][\u0027HWConfigurationIrmc\u0027][\u0027Adapters\u0027]["},{"line_number":176,"context_line":"        \u0027RAIDAdapter\u0027][0][\u0027PhysicalDisks\u0027][\u0027PhysicalDisk\u0027]"},{"line_number":177,"context_line":"    valid_disk_slots \u003d [slot[\u0027Slot\u0027] for slot in valid_disks]"},{"line_number":178,"context_line":"    remain_valid_disk_slots \u003d list(valid_disk_slots)"}],"source_content_type":"text/x-python","patch_set":5,"id":"bf659307_3a8999c9","line":175,"updated":"2018-03-27 07:58:29.000000000","message":"irmc_raid may be None because get_virtual_disk returns None if an not found error happens.","commit_id":"6664f87a098c28b36f4285e99e739ae07349e062"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"2ae122dc6e7c61e16b29147b2c7f413b028b9712","unresolved":false,"context_lines":[{"line_number":172,"context_line":"    \"\"\""},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"    irmc_raid \u003d get_virtual_disk(node)"},{"line_number":175,"context_line":"    valid_disks \u003d irmc_raid[0][\u0027Server\u0027][\u0027HWConfigurationIrmc\u0027][\u0027Adapters\u0027]["},{"line_number":176,"context_line":"        \u0027RAIDAdapter\u0027][0][\u0027PhysicalDisks\u0027][\u0027PhysicalDisk\u0027]"},{"line_number":177,"context_line":"    valid_disk_slots \u003d [slot[\u0027Slot\u0027] for slot in valid_disks]"},{"line_number":178,"context_line":"    remain_valid_disk_slots \u003d list(valid_disk_slots)"}],"source_content_type":"text/x-python","patch_set":5,"id":"bf659307_aacf98ae","line":175,"in_reply_to":"bf659307_3a8999c9","updated":"2018-03-28 02:31:36.000000000","message":"Done","commit_id":"6664f87a098c28b36f4285e99e739ae07349e062"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"2d49508729be9fecd6f4a5ed4d21aab1148f3c98","unresolved":false,"context_lines":[{"line_number":175,"context_line":"    valid_disks \u003d irmc_raid[0][\u0027Server\u0027][\u0027HWConfigurationIrmc\u0027][\u0027Adapters\u0027]["},{"line_number":176,"context_line":"        \u0027RAIDAdapter\u0027][0][\u0027PhysicalDisks\u0027][\u0027PhysicalDisk\u0027]"},{"line_number":177,"context_line":"    valid_disk_slots \u003d [slot[\u0027Slot\u0027] for slot in valid_disks]"},{"line_number":178,"context_line":"    remain_valid_disk_slots \u003d list(valid_disk_slots)"},{"line_number":179,"context_line":"    number_of_valid_disks \u003d len(valid_disk_slots)"},{"line_number":180,"context_line":"    used_valid_disk_slots \u003d []"},{"line_number":181,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"bf659307_9a178552","line":178,"range":{"start_line":178,"start_character":35,"end_line":178,"end_character":51},"updated":"2018-03-27 07:58:29.000000000","message":"Isn\u0027t this already a list?","commit_id":"6664f87a098c28b36f4285e99e739ae07349e062"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"2ae122dc6e7c61e16b29147b2c7f413b028b9712","unresolved":false,"context_lines":[{"line_number":175,"context_line":"    valid_disks \u003d irmc_raid[0][\u0027Server\u0027][\u0027HWConfigurationIrmc\u0027][\u0027Adapters\u0027]["},{"line_number":176,"context_line":"        \u0027RAIDAdapter\u0027][0][\u0027PhysicalDisks\u0027][\u0027PhysicalDisk\u0027]"},{"line_number":177,"context_line":"    valid_disk_slots \u003d [slot[\u0027Slot\u0027] for slot in valid_disks]"},{"line_number":178,"context_line":"    remain_valid_disk_slots \u003d list(valid_disk_slots)"},{"line_number":179,"context_line":"    number_of_valid_disks \u003d len(valid_disk_slots)"},{"line_number":180,"context_line":"    used_valid_disk_slots \u003d []"},{"line_number":181,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"bf659307_67ad3930","line":178,"range":{"start_line":178,"start_character":35,"end_line":178,"end_character":51},"in_reply_to":"bf659307_9a178552","updated":"2018-03-28 02:31:36.000000000","message":"allocate other memory for remain_valid_disk_slots which will don\u0027t affected to valid_disk_slot in L226.","commit_id":"6664f87a098c28b36f4285e99e739ae07349e062"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"2d49508729be9fecd6f4a5ed4d21aab1148f3c98","unresolved":false,"context_lines":[{"line_number":181,"context_line":""},{"line_number":182,"context_line":"    for disk in logical_disks:"},{"line_number":183,"context_line":"        # Check raid_level value in the target_raid_config of node"},{"line_number":184,"context_line":"        if not (\u0027raid_level\u0027 in disk) or disk[\u0027raid_level\u0027] is None or \\"},{"line_number":185,"context_line":"                disk[\u0027raid_level\u0027] not in [levels for levels in"},{"line_number":186,"context_line":"                                           RAID_LEVELS]:"},{"line_number":187,"context_line":"            reason \u003d (_(\u0027Raid level is not suitable value in \"%s\"\u0027)"},{"line_number":188,"context_line":"                      % disk[\u0027raid_level\u0027])"},{"line_number":189,"context_line":"            raise exception.IRMCOperationError(error\u003dreason)"}],"source_content_type":"text/x-python","patch_set":5,"id":"bf659307_b5761aa4","line":186,"range":{"start_line":184,"start_character":8,"end_line":186,"end_character":55},"updated":"2018-03-27 07:58:29.000000000","message":"We can replace it with;\nif disk.get(\u0027raid_level\u0027) not in RAID_LEVELS:","commit_id":"6664f87a098c28b36f4285e99e739ae07349e062"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"2ae122dc6e7c61e16b29147b2c7f413b028b9712","unresolved":false,"context_lines":[{"line_number":181,"context_line":""},{"line_number":182,"context_line":"    for disk in logical_disks:"},{"line_number":183,"context_line":"        # Check raid_level value in the target_raid_config of node"},{"line_number":184,"context_line":"        if not (\u0027raid_level\u0027 in disk) or disk[\u0027raid_level\u0027] is None or \\"},{"line_number":185,"context_line":"                disk[\u0027raid_level\u0027] not in [levels for levels in"},{"line_number":186,"context_line":"                                           RAID_LEVELS]:"},{"line_number":187,"context_line":"            reason \u003d (_(\u0027Raid level is not suitable value in \"%s\"\u0027)"},{"line_number":188,"context_line":"                      % disk[\u0027raid_level\u0027])"},{"line_number":189,"context_line":"            raise exception.IRMCOperationError(error\u003dreason)"}],"source_content_type":"text/x-python","patch_set":5,"id":"bf659307_2a73884f","line":186,"range":{"start_line":184,"start_character":8,"end_line":186,"end_character":55},"in_reply_to":"bf659307_b5761aa4","updated":"2018-03-28 02:31:36.000000000","message":"Thanks. Done","commit_id":"6664f87a098c28b36f4285e99e739ae07349e062"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"2d49508729be9fecd6f4a5ed4d21aab1148f3c98","unresolved":false,"context_lines":[{"line_number":272,"context_line":"        node \u003d task.node"},{"line_number":273,"context_line":"        logical_disks \u003d node.target_raid_config[\u0027logical_disks\u0027]"},{"line_number":274,"context_line":"        for log_disk in logical_disks:"},{"line_number":275,"context_line":"            for k, v in log_disk.items():"},{"line_number":276,"context_line":"                    log_disk[k] \u003d str(v).replace(\u0027+\u0027, \u0027\u0027)"},{"line_number":277,"context_line":""},{"line_number":278,"context_line":"        # Validate physical disks on Fujitsu BM Server"}],"source_content_type":"text/x-python","patch_set":5,"id":"bf659307_1a44d5b6","line":275,"updated":"2018-03-27 07:58:29.000000000","message":"Why do we see all items? Isn\u0027t it enough to see raid_level?","commit_id":"6664f87a098c28b36f4285e99e739ae07349e062"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"2ae122dc6e7c61e16b29147b2c7f413b028b9712","unresolved":false,"context_lines":[{"line_number":272,"context_line":"        node \u003d task.node"},{"line_number":273,"context_line":"        logical_disks \u003d node.target_raid_config[\u0027logical_disks\u0027]"},{"line_number":274,"context_line":"        for log_disk in logical_disks:"},{"line_number":275,"context_line":"            for k, v in log_disk.items():"},{"line_number":276,"context_line":"                    log_disk[k] \u003d str(v).replace(\u0027+\u0027, \u0027\u0027)"},{"line_number":277,"context_line":""},{"line_number":278,"context_line":"        # Validate physical disks on Fujitsu BM Server"}],"source_content_type":"text/x-python","patch_set":5,"id":"bf659307_c71a057c","line":275,"in_reply_to":"bf659307_1a44d5b6","updated":"2018-03-28 02:31:36.000000000","message":"Yep. Should replace only in raid_level. Thanks","commit_id":"6664f87a098c28b36f4285e99e739ae07349e062"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"2d49508729be9fecd6f4a5ed4d21aab1148f3c98","unresolved":false,"context_lines":[{"line_number":273,"context_line":"        logical_disks \u003d node.target_raid_config[\u0027logical_disks\u0027]"},{"line_number":274,"context_line":"        for log_disk in logical_disks:"},{"line_number":275,"context_line":"            for k, v in log_disk.items():"},{"line_number":276,"context_line":"                    log_disk[k] \u003d str(v).replace(\u0027+\u0027, \u0027\u0027)"},{"line_number":277,"context_line":""},{"line_number":278,"context_line":"        # Validate physical disks on Fujitsu BM Server"},{"line_number":279,"context_line":"        _physical_disks_validation(node, logical_disks)"}],"source_content_type":"text/x-python","patch_set":5,"id":"bf659307_3a56795e","line":276,"updated":"2018-03-27 07:58:29.000000000","message":"IMHO, It doesn\u0027t look quite good to update a member in node object temporally because this change remains in the node object after this method. I don\u0027t believe this change will be saved later, though.","commit_id":"6664f87a098c28b36f4285e99e739ae07349e062"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"2ae122dc6e7c61e16b29147b2c7f413b028b9712","unresolved":false,"context_lines":[{"line_number":273,"context_line":"        logical_disks \u003d node.target_raid_config[\u0027logical_disks\u0027]"},{"line_number":274,"context_line":"        for log_disk in logical_disks:"},{"line_number":275,"context_line":"            for k, v in log_disk.items():"},{"line_number":276,"context_line":"                    log_disk[k] \u003d str(v).replace(\u0027+\u0027, \u0027\u0027)"},{"line_number":277,"context_line":""},{"line_number":278,"context_line":"        # Validate physical disks on Fujitsu BM Server"},{"line_number":279,"context_line":"        _physical_disks_validation(node, logical_disks)"}],"source_content_type":"text/x-python","patch_set":5,"id":"bf659307_675bf953","line":276,"in_reply_to":"bf659307_3a56795e","updated":"2018-03-28 02:31:36.000000000","message":"I also updated change for this. thanks","commit_id":"6664f87a098c28b36f4285e99e739ae07349e062"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"2d49508729be9fecd6f4a5ed4d21aab1148f3c98","unresolved":false,"context_lines":[{"line_number":298,"context_line":"        delete_virtual_disk(node)"},{"line_number":299,"context_line":"        LOG.info(\u0027RAID config is deleted successfully on node %s\u0027, node_uuid)"},{"line_number":300,"context_line":""},{"line_number":301,"context_line":"        pass"}],"source_content_type":"text/x-python","patch_set":5,"id":"bf659307_b5be1a63","line":301,"updated":"2018-03-27 07:58:29.000000000","message":"not necessary.","commit_id":"6664f87a098c28b36f4285e99e739ae07349e062"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"2ae122dc6e7c61e16b29147b2c7f413b028b9712","unresolved":false,"context_lines":[{"line_number":298,"context_line":"        delete_virtual_disk(node)"},{"line_number":299,"context_line":"        LOG.info(\u0027RAID config is deleted successfully on node %s\u0027, node_uuid)"},{"line_number":300,"context_line":""},{"line_number":301,"context_line":"        pass"}],"source_content_type":"text/x-python","patch_set":5,"id":"bf659307_e71dc973","line":301,"in_reply_to":"bf659307_b5be1a63","updated":"2018-03-28 02:31:36.000000000","message":"Done","commit_id":"6664f87a098c28b36f4285e99e739ae07349e062"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"635469402546e20060cee9577125fefbcffffee1","unresolved":false,"context_lines":[{"line_number":76,"context_line":"        return client.get_raid_adapter_profile(irmc_info)"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"    except client.ELCMProfileNotFound as exc:"},{"line_number":79,"context_line":"        LOG.info(\u0027IRMC driver failed to gathering virtual disk for node. \u0027"},{"line_number":80,"context_line":"                 \u0027Let create new raid profile first \u0027"},{"line_number":81,"context_line":"                 \u0027%(node_uuid)s. Reason: %(error)s.\u0027,"},{"line_number":82,"context_line":"                 {\u0027node_uuid\u0027: node.uuid, \u0027error\u0027: exc})"}],"source_content_type":"text/x-python","patch_set":6,"id":"bf659307_4609f7da","line":79,"updated":"2018-03-28 05:48:44.000000000","message":"This implies this is not an error. However, a exception is raised at line 178. What do you assume?","commit_id":"54b4f59d24833798ebc25d1df7e47751069564f3"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"5995b4a8b7da99e0f74f5259c303f6aae87ad72f","unresolved":false,"context_lines":[{"line_number":76,"context_line":"        return client.get_raid_adapter_profile(irmc_info)"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"    except client.ELCMProfileNotFound as exc:"},{"line_number":79,"context_line":"        LOG.info(\u0027IRMC driver failed to gathering virtual disk for node. \u0027"},{"line_number":80,"context_line":"                 \u0027Let create new raid profile first \u0027"},{"line_number":81,"context_line":"                 \u0027%(node_uuid)s. Reason: %(error)s.\u0027,"},{"line_number":82,"context_line":"                 {\u0027node_uuid\u0027: node.uuid, \u0027error\u0027: exc})"}],"source_content_type":"text/x-python","patch_set":6,"id":"bf659307_2e88556f","line":79,"in_reply_to":"bf659307_4609f7da","updated":"2018-03-28 09:46:29.000000000","message":"Right. We do not need try-catch in here. I will remove them and put some LOG.info.","commit_id":"54b4f59d24833798ebc25d1df7e47751069564f3"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"635469402546e20060cee9577125fefbcffffee1","unresolved":false,"context_lines":[{"line_number":246,"context_line":"        return irmc_common.COMMON_PROPERTIES"},{"line_number":247,"context_line":""},{"line_number":248,"context_line":"    @METRICS.timer(\u0027IrmcRAID.create_configuration\u0027)"},{"line_number":249,"context_line":"    @base.clean_step(priority\u003dCONF.irmc.clean_priority_raid, argsinfo\u003d{"},{"line_number":250,"context_line":"        \u0027create_root_volume\u0027: {"},{"line_number":251,"context_line":"            \u0027description\u0027: (\u0027This specifies whether to create the root volume.\u0027"},{"line_number":252,"context_line":"                            \u0027Defaults to `True`.\u0027"}],"source_content_type":"text/x-python","patch_set":6,"id":"bf659307_c6d8a780","line":249,"range":{"start_line":249,"start_character":30,"end_line":249,"end_character":59},"updated":"2018-03-28 05:48:44.000000000","message":"This should be 0. This step works only in manual cleaning.","commit_id":"54b4f59d24833798ebc25d1df7e47751069564f3"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"5995b4a8b7da99e0f74f5259c303f6aae87ad72f","unresolved":false,"context_lines":[{"line_number":246,"context_line":"        return irmc_common.COMMON_PROPERTIES"},{"line_number":247,"context_line":""},{"line_number":248,"context_line":"    @METRICS.timer(\u0027IrmcRAID.create_configuration\u0027)"},{"line_number":249,"context_line":"    @base.clean_step(priority\u003dCONF.irmc.clean_priority_raid, argsinfo\u003d{"},{"line_number":250,"context_line":"        \u0027create_root_volume\u0027: {"},{"line_number":251,"context_line":"            \u0027description\u0027: (\u0027This specifies whether to create the root volume.\u0027"},{"line_number":252,"context_line":"                            \u0027Defaults to `True`.\u0027"}],"source_content_type":"text/x-python","patch_set":6,"id":"bf659307_9904504c","line":249,"range":{"start_line":249,"start_character":30,"end_line":249,"end_character":59},"in_reply_to":"bf659307_c6d8a780","updated":"2018-03-28 09:46:29.000000000","message":"Done","commit_id":"54b4f59d24833798ebc25d1df7e47751069564f3"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"635469402546e20060cee9577125fefbcffffee1","unresolved":false,"context_lines":[{"line_number":287,"context_line":"        for log_disk in logical_disks:"},{"line_number":288,"context_line":"            if log_disk.get(\u0027raid_level\u0027):"},{"line_number":289,"context_line":"                log_disk[\u0027raid_level\u0027] \u003d \\"},{"line_number":290,"context_line":"                    str(log_disk[\u0027raid_level\u0027]).replace(\u0027+\u0027, \u0027\u0027)"},{"line_number":291,"context_line":""},{"line_number":292,"context_line":"        # Validate physical disks on Fujitsu BM Server"},{"line_number":293,"context_line":"        _physical_disks_validation(node, logical_disks)"}],"source_content_type":"text/x-python","patch_set":6,"id":"bf659307_a67ed316","line":290,"updated":"2018-03-28 05:48:44.000000000","message":"This doesn\u0027t solve my concern. The simplest solution might be copying the target raid information like agent-raid[1].\n\n[1] https://github.com/openstack/ironic/blob/master/ironic/drivers/modules/agent.py#L606","commit_id":"54b4f59d24833798ebc25d1df7e47751069564f3"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"5995b4a8b7da99e0f74f5259c303f6aae87ad72f","unresolved":false,"context_lines":[{"line_number":287,"context_line":"        for log_disk in logical_disks:"},{"line_number":288,"context_line":"            if log_disk.get(\u0027raid_level\u0027):"},{"line_number":289,"context_line":"                log_disk[\u0027raid_level\u0027] \u003d \\"},{"line_number":290,"context_line":"                    str(log_disk[\u0027raid_level\u0027]).replace(\u0027+\u0027, \u0027\u0027)"},{"line_number":291,"context_line":""},{"line_number":292,"context_line":"        # Validate physical disks on Fujitsu BM Server"},{"line_number":293,"context_line":"        _physical_disks_validation(node, logical_disks)"}],"source_content_type":"text/x-python","patch_set":6,"id":"bf659307_7c504ad5","line":290,"in_reply_to":"bf659307_a67ed316","updated":"2018-03-28 09:46:29.000000000","message":"Done","commit_id":"54b4f59d24833798ebc25d1df7e47751069564f3"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"635469402546e20060cee9577125fefbcffffee1","unresolved":false,"context_lines":[{"line_number":293,"context_line":"        _physical_disks_validation(node, logical_disks)"},{"line_number":294,"context_line":""},{"line_number":295,"context_line":"        # Executing raid configuration on Fujitsu BM Server"},{"line_number":296,"context_line":"        _, raid_config \u003d create_virtual_disk(node)"},{"line_number":297,"context_line":""},{"line_number":298,"context_line":"        return _commit_raid_config(task, reboot\u003dTrue)"},{"line_number":299,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"bf659307_e65ccb7f","line":296,"range":{"start_line":296,"start_character":11,"end_line":296,"end_character":22},"updated":"2018-03-28 05:48:44.000000000","message":"It seems that this result contains warning information. Are we ignoring it?","commit_id":"54b4f59d24833798ebc25d1df7e47751069564f3"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"5995b4a8b7da99e0f74f5259c303f6aae87ad72f","unresolved":false,"context_lines":[{"line_number":293,"context_line":"        _physical_disks_validation(node, logical_disks)"},{"line_number":294,"context_line":""},{"line_number":295,"context_line":"        # Executing raid configuration on Fujitsu BM Server"},{"line_number":296,"context_line":"        _, raid_config \u003d create_virtual_disk(node)"},{"line_number":297,"context_line":""},{"line_number":298,"context_line":"        return _commit_raid_config(task, reboot\u003dTrue)"},{"line_number":299,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"bf659307_9cd0be21","line":296,"range":{"start_line":296,"start_character":11,"end_line":296,"end_character":22},"in_reply_to":"bf659307_e65ccb7f","updated":"2018-03-28 09:46:29.000000000","message":"Yep. Perhaps, we don\u0027t need return in this case. I will remove return and only perform method. Thanks","commit_id":"54b4f59d24833798ebc25d1df7e47751069564f3"},{"author":{"_account_id":13702,"name":"yushiro","username":"yushiro","inactive":true},"change_message_id":"22912d4ae9d36a59335bd0d7ac5c667d84121ebb","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#"},{"line_number":2,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":3,"context_line":"# not use this file except in compliance with the License. You may obtain"},{"line_number":4,"context_line":"# a copy of the License at"}],"source_content_type":"text/x-python","patch_set":7,"id":"bf659307_d34eea36","line":1,"updated":"2018-03-30 03:57:58.000000000","message":"No copyright?","commit_id":"732134cc196e7a4636d434eda096677f4e4c94b0"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"fae89283bd36ec24dda5b9156f68180b39eba463","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#"},{"line_number":2,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":3,"context_line":"# not use this file except in compliance with the License. You may obtain"},{"line_number":4,"context_line":"# a copy of the License at"}],"source_content_type":"text/x-python","patch_set":7,"id":"bf659307_93105659","line":1,"in_reply_to":"bf659307_d34eea36","updated":"2018-04-02 03:23:12.000000000","message":"Done","commit_id":"732134cc196e7a4636d434eda096677f4e4c94b0"},{"author":{"_account_id":13702,"name":"yushiro","username":"yushiro","inactive":true},"change_message_id":"22912d4ae9d36a59335bd0d7ac5c667d84121ebb","unresolved":false,"context_lines":[{"line_number":72,"context_line":"    \"\"\""},{"line_number":73,"context_line":"    irmc_info \u003d node.driver_info"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"    LOG.info(\u0027IRMC driver is gathering virtual disk for node. \u0027,"},{"line_number":76,"context_line":"             {\u0027node_uuid\u0027: node.uuid})"},{"line_number":77,"context_line":"    return client.get_raid_adapter_profile(irmc_info)"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"bf659307_1911e352","line":76,"range":{"start_line":75,"start_character":0,"end_line":76,"end_character":38},"updated":"2018-03-30 03:57:58.000000000","message":"Is there any reason to display dict format?  I think it is a little redundant.  How about as follows?\n\n  LOG.info(\u0027IRMC driver is gathering virtual disk for node %s\u0027, node.uuid)","commit_id":"732134cc196e7a4636d434eda096677f4e4c94b0"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"fae89283bd36ec24dda5b9156f68180b39eba463","unresolved":false,"context_lines":[{"line_number":72,"context_line":"    \"\"\""},{"line_number":73,"context_line":"    irmc_info \u003d node.driver_info"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"    LOG.info(\u0027IRMC driver is gathering virtual disk for node. \u0027,"},{"line_number":76,"context_line":"             {\u0027node_uuid\u0027: node.uuid})"},{"line_number":77,"context_line":"    return client.get_raid_adapter_profile(irmc_info)"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"bf659307_73010206","line":76,"range":{"start_line":75,"start_character":0,"end_line":76,"end_character":38},"in_reply_to":"bf659307_1911e352","updated":"2018-04-02 03:23:12.000000000","message":"Done","commit_id":"732134cc196e7a4636d434eda096677f4e4c94b0"},{"author":{"_account_id":13702,"name":"yushiro","username":"yushiro","inactive":true},"change_message_id":"22912d4ae9d36a59335bd0d7ac5c667d84121ebb","unresolved":false,"context_lines":[{"line_number":154,"context_line":"    try:"},{"line_number":155,"context_line":"        return client.delete_raid_configuration(irmc_info, logical_drive_no)"},{"line_number":156,"context_line":"    except client.ELCMProfileNotFound as exc:"},{"line_number":157,"context_line":"        LOG.error(\u0027IRMC driver failed to delete virtual disk \u0027"},{"line_number":158,"context_line":"                  \u0027%(virtual_disk)s for node %(node_uuid)s. \u0027"},{"line_number":159,"context_line":"                  \u0027Reason: %(error)s.\u0027,"},{"line_number":160,"context_line":"                  {\u0027virtual_disk\u0027: logical_drive_no, \u0027node_uuid\u0027: node.uuid,"}],"source_content_type":"text/x-python","patch_set":7,"id":"bf659307_7929ff87","line":157,"range":{"start_line":157,"start_character":8,"end_line":157,"end_character":17},"updated":"2018-03-30 03:57:58.000000000","message":"LOG.exception is better.","commit_id":"732134cc196e7a4636d434eda096677f4e4c94b0"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"fae89283bd36ec24dda5b9156f68180b39eba463","unresolved":false,"context_lines":[{"line_number":154,"context_line":"    try:"},{"line_number":155,"context_line":"        return client.delete_raid_configuration(irmc_info, logical_drive_no)"},{"line_number":156,"context_line":"    except client.ELCMProfileNotFound as exc:"},{"line_number":157,"context_line":"        LOG.error(\u0027IRMC driver failed to delete virtual disk \u0027"},{"line_number":158,"context_line":"                  \u0027%(virtual_disk)s for node %(node_uuid)s. \u0027"},{"line_number":159,"context_line":"                  \u0027Reason: %(error)s.\u0027,"},{"line_number":160,"context_line":"                  {\u0027virtual_disk\u0027: logical_drive_no, \u0027node_uuid\u0027: node.uuid,"}],"source_content_type":"text/x-python","patch_set":7,"id":"bf659307_1602f40a","line":157,"range":{"start_line":157,"start_character":8,"end_line":157,"end_character":17},"in_reply_to":"bf659307_7929ff87","updated":"2018-04-02 03:23:12.000000000","message":"Done","commit_id":"732134cc196e7a4636d434eda096677f4e4c94b0"},{"author":{"_account_id":13702,"name":"yushiro","username":"yushiro","inactive":true},"change_message_id":"22912d4ae9d36a59335bd0d7ac5c667d84121ebb","unresolved":false,"context_lines":[{"line_number":175,"context_line":"        reason \u003d (\u0027Cannot see any raid profile in \"%s\"\u0027 % node)"},{"line_number":176,"context_line":"        raise exception.IRMCOperationError(operation\u003d\u0027RAID config\u0027,"},{"line_number":177,"context_line":"                                           error\u003dreason)"},{"line_number":178,"context_line":"    valid_disks \u003d raid_adapter_profile[\u0027Server\u0027][\u0027HWConfigurationIrmc\u0027]["},{"line_number":179,"context_line":"        \u0027Adapters\u0027][\u0027RAIDAdapter\u0027][0][\u0027PhysicalDisks\u0027][\u0027PhysicalDisk\u0027]"},{"line_number":180,"context_line":"    valid_disk_slots \u003d [slot[\u0027Slot\u0027] for slot in valid_disks]"},{"line_number":181,"context_line":"    remain_valid_disk_slots \u003d list(valid_disk_slots)"},{"line_number":182,"context_line":"    number_of_valid_disks \u003d len(valid_disk_slots)"}],"source_content_type":"text/x-python","patch_set":7,"id":"bf659307_3311665e","line":179,"range":{"start_line":178,"start_character":1,"end_line":179,"end_character":70},"updated":"2018-03-30 03:57:58.000000000","message":"Is raid_adapter_profile definitely include such keys?  Is it necessary to use try...except?","commit_id":"732134cc196e7a4636d434eda096677f4e4c94b0"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"fae89283bd36ec24dda5b9156f68180b39eba463","unresolved":false,"context_lines":[{"line_number":175,"context_line":"        reason \u003d (\u0027Cannot see any raid profile in \"%s\"\u0027 % node)"},{"line_number":176,"context_line":"        raise exception.IRMCOperationError(operation\u003d\u0027RAID config\u0027,"},{"line_number":177,"context_line":"                                           error\u003dreason)"},{"line_number":178,"context_line":"    valid_disks \u003d raid_adapter_profile[\u0027Server\u0027][\u0027HWConfigurationIrmc\u0027]["},{"line_number":179,"context_line":"        \u0027Adapters\u0027][\u0027RAIDAdapter\u0027][0][\u0027PhysicalDisks\u0027][\u0027PhysicalDisk\u0027]"},{"line_number":180,"context_line":"    valid_disk_slots \u003d [slot[\u0027Slot\u0027] for slot in valid_disks]"},{"line_number":181,"context_line":"    remain_valid_disk_slots \u003d list(valid_disk_slots)"},{"line_number":182,"context_line":"    number_of_valid_disks \u003d len(valid_disk_slots)"}],"source_content_type":"text/x-python","patch_set":7,"id":"bf659307_5634ecdd","line":179,"range":{"start_line":178,"start_character":1,"end_line":179,"end_character":70},"in_reply_to":"bf659307_3311665e","updated":"2018-04-02 03:23:12.000000000","message":"I had checked in L174, if they are passing L174 then we have full physical disks in raid profile without any errors. But if have nothing HDD in Server then we got None in PhysicalDisks, Thus I will check them before. Thanks.","commit_id":"732134cc196e7a4636d434eda096677f4e4c94b0"},{"author":{"_account_id":13702,"name":"yushiro","username":"yushiro","inactive":true},"change_message_id":"22912d4ae9d36a59335bd0d7ac5c667d84121ebb","unresolved":false,"context_lines":[{"line_number":283,"context_line":"        logical_disks \u003d target_raid_config[\u0027logical_disks\u0027]"},{"line_number":284,"context_line":"        for log_disk in logical_disks:"},{"line_number":285,"context_line":"            if log_disk.get(\u0027raid_level\u0027):"},{"line_number":286,"context_line":"                log_disk[\u0027raid_level\u0027] \u003d \\"},{"line_number":287,"context_line":"                    str(log_disk[\u0027raid_level\u0027]).replace(\u0027+\u0027, \u0027\u0027)"},{"line_number":288,"context_line":""},{"line_number":289,"context_line":"        # Validate physical disks on Fujitsu BM Server"},{"line_number":290,"context_line":"        _physical_disks_validation(node, logical_disks)"}],"source_content_type":"text/x-python","patch_set":7,"id":"bf659307_d3534a38","line":287,"range":{"start_line":286,"start_character":0,"end_line":287,"end_character":64},"updated":"2018-03-30 03:57:58.000000000","message":"log_disk[\u0027raid_level\u0027] \u003d str(\n                    log_disk[\u0027raid_level\u0027]).replace(\u0027+\u0027, \u0027\u0027)","commit_id":"732134cc196e7a4636d434eda096677f4e4c94b0"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"fae89283bd36ec24dda5b9156f68180b39eba463","unresolved":false,"context_lines":[{"line_number":283,"context_line":"        logical_disks \u003d target_raid_config[\u0027logical_disks\u0027]"},{"line_number":284,"context_line":"        for log_disk in logical_disks:"},{"line_number":285,"context_line":"            if log_disk.get(\u0027raid_level\u0027):"},{"line_number":286,"context_line":"                log_disk[\u0027raid_level\u0027] \u003d \\"},{"line_number":287,"context_line":"                    str(log_disk[\u0027raid_level\u0027]).replace(\u0027+\u0027, \u0027\u0027)"},{"line_number":288,"context_line":""},{"line_number":289,"context_line":"        # Validate physical disks on Fujitsu BM Server"},{"line_number":290,"context_line":"        _physical_disks_validation(node, logical_disks)"}],"source_content_type":"text/x-python","patch_set":7,"id":"bf659307_762fb087","line":287,"range":{"start_line":286,"start_character":0,"end_line":287,"end_character":64},"in_reply_to":"bf659307_d3534a38","updated":"2018-04-02 03:23:12.000000000","message":"Done","commit_id":"732134cc196e7a4636d434eda096677f4e4c94b0"},{"author":{"_account_id":19853,"name":"Nguyen Hung Phuong","email":"phuongnh@vn.fujitsu.com","username":"phuongnh"},"change_message_id":"8cdde8920c76361f5258d3bb17b04f7737bd2c48","unresolved":false,"context_lines":[{"line_number":65,"context_line":"}"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"def get_virtual_disk(node):"},{"line_number":69,"context_line":"    \"\"\"Get the virtual disk on a RAID controller."},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"    :param node: an ironic node object."}],"source_content_type":"text/x-python","patch_set":8,"id":"bf659307_d9126f62","line":68,"range":{"start_line":68,"start_character":4,"end_line":68,"end_character":20},"updated":"2018-04-02 07:35:00.000000000","message":"Should be \"get_virtual_disks\"","commit_id":"b368ddbfd49641c0f3c5f868f6630edb9cf4a63e"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"3879fac3c326f46493de61c34bb304ef4434c5d6","unresolved":false,"context_lines":[{"line_number":65,"context_line":"}"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"def get_virtual_disk(node):"},{"line_number":69,"context_line":"    \"\"\"Get the virtual disk on a RAID controller."},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"    :param node: an ironic node object."}],"source_content_type":"text/x-python","patch_set":8,"id":"bf659307_b19b8764","line":68,"range":{"start_line":68,"start_character":4,"end_line":68,"end_character":20},"in_reply_to":"bf659307_6bdd7bde","updated":"2018-04-11 10:20:30.000000000","message":"Done","commit_id":"b368ddbfd49641c0f3c5f868f6630edb9cf4a63e"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"5ecbc772c75007dff8283b4ebf54c136469b8d60","unresolved":false,"context_lines":[{"line_number":65,"context_line":"}"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"def get_virtual_disk(node):"},{"line_number":69,"context_line":"    \"\"\"Get the virtual disk on a RAID controller."},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"    :param node: an ironic node object."}],"source_content_type":"text/x-python","patch_set":8,"id":"bf659307_947c5573","line":68,"range":{"start_line":68,"start_character":4,"end_line":68,"end_character":20},"in_reply_to":"bf659307_6bdd7bde","updated":"2018-04-06 10:27:25.000000000","message":"Firstly, is this method necessary? If so, please add a prefix \u0027_\u0027 to the name because I don\u0027t believe this method is called from out of this module.","commit_id":"b368ddbfd49641c0f3c5f868f6630edb9cf4a63e"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"3879fac3c326f46493de61c34bb304ef4434c5d6","unresolved":false,"context_lines":[{"line_number":65,"context_line":"}"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"def get_virtual_disk(node):"},{"line_number":69,"context_line":"    \"\"\"Get the virtual disk on a RAID controller."},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"    :param node: an ironic node object."}],"source_content_type":"text/x-python","patch_set":8,"id":"bf659307_9198c36a","line":68,"range":{"start_line":68,"start_character":4,"end_line":68,"end_character":20},"in_reply_to":"bf659307_947c5573","updated":"2018-04-11 10:20:30.000000000","message":"Done","commit_id":"b368ddbfd49641c0f3c5f868f6630edb9cf4a63e"},{"author":{"_account_id":19853,"name":"Nguyen Hung Phuong","email":"phuongnh@vn.fujitsu.com","username":"phuongnh"},"change_message_id":"e2f882a6acf522aea752c38f950df47944c6aff1","unresolved":false,"context_lines":[{"line_number":65,"context_line":"}"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"def get_virtual_disk(node):"},{"line_number":69,"context_line":"    \"\"\"Get the virtual disk on a RAID controller."},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"    :param node: an ironic node object."}],"source_content_type":"text/x-python","patch_set":8,"id":"bf659307_6bdd7bde","line":68,"range":{"start_line":68,"start_character":4,"end_line":68,"end_character":20},"in_reply_to":"bf659307_d9126f62","updated":"2018-04-03 03:30:20.000000000","message":"Why the name is virtual_disks when you get raid_adapter_profile?","commit_id":"b368ddbfd49641c0f3c5f868f6630edb9cf4a63e"},{"author":{"_account_id":19853,"name":"Nguyen Hung Phuong","email":"phuongnh@vn.fujitsu.com","username":"phuongnh"},"change_message_id":"8cdde8920c76361f5258d3bb17b04f7737bd2c48","unresolved":false,"context_lines":[{"line_number":69,"context_line":"    \"\"\"Get the virtual disk on a RAID controller."},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"    :param node: an ironic node object."},{"line_number":72,"context_line":"    :raises: ELCMProfileNotFound on an error from python-scciclient."},{"line_number":73,"context_line":"    \"\"\""},{"line_number":74,"context_line":"    irmc_info \u003d node.driver_info"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"    LOG.info(\u0027IRMC driver is gathering virtual disk for node %s \u0027, node.uuid)"}],"source_content_type":"text/x-python","patch_set":8,"id":"bf659307_59065f22","line":73,"range":{"start_line":72,"start_character":3,"end_line":73,"end_character":7},"updated":"2018-04-02 07:35:00.000000000","message":":return is missing","commit_id":"b368ddbfd49641c0f3c5f868f6630edb9cf4a63e"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"3879fac3c326f46493de61c34bb304ef4434c5d6","unresolved":false,"context_lines":[{"line_number":69,"context_line":"    \"\"\"Get the virtual disk on a RAID controller."},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"    :param node: an ironic node object."},{"line_number":72,"context_line":"    :raises: ELCMProfileNotFound on an error from python-scciclient."},{"line_number":73,"context_line":"    \"\"\""},{"line_number":74,"context_line":"    irmc_info \u003d node.driver_info"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"    LOG.info(\u0027IRMC driver is gathering virtual disk for node %s \u0027, node.uuid)"}],"source_content_type":"text/x-python","patch_set":8,"id":"bf659307_51a22b9c","line":73,"range":{"start_line":72,"start_character":3,"end_line":73,"end_character":7},"in_reply_to":"bf659307_59065f22","updated":"2018-04-11 10:20:30.000000000","message":"Done","commit_id":"b368ddbfd49641c0f3c5f868f6630edb9cf4a63e"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"5ecbc772c75007dff8283b4ebf54c136469b8d60","unresolved":false,"context_lines":[{"line_number":77,"context_line":"    return client.get_raid_adapter_profile(irmc_info)"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"def create_virtual_disk(node):"},{"line_number":81,"context_line":"    \"\"\"Create virtual disk on a RAID controller."},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"    :param node: an ironic node object."}],"source_content_type":"text/x-python","patch_set":8,"id":"bf659307_14904595","line":80,"updated":"2018-04-06 10:27:25.000000000","message":"Please add \u0027_\u0027 in the head of the method name.","commit_id":"b368ddbfd49641c0f3c5f868f6630edb9cf4a63e"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"3879fac3c326f46493de61c34bb304ef4434c5d6","unresolved":false,"context_lines":[{"line_number":77,"context_line":"    return client.get_raid_adapter_profile(irmc_info)"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"def create_virtual_disk(node):"},{"line_number":81,"context_line":"    \"\"\"Create virtual disk on a RAID controller."},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"    :param node: an ironic node object."}],"source_content_type":"text/x-python","patch_set":8,"id":"bf659307_11acb38a","line":80,"in_reply_to":"bf659307_14904595","updated":"2018-04-11 10:20:30.000000000","message":"Done","commit_id":"b368ddbfd49641c0f3c5f868f6630edb9cf4a63e"},{"author":{"_account_id":19853,"name":"Nguyen Hung Phuong","email":"phuongnh@vn.fujitsu.com","username":"phuongnh"},"change_message_id":"8cdde8920c76361f5258d3bb17b04f7737bd2c48","unresolved":false,"context_lines":[{"line_number":81,"context_line":"    \"\"\"Create virtual disk on a RAID controller."},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"    :param node: an ironic node object."},{"line_number":84,"context_line":"    :raises: ELCMProfileNotFound on an error from python-scciclient."},{"line_number":85,"context_line":"    \"\"\""},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"    irmc_info \u003d node.driver_info"}],"source_content_type":"text/x-python","patch_set":8,"id":"bf659307_24790293","line":84,"range":{"start_line":84,"start_character":5,"end_line":84,"end_character":11},"updated":"2018-04-02 07:35:00.000000000","message":"return is missing.","commit_id":"b368ddbfd49641c0f3c5f868f6630edb9cf4a63e"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"5ecbc772c75007dff8283b4ebf54c136469b8d60","unresolved":false,"context_lines":[{"line_number":81,"context_line":"    \"\"\"Create virtual disk on a RAID controller."},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"    :param node: an ironic node object."},{"line_number":84,"context_line":"    :raises: ELCMProfileNotFound on an error from python-scciclient."},{"line_number":85,"context_line":"    \"\"\""},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"    irmc_info \u003d node.driver_info"}],"source_content_type":"text/x-python","patch_set":8,"id":"bf659307_54879db7","line":84,"range":{"start_line":84,"start_character":5,"end_line":84,"end_character":11},"in_reply_to":"bf659307_24790293","updated":"2018-04-06 10:27:25.000000000","message":"ELCMProfileNotFound is not raised because another exception is reraised.","commit_id":"b368ddbfd49641c0f3c5f868f6630edb9cf4a63e"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"3879fac3c326f46493de61c34bb304ef4434c5d6","unresolved":false,"context_lines":[{"line_number":81,"context_line":"    \"\"\"Create virtual disk on a RAID controller."},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"    :param node: an ironic node object."},{"line_number":84,"context_line":"    :raises: ELCMProfileNotFound on an error from python-scciclient."},{"line_number":85,"context_line":"    \"\"\""},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"    irmc_info \u003d node.driver_info"}],"source_content_type":"text/x-python","patch_set":8,"id":"bf659307_eb36d9e7","line":84,"range":{"start_line":84,"start_character":5,"end_line":84,"end_character":11},"in_reply_to":"bf659307_54879db7","updated":"2018-04-11 10:20:30.000000000","message":"I will add SCCI exception in there. Thanks","commit_id":"b368ddbfd49641c0f3c5f868f6630edb9cf4a63e"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"5ecbc772c75007dff8283b4ebf54c136469b8d60","unresolved":false,"context_lines":[{"line_number":89,"context_line":""},{"line_number":90,"context_line":"    try:"},{"line_number":91,"context_line":"        return client.create_raid_configuration(irmc_info, target_raid_config)"},{"line_number":92,"context_line":"    except client.ELCMProfileNotFound as exc:"},{"line_number":93,"context_line":"        LOG.error(\u0027IRMC driver failed to create virtual disk for node \u0027"},{"line_number":94,"context_line":"                  \u0027%(node_uuid)s. Reason: %(error)s.\u0027,"},{"line_number":95,"context_line":"                  {\u0027node_uuid\u0027: node.uuid, \u0027error\u0027: exc})"}],"source_content_type":"text/x-python","patch_set":8,"id":"bf659307_f4c111e6","line":92,"updated":"2018-04-06 10:27:25.000000000","message":"Why is only ELCMProfileNotFound caught? Shouldn\u0027t it be SCCIError?","commit_id":"b368ddbfd49641c0f3c5f868f6630edb9cf4a63e"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"3879fac3c326f46493de61c34bb304ef4434c5d6","unresolved":false,"context_lines":[{"line_number":89,"context_line":""},{"line_number":90,"context_line":"    try:"},{"line_number":91,"context_line":"        return client.create_raid_configuration(irmc_info, target_raid_config)"},{"line_number":92,"context_line":"    except client.ELCMProfileNotFound as exc:"},{"line_number":93,"context_line":"        LOG.error(\u0027IRMC driver failed to create virtual disk for node \u0027"},{"line_number":94,"context_line":"                  \u0027%(node_uuid)s. Reason: %(error)s.\u0027,"},{"line_number":95,"context_line":"                  {\u0027node_uuid\u0027: node.uuid, \u0027error\u0027: exc})"}],"source_content_type":"text/x-python","patch_set":8,"id":"bf659307_2b25b1ab","line":92,"in_reply_to":"bf659307_f4c111e6","updated":"2018-04-11 10:20:30.000000000","message":"Done","commit_id":"b368ddbfd49641c0f3c5f868f6630edb9cf4a63e"},{"author":{"_account_id":19853,"name":"Nguyen Hung Phuong","email":"phuongnh@vn.fujitsu.com","username":"phuongnh"},"change_message_id":"8cdde8920c76361f5258d3bb17b04f7737bd2c48","unresolved":false,"context_lines":[{"line_number":96,"context_line":"        raise exception.IRMCOperationError(error\u003dexc)"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"def _commit_raid_config(task, reboot\u003dFalse):"},{"line_number":100,"context_line":"    \"\"\"Perform to commit raid config into node.\"\"\""},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"    node \u003d task.node"}],"source_content_type":"text/x-python","patch_set":8,"id":"bf659307_64be1a00","line":99,"range":{"start_line":99,"start_character":0,"end_line":99,"end_character":44},"updated":"2018-04-02 07:35:00.000000000","message":"why this function is placed outside of the class?","commit_id":"b368ddbfd49641c0f3c5f868f6630edb9cf4a63e"},{"author":{"_account_id":19853,"name":"Nguyen Hung Phuong","email":"phuongnh@vn.fujitsu.com","username":"phuongnh"},"change_message_id":"8cdde8920c76361f5258d3bb17b04f7737bd2c48","unresolved":false,"context_lines":[{"line_number":141,"context_line":"    task.driver.power.reboot(task)"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"def delete_virtual_disk(node, logical_drive_no\u003dNone):"},{"line_number":145,"context_line":"    \"\"\"Delete the virtual disk on a RAID controller."},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"    :param node: an ironic node object."}],"source_content_type":"text/x-python","patch_set":8,"id":"bf659307_64493a5e","line":144,"range":{"start_line":144,"start_character":0,"end_line":144,"end_character":53},"updated":"2018-04-02 07:35:00.000000000","message":"this function should be moved to line 99.","commit_id":"b368ddbfd49641c0f3c5f868f6630edb9cf4a63e"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"3879fac3c326f46493de61c34bb304ef4434c5d6","unresolved":false,"context_lines":[{"line_number":141,"context_line":"    task.driver.power.reboot(task)"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"def delete_virtual_disk(node, logical_drive_no\u003dNone):"},{"line_number":145,"context_line":"    \"\"\"Delete the virtual disk on a RAID controller."},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"    :param node: an ironic node object."}],"source_content_type":"text/x-python","patch_set":8,"id":"bf659307_91b1a3e4","line":144,"range":{"start_line":144,"start_character":0,"end_line":144,"end_character":53},"in_reply_to":"bf659307_64493a5e","updated":"2018-04-11 10:20:30.000000000","message":"Done","commit_id":"b368ddbfd49641c0f3c5f868f6630edb9cf4a63e"},{"author":{"_account_id":19853,"name":"Nguyen Hung Phuong","email":"phuongnh@vn.fujitsu.com","username":"phuongnh"},"change_message_id":"8cdde8920c76361f5258d3bb17b04f7737bd2c48","unresolved":false,"context_lines":[{"line_number":146,"context_line":""},{"line_number":147,"context_line":"    :param node: an ironic node object."},{"line_number":148,"context_line":"    :param logical_drive_no: number of logical drive which needing delete."},{"line_number":149,"context_line":"    :raises: ELCMProfileNotFound on an error from python-scciclient."},{"line_number":150,"context_line":"    \"\"\""},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"    irmc_info \u003d node.driver_info"}],"source_content_type":"text/x-python","patch_set":8,"id":"bf659307_447c3682","line":149,"range":{"start_line":149,"start_character":5,"end_line":149,"end_character":11},"updated":"2018-04-02 07:35:00.000000000","message":"return is missing.","commit_id":"b368ddbfd49641c0f3c5f868f6630edb9cf4a63e"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"3879fac3c326f46493de61c34bb304ef4434c5d6","unresolved":false,"context_lines":[{"line_number":146,"context_line":""},{"line_number":147,"context_line":"    :param node: an ironic node object."},{"line_number":148,"context_line":"    :param logical_drive_no: number of logical drive which needing delete."},{"line_number":149,"context_line":"    :raises: ELCMProfileNotFound on an error from python-scciclient."},{"line_number":150,"context_line":"    \"\"\""},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"    irmc_info \u003d node.driver_info"}],"source_content_type":"text/x-python","patch_set":8,"id":"bf659307_b1b4e7d2","line":149,"range":{"start_line":149,"start_character":5,"end_line":149,"end_character":11},"in_reply_to":"bf659307_447c3682","updated":"2018-04-11 10:20:30.000000000","message":"Done","commit_id":"b368ddbfd49641c0f3c5f868f6630edb9cf4a63e"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"5ecbc772c75007dff8283b4ebf54c136469b8d60","unresolved":false,"context_lines":[{"line_number":154,"context_line":"    try:"},{"line_number":155,"context_line":"        return client.delete_raid_configuration(irmc_info, logical_drive_no)"},{"line_number":156,"context_line":"    except client.ELCMProfileNotFound as exc:"},{"line_number":157,"context_line":"        LOG.exception(\u0027IRMC driver failed to delete virtual disk \u0027"},{"line_number":158,"context_line":"                      \u0027%(virtual_disk)s for node %(node_uuid)s. \u0027"},{"line_number":159,"context_line":"                      \u0027Reason: %(error)s.\u0027,"},{"line_number":160,"context_line":"                      {\u0027virtual_disk\u0027: logical_drive_no, \u0027node_uuid\u0027:"}],"source_content_type":"text/x-python","patch_set":8,"id":"bf659307_d49f2d63","line":157,"updated":"2018-04-06 10:27:25.000000000","message":"LOG exception is usually used for an unexpected exception for getting a stack trace.","commit_id":"b368ddbfd49641c0f3c5f868f6630edb9cf4a63e"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"3879fac3c326f46493de61c34bb304ef4434c5d6","unresolved":false,"context_lines":[{"line_number":154,"context_line":"    try:"},{"line_number":155,"context_line":"        return client.delete_raid_configuration(irmc_info, logical_drive_no)"},{"line_number":156,"context_line":"    except client.ELCMProfileNotFound as exc:"},{"line_number":157,"context_line":"        LOG.exception(\u0027IRMC driver failed to delete virtual disk \u0027"},{"line_number":158,"context_line":"                      \u0027%(virtual_disk)s for node %(node_uuid)s. \u0027"},{"line_number":159,"context_line":"                      \u0027Reason: %(error)s.\u0027,"},{"line_number":160,"context_line":"                      {\u0027virtual_disk\u0027: logical_drive_no, \u0027node_uuid\u0027:"}],"source_content_type":"text/x-python","patch_set":8,"id":"bf659307_51cb0b52","line":157,"in_reply_to":"bf659307_d49f2d63","updated":"2018-04-11 10:20:30.000000000","message":"Done","commit_id":"b368ddbfd49641c0f3c5f868f6630edb9cf4a63e"},{"author":{"_account_id":19853,"name":"Nguyen Hung Phuong","email":"phuongnh@vn.fujitsu.com","username":"phuongnh"},"change_message_id":"8cdde8920c76361f5258d3bb17b04f7737bd2c48","unresolved":false,"context_lines":[{"line_number":162,"context_line":"        raise exception.IRMCOperationError(error\u003dexc)"},{"line_number":163,"context_line":""},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"def _physical_disks_validation(node, logical_disks):"},{"line_number":166,"context_line":"    \"\"\"Validate physical disks on a RAID configuration."},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"    :param node: an ironic node object."}],"source_content_type":"text/x-python","patch_set":8,"id":"bf659307_e4f1ca02","line":165,"range":{"start_line":165,"start_character":4,"end_line":165,"end_character":30},"updated":"2018-04-02 07:35:00.000000000","message":"why this function is placed outside of the class?","commit_id":"b368ddbfd49641c0f3c5f868f6630edb9cf4a63e"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"5ecbc772c75007dff8283b4ebf54c136469b8d60","unresolved":false,"context_lines":[{"line_number":170,"context_line":"    :raises: IRMCOperationError on an error."},{"line_number":171,"context_line":"    \"\"\""},{"line_number":172,"context_line":""},{"line_number":173,"context_line":"    raid_adapter_profile, existing_logical_drives \u003d get_virtual_disk(node)"},{"line_number":174,"context_line":"    if raid_adapter_profile is None:"},{"line_number":175,"context_line":"        reason \u003d (\u0027Cannot see any raid profile in \"%s\"\u0027 % node)"},{"line_number":176,"context_line":"        raise exception.IRMCOperationError(operation\u003d\u0027RAID config\u0027,"}],"source_content_type":"text/x-python","patch_set":8,"id":"bf659307_fe66d229","line":173,"range":{"start_line":173,"start_character":26,"end_line":173,"end_character":49},"updated":"2018-04-06 10:27:25.000000000","message":"This return value doesn\u0027t seem used.","commit_id":"b368ddbfd49641c0f3c5f868f6630edb9cf4a63e"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"3879fac3c326f46493de61c34bb304ef4434c5d6","unresolved":false,"context_lines":[{"line_number":170,"context_line":"    :raises: IRMCOperationError on an error."},{"line_number":171,"context_line":"    \"\"\""},{"line_number":172,"context_line":""},{"line_number":173,"context_line":"    raid_adapter_profile, existing_logical_drives \u003d get_virtual_disk(node)"},{"line_number":174,"context_line":"    if raid_adapter_profile is None:"},{"line_number":175,"context_line":"        reason \u003d (\u0027Cannot see any raid profile in \"%s\"\u0027 % node)"},{"line_number":176,"context_line":"        raise exception.IRMCOperationError(operation\u003d\u0027RAID config\u0027,"}],"source_content_type":"text/x-python","patch_set":8,"id":"bf659307_b15ce7ed","line":173,"range":{"start_line":173,"start_character":26,"end_line":173,"end_character":49},"in_reply_to":"bf659307_fe66d229","updated":"2018-04-11 10:20:30.000000000","message":"Done","commit_id":"b368ddbfd49641c0f3c5f868f6630edb9cf4a63e"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"5ecbc772c75007dff8283b4ebf54c136469b8d60","unresolved":false,"context_lines":[{"line_number":172,"context_line":""},{"line_number":173,"context_line":"    raid_adapter_profile, existing_logical_drives \u003d get_virtual_disk(node)"},{"line_number":174,"context_line":"    if raid_adapter_profile is None:"},{"line_number":175,"context_line":"        reason \u003d (\u0027Cannot see any raid profile in \"%s\"\u0027 % node)"},{"line_number":176,"context_line":"        raise exception.IRMCOperationError(operation\u003d\u0027RAID config\u0027,"},{"line_number":177,"context_line":"                                           error\u003dreason)"},{"line_number":178,"context_line":"    valid_disks \u003d raid_adapter_profile[\u0027Server\u0027][\u0027HWConfigurationIrmc\u0027]["}],"source_content_type":"text/x-python","patch_set":8,"id":"bf659307_54231dbf","line":175,"range":{"start_line":175,"start_character":58,"end_line":175,"end_character":62},"updated":"2018-04-06 10:27:25.000000000","message":"s/node/node.uuid/","commit_id":"b368ddbfd49641c0f3c5f868f6630edb9cf4a63e"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"3879fac3c326f46493de61c34bb304ef4434c5d6","unresolved":false,"context_lines":[{"line_number":172,"context_line":""},{"line_number":173,"context_line":"    raid_adapter_profile, existing_logical_drives \u003d get_virtual_disk(node)"},{"line_number":174,"context_line":"    if raid_adapter_profile is None:"},{"line_number":175,"context_line":"        reason \u003d (\u0027Cannot see any raid profile in \"%s\"\u0027 % node)"},{"line_number":176,"context_line":"        raise exception.IRMCOperationError(operation\u003d\u0027RAID config\u0027,"},{"line_number":177,"context_line":"                                           error\u003dreason)"},{"line_number":178,"context_line":"    valid_disks \u003d raid_adapter_profile[\u0027Server\u0027][\u0027HWConfigurationIrmc\u0027]["}],"source_content_type":"text/x-python","patch_set":8,"id":"bf659307_f1625fad","line":175,"range":{"start_line":175,"start_character":58,"end_line":175,"end_character":62},"in_reply_to":"bf659307_54231dbf","updated":"2018-04-11 10:20:30.000000000","message":"Done","commit_id":"b368ddbfd49641c0f3c5f868f6630edb9cf4a63e"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"5ecbc772c75007dff8283b4ebf54c136469b8d60","unresolved":false,"context_lines":[{"line_number":178,"context_line":"    valid_disks \u003d raid_adapter_profile[\u0027Server\u0027][\u0027HWConfigurationIrmc\u0027]["},{"line_number":179,"context_line":"        \u0027Adapters\u0027][\u0027RAIDAdapter\u0027][0][\u0027PhysicalDisks\u0027]"},{"line_number":180,"context_line":"    if valid_disks is None:"},{"line_number":181,"context_line":"        reason \u003d (\u0027Cannot see any HDD over \"%s\" in Bare metal\u0027 % node)"},{"line_number":182,"context_line":"        raise exception.IRMCOperationError(operation\u003d\u0027RAID config\u0027,"},{"line_number":183,"context_line":"                                           error\u003dreason)"},{"line_number":184,"context_line":"    valid_disk_slots \u003d [slot[\u0027Slot\u0027] for slot in valid_disks[\u0027PhysicalDisk\u0027]]"}],"source_content_type":"text/x-python","patch_set":8,"id":"bf659307_f41d9173","line":181,"range":{"start_line":181,"start_character":65,"end_line":181,"end_character":69},"updated":"2018-04-06 10:27:25.000000000","message":"s/node/node.uuid/","commit_id":"b368ddbfd49641c0f3c5f868f6630edb9cf4a63e"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"3879fac3c326f46493de61c34bb304ef4434c5d6","unresolved":false,"context_lines":[{"line_number":178,"context_line":"    valid_disks \u003d raid_adapter_profile[\u0027Server\u0027][\u0027HWConfigurationIrmc\u0027]["},{"line_number":179,"context_line":"        \u0027Adapters\u0027][\u0027RAIDAdapter\u0027][0][\u0027PhysicalDisks\u0027]"},{"line_number":180,"context_line":"    if valid_disks is None:"},{"line_number":181,"context_line":"        reason \u003d (\u0027Cannot see any HDD over \"%s\" in Bare metal\u0027 % node)"},{"line_number":182,"context_line":"        raise exception.IRMCOperationError(operation\u003d\u0027RAID config\u0027,"},{"line_number":183,"context_line":"                                           error\u003dreason)"},{"line_number":184,"context_line":"    valid_disk_slots \u003d [slot[\u0027Slot\u0027] for slot in valid_disks[\u0027PhysicalDisk\u0027]]"}],"source_content_type":"text/x-python","patch_set":8,"id":"bf659307_3168d785","line":181,"range":{"start_line":181,"start_character":65,"end_line":181,"end_character":69},"in_reply_to":"bf659307_f41d9173","updated":"2018-04-11 10:20:30.000000000","message":"Done","commit_id":"b368ddbfd49641c0f3c5f868f6630edb9cf4a63e"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"5ecbc772c75007dff8283b4ebf54c136469b8d60","unresolved":false,"context_lines":[{"line_number":274,"context_line":"        :param create_nonroot_volumes: If True, non-root volumes are"},{"line_number":275,"context_line":"            created. If False, no non-root volumes are created. Default"},{"line_number":276,"context_line":"            is True."},{"line_number":277,"context_line":"        :returns: raid_config: information of raid configuration after"},{"line_number":278,"context_line":"            create into BM."},{"line_number":279,"context_line":"        :raises: MissingParameterValue, if node.target_raid_config is missing"},{"line_number":280,"context_line":"            or empty."}],"source_content_type":"text/x-python","patch_set":8,"id":"bf659307_af20269d","line":277,"updated":"2018-04-06 10:27:25.000000000","message":"We should follow the base definition.","commit_id":"b368ddbfd49641c0f3c5f868f6630edb9cf4a63e"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"3879fac3c326f46493de61c34bb304ef4434c5d6","unresolved":false,"context_lines":[{"line_number":274,"context_line":"        :param create_nonroot_volumes: If True, non-root volumes are"},{"line_number":275,"context_line":"            created. If False, no non-root volumes are created. Default"},{"line_number":276,"context_line":"            is True."},{"line_number":277,"context_line":"        :returns: raid_config: information of raid configuration after"},{"line_number":278,"context_line":"            create into BM."},{"line_number":279,"context_line":"        :raises: MissingParameterValue, if node.target_raid_config is missing"},{"line_number":280,"context_line":"            or empty."}],"source_content_type":"text/x-python","patch_set":8,"id":"bf659307_7183afaa","line":277,"in_reply_to":"bf659307_af20269d","updated":"2018-04-11 10:20:30.000000000","message":"Done","commit_id":"b368ddbfd49641c0f3c5f868f6630edb9cf4a63e"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"5ecbc772c75007dff8283b4ebf54c136469b8d60","unresolved":false,"context_lines":[{"line_number":276,"context_line":"            is True."},{"line_number":277,"context_line":"        :returns: raid_config: information of raid configuration after"},{"line_number":278,"context_line":"            create into BM."},{"line_number":279,"context_line":"        :raises: MissingParameterValue, if node.target_raid_config is missing"},{"line_number":280,"context_line":"            or empty."},{"line_number":281,"context_line":"        :raises: IRMCOperationError on an error from scciclient"},{"line_number":282,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":8,"id":"bf659307_14584554","line":279,"updated":"2018-04-06 10:27:25.000000000","message":"Yes, I believe we should raise this.","commit_id":"b368ddbfd49641c0f3c5f868f6630edb9cf4a63e"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"5ecbc772c75007dff8283b4ebf54c136469b8d60","unresolved":false,"context_lines":[{"line_number":287,"context_line":"        logical_disks \u003d target_raid_config[\u0027logical_disks\u0027]"},{"line_number":288,"context_line":"        for log_disk in logical_disks:"},{"line_number":289,"context_line":"            if log_disk.get(\u0027raid_level\u0027):"},{"line_number":290,"context_line":"                log_disk[\u0027raid_level\u0027] \u003d str("},{"line_number":291,"context_line":"                    log_disk[\u0027raid_level\u0027]).replace(\u0027+\u0027, \u0027\u0027)"},{"line_number":292,"context_line":""},{"line_number":293,"context_line":"        # Validate physical disks on Fujitsu BM Server"}],"source_content_type":"text/x-python","patch_set":8,"id":"bf659307_940c5595","line":290,"updated":"2018-04-06 10:27:25.000000000","message":"Is str() necessary? If so, probably we should use six.text() for compatibility between python 2 and 3.","commit_id":"b368ddbfd49641c0f3c5f868f6630edb9cf4a63e"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"3879fac3c326f46493de61c34bb304ef4434c5d6","unresolved":false,"context_lines":[{"line_number":287,"context_line":"        logical_disks \u003d target_raid_config[\u0027logical_disks\u0027]"},{"line_number":288,"context_line":"        for log_disk in logical_disks:"},{"line_number":289,"context_line":"            if log_disk.get(\u0027raid_level\u0027):"},{"line_number":290,"context_line":"                log_disk[\u0027raid_level\u0027] \u003d str("},{"line_number":291,"context_line":"                    log_disk[\u0027raid_level\u0027]).replace(\u0027+\u0027, \u0027\u0027)"},{"line_number":292,"context_line":""},{"line_number":293,"context_line":"        # Validate physical disks on Fujitsu BM Server"}],"source_content_type":"text/x-python","patch_set":8,"id":"bf659307_ec860866","line":290,"in_reply_to":"bf659307_940c5595","updated":"2018-04-11 10:20:30.000000000","message":"Done","commit_id":"b368ddbfd49641c0f3c5f868f6630edb9cf4a63e"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"5ecbc772c75007dff8283b4ebf54c136469b8d60","unresolved":false,"context_lines":[{"line_number":308,"context_line":"        node \u003d task.node"},{"line_number":309,"context_line":"        node_uuid \u003d task.node.uuid"},{"line_number":310,"context_line":""},{"line_number":311,"context_line":"        # TODO(trungnv): Delete a part of logical_drive in raid config"},{"line_number":312,"context_line":"        # Default delete everything raid configuration in BM Server"},{"line_number":313,"context_line":"        delete_virtual_disk(node)"},{"line_number":314,"context_line":"        LOG.info(\u0027RAID config is deleted successfully on node %s\u0027, node_uuid)"}],"source_content_type":"text/x-python","patch_set":8,"id":"bf659307_0f51120f","line":311,"updated":"2018-04-06 10:27:25.000000000","message":"Why do we need this?","commit_id":"b368ddbfd49641c0f3c5f868f6630edb9cf4a63e"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"3879fac3c326f46493de61c34bb304ef4434c5d6","unresolved":false,"context_lines":[{"line_number":308,"context_line":"        node \u003d task.node"},{"line_number":309,"context_line":"        node_uuid \u003d task.node.uuid"},{"line_number":310,"context_line":""},{"line_number":311,"context_line":"        # TODO(trungnv): Delete a part of logical_drive in raid config"},{"line_number":312,"context_line":"        # Default delete everything raid configuration in BM Server"},{"line_number":313,"context_line":"        delete_virtual_disk(node)"},{"line_number":314,"context_line":"        LOG.info(\u0027RAID config is deleted successfully on node %s\u0027, node_uuid)"}],"source_content_type":"text/x-python","patch_set":8,"id":"bf659307_d1895b26","line":311,"in_reply_to":"bf659307_0f51120f","updated":"2018-04-11 10:20:30.000000000","message":"No. I will remove them. Thanks","commit_id":"b368ddbfd49641c0f3c5f868f6630edb9cf4a63e"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"5ecbc772c75007dff8283b4ebf54c136469b8d60","unresolved":false,"context_lines":[{"line_number":311,"context_line":"        # TODO(trungnv): Delete a part of logical_drive in raid config"},{"line_number":312,"context_line":"        # Default delete everything raid configuration in BM Server"},{"line_number":313,"context_line":"        delete_virtual_disk(node)"},{"line_number":314,"context_line":"        LOG.info(\u0027RAID config is deleted successfully on node %s\u0027, node_uuid)"}],"source_content_type":"text/x-python","patch_set":8,"id":"bf659307_2f49765f","line":314,"updated":"2018-04-06 10:27:25.000000000","message":"We also need to clear node.raid_config. See the base definition of this method.","commit_id":"b368ddbfd49641c0f3c5f868f6630edb9cf4a63e"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"3879fac3c326f46493de61c34bb304ef4434c5d6","unresolved":false,"context_lines":[{"line_number":311,"context_line":"        # TODO(trungnv): Delete a part of logical_drive in raid config"},{"line_number":312,"context_line":"        # Default delete everything raid configuration in BM Server"},{"line_number":313,"context_line":"        delete_virtual_disk(node)"},{"line_number":314,"context_line":"        LOG.info(\u0027RAID config is deleted successfully on node %s\u0027, node_uuid)"}],"source_content_type":"text/x-python","patch_set":8,"id":"bf659307_6b796991","line":314,"in_reply_to":"bf659307_2f49765f","updated":"2018-04-11 10:20:30.000000000","message":"Done","commit_id":"b368ddbfd49641c0f3c5f868f6630edb9cf4a63e"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"722f09c6404d04f227208ec573d1b9ec30cf597b","unresolved":false,"context_lines":[{"line_number":85,"context_line":"    \"\"\"Create raid adapter info on a RAID controller."},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"    :param node: an ironic node object."},{"line_number":88,"context_line":"    :raises: ELCMProfileNotFound on an error from python-scciclient."},{"line_number":89,"context_line":"             SCCIClientError if SCCI failed from python-scciclient"},{"line_number":90,"context_line":"    \"\"\""},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"    irmc_info \u003d node.driver_info"}],"source_content_type":"text/x-python","patch_set":9,"id":"bf659307_c0c38488","line":89,"range":{"start_line":88,"start_character":0,"end_line":89,"end_character":66},"updated":"2018-04-11 12:27:43.000000000","message":"This method raises IRMCOperationError.","commit_id":"4f47b407272e31997e82d532b52afe5dc457dc1b"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"548ecc33b063ac7ad1344d1fa48ce9206c2cdd4f","unresolved":false,"context_lines":[{"line_number":85,"context_line":"    \"\"\"Create raid adapter info on a RAID controller."},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"    :param node: an ironic node object."},{"line_number":88,"context_line":"    :raises: ELCMProfileNotFound on an error from python-scciclient."},{"line_number":89,"context_line":"             SCCIClientError if SCCI failed from python-scciclient"},{"line_number":90,"context_line":"    \"\"\""},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"    irmc_info \u003d node.driver_info"}],"source_content_type":"text/x-python","patch_set":9,"id":"bf659307_1ef6a9d8","line":89,"range":{"start_line":88,"start_character":0,"end_line":89,"end_character":66},"in_reply_to":"bf659307_c0c38488","updated":"2018-04-12 04:48:16.000000000","message":"Done","commit_id":"4f47b407272e31997e82d532b52afe5dc457dc1b"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"722f09c6404d04f227208ec573d1b9ec30cf597b","unresolved":false,"context_lines":[{"line_number":153,"context_line":"    node.raid_config[\u0027logical_disks\u0027].append({\u0027controller\u0027: controller})"},{"line_number":154,"context_line":"    if raid_adapter_info[\u0027LogicalDrives\u0027] is None:"},{"line_number":155,"context_line":"        node.raid_config[\u0027logical_disks\u0027].append({\u0027raid_level\u0027: {}})"},{"line_number":156,"context_line":"        return raid_common.update_raid_info(node, node.raid_config)"},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"    logical_drives \u003d raid_adapter_info[\u0027LogicalDrives\u0027][\u0027LogicalDrive\u0027]"},{"line_number":159,"context_line":"    for logical_drive in logical_drives:"}],"source_content_type":"text/x-python","patch_set":9,"id":"bf659307_80ea6cd5","line":156,"updated":"2018-04-11 12:27:43.000000000","message":"update_raid_config() returns nothing. This looks confusing.","commit_id":"4f47b407272e31997e82d532b52afe5dc457dc1b"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"548ecc33b063ac7ad1344d1fa48ce9206c2cdd4f","unresolved":false,"context_lines":[{"line_number":153,"context_line":"    node.raid_config[\u0027logical_disks\u0027].append({\u0027controller\u0027: controller})"},{"line_number":154,"context_line":"    if raid_adapter_info[\u0027LogicalDrives\u0027] is None:"},{"line_number":155,"context_line":"        node.raid_config[\u0027logical_disks\u0027].append({\u0027raid_level\u0027: {}})"},{"line_number":156,"context_line":"        return raid_common.update_raid_info(node, node.raid_config)"},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"    logical_drives \u003d raid_adapter_info[\u0027LogicalDrives\u0027][\u0027LogicalDrive\u0027]"},{"line_number":159,"context_line":"    for logical_drive in logical_drives:"}],"source_content_type":"text/x-python","patch_set":9,"id":"bf659307_fe21754e","line":156,"in_reply_to":"bf659307_80ea6cd5","updated":"2018-04-12 04:48:16.000000000","message":"This will return values when delete_configuration method finish. But, I will remove them and only return empty for raid_config in delete_configuration method.","commit_id":"4f47b407272e31997e82d532b52afe5dc457dc1b"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"722f09c6404d04f227208ec573d1b9ec30cf597b","unresolved":false,"context_lines":[{"line_number":286,"context_line":"            is True."},{"line_number":287,"context_line":"        :returns: states.CLEANWAIT if RAID configuration is in progress"},{"line_number":288,"context_line":"            asynchronously or None if it is complete."},{"line_number":289,"context_line":"        :raises: MissingParameterValue, if node.target_raid_config is missing"},{"line_number":290,"context_line":"            or empty."},{"line_number":291,"context_line":"        :raises: IRMCOperationError on an error from scciclient"},{"line_number":292,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":9,"id":"bf659307_00e97cb5","line":289,"updated":"2018-04-11 12:27:43.000000000","message":"Please raise this exception as described here.","commit_id":"4f47b407272e31997e82d532b52afe5dc457dc1b"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"548ecc33b063ac7ad1344d1fa48ce9206c2cdd4f","unresolved":false,"context_lines":[{"line_number":286,"context_line":"            is True."},{"line_number":287,"context_line":"        :returns: states.CLEANWAIT if RAID configuration is in progress"},{"line_number":288,"context_line":"            asynchronously or None if it is complete."},{"line_number":289,"context_line":"        :raises: MissingParameterValue, if node.target_raid_config is missing"},{"line_number":290,"context_line":"            or empty."},{"line_number":291,"context_line":"        :raises: IRMCOperationError on an error from scciclient"},{"line_number":292,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":9,"id":"bf659307_1e01c938","line":289,"in_reply_to":"bf659307_00e97cb5","updated":"2018-04-12 04:48:16.000000000","message":"Done","commit_id":"4f47b407272e31997e82d532b52afe5dc457dc1b"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"722f09c6404d04f227208ec573d1b9ec30cf597b","unresolved":false,"context_lines":[{"line_number":306,"context_line":"        # Executing raid configuration on Fujitsu BM Server"},{"line_number":307,"context_line":"        _create_raid_adapter(node)"},{"line_number":308,"context_line":""},{"line_number":309,"context_line":"        return _commit_raid_config(task, reboot\u003dTrue)"},{"line_number":310,"context_line":""},{"line_number":311,"context_line":"    @METRICS.timer(\u0027IrmcRAID.delete_configuration\u0027)"},{"line_number":312,"context_line":"    @base.clean_step(priority\u003d0)"}],"source_content_type":"text/x-python","patch_set":9,"id":"bf659307_a0f9b0c8","line":309,"updated":"2018-04-11 12:27:43.000000000","message":"It seems that _commot_raid_config() returns nothing.","commit_id":"4f47b407272e31997e82d532b52afe5dc457dc1b"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"548ecc33b063ac7ad1344d1fa48ce9206c2cdd4f","unresolved":false,"context_lines":[{"line_number":306,"context_line":"        # Executing raid configuration on Fujitsu BM Server"},{"line_number":307,"context_line":"        _create_raid_adapter(node)"},{"line_number":308,"context_line":""},{"line_number":309,"context_line":"        return _commit_raid_config(task, reboot\u003dTrue)"},{"line_number":310,"context_line":""},{"line_number":311,"context_line":"    @METRICS.timer(\u0027IrmcRAID.delete_configuration\u0027)"},{"line_number":312,"context_line":"    @base.clean_step(priority\u003d0)"}],"source_content_type":"text/x-python","patch_set":9,"id":"bf659307_f96c2f37","line":309,"in_reply_to":"bf659307_a0f9b0c8","updated":"2018-04-12 04:48:16.000000000","message":"No. this method will return raid_config values alogn with raid information. I has tested them.","commit_id":"4f47b407272e31997e82d532b52afe5dc457dc1b"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"722f09c6404d04f227208ec573d1b9ec30cf597b","unresolved":false,"context_lines":[{"line_number":322,"context_line":""},{"line_number":323,"context_line":"        # Default delete everything raid configuration in BM Server"},{"line_number":324,"context_line":"        _delete_raid_adapter(node)"},{"line_number":325,"context_line":"        LOG.info(\u0027RAID config is deleted successfully on node %s\u0027, node_uuid)"},{"line_number":326,"context_line":""},{"line_number":327,"context_line":"        return _commit_raid_config(task)"}],"source_content_type":"text/x-python","patch_set":9,"id":"bf659307_002adc2a","line":325,"updated":"2018-04-11 12:27:43.000000000","message":"We also need to get node.raid_config empty in this method.","commit_id":"4f47b407272e31997e82d532b52afe5dc457dc1b"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"548ecc33b063ac7ad1344d1fa48ce9206c2cdd4f","unresolved":false,"context_lines":[{"line_number":322,"context_line":""},{"line_number":323,"context_line":"        # Default delete everything raid configuration in BM Server"},{"line_number":324,"context_line":"        _delete_raid_adapter(node)"},{"line_number":325,"context_line":"        LOG.info(\u0027RAID config is deleted successfully on node %s\u0027, node_uuid)"},{"line_number":326,"context_line":""},{"line_number":327,"context_line":"        return _commit_raid_config(task)"}],"source_content_type":"text/x-python","patch_set":9,"id":"bf659307_19256309","line":325,"in_reply_to":"bf659307_002adc2a","updated":"2018-04-12 04:48:16.000000000","message":"Done","commit_id":"4f47b407272e31997e82d532b52afe5dc457dc1b"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"722f09c6404d04f227208ec573d1b9ec30cf597b","unresolved":false,"context_lines":[{"line_number":324,"context_line":"        _delete_raid_adapter(node)"},{"line_number":325,"context_line":"        LOG.info(\u0027RAID config is deleted successfully on node %s\u0027, node_uuid)"},{"line_number":326,"context_line":""},{"line_number":327,"context_line":"        return _commit_raid_config(task)"}],"source_content_type":"text/x-python","patch_set":9,"id":"bf659307_a0221051","line":327,"updated":"2018-04-11 12:27:43.000000000","message":"Is this necessary?","commit_id":"4f47b407272e31997e82d532b52afe5dc457dc1b"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"548ecc33b063ac7ad1344d1fa48ce9206c2cdd4f","unresolved":false,"context_lines":[{"line_number":324,"context_line":"        _delete_raid_adapter(node)"},{"line_number":325,"context_line":"        LOG.info(\u0027RAID config is deleted successfully on node %s\u0027, node_uuid)"},{"line_number":326,"context_line":""},{"line_number":327,"context_line":"        return _commit_raid_config(task)"}],"source_content_type":"text/x-python","patch_set":9,"id":"bf659307_5ede613e","line":327,"in_reply_to":"bf659307_a0221051","updated":"2018-04-12 04:48:16.000000000","message":"perhaps, we don\u0027t need return any values for raid_config in this case. Only return empty dict for raid_config is well.","commit_id":"4f47b407272e31997e82d532b52afe5dc457dc1b"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"f01a5ecc94da8745870e5bcbbccc9023032eb3aa","unresolved":false,"context_lines":[{"line_number":91,"context_line":""},{"line_number":92,"context_line":"    :param report: SCCI report information."},{"line_number":93,"context_line":"    :raises: IRMCOperationError on an error from python-scciclient."},{"line_number":94,"context_line":"    :returns: list of bgi status."},{"line_number":95,"context_line":"    \"\"\""},{"line_number":96,"context_line":"    try:"},{"line_number":97,"context_line":"        return client.scci.get_raid_bgi_status(report)"}],"source_content_type":"text/x-python","patch_set":13,"id":"5f7c97a3_1fcd0184","line":94,"updated":"2018-05-16 07:29:26.000000000","message":"It seems that the library API returns dict.","commit_id":"bcc986fee5c2b2f4d00147d1746e6e2214afaf56"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"7c859dd826cf972ee2f55ce99eb756c4cd239f2a","unresolved":false,"context_lines":[{"line_number":91,"context_line":""},{"line_number":92,"context_line":"    :param report: SCCI report information."},{"line_number":93,"context_line":"    :raises: IRMCOperationError on an error from python-scciclient."},{"line_number":94,"context_line":"    :returns: list of bgi status."},{"line_number":95,"context_line":"    \"\"\""},{"line_number":96,"context_line":"    try:"},{"line_number":97,"context_line":"        return client.scci.get_raid_bgi_status(report)"}],"source_content_type":"text/x-python","patch_set":13,"id":"5f7c97a3_88d47549","line":94,"in_reply_to":"5f7c97a3_1fcd0184","updated":"2018-05-18 07:48:15.000000000","message":"Done","commit_id":"bcc986fee5c2b2f4d00147d1746e6e2214afaf56"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"f01a5ecc94da8745870e5bcbbccc9023032eb3aa","unresolved":false,"context_lines":[{"line_number":97,"context_line":"        return client.scci.get_raid_bgi_status(report)"},{"line_number":98,"context_line":"    except client.scci.SCCIInvalidInputError:"},{"line_number":99,"context_line":"        LOG.info(\u0027ServerView RAID not available in Baremetal Server\u0027)"},{"line_number":100,"context_line":"        return \u0027Fail\u0027"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"def _get_physical_disk(node):"}],"source_content_type":"text/x-python","patch_set":13,"id":"5f7c97a3_3fa9dd8e","line":100,"updated":"2018-05-16 07:29:26.000000000","message":"Can\u0027t we raise an exception for notifying an error? At least, I\u0027d like to avoid returning a string here, whose type is different from a normal result.","commit_id":"bcc986fee5c2b2f4d00147d1746e6e2214afaf56"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"7c859dd826cf972ee2f55ce99eb756c4cd239f2a","unresolved":false,"context_lines":[{"line_number":97,"context_line":"        return client.scci.get_raid_bgi_status(report)"},{"line_number":98,"context_line":"    except client.scci.SCCIInvalidInputError:"},{"line_number":99,"context_line":"        LOG.info(\u0027ServerView RAID not available in Baremetal Server\u0027)"},{"line_number":100,"context_line":"        return \u0027Fail\u0027"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"def _get_physical_disk(node):"}],"source_content_type":"text/x-python","patch_set":13,"id":"5f7c97a3_133c1a2d","line":100,"in_reply_to":"5f7c97a3_3fa9dd8e","updated":"2018-05-18 07:48:15.000000000","message":"Done","commit_id":"bcc986fee5c2b2f4d00147d1746e6e2214afaf56"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"f01a5ecc94da8745870e5bcbbccc9023032eb3aa","unresolved":false,"context_lines":[{"line_number":148,"context_line":"    irmc_info \u003d node.driver_info"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"    try:"},{"line_number":151,"context_line":"        return client.elcm.delete_raid_configuration(irmc_info)"},{"line_number":152,"context_line":"    except client.scci.SCCIClientError as exc:"},{"line_number":153,"context_line":"        LOG.error(\u0027IRMC driver failed to delete raid adapter info \u0027"},{"line_number":154,"context_line":"                  \u0027for node %(node_uuid)s. Reason: %(error)s.\u0027,"}],"source_content_type":"text/x-python","patch_set":13,"id":"5f7c97a3_5f85b905","line":151,"range":{"start_line":151,"start_character":8,"end_line":151,"end_character":15},"updated":"2018-05-16 07:29:26.000000000","message":"return is not necessary because delete_raid_configuration() returns nothing.","commit_id":"bcc986fee5c2b2f4d00147d1746e6e2214afaf56"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"7c859dd826cf972ee2f55ce99eb756c4cd239f2a","unresolved":false,"context_lines":[{"line_number":148,"context_line":"    irmc_info \u003d node.driver_info"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"    try:"},{"line_number":151,"context_line":"        return client.elcm.delete_raid_configuration(irmc_info)"},{"line_number":152,"context_line":"    except client.scci.SCCIClientError as exc:"},{"line_number":153,"context_line":"        LOG.error(\u0027IRMC driver failed to delete raid adapter info \u0027"},{"line_number":154,"context_line":"                  \u0027for node %(node_uuid)s. Reason: %(error)s.\u0027,"}],"source_content_type":"text/x-python","patch_set":13,"id":"5f7c97a3_68423911","line":151,"range":{"start_line":151,"start_character":8,"end_line":151,"end_character":15},"in_reply_to":"5f7c97a3_5f85b905","updated":"2018-05-18 07:48:15.000000000","message":"Done","commit_id":"bcc986fee5c2b2f4d00147d1746e6e2214afaf56"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"f01a5ecc94da8745870e5bcbbccc9023032eb3aa","unresolved":false,"context_lines":[{"line_number":181,"context_line":""},{"line_number":182,"context_line":"    logical_drives \u003d raid_adapter_info[\u0027LogicalDrives\u0027][\u0027LogicalDrive\u0027]"},{"line_number":183,"context_line":"    for logical_drive in logical_drives:"},{"line_number":184,"context_line":"        node.raid_config[\u0027logical_disks\u0027].append({\u0027raid_level\u0027: {"},{"line_number":185,"context_line":"            \u0027logical_drive_number\u0027: logical_drive[\u0027@Number\u0027], \u0027raid_level\u0027:"},{"line_number":186,"context_line":"                logical_drive[\u0027RaidLevel\u0027], \u0027name\u0027: logical_drive[\u0027Name\u0027],"},{"line_number":187,"context_line":"            \u0027 size\u0027: logical_drive[\u0027Size\u0027]}})"}],"source_content_type":"text/x-python","patch_set":13,"id":"5f7c97a3_427cfe70","line":184,"updated":"2018-05-16 07:29:26.000000000","message":"Probably, it would be better to keep raid_level a string as target_raid_config. Though there doesn\u0027t seem to be a strict definition, it looks slightly confusing. I prefer using another field to record such a vendor specific information.","commit_id":"bcc986fee5c2b2f4d00147d1746e6e2214afaf56"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"7c859dd826cf972ee2f55ce99eb756c4cd239f2a","unresolved":false,"context_lines":[{"line_number":181,"context_line":""},{"line_number":182,"context_line":"    logical_drives \u003d raid_adapter_info[\u0027LogicalDrives\u0027][\u0027LogicalDrive\u0027]"},{"line_number":183,"context_line":"    for logical_drive in logical_drives:"},{"line_number":184,"context_line":"        node.raid_config[\u0027logical_disks\u0027].append({\u0027raid_level\u0027: {"},{"line_number":185,"context_line":"            \u0027logical_drive_number\u0027: logical_drive[\u0027@Number\u0027], \u0027raid_level\u0027:"},{"line_number":186,"context_line":"                logical_drive[\u0027RaidLevel\u0027], \u0027name\u0027: logical_drive[\u0027Name\u0027],"},{"line_number":187,"context_line":"            \u0027 size\u0027: logical_drive[\u0027Size\u0027]}})"}],"source_content_type":"text/x-python","patch_set":13,"id":"5f7c97a3_a865b1b6","line":184,"in_reply_to":"5f7c97a3_427cfe70","updated":"2018-05-18 07:48:15.000000000","message":"Done","commit_id":"bcc986fee5c2b2f4d00147d1746e6e2214afaf56"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"f01a5ecc94da8745870e5bcbbccc9023032eb3aa","unresolved":false,"context_lines":[{"line_number":198,"context_line":"    return states.CLEANWAIT"},{"line_number":199,"context_line":""},{"line_number":200,"context_line":""},{"line_number":201,"context_line":"def _calculate_raid_factor(disk):"},{"line_number":202,"context_line":"    # Calculate factor value"},{"line_number":203,"context_line":"    if disk[\u0027raid_level\u0027] \u003d\u003d \u00270\u0027:"},{"line_number":204,"context_line":"        return 0"}],"source_content_type":"text/x-python","patch_set":13,"id":"5f7c97a3_026fe62a","line":201,"updated":"2018-05-16 07:29:26.000000000","message":"Can we use RAID_LEVELS dict to manage these factors instead of this method?","commit_id":"bcc986fee5c2b2f4d00147d1746e6e2214afaf56"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"7c859dd826cf972ee2f55ce99eb756c4cd239f2a","unresolved":false,"context_lines":[{"line_number":198,"context_line":"    return states.CLEANWAIT"},{"line_number":199,"context_line":""},{"line_number":200,"context_line":""},{"line_number":201,"context_line":"def _calculate_raid_factor(disk):"},{"line_number":202,"context_line":"    # Calculate factor value"},{"line_number":203,"context_line":"    if disk[\u0027raid_level\u0027] \u003d\u003d \u00270\u0027:"},{"line_number":204,"context_line":"        return 0"}],"source_content_type":"text/x-python","patch_set":13,"id":"5f7c97a3_2871a176","line":201,"in_reply_to":"5f7c97a3_026fe62a","updated":"2018-05-18 07:48:15.000000000","message":"Yep. I will put them into RAID_LEVELS under factor items.","commit_id":"bcc986fee5c2b2f4d00147d1746e6e2214afaf56"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"f01a5ecc94da8745870e5bcbbccc9023032eb3aa","unresolved":false,"context_lines":[{"line_number":216,"context_line":"    size_gb \u003d {}"},{"line_number":217,"context_line":"    all_volume_list \u003d []"},{"line_number":218,"context_line":"    disk_list \u003d []"},{"line_number":219,"context_line":""},{"line_number":220,"context_line":"    for size in physical_disks:"},{"line_number":221,"context_line":"        size_gb.update({size[\u0027@Number\u0027]: size[\u0027Size\u0027][\u0027#text\u0027]})"},{"line_number":222,"context_line":"        all_volume_list.append(size[\u0027Size\u0027][\u0027#text\u0027])"}],"source_content_type":"text/x-python","patch_set":13,"id":"5f7c97a3_2201c238","line":219,"updated":"2018-05-16 07:29:26.000000000","message":"In this method, \u0027disk\u0027 is a logical disk and disk_list is a list of physical disk sizes. It\u0027s quite hard for me to review. Could you please improve names of variables?","commit_id":"bcc986fee5c2b2f4d00147d1746e6e2214afaf56"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"7c859dd826cf972ee2f55ce99eb756c4cd239f2a","unresolved":false,"context_lines":[{"line_number":216,"context_line":"    size_gb \u003d {}"},{"line_number":217,"context_line":"    all_volume_list \u003d []"},{"line_number":218,"context_line":"    disk_list \u003d []"},{"line_number":219,"context_line":""},{"line_number":220,"context_line":"    for size in physical_disks:"},{"line_number":221,"context_line":"        size_gb.update({size[\u0027@Number\u0027]: size[\u0027Size\u0027][\u0027#text\u0027]})"},{"line_number":222,"context_line":"        all_volume_list.append(size[\u0027Size\u0027][\u0027#text\u0027])"}],"source_content_type":"text/x-python","patch_set":13,"id":"5f7c97a3_335596fa","line":219,"in_reply_to":"5f7c97a3_2201c238","updated":"2018-05-18 07:48:15.000000000","message":"Done","commit_id":"bcc986fee5c2b2f4d00147d1746e6e2214afaf56"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"f01a5ecc94da8745870e5bcbbccc9023032eb3aa","unresolved":false,"context_lines":[{"line_number":224,"context_line":"    factor \u003d _calculate_raid_factor(disk)"},{"line_number":225,"context_line":""},{"line_number":226,"context_line":"    if disk.get(\u0027physical_disks\u0027):"},{"line_number":227,"context_line":"        selected_disks \u003d [log_disk for log_disk in disk[\u0027physical_disks\u0027]]"},{"line_number":228,"context_line":"        for volume in selected_disks:"},{"line_number":229,"context_line":"            disk_list.append(size_gb[volume])"},{"line_number":230,"context_line":"        if disk[\u0027raid_level\u0027] in (\u00271\u0027, \u002710\u0027):"}],"source_content_type":"text/x-python","patch_set":13,"id":"5f7c97a3_e248aab3","line":227,"range":{"start_line":227,"start_character":39,"end_line":227,"end_character":47},"updated":"2018-05-16 07:29:26.000000000","message":"Isn\u0027t this a slot number of a physical_disk? What does log_disk mean?","commit_id":"bcc986fee5c2b2f4d00147d1746e6e2214afaf56"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"7c859dd826cf972ee2f55ce99eb756c4cd239f2a","unresolved":false,"context_lines":[{"line_number":224,"context_line":"    factor \u003d _calculate_raid_factor(disk)"},{"line_number":225,"context_line":""},{"line_number":226,"context_line":"    if disk.get(\u0027physical_disks\u0027):"},{"line_number":227,"context_line":"        selected_disks \u003d [log_disk for log_disk in disk[\u0027physical_disks\u0027]]"},{"line_number":228,"context_line":"        for volume in selected_disks:"},{"line_number":229,"context_line":"            disk_list.append(size_gb[volume])"},{"line_number":230,"context_line":"        if disk[\u0027raid_level\u0027] in (\u00271\u0027, \u002710\u0027):"}],"source_content_type":"text/x-python","patch_set":13,"id":"5f7c97a3_7378ee8e","line":227,"range":{"start_line":227,"start_character":39,"end_line":227,"end_character":47},"in_reply_to":"5f7c97a3_e248aab3","updated":"2018-05-18 07:48:15.000000000","message":"It\u0027s physical_disk. I has changed them. Thanks","commit_id":"bcc986fee5c2b2f4d00147d1746e6e2214afaf56"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"f01a5ecc94da8745870e5bcbbccc9023032eb3aa","unresolved":false,"context_lines":[{"line_number":227,"context_line":"        selected_disks \u003d [log_disk for log_disk in disk[\u0027physical_disks\u0027]]"},{"line_number":228,"context_line":"        for volume in selected_disks:"},{"line_number":229,"context_line":"            disk_list.append(size_gb[volume])"},{"line_number":230,"context_line":"        if disk[\u0027raid_level\u0027] in (\u00271\u0027, \u002710\u0027):"},{"line_number":231,"context_line":"            factor \u003d len(disk_list) \u003e\u003e 1"},{"line_number":232,"context_line":"            if (len(disk_list) % 2) \u003d\u003d 1:"},{"line_number":233,"context_line":"                factor \u003d (len(disk_list) \u003e\u003e 1) + 0.5"}],"source_content_type":"text/x-python","patch_set":13,"id":"5f7c97a3_4212be63","line":230,"updated":"2018-05-16 07:29:26.000000000","message":"I don\u0027t think the same logic is available for RAID1 and RAID10 because RAID1 only allows 2 disks.","commit_id":"bcc986fee5c2b2f4d00147d1746e6e2214afaf56"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"7c859dd826cf972ee2f55ce99eb756c4cd239f2a","unresolved":false,"context_lines":[{"line_number":227,"context_line":"        selected_disks \u003d [log_disk for log_disk in disk[\u0027physical_disks\u0027]]"},{"line_number":228,"context_line":"        for volume in selected_disks:"},{"line_number":229,"context_line":"            disk_list.append(size_gb[volume])"},{"line_number":230,"context_line":"        if disk[\u0027raid_level\u0027] in (\u00271\u0027, \u002710\u0027):"},{"line_number":231,"context_line":"            factor \u003d len(disk_list) \u003e\u003e 1"},{"line_number":232,"context_line":"            if (len(disk_list) % 2) \u003d\u003d 1:"},{"line_number":233,"context_line":"                factor \u003d (len(disk_list) \u003e\u003e 1) + 0.5"}],"source_content_type":"text/x-python","patch_set":13,"id":"5f7c97a3_f36b9eb3","line":230,"in_reply_to":"5f7c97a3_4212be63","updated":"2018-05-18 07:48:15.000000000","message":"Right. I forgot this change. I has update new code.","commit_id":"bcc986fee5c2b2f4d00147d1746e6e2214afaf56"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"f01a5ecc94da8745870e5bcbbccc9023032eb3aa","unresolved":false,"context_lines":[{"line_number":231,"context_line":"            factor \u003d len(disk_list) \u003e\u003e 1"},{"line_number":232,"context_line":"            if (len(disk_list) % 2) \u003d\u003d 1:"},{"line_number":233,"context_line":"                factor \u003d (len(disk_list) \u003e\u003e 1) + 0.5"},{"line_number":234,"context_line":"        valid_capacity \u003d min(disk_list) * (len(disk_list) - factor)"},{"line_number":235,"context_line":"    else:"},{"line_number":236,"context_line":"        valid_capacity \u003d \\"},{"line_number":237,"context_line":"            min(all_volume_list) * \\"}],"source_content_type":"text/x-python","patch_set":13,"id":"5f7c97a3_a5a07cf5","line":234,"updated":"2018-05-16 07:29:26.000000000","message":"Is this correct? I guess there should be division to get a capacity for RAID10.","commit_id":"bcc986fee5c2b2f4d00147d1746e6e2214afaf56"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"7c859dd826cf972ee2f55ce99eb756c4cd239f2a","unresolved":false,"context_lines":[{"line_number":231,"context_line":"            factor \u003d len(disk_list) \u003e\u003e 1"},{"line_number":232,"context_line":"            if (len(disk_list) % 2) \u003d\u003d 1:"},{"line_number":233,"context_line":"                factor \u003d (len(disk_list) \u003e\u003e 1) + 0.5"},{"line_number":234,"context_line":"        valid_capacity \u003d min(disk_list) * (len(disk_list) - factor)"},{"line_number":235,"context_line":"    else:"},{"line_number":236,"context_line":"        valid_capacity \u003d \\"},{"line_number":237,"context_line":"            min(all_volume_list) * \\"}],"source_content_type":"text/x-python","patch_set":13,"id":"5f7c97a3_93526a12","line":234,"in_reply_to":"5f7c97a3_a5a07cf5","updated":"2018-05-18 07:48:15.000000000","message":"if we have 4 HDDs and 1TB/HDD. valid_capacity\u003d1TB * (4-2) \u003d 2TB. It\u0027s correct result. Note: 4 \u003e\u003e 1 \u003d\u003d 2","commit_id":"bcc986fee5c2b2f4d00147d1746e6e2214afaf56"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"f01a5ecc94da8745870e5bcbbccc9023032eb3aa","unresolved":false,"context_lines":[{"line_number":235,"context_line":"    else:"},{"line_number":236,"context_line":"        valid_capacity \u003d \\"},{"line_number":237,"context_line":"            min(all_volume_list) * \\"},{"line_number":238,"context_line":"            (int((RAID_LEVELS[disk[\u0027raid_level\u0027]][\u0027min_disks\u0027])) - factor)"},{"line_number":239,"context_line":""},{"line_number":240,"context_line":"    if disk[\u0027size_gb\u0027] \u003e valid_capacity:"},{"line_number":241,"context_line":"        reason \u003d (_(\u0027Raid volume not suitable value with %s GB\"\u0027)"}],"source_content_type":"text/x-python","patch_set":13,"id":"5f7c97a3_0515b03f","line":238,"range":{"start_line":238,"start_character":13,"end_line":238,"end_character":16},"updated":"2018-05-16 07:29:26.000000000","message":"I\u0027m not sure why int() is used here though all values in this expression are already int.\n\nI believe this logic is available for RAID levels without \u0027+0\u0027. I guess RAID 5+0 and 6+0 require another logic.","commit_id":"bcc986fee5c2b2f4d00147d1746e6e2214afaf56"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"7c859dd826cf972ee2f55ce99eb756c4cd239f2a","unresolved":false,"context_lines":[{"line_number":235,"context_line":"    else:"},{"line_number":236,"context_line":"        valid_capacity \u003d \\"},{"line_number":237,"context_line":"            min(all_volume_list) * \\"},{"line_number":238,"context_line":"            (int((RAID_LEVELS[disk[\u0027raid_level\u0027]][\u0027min_disks\u0027])) - factor)"},{"line_number":239,"context_line":""},{"line_number":240,"context_line":"    if disk[\u0027size_gb\u0027] \u003e valid_capacity:"},{"line_number":241,"context_line":"        reason \u003d (_(\u0027Raid volume not suitable value with %s GB\"\u0027)"}],"source_content_type":"text/x-python","patch_set":13,"id":"5f7c97a3_13dada76","line":238,"range":{"start_line":238,"start_character":13,"end_line":238,"end_character":16},"in_reply_to":"5f7c97a3_0515b03f","updated":"2018-05-18 07:48:15.000000000","message":"Yep. We don\u0027t need int() in this case. RAID 5+0 same logic, I had tested them. With RAID 6+0 too, but we don\u0027t support RAID 6+0 at the momentt, due to we do not test yet.","commit_id":"bcc986fee5c2b2f4d00147d1746e6e2214afaf56"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"f01a5ecc94da8745870e5bcbbccc9023032eb3aa","unresolved":false,"context_lines":[{"line_number":311,"context_line":"                    raise exception.IRMCOperationError(operation\u003d\u0027RAID config\u0027,"},{"line_number":312,"context_line":"                                                       error\u003dreason)"},{"line_number":313,"context_line":"                type_of_disks.append(physical_disk_list[int(phys_disk)])"},{"line_number":314,"context_line":"                if physical_disk_list[int(phys_disk)] !\u003d type_of_disks[0]:"},{"line_number":315,"context_line":"                    reason \u003d (_(\u0027Cannot create RAID configuration with \u0027"},{"line_number":316,"context_line":"                                \u0027difference hard drives type %s\u0027)"},{"line_number":317,"context_line":"                              % physical_disk_list[int(phys_disk)])"}],"source_content_type":"text/x-python","patch_set":13,"id":"5f7c97a3_42b07edd","line":314,"range":{"start_line":314,"start_character":19,"end_line":314,"end_character":37},"updated":"2018-05-16 07:29:26.000000000","message":"Could you please stop using \u0027list\u0027 for a name of a dict? It is quite confusing for me.","commit_id":"bcc986fee5c2b2f4d00147d1746e6e2214afaf56"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"7c859dd826cf972ee2f55ce99eb756c4cd239f2a","unresolved":false,"context_lines":[{"line_number":311,"context_line":"                    raise exception.IRMCOperationError(operation\u003d\u0027RAID config\u0027,"},{"line_number":312,"context_line":"                                                       error\u003dreason)"},{"line_number":313,"context_line":"                type_of_disks.append(physical_disk_list[int(phys_disk)])"},{"line_number":314,"context_line":"                if physical_disk_list[int(phys_disk)] !\u003d type_of_disks[0]:"},{"line_number":315,"context_line":"                    reason \u003d (_(\u0027Cannot create RAID configuration with \u0027"},{"line_number":316,"context_line":"                                \u0027difference hard drives type %s\u0027)"},{"line_number":317,"context_line":"                              % physical_disk_list[int(phys_disk)])"}],"source_content_type":"text/x-python","patch_set":13,"id":"5f7c97a3_339d9609","line":314,"range":{"start_line":314,"start_character":19,"end_line":314,"end_character":37},"in_reply_to":"5f7c97a3_42b07edd","updated":"2018-05-18 07:48:15.000000000","message":"Yep. Sorry for my mistake.","commit_id":"bcc986fee5c2b2f4d00147d1746e6e2214afaf56"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"f01a5ecc94da8745870e5bcbbccc9023032eb3aa","unresolved":false,"context_lines":[{"line_number":411,"context_line":""},{"line_number":412,"context_line":"        # Default delete everything raid configuration in BM Server"},{"line_number":413,"context_line":"        _delete_raid_adapter(node)"},{"line_number":414,"context_line":"        node.raid_config.clear()"},{"line_number":415,"context_line":"        LOG.info(\u0027RAID config is deleted successfully on node %(node_id)s.\u0027"},{"line_number":416,"context_line":"                 \u0027raid config will clear and return (cfg)s value\u0027,"},{"line_number":417,"context_line":"                 {\u0027node_id\u0027: node_uuid, \u0027cfg\u0027: node.raid_config})"}],"source_content_type":"text/x-python","patch_set":13,"id":"5f7c97a3_42a39e00","line":414,"updated":"2018-05-16 07:29:26.000000000","message":"I\u0027m not sure if raid_config.clear() is treated as a change by the VersionedObject. raid_config \u003d {} will surely work. \n\nnode.save() is also necessary.","commit_id":"bcc986fee5c2b2f4d00147d1746e6e2214afaf56"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"7c859dd826cf972ee2f55ce99eb756c4cd239f2a","unresolved":false,"context_lines":[{"line_number":411,"context_line":""},{"line_number":412,"context_line":"        # Default delete everything raid configuration in BM Server"},{"line_number":413,"context_line":"        _delete_raid_adapter(node)"},{"line_number":414,"context_line":"        node.raid_config.clear()"},{"line_number":415,"context_line":"        LOG.info(\u0027RAID config is deleted successfully on node %(node_id)s.\u0027"},{"line_number":416,"context_line":"                 \u0027raid config will clear and return (cfg)s value\u0027,"},{"line_number":417,"context_line":"                 {\u0027node_id\u0027: node_uuid, \u0027cfg\u0027: node.raid_config})"}],"source_content_type":"text/x-python","patch_set":13,"id":"5f7c97a3_9336ea02","line":414,"in_reply_to":"5f7c97a3_42a39e00","updated":"2018-05-18 07:48:15.000000000","message":"I will change them. raid_clear() will be remove everything in this dict and return empty {}. I had tested and checked them.","commit_id":"bcc986fee5c2b2f4d00147d1746e6e2214afaf56"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"f01a5ecc94da8745870e5bcbbccc9023032eb3aa","unresolved":false,"context_lines":[{"line_number":422,"context_line":"    def _query_raid_config_bgi_status(self, manager, context):"},{"line_number":423,"context_line":"        \"\"\"Periodic task to check the progress of running RAID config.\"\"\""},{"line_number":424,"context_line":""},{"line_number":425,"context_line":"        filters \u003d {\u0027reserved\u0027: False, \u0027maintenance\u0027: False}"},{"line_number":426,"context_line":"        fields \u003d [\u0027raid_config\u0027]"},{"line_number":427,"context_line":"        node_list \u003d manager.iter_nodes(fields\u003dfields, filters\u003dfilters)"},{"line_number":428,"context_line":"        for (node_uuid, driver, raid_config) in node_list:"}],"source_content_type":"text/x-python","patch_set":13,"id":"5f7c97a3_1fb4227f","line":425,"updated":"2018-05-16 07:29:26.000000000","message":"It would be better to add \"\u0027provision_state\u0027: states.CLEANWAIT\" to the filters.","commit_id":"bcc986fee5c2b2f4d00147d1746e6e2214afaf56"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"7c859dd826cf972ee2f55ce99eb756c4cd239f2a","unresolved":false,"context_lines":[{"line_number":422,"context_line":"    def _query_raid_config_bgi_status(self, manager, context):"},{"line_number":423,"context_line":"        \"\"\"Periodic task to check the progress of running RAID config.\"\"\""},{"line_number":424,"context_line":""},{"line_number":425,"context_line":"        filters \u003d {\u0027reserved\u0027: False, \u0027maintenance\u0027: False}"},{"line_number":426,"context_line":"        fields \u003d [\u0027raid_config\u0027]"},{"line_number":427,"context_line":"        node_list \u003d manager.iter_nodes(fields\u003dfields, filters\u003dfilters)"},{"line_number":428,"context_line":"        for (node_uuid, driver, raid_config) in node_list:"}],"source_content_type":"text/x-python","patch_set":13,"id":"5f7c97a3_622a2891","line":425,"in_reply_to":"5f7c97a3_1fb4227f","updated":"2018-05-18 07:48:15.000000000","message":"Done","commit_id":"bcc986fee5c2b2f4d00147d1746e6e2214afaf56"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"f01a5ecc94da8745870e5bcbbccc9023032eb3aa","unresolved":false,"context_lines":[{"line_number":433,"context_line":"                                          shared\u003dTrue) as task:"},{"line_number":434,"context_line":"                    node \u003d task.node"},{"line_number":435,"context_line":"                    node_uuid \u003d task.node.uuid"},{"line_number":436,"context_line":"                    report \u003d irmc_common.get_irmc_report(node)"},{"line_number":437,"context_line":""},{"line_number":438,"context_line":"                    if raid_config and not raid_config.get(\u0027bgi_status\u0027):"},{"line_number":439,"context_line":"                        raid_levels \u003d [logdrive for logdrive in"}],"source_content_type":"text/x-python","patch_set":13,"id":"5f7c97a3_9fa031f6","line":436,"updated":"2018-05-16 07:29:26.000000000","message":"We should skip a node without the irmc raid interface before calling it. It also would be better to skip all nodes which aren\u0027t running iRMC RAID configuration.","commit_id":"bcc986fee5c2b2f4d00147d1746e6e2214afaf56"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"7c859dd826cf972ee2f55ce99eb756c4cd239f2a","unresolved":false,"context_lines":[{"line_number":433,"context_line":"                                          shared\u003dTrue) as task:"},{"line_number":434,"context_line":"                    node \u003d task.node"},{"line_number":435,"context_line":"                    node_uuid \u003d task.node.uuid"},{"line_number":436,"context_line":"                    report \u003d irmc_common.get_irmc_report(node)"},{"line_number":437,"context_line":""},{"line_number":438,"context_line":"                    if raid_config and not raid_config.get(\u0027bgi_status\u0027):"},{"line_number":439,"context_line":"                        raid_levels \u003d [logdrive for logdrive in"}],"source_content_type":"text/x-python","patch_set":13,"id":"5f7c97a3_8112fdb3","line":436,"in_reply_to":"5f7c97a3_9fa031f6","updated":"2018-05-18 07:48:15.000000000","message":"Done","commit_id":"bcc986fee5c2b2f4d00147d1746e6e2214afaf56"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"f01a5ecc94da8745870e5bcbbccc9023032eb3aa","unresolved":false,"context_lines":[{"line_number":435,"context_line":"                    node_uuid \u003d task.node.uuid"},{"line_number":436,"context_line":"                    report \u003d irmc_common.get_irmc_report(node)"},{"line_number":437,"context_line":""},{"line_number":438,"context_line":"                    if raid_config and not raid_config.get(\u0027bgi_status\u0027):"},{"line_number":439,"context_line":"                        raid_levels \u003d [logdrive for logdrive in"},{"line_number":440,"context_line":"                                       raid_config[\u0027logical_disks\u0027] if"},{"line_number":441,"context_line":"                                       logdrive.get(\u0027raid_level\u0027)]"}],"source_content_type":"text/x-python","patch_set":13,"id":"5f7c97a3_a41643a7","line":438,"updated":"2018-05-16 07:29:26.000000000","message":"It would be better to reduce the nesting level with:\n\n  if not raid_config or not raid_config.get(\u0027bgi_status\u0027):\n      continue","commit_id":"bcc986fee5c2b2f4d00147d1746e6e2214afaf56"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"7c859dd826cf972ee2f55ce99eb756c4cd239f2a","unresolved":false,"context_lines":[{"line_number":435,"context_line":"                    node_uuid \u003d task.node.uuid"},{"line_number":436,"context_line":"                    report \u003d irmc_common.get_irmc_report(node)"},{"line_number":437,"context_line":""},{"line_number":438,"context_line":"                    if raid_config and not raid_config.get(\u0027bgi_status\u0027):"},{"line_number":439,"context_line":"                        raid_levels \u003d [logdrive for logdrive in"},{"line_number":440,"context_line":"                                       raid_config[\u0027logical_disks\u0027] if"},{"line_number":441,"context_line":"                                       logdrive.get(\u0027raid_level\u0027)]"}],"source_content_type":"text/x-python","patch_set":13,"id":"5f7c97a3_d778c5c4","line":438,"in_reply_to":"5f7c97a3_a41643a7","updated":"2018-05-18 07:48:15.000000000","message":"Done","commit_id":"bcc986fee5c2b2f4d00147d1746e6e2214afaf56"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"f01a5ecc94da8745870e5bcbbccc9023032eb3aa","unresolved":false,"context_lines":[{"line_number":436,"context_line":"                    report \u003d irmc_common.get_irmc_report(node)"},{"line_number":437,"context_line":""},{"line_number":438,"context_line":"                    if raid_config and not raid_config.get(\u0027bgi_status\u0027):"},{"line_number":439,"context_line":"                        raid_levels \u003d [logdrive for logdrive in"},{"line_number":440,"context_line":"                                       raid_config[\u0027logical_disks\u0027] if"},{"line_number":441,"context_line":"                                       logdrive.get(\u0027raid_level\u0027)]"},{"line_number":442,"context_line":"                        levels \u003d []"}],"source_content_type":"text/x-python","patch_set":13,"id":"5f7c97a3_ffc7e594","line":439,"range":{"start_line":439,"start_character":24,"end_line":439,"end_character":35},"updated":"2018-05-16 07:29:26.000000000","message":"This name sounds confusing because this is a list of logical_disk.","commit_id":"bcc986fee5c2b2f4d00147d1746e6e2214afaf56"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"7c859dd826cf972ee2f55ce99eb756c4cd239f2a","unresolved":false,"context_lines":[{"line_number":436,"context_line":"                    report \u003d irmc_common.get_irmc_report(node)"},{"line_number":437,"context_line":""},{"line_number":438,"context_line":"                    if raid_config and not raid_config.get(\u0027bgi_status\u0027):"},{"line_number":439,"context_line":"                        raid_levels \u003d [logdrive for logdrive in"},{"line_number":440,"context_line":"                                       raid_config[\u0027logical_disks\u0027] if"},{"line_number":441,"context_line":"                                       logdrive.get(\u0027raid_level\u0027)]"},{"line_number":442,"context_line":"                        levels \u003d []"}],"source_content_type":"text/x-python","patch_set":13,"id":"5f7c97a3_4e298534","line":439,"range":{"start_line":439,"start_character":24,"end_line":439,"end_character":35},"in_reply_to":"5f7c97a3_ffc7e594","updated":"2018-05-18 07:48:15.000000000","message":"Done","commit_id":"bcc986fee5c2b2f4d00147d1746e6e2214afaf56"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"f01a5ecc94da8745870e5bcbbccc9023032eb3aa","unresolved":false,"context_lines":[{"line_number":442,"context_line":"                        levels \u003d []"},{"line_number":443,"context_line":"                        for level in raid_levels:"},{"line_number":444,"context_line":"                            levels.append(level[\u0027raid_level\u0027][\u0027raid_level\u0027])"},{"line_number":445,"context_line":"                        if all(item \u003d\u003d \u00270\u0027 for item in levels):"},{"line_number":446,"context_line":"                            raid_config.update({\u0027bgi_status\u0027: \u0027Idle\u0027})"},{"line_number":447,"context_line":"                            raid_common.update_raid_info(node, raid_config)"},{"line_number":448,"context_line":"                            return self._resume_cleaning(task)"}],"source_content_type":"text/x-python","patch_set":13,"id":"5f7c97a3_5f393aef","line":445,"updated":"2018-05-16 07:29:26.000000000","message":"Can we return None in create_configuration for a node with RAID0 disks to finish configuration immediately?","commit_id":"bcc986fee5c2b2f4d00147d1746e6e2214afaf56"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"7c859dd826cf972ee2f55ce99eb756c4cd239f2a","unresolved":false,"context_lines":[{"line_number":442,"context_line":"                        levels \u003d []"},{"line_number":443,"context_line":"                        for level in raid_levels:"},{"line_number":444,"context_line":"                            levels.append(level[\u0027raid_level\u0027][\u0027raid_level\u0027])"},{"line_number":445,"context_line":"                        if all(item \u003d\u003d \u00270\u0027 for item in levels):"},{"line_number":446,"context_line":"                            raid_config.update({\u0027bgi_status\u0027: \u0027Idle\u0027})"},{"line_number":447,"context_line":"                            raid_common.update_raid_info(node, raid_config)"},{"line_number":448,"context_line":"                            return self._resume_cleaning(task)"}],"source_content_type":"text/x-python","patch_set":13,"id":"5f7c97a3_cedd95dd","line":445,"in_reply_to":"5f7c97a3_5f393aef","updated":"2018-05-18 07:48:15.000000000","message":"Done","commit_id":"bcc986fee5c2b2f4d00147d1746e6e2214afaf56"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"f01a5ecc94da8745870e5bcbbccc9023032eb3aa","unresolved":false,"context_lines":[{"line_number":443,"context_line":"                        for level in raid_levels:"},{"line_number":444,"context_line":"                            levels.append(level[\u0027raid_level\u0027][\u0027raid_level\u0027])"},{"line_number":445,"context_line":"                        if all(item \u003d\u003d \u00270\u0027 for item in levels):"},{"line_number":446,"context_line":"                            raid_config.update({\u0027bgi_status\u0027: \u0027Idle\u0027})"},{"line_number":447,"context_line":"                            raid_common.update_raid_info(node, raid_config)"},{"line_number":448,"context_line":"                            return self._resume_cleaning(task)"},{"line_number":449,"context_line":"                        # NOTE(trungnv): Avoid to create fail raid"}],"source_content_type":"text/x-python","patch_set":13,"id":"5f7c97a3_ff4cc542","line":446,"updated":"2018-05-16 07:29:26.000000000","message":"I don\u0027t think we need to expose bgi_status after RAID configuration is finished.","commit_id":"bcc986fee5c2b2f4d00147d1746e6e2214afaf56"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"1e18ee58c0c0853e0bc4564e159ed1a474ce5516","unresolved":false,"context_lines":[{"line_number":443,"context_line":"                        for level in raid_levels:"},{"line_number":444,"context_line":"                            levels.append(level[\u0027raid_level\u0027][\u0027raid_level\u0027])"},{"line_number":445,"context_line":"                        if all(item \u003d\u003d \u00270\u0027 for item in levels):"},{"line_number":446,"context_line":"                            raid_config.update({\u0027bgi_status\u0027: \u0027Idle\u0027})"},{"line_number":447,"context_line":"                            raid_common.update_raid_info(node, raid_config)"},{"line_number":448,"context_line":"                            return self._resume_cleaning(task)"},{"line_number":449,"context_line":"                        # NOTE(trungnv): Avoid to create fail raid"}],"source_content_type":"text/x-python","patch_set":13,"id":"5f7c97a3_9559805b","line":446,"in_reply_to":"5f7c97a3_6e7b21f4","updated":"2018-05-23 02:59:07.000000000","message":"I meant to ask if showing \u0027bgi_status\u0027 is useful for users with the word \u0027expose\u0027. If we need to just mark a node as creating RAID, it would be better to set a flag into driver_internal_info.","commit_id":"bcc986fee5c2b2f4d00147d1746e6e2214afaf56"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"7c859dd826cf972ee2f55ce99eb756c4cd239f2a","unresolved":false,"context_lines":[{"line_number":443,"context_line":"                        for level in raid_levels:"},{"line_number":444,"context_line":"                            levels.append(level[\u0027raid_level\u0027][\u0027raid_level\u0027])"},{"line_number":445,"context_line":"                        if all(item \u003d\u003d \u00270\u0027 for item in levels):"},{"line_number":446,"context_line":"                            raid_config.update({\u0027bgi_status\u0027: \u0027Idle\u0027})"},{"line_number":447,"context_line":"                            raid_common.update_raid_info(node, raid_config)"},{"line_number":448,"context_line":"                            return self._resume_cleaning(task)"},{"line_number":449,"context_line":"                        # NOTE(trungnv): Avoid to create fail raid"}],"source_content_type":"text/x-python","patch_set":13,"id":"5f7c97a3_6e7b21f4","line":446,"in_reply_to":"5f7c97a3_ff4cc542","updated":"2018-05-18 07:48:15.000000000","message":"I need to expose this info which used as flag for periodict check. If you have better ideas, please help me. Thanks.","commit_id":"bcc986fee5c2b2f4d00147d1746e6e2214afaf56"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"f01a5ecc94da8745870e5bcbbccc9023032eb3aa","unresolved":false,"context_lines":[{"line_number":450,"context_line":"                        # configuration if BGI mechanism not running yet."},{"line_number":451,"context_line":"                        time.sleep("},{"line_number":452,"context_line":"                            CONF.irmc.query_raid_config_bgi_status_interval"},{"line_number":453,"context_line":"                        )"},{"line_number":454,"context_line":"                        if (item \u003d\u003d \u002750\u0027 for item in levels):"},{"line_number":455,"context_line":"                            if _get_bgi_status(report) \u003d\u003d \u0027Fail\u0027:"},{"line_number":456,"context_line":"                                task.driver.power.reboot(task)"}],"source_content_type":"text/x-python","patch_set":13,"id":"5f7c97a3_3f223eba","line":453,"updated":"2018-05-16 07:29:26.000000000","message":"Can we wait for BGI to start in create_configuration()? Sleep is not quite reliable.","commit_id":"bcc986fee5c2b2f4d00147d1746e6e2214afaf56"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"7c859dd826cf972ee2f55ce99eb756c4cd239f2a","unresolved":false,"context_lines":[{"line_number":450,"context_line":"                        # configuration if BGI mechanism not running yet."},{"line_number":451,"context_line":"                        time.sleep("},{"line_number":452,"context_line":"                            CONF.irmc.query_raid_config_bgi_status_interval"},{"line_number":453,"context_line":"                        )"},{"line_number":454,"context_line":"                        if (item \u003d\u003d \u002750\u0027 for item in levels):"},{"line_number":455,"context_line":"                            if _get_bgi_status(report) \u003d\u003d \u0027Fail\u0027:"},{"line_number":456,"context_line":"                                task.driver.power.reboot(task)"}],"source_content_type":"text/x-python","patch_set":13,"id":"5f7c97a3_376ed9ff","line":453,"in_reply_to":"5f7c97a3_3f223eba","updated":"2018-05-18 07:48:15.000000000","message":"Yep. I had moved them and change how to reboot server from POWER_RESET into POWER_CYCLE for working well. I had tested them, because sometime report donot raid information or \u0027Idle\u0027 status during BGI mechanism not running yet.","commit_id":"bcc986fee5c2b2f4d00147d1746e6e2214afaf56"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"f01a5ecc94da8745870e5bcbbccc9023032eb3aa","unresolved":false,"context_lines":[{"line_number":451,"context_line":"                        time.sleep("},{"line_number":452,"context_line":"                            CONF.irmc.query_raid_config_bgi_status_interval"},{"line_number":453,"context_line":"                        )"},{"line_number":454,"context_line":"                        if (item \u003d\u003d \u002750\u0027 for item in levels):"},{"line_number":455,"context_line":"                            if _get_bgi_status(report) \u003d\u003d \u0027Fail\u0027:"},{"line_number":456,"context_line":"                                task.driver.power.reboot(task)"},{"line_number":457,"context_line":"                        # Re-gather bgi status from Server."}],"source_content_type":"text/x-python","patch_set":13,"id":"5f7c97a3_ffde056b","line":454,"range":{"start_line":454,"start_character":27,"end_line":454,"end_character":60},"updated":"2018-05-16 07:29:26.000000000","message":"We can replace it with: \u002750\u0027 in levels\n\nBy the way, we should store \u00275+0\u0027 to a node to follow the ironic common style.","commit_id":"bcc986fee5c2b2f4d00147d1746e6e2214afaf56"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"7c859dd826cf972ee2f55ce99eb756c4cd239f2a","unresolved":false,"context_lines":[{"line_number":451,"context_line":"                        time.sleep("},{"line_number":452,"context_line":"                            CONF.irmc.query_raid_config_bgi_status_interval"},{"line_number":453,"context_line":"                        )"},{"line_number":454,"context_line":"                        if (item \u003d\u003d \u002750\u0027 for item in levels):"},{"line_number":455,"context_line":"                            if _get_bgi_status(report) \u003d\u003d \u0027Fail\u0027:"},{"line_number":456,"context_line":"                                task.driver.power.reboot(task)"},{"line_number":457,"context_line":"                        # Re-gather bgi status from Server."}],"source_content_type":"text/x-python","patch_set":13,"id":"5f7c97a3_610c813b","line":454,"range":{"start_line":454,"start_character":27,"end_line":454,"end_character":60},"in_reply_to":"5f7c97a3_ffde056b","updated":"2018-05-18 07:48:15.000000000","message":"Will reboot in all cases if report is None or \u0027Idle\u0027 in report during BGI machenism not running yet.","commit_id":"bcc986fee5c2b2f4d00147d1746e6e2214afaf56"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"f01a5ecc94da8745870e5bcbbccc9023032eb3aa","unresolved":false,"context_lines":[{"line_number":453,"context_line":"                        )"},{"line_number":454,"context_line":"                        if (item \u003d\u003d \u002750\u0027 for item in levels):"},{"line_number":455,"context_line":"                            if _get_bgi_status(report) \u003d\u003d \u0027Fail\u0027:"},{"line_number":456,"context_line":"                                task.driver.power.reboot(task)"},{"line_number":457,"context_line":"                        # Re-gather bgi status from Server."},{"line_number":458,"context_line":"                        bgi_status_list \u003d _get_bgi_status(report)"},{"line_number":459,"context_line":"                        if bgi_status_list \u003d\u003d \u0027Fail\u0027:"}],"source_content_type":"text/x-python","patch_set":13,"id":"5f7c97a3_7fd43548","line":456,"updated":"2018-05-16 07:29:26.000000000","message":"Could you please add a note to explain the reason for rebooting?","commit_id":"bcc986fee5c2b2f4d00147d1746e6e2214afaf56"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"7c859dd826cf972ee2f55ce99eb756c4cd239f2a","unresolved":false,"context_lines":[{"line_number":453,"context_line":"                        )"},{"line_number":454,"context_line":"                        if (item \u003d\u003d \u002750\u0027 for item in levels):"},{"line_number":455,"context_line":"                            if _get_bgi_status(report) \u003d\u003d \u0027Fail\u0027:"},{"line_number":456,"context_line":"                                task.driver.power.reboot(task)"},{"line_number":457,"context_line":"                        # Re-gather bgi status from Server."},{"line_number":458,"context_line":"                        bgi_status_list \u003d _get_bgi_status(report)"},{"line_number":459,"context_line":"                        if bgi_status_list \u003d\u003d \u0027Fail\u0027:"}],"source_content_type":"text/x-python","patch_set":13,"id":"5f7c97a3_a12b7980","line":456,"in_reply_to":"5f7c97a3_7fd43548","updated":"2018-05-18 07:48:15.000000000","message":"Done","commit_id":"bcc986fee5c2b2f4d00147d1746e6e2214afaf56"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"f01a5ecc94da8745870e5bcbbccc9023032eb3aa","unresolved":false,"context_lines":[{"line_number":471,"context_line":"                                     {\u0027node\u0027: node_uuid,"},{"line_number":472,"context_line":"                                      \u0027bgi\u0027: \u0027Idle\u0027})"},{"line_number":473,"context_line":"                            self._resume_cleaning(task)"},{"line_number":474,"context_line":""},{"line_number":475,"context_line":"            except exception.NodeNotFound:"},{"line_number":476,"context_line":"                LOG.info(\"During query_raid_config_job_status, node \""},{"line_number":477,"context_line":"                         \"%(node)s was not found raid_config and presumed\""}],"source_content_type":"text/x-python","patch_set":13,"id":"5f7c97a3_9f303158","line":474,"updated":"2018-05-16 07:29:26.000000000","message":"Isn\u0027t it necessary to call touch_provisioning() to avoid hitting clean_callback_timeout expiration?","commit_id":"bcc986fee5c2b2f4d00147d1746e6e2214afaf56"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"7c859dd826cf972ee2f55ce99eb756c4cd239f2a","unresolved":false,"context_lines":[{"line_number":471,"context_line":"                                     {\u0027node\u0027: node_uuid,"},{"line_number":472,"context_line":"                                      \u0027bgi\u0027: \u0027Idle\u0027})"},{"line_number":473,"context_line":"                            self._resume_cleaning(task)"},{"line_number":474,"context_line":""},{"line_number":475,"context_line":"            except exception.NodeNotFound:"},{"line_number":476,"context_line":"                LOG.info(\"During query_raid_config_job_status, node \""},{"line_number":477,"context_line":"                         \"%(node)s was not found raid_config and presumed\""}],"source_content_type":"text/x-python","patch_set":13,"id":"5f7c97a3_21e20903","line":474,"in_reply_to":"5f7c97a3_9f303158","updated":"2018-05-18 07:48:15.000000000","message":"Done","commit_id":"bcc986fee5c2b2f4d00147d1746e6e2214afaf56"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"f01a5ecc94da8745870e5bcbbccc9023032eb3aa","unresolved":false,"context_lines":[{"line_number":492,"context_line":"    def _resume_cleaning(self, task):"},{"line_number":493,"context_line":"        raid_common.update_raid_info("},{"line_number":494,"context_line":"            task.node, task.node.raid_config)"},{"line_number":495,"context_line":"        agent_base_vendor._notify_conductor_resume_clean(task)"}],"source_content_type":"text/x-python","patch_set":13,"id":"5f7c97a3_bfc3ad37","line":495,"range":{"start_line":495,"start_character":8,"end_line":495,"end_character":56},"updated":"2018-05-16 07:29:26.000000000","message":"Ideally, this method should be moved to a file containing shared method among drivers.","commit_id":"bcc986fee5c2b2f4d00147d1746e6e2214afaf56"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"7c859dd826cf972ee2f55ce99eb756c4cd239f2a","unresolved":false,"context_lines":[{"line_number":492,"context_line":"    def _resume_cleaning(self, task):"},{"line_number":493,"context_line":"        raid_common.update_raid_info("},{"line_number":494,"context_line":"            task.node, task.node.raid_config)"},{"line_number":495,"context_line":"        agent_base_vendor._notify_conductor_resume_clean(task)"}],"source_content_type":"text/x-python","patch_set":13,"id":"5f7c97a3_e145f144","line":495,"range":{"start_line":495,"start_character":8,"end_line":495,"end_character":56},"in_reply_to":"5f7c97a3_bfc3ad37","updated":"2018-05-18 07:48:15.000000000","message":"I had moved into common file in iRMC folder.","commit_id":"bcc986fee5c2b2f4d00147d1746e6e2214afaf56"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"1e18ee58c0c0853e0bc4564e159ed1a474ce5516","unresolved":false,"context_lines":[{"line_number":72,"context_line":"}"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"def _set_power_cycle(node):"},{"line_number":76,"context_line":"    \"\"\"PowerOffOnCabinet for Bare metal server.\"\"\""},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"    irmc_client \u003d irmc_common.get_irmc_client(node)"}],"source_content_type":"text/x-python","patch_set":14,"id":"5f7c97a3_00921aa0","line":75,"updated":"2018-05-23 02:59:07.000000000","message":"RAID interface shouldn\u0027t has its own power action. Instead of it, we should call power_off and power_on of power interface.","commit_id":"21d331cb38f5a6b20dcd2882a90077ec532c959b"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"cededb9aa319d0c4dbffc33588cd7c0689e9c557","unresolved":false,"context_lines":[{"line_number":72,"context_line":"}"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"def _set_power_cycle(node):"},{"line_number":76,"context_line":"    \"\"\"PowerOffOnCabinet for Bare metal server.\"\"\""},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"    irmc_client \u003d irmc_common.get_irmc_client(node)"}],"source_content_type":"text/x-python","patch_set":14,"id":"5f7c97a3_2d958f33","line":75,"in_reply_to":"5f7c97a3_00921aa0","updated":"2018-05-30 01:18:52.000000000","message":"Done","commit_id":"21d331cb38f5a6b20dcd2882a90077ec532c959b"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"6efc6838cfd762d5731f89e19991074e2b3dc79a","unresolved":false,"context_lines":[{"line_number":73,"context_line":""},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"def _set_power_cycle(node):"},{"line_number":76,"context_line":"    \"\"\"PowerOffOnCabinet for Bare metal server.\"\"\""},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"    irmc_client \u003d irmc_common.get_irmc_client(node)"},{"line_number":79,"context_line":"    try:"}],"source_content_type":"text/x-python","patch_set":14,"id":"5f7c97a3_8e5e8b43","line":76,"range":{"start_line":76,"start_character":4,"end_line":76,"end_character":50},"updated":"2018-05-22 10:43:34.000000000","message":"Add \u0027raises\u0027 in doc string as done for other methods in this file.","commit_id":"21d331cb38f5a6b20dcd2882a90077ec532c959b"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"cededb9aa319d0c4dbffc33588cd7c0689e9c557","unresolved":false,"context_lines":[{"line_number":73,"context_line":""},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"def _set_power_cycle(node):"},{"line_number":76,"context_line":"    \"\"\"PowerOffOnCabinet for Bare metal server.\"\"\""},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"    irmc_client \u003d irmc_common.get_irmc_client(node)"},{"line_number":79,"context_line":"    try:"}],"source_content_type":"text/x-python","patch_set":14,"id":"5f7c97a3_ed9a3760","line":76,"range":{"start_line":76,"start_character":4,"end_line":76,"end_character":50},"in_reply_to":"5f7c97a3_8e5e8b43","updated":"2018-05-30 01:18:52.000000000","message":"I had removed this method. Thanks","commit_id":"21d331cb38f5a6b20dcd2882a90077ec532c959b"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"6efc6838cfd762d5731f89e19991074e2b3dc79a","unresolved":false,"context_lines":[{"line_number":79,"context_line":"    try:"},{"line_number":80,"context_line":"        irmc_client(client.scci.POWER_CYCLE)"},{"line_number":81,"context_line":"    except client.scci.SCCIClientError as err:"},{"line_number":82,"context_line":"        LOG.error(\u0027iRMC reboot failed for node %(node)s: %(err)s.\u0027,"},{"line_number":83,"context_line":"                  {\u0027node\u0027: node.uuid, \u0027err\u0027: err})"},{"line_number":84,"context_line":"        raise exception.IRMCOperationError("},{"line_number":85,"context_line":"            operation\u003dclient.scci.POWER_CYCLE, error\u003derr)"}],"source_content_type":"text/x-python","patch_set":14,"id":"5f7c97a3_eed4dfbf","line":82,"range":{"start_line":82,"start_character":19,"end_line":82,"end_character":30},"updated":"2018-05-22 10:43:34.000000000","message":"Is it iRMC reboot or node reboot?","commit_id":"21d331cb38f5a6b20dcd2882a90077ec532c959b"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"cededb9aa319d0c4dbffc33588cd7c0689e9c557","unresolved":false,"context_lines":[{"line_number":79,"context_line":"    try:"},{"line_number":80,"context_line":"        irmc_client(client.scci.POWER_CYCLE)"},{"line_number":81,"context_line":"    except client.scci.SCCIClientError as err:"},{"line_number":82,"context_line":"        LOG.error(\u0027iRMC reboot failed for node %(node)s: %(err)s.\u0027,"},{"line_number":83,"context_line":"                  {\u0027node\u0027: node.uuid, \u0027err\u0027: err})"},{"line_number":84,"context_line":"        raise exception.IRMCOperationError("},{"line_number":85,"context_line":"            operation\u003dclient.scci.POWER_CYCLE, error\u003derr)"}],"source_content_type":"text/x-python","patch_set":14,"id":"5f7c97a3_8da3839e","line":82,"range":{"start_line":82,"start_character":19,"end_line":82,"end_character":30},"in_reply_to":"5f7c97a3_eed4dfbf","updated":"2018-05-30 01:18:52.000000000","message":"I had removed this method.thanks","commit_id":"21d331cb38f5a6b20dcd2882a90077ec532c959b"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"6efc6838cfd762d5731f89e19991074e2b3dc79a","unresolved":false,"context_lines":[{"line_number":89,"context_line":"    \"\"\"Get the raid adapter info on a RAID controller."},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"    :param node: an ironic node object."},{"line_number":92,"context_line":"    :raises: ELCMProfileNotFound on an error from python-scciclient."},{"line_number":93,"context_line":"    :returns: raid adapter dictionary."},{"line_number":94,"context_line":"    \"\"\""},{"line_number":95,"context_line":"    irmc_info \u003d node.driver_info"}],"source_content_type":"text/x-python","patch_set":14,"id":"5f7c97a3_4e9153f1","line":92,"range":{"start_line":92,"start_character":13,"end_line":92,"end_character":32},"updated":"2018-05-22 10:43:34.000000000","message":"I think we need to catch this exception and raise IRMCOperationError.","commit_id":"21d331cb38f5a6b20dcd2882a90077ec532c959b"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"cededb9aa319d0c4dbffc33588cd7c0689e9c557","unresolved":false,"context_lines":[{"line_number":89,"context_line":"    \"\"\"Get the raid adapter info on a RAID controller."},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"    :param node: an ironic node object."},{"line_number":92,"context_line":"    :raises: ELCMProfileNotFound on an error from python-scciclient."},{"line_number":93,"context_line":"    :returns: raid adapter dictionary."},{"line_number":94,"context_line":"    \"\"\""},{"line_number":95,"context_line":"    irmc_info \u003d node.driver_info"}],"source_content_type":"text/x-python","patch_set":14,"id":"5f7c97a3_cd317b5b","line":92,"range":{"start_line":92,"start_character":13,"end_line":92,"end_character":32},"in_reply_to":"5f7c97a3_4e9153f1","updated":"2018-05-30 01:18:52.000000000","message":"I will return None if nothing result for scciclient.","commit_id":"21d331cb38f5a6b20dcd2882a90077ec532c959b"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"1e18ee58c0c0853e0bc4564e159ed1a474ce5516","unresolved":false,"context_lines":[{"line_number":99,"context_line":""},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"def _get_bgi_status(report):"},{"line_number":102,"context_line":"    \"\"\"Get the raid adapter info on a RAID controller."},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"    :param report: SCCI report information."},{"line_number":105,"context_line":"    :raises: IRMCOperationError on an error from python-scciclient."}],"source_content_type":"text/x-python","patch_set":14,"id":"5f7c97a3_d5da98e7","line":102,"updated":"2018-05-23 02:59:07.000000000","message":"Need to update this sentence.\n\nIt might be better to describe what BGI stands for at least once in this file.","commit_id":"21d331cb38f5a6b20dcd2882a90077ec532c959b"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"cededb9aa319d0c4dbffc33588cd7c0689e9c557","unresolved":false,"context_lines":[{"line_number":99,"context_line":""},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"def _get_bgi_status(report):"},{"line_number":102,"context_line":"    \"\"\"Get the raid adapter info on a RAID controller."},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"    :param report: SCCI report information."},{"line_number":105,"context_line":"    :raises: IRMCOperationError on an error from python-scciclient."}],"source_content_type":"text/x-python","patch_set":14,"id":"5f7c97a3_2d1a6fcb","line":102,"in_reply_to":"5f7c97a3_d5da98e7","updated":"2018-05-30 01:18:52.000000000","message":"Done","commit_id":"21d331cb38f5a6b20dcd2882a90077ec532c959b"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"6efc6838cfd762d5731f89e19991074e2b3dc79a","unresolved":false,"context_lines":[{"line_number":111,"context_line":"        LOG.warning(\u0027ServerViewRAID not available in Baremetal Server\u0027)"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"def _get_physical_disk(node):"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"    physical_disk_dict \u003d {}"},{"line_number":117,"context_line":"    raid_adapter \u003d _get_raid_adapter(node)"}],"source_content_type":"text/x-python","patch_set":14,"id":"5f7c97a3_4e587355","line":114,"range":{"start_line":114,"start_character":0,"end_line":114,"end_character":29},"updated":"2018-05-22 10:43:34.000000000","message":"Add docstring","commit_id":"21d331cb38f5a6b20dcd2882a90077ec532c959b"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"cededb9aa319d0c4dbffc33588cd7c0689e9c557","unresolved":false,"context_lines":[{"line_number":111,"context_line":"        LOG.warning(\u0027ServerViewRAID not available in Baremetal Server\u0027)"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"def _get_physical_disk(node):"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"    physical_disk_dict \u003d {}"},{"line_number":117,"context_line":"    raid_adapter \u003d _get_raid_adapter(node)"}],"source_content_type":"text/x-python","patch_set":14,"id":"5f7c97a3_4d1ecbbb","line":114,"range":{"start_line":114,"start_character":0,"end_line":114,"end_character":29},"in_reply_to":"5f7c97a3_4e587355","updated":"2018-05-30 01:18:52.000000000","message":"Done","commit_id":"21d331cb38f5a6b20dcd2882a90077ec532c959b"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"6efc6838cfd762d5731f89e19991074e2b3dc79a","unresolved":false,"context_lines":[{"line_number":115,"context_line":""},{"line_number":116,"context_line":"    physical_disk_dict \u003d {}"},{"line_number":117,"context_line":"    raid_adapter \u003d _get_raid_adapter(node)"},{"line_number":118,"context_line":"    physical_disks \u003d raid_adapter[\u0027Server\u0027][\u0027HWConfigurationIrmc\u0027]["},{"line_number":119,"context_line":"        \u0027Adapters\u0027][\u0027RAIDAdapter\u0027][0][\u0027PhysicalDisks\u0027][\u0027PhysicalDisk\u0027]"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"    for disks in physical_disks:"},{"line_number":122,"context_line":"        physical_disk_dict.update({disks[\u0027Slot\u0027]: disks[\u0027Type\u0027]})"}],"source_content_type":"text/x-python","patch_set":14,"id":"5f7c97a3_ce39e3f2","line":119,"range":{"start_line":118,"start_character":4,"end_line":119,"end_character":70},"updated":"2018-05-22 10:43:34.000000000","message":"Do we need to handle KeyError here?","commit_id":"21d331cb38f5a6b20dcd2882a90077ec532c959b"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"cededb9aa319d0c4dbffc33588cd7c0689e9c557","unresolved":false,"context_lines":[{"line_number":115,"context_line":""},{"line_number":116,"context_line":"    physical_disk_dict \u003d {}"},{"line_number":117,"context_line":"    raid_adapter \u003d _get_raid_adapter(node)"},{"line_number":118,"context_line":"    physical_disks \u003d raid_adapter[\u0027Server\u0027][\u0027HWConfigurationIrmc\u0027]["},{"line_number":119,"context_line":"        \u0027Adapters\u0027][\u0027RAIDAdapter\u0027][0][\u0027PhysicalDisks\u0027][\u0027PhysicalDisk\u0027]"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"    for disks in physical_disks:"},{"line_number":122,"context_line":"        physical_disk_dict.update({disks[\u0027Slot\u0027]: disks[\u0027Type\u0027]})"}],"source_content_type":"text/x-python","patch_set":14,"id":"5f7c97a3_6d1b87c9","line":119,"range":{"start_line":118,"start_character":4,"end_line":119,"end_character":70},"in_reply_to":"5f7c97a3_ce39e3f2","updated":"2018-05-30 01:18:52.000000000","message":"Right. It will safe in physical_disks \u003d raid_adapter[\u0027Server\u0027][\u0027HWConfigurationIrmc\u0027][\n        \u0027Adapters\u0027][\u0027RAIDAdapter\u0027][0][\u0027PhysicalDisks\u0027]\n\nThanks.","commit_id":"21d331cb38f5a6b20dcd2882a90077ec532c959b"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"1e18ee58c0c0853e0bc4564e159ed1a474ce5516","unresolved":false,"context_lines":[{"line_number":177,"context_line":"        \u0027logical_disks\u0027: []"},{"line_number":178,"context_line":"    }"},{"line_number":179,"context_line":""},{"line_number":180,"context_line":"    # Must to reboot to allow BM create raid configuration"},{"line_number":181,"context_line":"    if reboot is True:"},{"line_number":182,"context_line":"        LOG.info(\u0027RAID config be required reboot BM on node %s\u0027,"},{"line_number":183,"context_line":"                 node_uuid)"}],"source_content_type":"text/x-python","patch_set":14,"id":"5f7c97a3_b5f83c49","line":180,"range":{"start_line":180,"start_character":6,"end_line":180,"end_character":10},"updated":"2018-05-23 02:59:07.000000000","message":"If a node MUST be rebooted, why can we allow not to do it with \u0027reboot\u0027 parameter?","commit_id":"21d331cb38f5a6b20dcd2882a90077ec532c959b"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"cededb9aa319d0c4dbffc33588cd7c0689e9c557","unresolved":false,"context_lines":[{"line_number":177,"context_line":"        \u0027logical_disks\u0027: []"},{"line_number":178,"context_line":"    }"},{"line_number":179,"context_line":""},{"line_number":180,"context_line":"    # Must to reboot to allow BM create raid configuration"},{"line_number":181,"context_line":"    if reboot is True:"},{"line_number":182,"context_line":"        LOG.info(\u0027RAID config be required reboot BM on node %s\u0027,"},{"line_number":183,"context_line":"                 node_uuid)"}],"source_content_type":"text/x-python","patch_set":14,"id":"5f7c97a3_8d6dc333","line":180,"range":{"start_line":180,"start_character":6,"end_line":180,"end_character":10},"in_reply_to":"5f7c97a3_b5f83c49","updated":"2018-05-30 01:18:52.000000000","message":"We don\u0027t need reboot with new code and FGI mechanism. I had removed them. Thanks.","commit_id":"21d331cb38f5a6b20dcd2882a90077ec532c959b"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"6efc6838cfd762d5731f89e19991074e2b3dc79a","unresolved":false,"context_lines":[{"line_number":179,"context_line":""},{"line_number":180,"context_line":"    # Must to reboot to allow BM create raid configuration"},{"line_number":181,"context_line":"    if reboot is True:"},{"line_number":182,"context_line":"        LOG.info(\u0027RAID config be required reboot BM on node %s\u0027,"},{"line_number":183,"context_line":"                 node_uuid)"},{"line_number":184,"context_line":"        task.driver.power.reboot(task)"},{"line_number":185,"context_line":"    # Gathering new raid adapter info from BM server"}],"source_content_type":"text/x-python","patch_set":14,"id":"5f7c97a3_820e5f30","line":182,"range":{"start_line":182,"start_character":30,"end_line":182,"end_character":54},"updated":"2018-05-22 10:43:34.000000000","message":"s/ be required reboot BM on / requires reboot of /","commit_id":"21d331cb38f5a6b20dcd2882a90077ec532c959b"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"cededb9aa319d0c4dbffc33588cd7c0689e9c557","unresolved":false,"context_lines":[{"line_number":179,"context_line":""},{"line_number":180,"context_line":"    # Must to reboot to allow BM create raid configuration"},{"line_number":181,"context_line":"    if reboot is True:"},{"line_number":182,"context_line":"        LOG.info(\u0027RAID config be required reboot BM on node %s\u0027,"},{"line_number":183,"context_line":"                 node_uuid)"},{"line_number":184,"context_line":"        task.driver.power.reboot(task)"},{"line_number":185,"context_line":"    # Gathering new raid adapter info from BM server"}],"source_content_type":"text/x-python","patch_set":14,"id":"5f7c97a3_2d682f1b","line":182,"range":{"start_line":182,"start_character":30,"end_line":182,"end_character":54},"in_reply_to":"5f7c97a3_820e5f30","updated":"2018-05-30 01:18:52.000000000","message":"ditto","commit_id":"21d331cb38f5a6b20dcd2882a90077ec532c959b"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"6efc6838cfd762d5731f89e19991074e2b3dc79a","unresolved":false,"context_lines":[{"line_number":181,"context_line":"    if reboot is True:"},{"line_number":182,"context_line":"        LOG.info(\u0027RAID config be required reboot BM on node %s\u0027,"},{"line_number":183,"context_line":"                 node_uuid)"},{"line_number":184,"context_line":"        task.driver.power.reboot(task)"},{"line_number":185,"context_line":"    # Gathering new raid adapter info from BM server"},{"line_number":186,"context_line":"    raid_adapter \u003d client.elcm.get_raid_adapter(irmc_info)"},{"line_number":187,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"5f7c97a3_e24b935c","line":184,"range":{"start_line":184,"start_character":8,"end_line":184,"end_character":38},"updated":"2018-05-22 10:43:34.000000000","message":"This is an asynchronous call. I hope the rest of the call in this method is not applicable for reboot path. May be we can add \u0027return\u0027 after the reboot to make explicit.","commit_id":"21d331cb38f5a6b20dcd2882a90077ec532c959b"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"cededb9aa319d0c4dbffc33588cd7c0689e9c557","unresolved":false,"context_lines":[{"line_number":181,"context_line":"    if reboot is True:"},{"line_number":182,"context_line":"        LOG.info(\u0027RAID config be required reboot BM on node %s\u0027,"},{"line_number":183,"context_line":"                 node_uuid)"},{"line_number":184,"context_line":"        task.driver.power.reboot(task)"},{"line_number":185,"context_line":"    # Gathering new raid adapter info from BM server"},{"line_number":186,"context_line":"    raid_adapter \u003d client.elcm.get_raid_adapter(irmc_info)"},{"line_number":187,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"5f7c97a3_cd589b8b","line":184,"range":{"start_line":184,"start_character":8,"end_line":184,"end_character":38},"in_reply_to":"5f7c97a3_e24b935c","updated":"2018-05-30 01:18:52.000000000","message":"ditto","commit_id":"21d331cb38f5a6b20dcd2882a90077ec532c959b"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"6efc6838cfd762d5731f89e19991074e2b3dc79a","unresolved":false,"context_lines":[{"line_number":185,"context_line":"    # Gathering new raid adapter info from BM server"},{"line_number":186,"context_line":"    raid_adapter \u003d client.elcm.get_raid_adapter(irmc_info)"},{"line_number":187,"context_line":""},{"line_number":188,"context_line":"    raid_adapter_info \u003d raid_adapter[\u0027Server\u0027][\u0027HWConfigurationIrmc\u0027]["},{"line_number":189,"context_line":"        \u0027Adapters\u0027][\u0027RAIDAdapter\u0027][0]"},{"line_number":190,"context_line":"    controller \u003d raid_adapter_info[\u0027@AdapterId\u0027]"},{"line_number":191,"context_line":"    node.raid_config[\u0027logical_disks\u0027].append({\u0027controller\u0027: controller})"},{"line_number":192,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"5f7c97a3_c25a1729","line":189,"range":{"start_line":188,"start_character":4,"end_line":189,"end_character":37},"updated":"2018-05-22 10:43:34.000000000","message":"Do we need to worry about KeyError here and other places in this method?","commit_id":"21d331cb38f5a6b20dcd2882a90077ec532c959b"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"cededb9aa319d0c4dbffc33588cd7c0689e9c557","unresolved":false,"context_lines":[{"line_number":185,"context_line":"    # Gathering new raid adapter info from BM server"},{"line_number":186,"context_line":"    raid_adapter \u003d client.elcm.get_raid_adapter(irmc_info)"},{"line_number":187,"context_line":""},{"line_number":188,"context_line":"    raid_adapter_info \u003d raid_adapter[\u0027Server\u0027][\u0027HWConfigurationIrmc\u0027]["},{"line_number":189,"context_line":"        \u0027Adapters\u0027][\u0027RAIDAdapter\u0027][0]"},{"line_number":190,"context_line":"    controller \u003d raid_adapter_info[\u0027@AdapterId\u0027]"},{"line_number":191,"context_line":"    node.raid_config[\u0027logical_disks\u0027].append({\u0027controller\u0027: controller})"},{"line_number":192,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"5f7c97a3_6dde27db","line":189,"range":{"start_line":188,"start_character":4,"end_line":189,"end_character":37},"in_reply_to":"5f7c97a3_c25a1729","updated":"2018-05-30 01:18:52.000000000","message":"It is safe selection after get raid adapter successfully.","commit_id":"21d331cb38f5a6b20dcd2882a90077ec532c959b"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"1e18ee58c0c0853e0bc4564e159ed1a474ce5516","unresolved":false,"context_lines":[{"line_number":211,"context_line":"        raid_common.update_raid_info(node, node.raid_config)"},{"line_number":212,"context_line":"        return None"},{"line_number":213,"context_line":""},{"line_number":214,"context_line":"    # NOTE(trungnv): Avoid to create fail raid configuration if"},{"line_number":215,"context_line":"    # BGI mechanism not running yet. Thus to ensure a correct"},{"line_number":216,"context_line":"    # mechanism then need to wait about 5 minutes then reboot BM"},{"line_number":217,"context_line":"    # in all cases after raid configuration creation."},{"line_number":218,"context_line":"    time.sleep(CONF.irmc.query_raid_config_bgi_status_interval)"},{"line_number":219,"context_line":""},{"line_number":220,"context_line":"    # Sometime server xml report not write RAID logical drives info,"},{"line_number":221,"context_line":"    # or \u0027Idle\u0027 status during BGI mechanism not run yet. Thus must to use"},{"line_number":222,"context_line":"    # POWER_CYCLE which instead of POWER_RESET in this case."},{"line_number":223,"context_line":"    report \u003d irmc_common.get_irmc_report(node)"},{"line_number":224,"context_line":"    bgi_status_list \u003d _get_bgi_status(report)"},{"line_number":225,"context_line":"    if not bgi_status_list or \\"},{"line_number":226,"context_line":"            all(bgi_status \u003d\u003d \u0027Idle\u0027 for bgi_status in"},{"line_number":227,"context_line":"                bgi_status_list.values()):"},{"line_number":228,"context_line":"        _set_power_cycle(node)"},{"line_number":229,"context_line":""},{"line_number":230,"context_line":"    return states.CLEANWAIT"},{"line_number":231,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"5f7c97a3_80862a65","line":228,"range":{"start_line":214,"start_character":0,"end_line":228,"end_character":30},"updated":"2018-05-23 02:59:07.000000000","message":"I\u0027m not sure why both sleep and power cycle are necessary here.\n\nCan\u0027t you wait till BGI starts by seeing BGI status periodically regardless of query_raid_config_bgi_status_interval? Otherwise, will calling power cycle immediately trigger the BGI?","commit_id":"21d331cb38f5a6b20dcd2882a90077ec532c959b"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"cededb9aa319d0c4dbffc33588cd7c0689e9c557","unresolved":false,"context_lines":[{"line_number":211,"context_line":"        raid_common.update_raid_info(node, node.raid_config)"},{"line_number":212,"context_line":"        return None"},{"line_number":213,"context_line":""},{"line_number":214,"context_line":"    # NOTE(trungnv): Avoid to create fail raid configuration if"},{"line_number":215,"context_line":"    # BGI mechanism not running yet. Thus to ensure a correct"},{"line_number":216,"context_line":"    # mechanism then need to wait about 5 minutes then reboot BM"},{"line_number":217,"context_line":"    # in all cases after raid configuration creation."},{"line_number":218,"context_line":"    time.sleep(CONF.irmc.query_raid_config_bgi_status_interval)"},{"line_number":219,"context_line":""},{"line_number":220,"context_line":"    # Sometime server xml report not write RAID logical drives info,"},{"line_number":221,"context_line":"    # or \u0027Idle\u0027 status during BGI mechanism not run yet. Thus must to use"},{"line_number":222,"context_line":"    # POWER_CYCLE which instead of POWER_RESET in this case."},{"line_number":223,"context_line":"    report \u003d irmc_common.get_irmc_report(node)"},{"line_number":224,"context_line":"    bgi_status_list \u003d _get_bgi_status(report)"},{"line_number":225,"context_line":"    if not bgi_status_list or \\"},{"line_number":226,"context_line":"            all(bgi_status \u003d\u003d \u0027Idle\u0027 for bgi_status in"},{"line_number":227,"context_line":"                bgi_status_list.values()):"},{"line_number":228,"context_line":"        _set_power_cycle(node)"},{"line_number":229,"context_line":""},{"line_number":230,"context_line":"    return states.CLEANWAIT"},{"line_number":231,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"5f7c97a3_0d9693f1","line":228,"range":{"start_line":214,"start_character":0,"end_line":228,"end_character":30},"in_reply_to":"5f7c97a3_80862a65","updated":"2018-05-30 01:18:52.000000000","message":"I had removed them with FGI mechanism.","commit_id":"21d331cb38f5a6b20dcd2882a90077ec532c959b"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"1e18ee58c0c0853e0bc4564e159ed1a474ce5516","unresolved":false,"context_lines":[{"line_number":248,"context_line":"        for volume in selected_disks:"},{"line_number":249,"context_line":"            physical_disk_list.append(size_gb[volume])"},{"line_number":250,"context_line":"        if disk[\u0027raid_level\u0027] \u003d\u003d \u002710\u0027:"},{"line_number":251,"context_line":"            factor \u003d len(physical_disk_list) \u003e\u003e 1"},{"line_number":252,"context_line":"            if (len(physical_disk_list) % 2) \u003d\u003d 1:"},{"line_number":253,"context_line":"                factor \u003d (len(physical_disk_list) \u003e\u003e 1) + 0.5"},{"line_number":254,"context_line":"        valid_capacity \u003d \\"},{"line_number":255,"context_line":"            min(physical_disk_list) * (len(physical_disk_list) - factor)"},{"line_number":256,"context_line":"    else:"}],"source_content_type":"text/x-python","patch_set":14,"id":"5f7c97a3_503776b1","line":253,"range":{"start_line":251,"start_character":0,"end_line":253,"end_character":61},"updated":"2018-05-23 02:59:07.000000000","message":"In case with 5 HDDs and 1TB/HDD, factor is 2.5. Then, valid_capacity is 2.5TB?\n\nShouldn\u0027t it be? :\n  factor \u003d ((len(phsycal_disk) + 1) / 2\n\nI prefer using it in a case where raid level is 1+0:\n  valid_capacity \u003d min(physical_disk_list) * (len(physical_disk_list) / 2)","commit_id":"21d331cb38f5a6b20dcd2882a90077ec532c959b"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"cededb9aa319d0c4dbffc33588cd7c0689e9c557","unresolved":false,"context_lines":[{"line_number":248,"context_line":"        for volume in selected_disks:"},{"line_number":249,"context_line":"            physical_disk_list.append(size_gb[volume])"},{"line_number":250,"context_line":"        if disk[\u0027raid_level\u0027] \u003d\u003d \u002710\u0027:"},{"line_number":251,"context_line":"            factor \u003d len(physical_disk_list) \u003e\u003e 1"},{"line_number":252,"context_line":"            if (len(physical_disk_list) % 2) \u003d\u003d 1:"},{"line_number":253,"context_line":"                factor \u003d (len(physical_disk_list) \u003e\u003e 1) + 0.5"},{"line_number":254,"context_line":"        valid_capacity \u003d \\"},{"line_number":255,"context_line":"            min(physical_disk_list) * (len(physical_disk_list) - factor)"},{"line_number":256,"context_line":"    else:"}],"source_content_type":"text/x-python","patch_set":14,"id":"5f7c97a3_eda0f744","line":253,"range":{"start_line":251,"start_character":0,"end_line":253,"end_character":61},"in_reply_to":"5f7c97a3_503776b1","updated":"2018-05-30 01:18:52.000000000","message":"Done","commit_id":"21d331cb38f5a6b20dcd2882a90077ec532c959b"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"1e18ee58c0c0853e0bc4564e159ed1a474ce5516","unresolved":false,"context_lines":[{"line_number":256,"context_line":"    else:"},{"line_number":257,"context_line":"        valid_capacity \u003d \\"},{"line_number":258,"context_line":"            min(all_volume_list) * \\"},{"line_number":259,"context_line":"            ((RAID_LEVELS[disk[\u0027raid_level\u0027]][\u0027min_disks\u0027]) - factor)"},{"line_number":260,"context_line":""},{"line_number":261,"context_line":"    if disk[\u0027size_gb\u0027] \u003e valid_capacity:"},{"line_number":262,"context_line":"        reason \u003d (\u0027Raid volume not suitable value with %s GB\u0027"}],"source_content_type":"text/x-python","patch_set":14,"id":"5f7c97a3_b04fea32","line":259,"updated":"2018-05-23 02:59:07.000000000","message":"Isn\u0027t it necessary to consider RAID 1+0 case here?","commit_id":"21d331cb38f5a6b20dcd2882a90077ec532c959b"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"4daa716cbffaae81fe091bbfd400ba10f3949acb","unresolved":false,"context_lines":[{"line_number":256,"context_line":"    else:"},{"line_number":257,"context_line":"        valid_capacity \u003d \\"},{"line_number":258,"context_line":"            min(all_volume_list) * \\"},{"line_number":259,"context_line":"            ((RAID_LEVELS[disk[\u0027raid_level\u0027]][\u0027min_disks\u0027]) - factor)"},{"line_number":260,"context_line":""},{"line_number":261,"context_line":"    if disk[\u0027size_gb\u0027] \u003e valid_capacity:"},{"line_number":262,"context_line":"        reason \u003d (\u0027Raid volume not suitable value with %s GB\u0027"}],"source_content_type":"text/x-python","patch_set":14,"id":"5f7c97a3_f69835cd","line":259,"in_reply_to":"5f7c97a3_4d8fabcc","updated":"2018-06-06 01:13:22.000000000","message":"I didn\u0027t mention the expression. I asked it comparing this else block with a if block above.","commit_id":"21d331cb38f5a6b20dcd2882a90077ec532c959b"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"cededb9aa319d0c4dbffc33588cd7c0689e9c557","unresolved":false,"context_lines":[{"line_number":256,"context_line":"    else:"},{"line_number":257,"context_line":"        valid_capacity \u003d \\"},{"line_number":258,"context_line":"            min(all_volume_list) * \\"},{"line_number":259,"context_line":"            ((RAID_LEVELS[disk[\u0027raid_level\u0027]][\u0027min_disks\u0027]) - factor)"},{"line_number":260,"context_line":""},{"line_number":261,"context_line":"    if disk[\u0027size_gb\u0027] \u003e valid_capacity:"},{"line_number":262,"context_line":"        reason \u003d (\u0027Raid volume not suitable value with %s GB\u0027"}],"source_content_type":"text/x-python","patch_set":14,"id":"5f7c97a3_4d8fabcc","line":259,"in_reply_to":"5f7c97a3_b04fea32","updated":"2018-05-30 01:18:52.000000000","message":"L407-411: We alway convert \u00271+0\u0027 into \u002710. Thus we don\u0027t need for \u00271+0\u0027 in this case.","commit_id":"21d331cb38f5a6b20dcd2882a90077ec532c959b"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"1e18ee58c0c0853e0bc4564e159ed1a474ce5516","unresolved":false,"context_lines":[{"line_number":464,"context_line":"                        continue"},{"line_number":465,"context_line":"                    if node.provision_state !\u003d states.CLEANWAIT:"},{"line_number":466,"context_line":"                        continue"},{"line_number":467,"context_line":"                    elif node.provision_state \u003d\u003d states.CLEANWAIT:"},{"line_number":468,"context_line":"                        # Avoid hitting clean_callback_timeout expiration"},{"line_number":469,"context_line":"                        node.touch_provisioning()"},{"line_number":470,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"5f7c97a3_e07cbe21","line":467,"updated":"2018-05-23 02:59:07.000000000","message":"This elif statement is redundant.","commit_id":"21d331cb38f5a6b20dcd2882a90077ec532c959b"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"cededb9aa319d0c4dbffc33588cd7c0689e9c557","unresolved":false,"context_lines":[{"line_number":464,"context_line":"                        continue"},{"line_number":465,"context_line":"                    if node.provision_state !\u003d states.CLEANWAIT:"},{"line_number":466,"context_line":"                        continue"},{"line_number":467,"context_line":"                    elif node.provision_state \u003d\u003d states.CLEANWAIT:"},{"line_number":468,"context_line":"                        # Avoid hitting clean_callback_timeout expiration"},{"line_number":469,"context_line":"                        node.touch_provisioning()"},{"line_number":470,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"5f7c97a3_4da80b1f","line":467,"in_reply_to":"5f7c97a3_e07cbe21","updated":"2018-05-30 01:18:52.000000000","message":"Done","commit_id":"21d331cb38f5a6b20dcd2882a90077ec532c959b"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"6efc6838cfd762d5731f89e19991074e2b3dc79a","unresolved":false,"context_lines":[{"line_number":484,"context_line":"                        LOG.info(\u0027RAID configuration has completed on \u0027"},{"line_number":485,"context_line":"                                 \u0027node %(node)s with bgi_status is %(bgi)s\u0027,"},{"line_number":486,"context_line":"                                 {\u0027node\u0027: node_uuid, \u0027bgi\u0027: \u0027Idle\u0027})"},{"line_number":487,"context_line":"                        irmc_common.resume_cleaning(task)"},{"line_number":488,"context_line":""},{"line_number":489,"context_line":"            except exception.NodeNotFound:"},{"line_number":490,"context_line":"                LOG.info(\u0027During query_raid_config_job_status, node \u0027"}],"source_content_type":"text/x-python","patch_set":14,"id":"5f7c97a3_1797c192","line":487,"range":{"start_line":487,"start_character":24,"end_line":487,"end_character":57},"updated":"2018-05-22 10:43:34.000000000","message":"I don\u0027t think we can directly call the resume cleaning without receiving heartbeat from the Agent. \n\nWhat I understand is for IRMC based RAID creation, you can place the request for creation in OOB fashion but the actual creation needs a power cycle. Can the RAID configuration be made into 2 clean steps:-\n1. `create_configuration` would place request for RAID \ncreation and mark this as a cleaning step that needs a reboot.\n2. `read_configuration` has a priority lower than `create_configuration` and is used to read the results of the raid creation and perform any steps required to be done post RAID creation operation like updating node properties etc.","commit_id":"21d331cb38f5a6b20dcd2882a90077ec532c959b"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"cededb9aa319d0c4dbffc33588cd7c0689e9c557","unresolved":false,"context_lines":[{"line_number":484,"context_line":"                        LOG.info(\u0027RAID configuration has completed on \u0027"},{"line_number":485,"context_line":"                                 \u0027node %(node)s with bgi_status is %(bgi)s\u0027,"},{"line_number":486,"context_line":"                                 {\u0027node\u0027: node_uuid, \u0027bgi\u0027: \u0027Idle\u0027})"},{"line_number":487,"context_line":"                        irmc_common.resume_cleaning(task)"},{"line_number":488,"context_line":""},{"line_number":489,"context_line":"            except exception.NodeNotFound:"},{"line_number":490,"context_line":"                LOG.info(\u0027During query_raid_config_job_status, node \u0027"}],"source_content_type":"text/x-python","patch_set":14,"id":"5f7c97a3_cd109b5c","line":487,"range":{"start_line":487,"start_character":24,"end_line":487,"end_character":57},"in_reply_to":"5f7c97a3_1797c192","updated":"2018-05-30 01:18:52.000000000","message":"RAID creation will complete after create_configuration step and return \u0027done\u0027 status, but one backgound initialization will run in Baremetal. Thus we need check them until completed mechanism. I had tested periodict method successfully on our server.","commit_id":"21d331cb38f5a6b20dcd2882a90077ec532c959b"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"1e18ee58c0c0853e0bc4564e159ed1a474ce5516","unresolved":false,"context_lines":[{"line_number":488,"context_line":""},{"line_number":489,"context_line":"            except exception.NodeNotFound:"},{"line_number":490,"context_line":"                LOG.info(\u0027During query_raid_config_job_status, node \u0027"},{"line_number":491,"context_line":"                         \u0027%(node)s was not found raid_config and presumed\u0027"},{"line_number":492,"context_line":"                         \u0027deleted by another process.\u0027, {\u0027node\u0027: node_uuid})"},{"line_number":493,"context_line":"            except exception.NodeLocked:"},{"line_number":494,"context_line":"                LOG.info(\u0027During query_raid_config_job_status, node \u0027"}],"source_content_type":"text/x-python","patch_set":14,"id":"5f7c97a3_f550f460","line":491,"range":{"start_line":491,"start_character":73,"end_line":491,"end_character":74},"updated":"2018-05-23 02:59:07.000000000","message":"nit: need a whitespace","commit_id":"21d331cb38f5a6b20dcd2882a90077ec532c959b"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"cededb9aa319d0c4dbffc33588cd7c0689e9c557","unresolved":false,"context_lines":[{"line_number":488,"context_line":""},{"line_number":489,"context_line":"            except exception.NodeNotFound:"},{"line_number":490,"context_line":"                LOG.info(\u0027During query_raid_config_job_status, node \u0027"},{"line_number":491,"context_line":"                         \u0027%(node)s was not found raid_config and presumed\u0027"},{"line_number":492,"context_line":"                         \u0027deleted by another process.\u0027, {\u0027node\u0027: node_uuid})"},{"line_number":493,"context_line":"            except exception.NodeLocked:"},{"line_number":494,"context_line":"                LOG.info(\u0027During query_raid_config_job_status, node \u0027"}],"source_content_type":"text/x-python","patch_set":14,"id":"5f7c97a3_2d690ff8","line":491,"range":{"start_line":491,"start_character":73,"end_line":491,"end_character":74},"in_reply_to":"5f7c97a3_f550f460","updated":"2018-05-30 01:18:52.000000000","message":"Done","commit_id":"21d331cb38f5a6b20dcd2882a90077ec532c959b"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"4daa716cbffaae81fe091bbfd400ba10f3949acb","unresolved":false,"context_lines":[{"line_number":76,"context_line":"    \"\"\"Get the raid adapter info on a RAID controller."},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"    :param node: an ironic node object."},{"line_number":79,"context_line":"    :returns: raid adapter dictionary, None otherwise."},{"line_number":80,"context_line":"    \"\"\""},{"line_number":81,"context_line":"    irmc_info \u003d node.driver_info"},{"line_number":82,"context_line":"    LOG.info(\u0027IRMC driver is gathering raid adapter info for node %s\u0027,"}],"source_content_type":"text/x-python","patch_set":15,"id":"5f7c97a3_1805e014","line":79,"updated":"2018-06-06 01:13:22.000000000","message":"Why did you change this method to return None when NotFound occurs. This makes it necessary to see if the return value is None everywhere this method is called.","commit_id":"1d5d61e4eaa03d2426061784fbf80eed7d96a840"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"50f6d43dda01a1e4d77d14b52b27c0eb19f1f38c","unresolved":false,"context_lines":[{"line_number":76,"context_line":"    \"\"\"Get the raid adapter info on a RAID controller."},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"    :param node: an ironic node object."},{"line_number":79,"context_line":"    :returns: raid adapter dictionary, None otherwise."},{"line_number":80,"context_line":"    \"\"\""},{"line_number":81,"context_line":"    irmc_info \u003d node.driver_info"},{"line_number":82,"context_line":"    LOG.info(\u0027IRMC driver is gathering raid adapter info for node %s\u0027,"}],"source_content_type":"text/x-python","patch_set":15,"id":"5f7c97a3_e36eecfe","line":79,"in_reply_to":"5f7c97a3_1805e014","updated":"2018-06-11 04:42:29.000000000","message":"Yep. It is an error. Thus we should raise att here. thanks","commit_id":"1d5d61e4eaa03d2426061784fbf80eed7d96a840"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"4daa716cbffaae81fe091bbfd400ba10f3949acb","unresolved":false,"context_lines":[{"line_number":96,"context_line":"    try:"},{"line_number":97,"context_line":"        return client.scci.get_raid_fgi_status(report)"},{"line_number":98,"context_line":"    except client.scci.SCCIInvalidInputError:"},{"line_number":99,"context_line":"        LOG.warning(\u0027ServerViewRAID not available in Baremetal Server\u0027)"},{"line_number":100,"context_line":"    except client.scci.SCCIRAIDError:"},{"line_number":101,"context_line":"        return RAID_STATUS"},{"line_number":102,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"5f7c97a3_bb24e6b0","line":99,"updated":"2018-06-06 01:13:22.000000000","message":"Shouldn\u0027t it be error? This causes the RAID configuration to fail.","commit_id":"1d5d61e4eaa03d2426061784fbf80eed7d96a840"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"50f6d43dda01a1e4d77d14b52b27c0eb19f1f38c","unresolved":false,"context_lines":[{"line_number":96,"context_line":"    try:"},{"line_number":97,"context_line":"        return client.scci.get_raid_fgi_status(report)"},{"line_number":98,"context_line":"    except client.scci.SCCIInvalidInputError:"},{"line_number":99,"context_line":"        LOG.warning(\u0027ServerViewRAID not available in Baremetal Server\u0027)"},{"line_number":100,"context_line":"    except client.scci.SCCIRAIDError:"},{"line_number":101,"context_line":"        return RAID_STATUS"},{"line_number":102,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"5f7c97a3_c312d062","line":99,"in_reply_to":"5f7c97a3_bb24e6b0","updated":"2018-06-11 04:42:29.000000000","message":"Yep. I want to set clean-fail status for this instance along with fgi status is None.","commit_id":"1d5d61e4eaa03d2426061784fbf80eed7d96a840"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"4daa716cbffaae81fe091bbfd400ba10f3949acb","unresolved":false,"context_lines":[{"line_number":224,"context_line":"    else:"},{"line_number":225,"context_line":"        valid_capacity \u003d \\"},{"line_number":226,"context_line":"            min(all_volume_list) * \\"},{"line_number":227,"context_line":"            ((RAID_LEVELS[disk[\u0027raid_level\u0027]][\u0027min_disks\u0027]) - factor)"},{"line_number":228,"context_line":""},{"line_number":229,"context_line":"    if disk[\u0027size_gb\u0027] \u003e valid_capacity:"},{"line_number":230,"context_line":"        reason \u003d (\u0027Raid volume not suitable value with %s GB\u0027"}],"source_content_type":"text/x-python","patch_set":15,"id":"5f7c97a3_36522de0","line":227,"updated":"2018-06-06 01:13:22.000000000","message":"Please let me ask a question. When physical disks are not specified in target_raid_config, will iRMC create RAID with disks with minimum size and minimum number?","commit_id":"1d5d61e4eaa03d2426061784fbf80eed7d96a840"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"50f6d43dda01a1e4d77d14b52b27c0eb19f1f38c","unresolved":false,"context_lines":[{"line_number":224,"context_line":"    else:"},{"line_number":225,"context_line":"        valid_capacity \u003d \\"},{"line_number":226,"context_line":"            min(all_volume_list) * \\"},{"line_number":227,"context_line":"            ((RAID_LEVELS[disk[\u0027raid_level\u0027]][\u0027min_disks\u0027]) - factor)"},{"line_number":228,"context_line":""},{"line_number":229,"context_line":"    if disk[\u0027size_gb\u0027] \u003e valid_capacity:"},{"line_number":230,"context_line":"        reason \u003d (\u0027Raid volume not suitable value with %s GB\u0027"}],"source_content_type":"text/x-python","patch_set":15,"id":"5f7c97a3_7e491330","line":227,"in_reply_to":"5f7c97a3_36522de0","updated":"2018-06-11 04:42:29.000000000","message":"Yes. iRMC will use ramdom disks along with Size annd @number of disk.","commit_id":"1d5d61e4eaa03d2426061784fbf80eed7d96a840"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"4daa716cbffaae81fe091bbfd400ba10f3949acb","unresolved":false,"context_lines":[{"line_number":229,"context_line":"    if disk[\u0027size_gb\u0027] \u003e valid_capacity:"},{"line_number":230,"context_line":"        reason \u003d (\u0027Raid volume not suitable value with %s GB\u0027"},{"line_number":231,"context_line":"                  % disk[\u0027size_gb\u0027])"},{"line_number":232,"context_line":"        raise exception.IRMCOperationError(operation\u003d\u0027RAID config\u0027,"},{"line_number":233,"context_line":"                                           error\u003dreason)"},{"line_number":234,"context_line":"    if disk[\u0027size_gb\u0027] \u003d\u003d valid_capacity:"},{"line_number":235,"context_line":"        disk[\u0027size_gb\u0027] \u003d \u0027MAX\u0027"}],"source_content_type":"text/x-python","patch_set":15,"id":"5f7c97a3_fb649e4b","line":232,"updated":"2018-06-06 01:13:22.000000000","message":"InvalidParameterValue might be appropriate for this kind of exception caused by misconfiguration to target_raid_config.","commit_id":"1d5d61e4eaa03d2426061784fbf80eed7d96a840"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"50f6d43dda01a1e4d77d14b52b27c0eb19f1f38c","unresolved":false,"context_lines":[{"line_number":229,"context_line":"    if disk[\u0027size_gb\u0027] \u003e valid_capacity:"},{"line_number":230,"context_line":"        reason \u003d (\u0027Raid volume not suitable value with %s GB\u0027"},{"line_number":231,"context_line":"                  % disk[\u0027size_gb\u0027])"},{"line_number":232,"context_line":"        raise exception.IRMCOperationError(operation\u003d\u0027RAID config\u0027,"},{"line_number":233,"context_line":"                                           error\u003dreason)"},{"line_number":234,"context_line":"    if disk[\u0027size_gb\u0027] \u003d\u003d valid_capacity:"},{"line_number":235,"context_line":"        disk[\u0027size_gb\u0027] \u003d \u0027MAX\u0027"}],"source_content_type":"text/x-python","patch_set":15,"id":"5f7c97a3_1e625fae","line":232,"in_reply_to":"5f7c97a3_fb649e4b","updated":"2018-06-11 04:42:29.000000000","message":"Done","commit_id":"1d5d61e4eaa03d2426061784fbf80eed7d96a840"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"4daa716cbffaae81fe091bbfd400ba10f3949acb","unresolved":false,"context_lines":[{"line_number":289,"context_line":"            if number_of_physical_disks \u003e max_disk_value:"},{"line_number":290,"context_line":"                reason \u003d (\u0027Physical disks insufficient with raid %s\u0027 %"},{"line_number":291,"context_line":"                          disk[\u0027raid_level\u0027])"},{"line_number":292,"context_line":"                raise exception.IRMCOperationError(operation\u003d\u0027RAID config\u0027,"},{"line_number":293,"context_line":"                                                   error\u003dreason)"},{"line_number":294,"context_line":"            if number_of_physical_disks \u003c min_disk_value:"},{"line_number":295,"context_line":"                reason \u003d (\u0027Physical disks not enough with raid %s\u0027 %"}],"source_content_type":"text/x-python","patch_set":15,"id":"5f7c97a3_1b4ddac3","line":292,"updated":"2018-06-06 01:13:22.000000000","message":"InvalidParameterValue would be better for an error caused by misconfigration to target_raid_config. Same to similar validations.","commit_id":"1d5d61e4eaa03d2426061784fbf80eed7d96a840"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"50f6d43dda01a1e4d77d14b52b27c0eb19f1f38c","unresolved":false,"context_lines":[{"line_number":289,"context_line":"            if number_of_physical_disks \u003e max_disk_value:"},{"line_number":290,"context_line":"                reason \u003d (\u0027Physical disks insufficient with raid %s\u0027 %"},{"line_number":291,"context_line":"                          disk[\u0027raid_level\u0027])"},{"line_number":292,"context_line":"                raise exception.IRMCOperationError(operation\u003d\u0027RAID config\u0027,"},{"line_number":293,"context_line":"                                                   error\u003dreason)"},{"line_number":294,"context_line":"            if number_of_physical_disks \u003c min_disk_value:"},{"line_number":295,"context_line":"                reason \u003d (\u0027Physical disks not enough with raid %s\u0027 %"}],"source_content_type":"text/x-python","patch_set":15,"id":"5f7c97a3_9e6d0f9b","line":292,"in_reply_to":"5f7c97a3_1b4ddac3","updated":"2018-06-11 04:42:29.000000000","message":"Done","commit_id":"1d5d61e4eaa03d2426061784fbf80eed7d96a840"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"635984aa43b5985474f9a7a0120c4e34bb26a6ab","unresolved":false,"context_lines":[{"line_number":314,"context_line":"                if int(phys_disk) in used_valid_disk_slots:"},{"line_number":315,"context_line":"                    reason \u003d (\u0027Physical disks used in RAID configuration \u0027"},{"line_number":316,"context_line":"                              \u0027before config raid %s\u0027 % disk[\u0027raid_level\u0027])"},{"line_number":317,"context_line":"                    raise exception.IRMCOperationError(operation\u003d\u0027RAID config\u0027,"},{"line_number":318,"context_line":"                                                       error\u003dreason)"},{"line_number":319,"context_line":""},{"line_number":320,"context_line":"                used_valid_disk_slots.append(int(phys_disk))"},{"line_number":321,"context_line":"                remain_valid_disk_slots.remove(int(phys_disk))"}],"source_content_type":"text/x-python","patch_set":15,"id":"5f7c97a3_73778ea1","line":318,"range":{"start_line":317,"start_character":20,"end_line":318,"end_character":68},"updated":"2018-06-01 19:48:27.000000000","message":"Something to consider for later: perhaps refactor so we only have this line called once.","commit_id":"1d5d61e4eaa03d2426061784fbf80eed7d96a840"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"50f6d43dda01a1e4d77d14b52b27c0eb19f1f38c","unresolved":false,"context_lines":[{"line_number":314,"context_line":"                if int(phys_disk) in used_valid_disk_slots:"},{"line_number":315,"context_line":"                    reason \u003d (\u0027Physical disks used in RAID configuration \u0027"},{"line_number":316,"context_line":"                              \u0027before config raid %s\u0027 % disk[\u0027raid_level\u0027])"},{"line_number":317,"context_line":"                    raise exception.IRMCOperationError(operation\u003d\u0027RAID config\u0027,"},{"line_number":318,"context_line":"                                                       error\u003dreason)"},{"line_number":319,"context_line":""},{"line_number":320,"context_line":"                used_valid_disk_slots.append(int(phys_disk))"},{"line_number":321,"context_line":"                remain_valid_disk_slots.remove(int(phys_disk))"}],"source_content_type":"text/x-python","patch_set":15,"id":"5f7c97a3_dc10c5ab","line":318,"range":{"start_line":317,"start_character":20,"end_line":318,"end_character":68},"in_reply_to":"5f7c97a3_73778ea1","updated":"2018-06-11 04:42:29.000000000","message":"Yep. But they have difference msg logs.","commit_id":"1d5d61e4eaa03d2426061784fbf80eed7d96a840"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"635984aa43b5985474f9a7a0120c4e34bb26a6ab","unresolved":false,"context_lines":[{"line_number":323,"context_line":"        if disk[\u0027size_gb\u0027] !\u003d \u0027MAX\u0027:"},{"line_number":324,"context_line":"            # Validate size_gb value input"},{"line_number":325,"context_line":"            _validate_logical_drive_capacity(disk, valid_disks)"},{"line_number":326,"context_line":""},{"line_number":327,"context_line":""},{"line_number":328,"context_line":"class IrmcRAID(base.RAIDInterface):"},{"line_number":329,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"5f7c97a3_f3415e3a","line":326,"updated":"2018-06-01 19:48:27.000000000","message":"I\u0027m a little surprised that this validate method is not hitting the complexity check. It might be good to break apart or refactor into chunks at some point.","commit_id":"1d5d61e4eaa03d2426061784fbf80eed7d96a840"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"50f6d43dda01a1e4d77d14b52b27c0eb19f1f38c","unresolved":false,"context_lines":[{"line_number":323,"context_line":"        if disk[\u0027size_gb\u0027] !\u003d \u0027MAX\u0027:"},{"line_number":324,"context_line":"            # Validate size_gb value input"},{"line_number":325,"context_line":"            _validate_logical_drive_capacity(disk, valid_disks)"},{"line_number":326,"context_line":""},{"line_number":327,"context_line":""},{"line_number":328,"context_line":"class IrmcRAID(base.RAIDInterface):"},{"line_number":329,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"5f7c97a3_fc17c153","line":326,"in_reply_to":"5f7c97a3_f3415e3a","updated":"2018-06-11 04:42:29.000000000","message":"This validation is a part of _validate_physical_disks method, they only check if we have size_gb inside of target_raid_config input. And we have a complexity checking in this method.","commit_id":"1d5d61e4eaa03d2426061784fbf80eed7d96a840"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"4daa716cbffaae81fe091bbfd400ba10f3949acb","unresolved":false,"context_lines":[{"line_number":413,"context_line":"    @METRICS.timer(\u0027IrmcRAID._query_raid_config_fgi_status\u0027)"},{"line_number":414,"context_line":"    @periodics.periodic("},{"line_number":415,"context_line":"        spacing\u003dCONF.irmc.query_raid_config_fgi_status_interval)"},{"line_number":416,"context_line":"    def _query_raid_config_fgi_status(self, manager, context):"},{"line_number":417,"context_line":"        \"\"\"Periodic task to check the progress of running RAID config.\"\"\""},{"line_number":418,"context_line":""},{"line_number":419,"context_line":"        filters \u003d {\u0027reserved\u0027: False, \u0027provision_state\u0027: states.CLEANWAIT,"}],"source_content_type":"text/x-python","patch_set":15,"id":"5f7c97a3_187400fe","line":416,"updated":"2018-06-06 01:13:22.000000000","message":"Are there any unit tests for this method?","commit_id":"1d5d61e4eaa03d2426061784fbf80eed7d96a840"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"50f6d43dda01a1e4d77d14b52b27c0eb19f1f38c","unresolved":false,"context_lines":[{"line_number":413,"context_line":"    @METRICS.timer(\u0027IrmcRAID._query_raid_config_fgi_status\u0027)"},{"line_number":414,"context_line":"    @periodics.periodic("},{"line_number":415,"context_line":"        spacing\u003dCONF.irmc.query_raid_config_fgi_status_interval)"},{"line_number":416,"context_line":"    def _query_raid_config_fgi_status(self, manager, context):"},{"line_number":417,"context_line":"        \"\"\"Periodic task to check the progress of running RAID config.\"\"\""},{"line_number":418,"context_line":""},{"line_number":419,"context_line":"        filters \u003d {\u0027reserved\u0027: False, \u0027provision_state\u0027: states.CLEANWAIT,"}],"source_content_type":"text/x-python","patch_set":15,"id":"5f7c97a3_b2249bc7","line":416,"in_reply_to":"5f7c97a3_187400fe","updated":"2018-06-11 04:42:29.000000000","message":"Updated in the next patch. Thanks.","commit_id":"1d5d61e4eaa03d2426061784fbf80eed7d96a840"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"4daa716cbffaae81fe091bbfd400ba10f3949acb","unresolved":false,"context_lines":[{"line_number":439,"context_line":"                    # Avoid hitting clean_callback_timeout expiration"},{"line_number":440,"context_line":"                    node.touch_provisioning()"},{"line_number":441,"context_line":""},{"line_number":442,"context_line":"                    report \u003d irmc_common.get_irmc_report(node)"},{"line_number":443,"context_line":"                    fgi_status_list \u003d _get_fgi_status(report)"},{"line_number":444,"context_line":"                    LOG.info(\u0027Gathering FGI status from server on node %s\u0027,"},{"line_number":445,"context_line":"                             node_uuid)"}],"source_content_type":"text/x-python","patch_set":15,"id":"5f7c97a3_b86f0cfb","line":442,"updated":"2018-06-06 01:13:22.000000000","message":"Shouldn\u0027t we catch an exception from this method? Otherwise, an error from one node stops checking remaining nodes.","commit_id":"1d5d61e4eaa03d2426061784fbf80eed7d96a840"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"50f6d43dda01a1e4d77d14b52b27c0eb19f1f38c","unresolved":false,"context_lines":[{"line_number":439,"context_line":"                    # Avoid hitting clean_callback_timeout expiration"},{"line_number":440,"context_line":"                    node.touch_provisioning()"},{"line_number":441,"context_line":""},{"line_number":442,"context_line":"                    report \u003d irmc_common.get_irmc_report(node)"},{"line_number":443,"context_line":"                    fgi_status_list \u003d _get_fgi_status(report)"},{"line_number":444,"context_line":"                    LOG.info(\u0027Gathering FGI status from server on node %s\u0027,"},{"line_number":445,"context_line":"                             node_uuid)"}],"source_content_type":"text/x-python","patch_set":15,"id":"5f7c97a3_29a363b3","line":442,"in_reply_to":"5f7c97a3_b86f0cfb","updated":"2018-06-11 04:42:29.000000000","message":"Done","commit_id":"1d5d61e4eaa03d2426061784fbf80eed7d96a840"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"4daa716cbffaae81fe091bbfd400ba10f3949acb","unresolved":false,"context_lines":[{"line_number":440,"context_line":"                    node.touch_provisioning()"},{"line_number":441,"context_line":""},{"line_number":442,"context_line":"                    report \u003d irmc_common.get_irmc_report(node)"},{"line_number":443,"context_line":"                    fgi_status_list \u003d _get_fgi_status(report)"},{"line_number":444,"context_line":"                    LOG.info(\u0027Gathering FGI status from server on node %s\u0027,"},{"line_number":445,"context_line":"                             node_uuid)"},{"line_number":446,"context_line":"                    # Note(trungnv): Allow to check until RAID mechanism to be"}],"source_content_type":"text/x-python","patch_set":15,"id":"5f7c97a3_85d509ba","line":443,"range":{"start_line":443,"start_character":20,"end_line":443,"end_character":35},"updated":"2018-06-06 01:13:22.000000000","message":"This name is confusing. Is this a list?","commit_id":"1d5d61e4eaa03d2426061784fbf80eed7d96a840"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"50f6d43dda01a1e4d77d14b52b27c0eb19f1f38c","unresolved":false,"context_lines":[{"line_number":440,"context_line":"                    node.touch_provisioning()"},{"line_number":441,"context_line":""},{"line_number":442,"context_line":"                    report \u003d irmc_common.get_irmc_report(node)"},{"line_number":443,"context_line":"                    fgi_status_list \u003d _get_fgi_status(report)"},{"line_number":444,"context_line":"                    LOG.info(\u0027Gathering FGI status from server on node %s\u0027,"},{"line_number":445,"context_line":"                             node_uuid)"},{"line_number":446,"context_line":"                    # Note(trungnv): Allow to check until RAID mechanism to be"}],"source_content_type":"text/x-python","patch_set":15,"id":"5f7c97a3_7e20334a","line":443,"range":{"start_line":443,"start_character":20,"end_line":443,"end_character":35},"in_reply_to":"5f7c97a3_85d509ba","updated":"2018-06-11 04:42:29.000000000","message":"Ah. Yes. This is my mistake again. Thanks.","commit_id":"1d5d61e4eaa03d2426061784fbf80eed7d96a840"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"4daa716cbffaae81fe091bbfd400ba10f3949acb","unresolved":false,"context_lines":[{"line_number":450,"context_line":"                    if not fgi_status_list:"},{"line_number":451,"context_line":"                        raid_config.update({\u0027fgi_status\u0027: fgi_status_list})"},{"line_number":452,"context_line":"                        raid_common.update_raid_info(node, raid_config)"},{"line_number":453,"context_line":"                        return self._set_clean_failed(task, fgi_status_list)"},{"line_number":454,"context_line":"                    if all(fgi_status \u003d\u003d \u0027Idle\u0027 for fgi_status in"},{"line_number":455,"context_line":"                           fgi_status_list.values()):"},{"line_number":456,"context_line":"                        raid_config.update({\u0027fgi_status\u0027: \u0027Idle\u0027})"}],"source_content_type":"text/x-python","patch_set":15,"id":"5f7c97a3_f8eb440f","line":453,"updated":"2018-06-06 01:13:22.000000000","message":"Don\u0027t we need to continue this loop? Can we stop this iteration soon after one of the nodes gets failed?","commit_id":"1d5d61e4eaa03d2426061784fbf80eed7d96a840"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"50f6d43dda01a1e4d77d14b52b27c0eb19f1f38c","unresolved":false,"context_lines":[{"line_number":450,"context_line":"                    if not fgi_status_list:"},{"line_number":451,"context_line":"                        raid_config.update({\u0027fgi_status\u0027: fgi_status_list})"},{"line_number":452,"context_line":"                        raid_common.update_raid_info(node, raid_config)"},{"line_number":453,"context_line":"                        return self._set_clean_failed(task, fgi_status_list)"},{"line_number":454,"context_line":"                    if all(fgi_status \u003d\u003d \u0027Idle\u0027 for fgi_status in"},{"line_number":455,"context_line":"                           fgi_status_list.values()):"},{"line_number":456,"context_line":"                        raid_config.update({\u0027fgi_status\u0027: \u0027Idle\u0027})"}],"source_content_type":"text/x-python","patch_set":15,"id":"5f7c97a3_5e98d773","line":453,"in_reply_to":"5f7c97a3_f8eb440f","updated":"2018-06-11 04:42:29.000000000","message":"We will complete with fail status in node. Because, after check in L448 then we have fgi values, if fgi still return None then RAID configuration mechanism has failed at server side.","commit_id":"1d5d61e4eaa03d2426061784fbf80eed7d96a840"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"4daa716cbffaae81fe091bbfd400ba10f3949acb","unresolved":false,"context_lines":[{"line_number":453,"context_line":"                        return self._set_clean_failed(task, fgi_status_list)"},{"line_number":454,"context_line":"                    if all(fgi_status \u003d\u003d \u0027Idle\u0027 for fgi_status in"},{"line_number":455,"context_line":"                           fgi_status_list.values()):"},{"line_number":456,"context_line":"                        raid_config.update({\u0027fgi_status\u0027: \u0027Idle\u0027})"},{"line_number":457,"context_line":"                        raid_common.update_raid_info(node, raid_config)"},{"line_number":458,"context_line":"                        LOG.info(\u0027RAID configuration has completed on \u0027"},{"line_number":459,"context_line":"                                 \u0027node %(node)s with fgi_status is %(fgi)s\u0027,"}],"source_content_type":"text/x-python","patch_set":15,"id":"5f7c97a3_9857b0cb","line":456,"range":{"start_line":456,"start_character":44,"end_line":456,"end_character":64},"updated":"2018-06-06 01:13:22.000000000","message":"I guess this indicates that RAID configuration is completed. However, it seems difficult to understand it from this field. Could we make this more straightforward?","commit_id":"1d5d61e4eaa03d2426061784fbf80eed7d96a840"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"50f6d43dda01a1e4d77d14b52b27c0eb19f1f38c","unresolved":false,"context_lines":[{"line_number":453,"context_line":"                        return self._set_clean_failed(task, fgi_status_list)"},{"line_number":454,"context_line":"                    if all(fgi_status \u003d\u003d \u0027Idle\u0027 for fgi_status in"},{"line_number":455,"context_line":"                           fgi_status_list.values()):"},{"line_number":456,"context_line":"                        raid_config.update({\u0027fgi_status\u0027: \u0027Idle\u0027})"},{"line_number":457,"context_line":"                        raid_common.update_raid_info(node, raid_config)"},{"line_number":458,"context_line":"                        LOG.info(\u0027RAID configuration has completed on \u0027"},{"line_number":459,"context_line":"                                 \u0027node %(node)s with fgi_status is %(fgi)s\u0027,"}],"source_content_type":"text/x-python","patch_set":15,"id":"5f7c97a3_de85c708","line":456,"range":{"start_line":456,"start_character":44,"end_line":456,"end_character":64},"in_reply_to":"5f7c97a3_9857b0cb","updated":"2018-06-11 04:42:29.000000000","message":"Yeah. I will move Idle status into Completed status.","commit_id":"1d5d61e4eaa03d2426061784fbf80eed7d96a840"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"a1872140c4ed1ebb020f33ff1bfbb743468d4499","unresolved":false,"context_lines":[{"line_number":85,"context_line":"    try:"},{"line_number":86,"context_line":"        return client.elcm.get_raid_adapter(irmc_info)"},{"line_number":87,"context_line":"    except client.elcm.ELCMProfileNotFound:"},{"line_number":88,"context_line":"        reason \u003d (\u0027Cannot see any raid profile in \"%s\"\u0027 % node.uuid)"},{"line_number":89,"context_line":"        raise exception.IRMCOperationError(operation\u003d\u0027RAID config\u0027,"},{"line_number":90,"context_line":"                                           error\u003dreason)"},{"line_number":91,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"5f7c97a3_f9b13d90","line":88,"updated":"2018-06-14 08:51:46.000000000","message":"s/see/find/, s/raid/RAID/","commit_id":"6b9f045ec0a10c040161cfb418ad263ac5c020e0"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"a8233bb860a4f2e84be48ba6d47d2e5348c50eac","unresolved":false,"context_lines":[{"line_number":85,"context_line":"    try:"},{"line_number":86,"context_line":"        return client.elcm.get_raid_adapter(irmc_info)"},{"line_number":87,"context_line":"    except client.elcm.ELCMProfileNotFound:"},{"line_number":88,"context_line":"        reason \u003d (\u0027Cannot see any raid profile in \"%s\"\u0027 % node.uuid)"},{"line_number":89,"context_line":"        raise exception.IRMCOperationError(operation\u003d\u0027RAID config\u0027,"},{"line_number":90,"context_line":"                                           error\u003dreason)"},{"line_number":91,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"5f7c97a3_4d05f40f","line":88,"in_reply_to":"5f7c97a3_f9b13d90","updated":"2018-06-15 04:34:30.000000000","message":"Done","commit_id":"6b9f045ec0a10c040161cfb418ad263ac5c020e0"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"a1872140c4ed1ebb020f33ff1bfbb743468d4499","unresolved":false,"context_lines":[{"line_number":161,"context_line":"    try:"},{"line_number":162,"context_line":"        client.elcm.delete_raid_configuration(irmc_info)"},{"line_number":163,"context_line":"    except client.scci.SCCIClientError as exc:"},{"line_number":164,"context_line":"        LOG.error(\u0027IRMC driver failed to delete raid adapter info \u0027"},{"line_number":165,"context_line":"                  \u0027for node %(node_uuid)s. Reason: %(error)s.\u0027,"},{"line_number":166,"context_line":"                  {\u0027node_uuid\u0027: node.uuid, \u0027error\u0027: exc})"},{"line_number":167,"context_line":"        raise exception.IRMCOperationError(error\u003dexc)"}],"source_content_type":"text/x-python","patch_set":16,"id":"5f7c97a3_19ad1930","line":164,"updated":"2018-06-14 08:51:46.000000000","message":"nit: RAID, s/adapter info/configuration/","commit_id":"6b9f045ec0a10c040161cfb418ad263ac5c020e0"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"a8233bb860a4f2e84be48ba6d47d2e5348c50eac","unresolved":false,"context_lines":[{"line_number":161,"context_line":"    try:"},{"line_number":162,"context_line":"        client.elcm.delete_raid_configuration(irmc_info)"},{"line_number":163,"context_line":"    except client.scci.SCCIClientError as exc:"},{"line_number":164,"context_line":"        LOG.error(\u0027IRMC driver failed to delete raid adapter info \u0027"},{"line_number":165,"context_line":"                  \u0027for node %(node_uuid)s. Reason: %(error)s.\u0027,"},{"line_number":166,"context_line":"                  {\u0027node_uuid\u0027: node.uuid, \u0027error\u0027: exc})"},{"line_number":167,"context_line":"        raise exception.IRMCOperationError(error\u003dexc)"}],"source_content_type":"text/x-python","patch_set":16,"id":"5f7c97a3_ed15e03e","line":164,"in_reply_to":"5f7c97a3_19ad1930","updated":"2018-06-15 04:34:30.000000000","message":"Done","commit_id":"6b9f045ec0a10c040161cfb418ad263ac5c020e0"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"a1872140c4ed1ebb020f33ff1bfbb743468d4499","unresolved":false,"context_lines":[{"line_number":257,"context_line":"    valid_disks \u003d raid_adapter[\u0027Server\u0027][\u0027HWConfigurationIrmc\u0027]["},{"line_number":258,"context_line":"        \u0027Adapters\u0027][\u0027RAIDAdapter\u0027][0][\u0027PhysicalDisks\u0027]"},{"line_number":259,"context_line":"    if valid_disks is None:"},{"line_number":260,"context_line":"        reason \u003d (\u0027Cannot see any HDD over \"%s\" in Bare metal\u0027 % node.uuid)"},{"line_number":261,"context_line":"        raise exception.IRMCOperationError(operation\u003d\u0027RAID config\u0027,"},{"line_number":262,"context_line":"                                           error\u003dreason)"},{"line_number":263,"context_line":"    valid_disk_slots \u003d [slot[\u0027Slot\u0027] for slot in valid_disks[\u0027PhysicalDisk\u0027]]"}],"source_content_type":"text/x-python","patch_set":16,"id":"5f7c97a3_b9a74550","line":260,"updated":"2018-06-14 08:51:46.000000000","message":"\"in the node %s\"","commit_id":"6b9f045ec0a10c040161cfb418ad263ac5c020e0"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"a8233bb860a4f2e84be48ba6d47d2e5348c50eac","unresolved":false,"context_lines":[{"line_number":257,"context_line":"    valid_disks \u003d raid_adapter[\u0027Server\u0027][\u0027HWConfigurationIrmc\u0027]["},{"line_number":258,"context_line":"        \u0027Adapters\u0027][\u0027RAIDAdapter\u0027][0][\u0027PhysicalDisks\u0027]"},{"line_number":259,"context_line":"    if valid_disks is None:"},{"line_number":260,"context_line":"        reason \u003d (\u0027Cannot see any HDD over \"%s\" in Bare metal\u0027 % node.uuid)"},{"line_number":261,"context_line":"        raise exception.IRMCOperationError(operation\u003d\u0027RAID config\u0027,"},{"line_number":262,"context_line":"                                           error\u003dreason)"},{"line_number":263,"context_line":"    valid_disk_slots \u003d [slot[\u0027Slot\u0027] for slot in valid_disks[\u0027PhysicalDisk\u0027]]"}],"source_content_type":"text/x-python","patch_set":16,"id":"5f7c97a3_8d246cb4","line":260,"in_reply_to":"5f7c97a3_b9a74550","updated":"2018-06-15 04:34:30.000000000","message":"Done","commit_id":"6b9f045ec0a10c040161cfb418ad263ac5c020e0"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"a1872140c4ed1ebb020f33ff1bfbb743468d4499","unresolved":false,"context_lines":[{"line_number":268,"context_line":"    for disk in logical_disks:"},{"line_number":269,"context_line":"        # Check raid_level value in the target_raid_config of node"},{"line_number":270,"context_line":"        if disk.get(\u0027raid_level\u0027) not in RAID_LEVELS:"},{"line_number":271,"context_line":"            reason \u003d (\u0027Raid level is not suitable value with raid \"%s\"\u0027"},{"line_number":272,"context_line":"                      % disk.get(\u0027raid_level\u0027))"},{"line_number":273,"context_line":"            raise exception.IRMCOperationError(operation\u003d\u0027RAID config\u0027,"},{"line_number":274,"context_line":"                                               error\u003dreason)"}],"source_content_type":"text/x-python","patch_set":16,"id":"5f7c97a3_d9a2413f","line":271,"updated":"2018-06-14 08:51:46.000000000","message":"\"RAID level is not supported: %s\"","commit_id":"6b9f045ec0a10c040161cfb418ad263ac5c020e0"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"a8233bb860a4f2e84be48ba6d47d2e5348c50eac","unresolved":false,"context_lines":[{"line_number":268,"context_line":"    for disk in logical_disks:"},{"line_number":269,"context_line":"        # Check raid_level value in the target_raid_config of node"},{"line_number":270,"context_line":"        if disk.get(\u0027raid_level\u0027) not in RAID_LEVELS:"},{"line_number":271,"context_line":"            reason \u003d (\u0027Raid level is not suitable value with raid \"%s\"\u0027"},{"line_number":272,"context_line":"                      % disk.get(\u0027raid_level\u0027))"},{"line_number":273,"context_line":"            raise exception.IRMCOperationError(operation\u003d\u0027RAID config\u0027,"},{"line_number":274,"context_line":"                                               error\u003dreason)"}],"source_content_type":"text/x-python","patch_set":16,"id":"5f7c97a3_8d49cc67","line":271,"in_reply_to":"5f7c97a3_d9a2413f","updated":"2018-06-15 04:34:30.000000000","message":"Done","commit_id":"6b9f045ec0a10c040161cfb418ad263ac5c020e0"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"a1872140c4ed1ebb020f33ff1bfbb743468d4499","unresolved":false,"context_lines":[{"line_number":290,"context_line":"            # Check number of physical disks along with raid level"},{"line_number":291,"context_line":"            if number_of_physical_disks \u003e max_disk_value:"},{"line_number":292,"context_line":"                raise exception.InvalidParameterValue("},{"line_number":293,"context_line":"                    \u0027Physical disks insufficient with raid %s\u0027"},{"line_number":294,"context_line":"                    % disk[\u0027raid_level\u0027])"},{"line_number":295,"context_line":"            if number_of_physical_disks \u003c min_disk_value:"},{"line_number":296,"context_line":"                reason \u003d (\u0027Physical disks not enough with raid %s\u0027 %"}],"source_content_type":"text/x-python","patch_set":16,"id":"5f7c97a3_7963ed1a","line":293,"updated":"2018-06-14 08:51:46.000000000","message":"\"Too many disks requested for RAID level %(level)s, maximum is %(max)s\"","commit_id":"6b9f045ec0a10c040161cfb418ad263ac5c020e0"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"a8233bb860a4f2e84be48ba6d47d2e5348c50eac","unresolved":false,"context_lines":[{"line_number":290,"context_line":"            # Check number of physical disks along with raid level"},{"line_number":291,"context_line":"            if number_of_physical_disks \u003e max_disk_value:"},{"line_number":292,"context_line":"                raise exception.InvalidParameterValue("},{"line_number":293,"context_line":"                    \u0027Physical disks insufficient with raid %s\u0027"},{"line_number":294,"context_line":"                    % disk[\u0027raid_level\u0027])"},{"line_number":295,"context_line":"            if number_of_physical_disks \u003c min_disk_value:"},{"line_number":296,"context_line":"                reason \u003d (\u0027Physical disks not enough with raid %s\u0027 %"}],"source_content_type":"text/x-python","patch_set":16,"id":"5f7c97a3_edb16046","line":293,"in_reply_to":"5f7c97a3_7963ed1a","updated":"2018-06-15 04:34:30.000000000","message":"Done","commit_id":"6b9f045ec0a10c040161cfb418ad263ac5c020e0"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"a1872140c4ed1ebb020f33ff1bfbb743468d4499","unresolved":false,"context_lines":[{"line_number":293,"context_line":"                    \u0027Physical disks insufficient with raid %s\u0027"},{"line_number":294,"context_line":"                    % disk[\u0027raid_level\u0027])"},{"line_number":295,"context_line":"            if number_of_physical_disks \u003c min_disk_value:"},{"line_number":296,"context_line":"                reason \u003d (\u0027Physical disks not enough with raid %s\u0027 %"},{"line_number":297,"context_line":"                          disk[\u0027raid_level\u0027])"},{"line_number":298,"context_line":"                raise exception.IRMCOperationError(operation\u003d\u0027RAID config\u0027,"},{"line_number":299,"context_line":"                                                   error\u003dreason)"}],"source_content_type":"text/x-python","patch_set":16,"id":"5f7c97a3_99660929","line":296,"updated":"2018-06-14 08:51:46.000000000","message":"\"Not enough disks requested for RAID level %(level)s, minimum is %(min)s\"","commit_id":"6b9f045ec0a10c040161cfb418ad263ac5c020e0"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"a8233bb860a4f2e84be48ba6d47d2e5348c50eac","unresolved":false,"context_lines":[{"line_number":293,"context_line":"                    \u0027Physical disks insufficient with raid %s\u0027"},{"line_number":294,"context_line":"                    % disk[\u0027raid_level\u0027])"},{"line_number":295,"context_line":"            if number_of_physical_disks \u003c min_disk_value:"},{"line_number":296,"context_line":"                reason \u003d (\u0027Physical disks not enough with raid %s\u0027 %"},{"line_number":297,"context_line":"                          disk[\u0027raid_level\u0027])"},{"line_number":298,"context_line":"                raise exception.IRMCOperationError(operation\u003d\u0027RAID config\u0027,"},{"line_number":299,"context_line":"                                                   error\u003dreason)"}],"source_content_type":"text/x-python","patch_set":16,"id":"5f7c97a3_2d91989b","line":296,"in_reply_to":"5f7c97a3_99660929","updated":"2018-06-15 04:34:30.000000000","message":"Done","commit_id":"6b9f045ec0a10c040161cfb418ad263ac5c020e0"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"a1872140c4ed1ebb020f33ff1bfbb743468d4499","unresolved":false,"context_lines":[{"line_number":301,"context_line":"            for phys_disk in disk[\u0027physical_disks\u0027]:"},{"line_number":302,"context_line":"                if int(phys_disk) not in valid_disk_slots:"},{"line_number":303,"context_line":"                    reason \u003d (\u0027Physical disks incorrect in valid disk on \u0027"},{"line_number":304,"context_line":"                              \u0027Baremetal with physical disk %s\u0027 % phys_disk)"},{"line_number":305,"context_line":"                    raise exception.IRMCOperationError(operation\u003d\u0027RAID config\u0027,"},{"line_number":306,"context_line":"                                                       error\u003dreason)"},{"line_number":307,"context_line":"                type_of_disks.append(physical_disk_dict[int(phys_disk)])"}],"source_content_type":"text/x-python","patch_set":16,"id":"5f7c97a3_3969f5f6","line":304,"updated":"2018-06-14 08:51:46.000000000","message":"\"Incorrect physical disk %(disk)s, correcg are %(valid)s\"","commit_id":"6b9f045ec0a10c040161cfb418ad263ac5c020e0"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"a8233bb860a4f2e84be48ba6d47d2e5348c50eac","unresolved":false,"context_lines":[{"line_number":301,"context_line":"            for phys_disk in disk[\u0027physical_disks\u0027]:"},{"line_number":302,"context_line":"                if int(phys_disk) not in valid_disk_slots:"},{"line_number":303,"context_line":"                    reason \u003d (\u0027Physical disks incorrect in valid disk on \u0027"},{"line_number":304,"context_line":"                              \u0027Baremetal with physical disk %s\u0027 % phys_disk)"},{"line_number":305,"context_line":"                    raise exception.IRMCOperationError(operation\u003d\u0027RAID config\u0027,"},{"line_number":306,"context_line":"                                                       error\u003dreason)"},{"line_number":307,"context_line":"                type_of_disks.append(physical_disk_dict[int(phys_disk)])"}],"source_content_type":"text/x-python","patch_set":16,"id":"5f7c97a3_0dd93c83","line":304,"in_reply_to":"5f7c97a3_3969f5f6","updated":"2018-06-15 04:34:30.000000000","message":"Done","commit_id":"6b9f045ec0a10c040161cfb418ad263ac5c020e0"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"a1872140c4ed1ebb020f33ff1bfbb743468d4499","unresolved":false,"context_lines":[{"line_number":307,"context_line":"                type_of_disks.append(physical_disk_dict[int(phys_disk)])"},{"line_number":308,"context_line":"                if physical_disk_dict[int(phys_disk)] !\u003d type_of_disks[0]:"},{"line_number":309,"context_line":"                    reason \u003d (\u0027Cannot create RAID configuration with \u0027"},{"line_number":310,"context_line":"                              \u0027difference hard drives type %s\u0027"},{"line_number":311,"context_line":"                              % physical_disk_dict[int(phys_disk)])"},{"line_number":312,"context_line":"                    raise exception.IRMCOperationError(operation\u003d\u0027RAID config\u0027,"},{"line_number":313,"context_line":"                                                       error\u003dreason)"}],"source_content_type":"text/x-python","patch_set":16,"id":"5f7c97a3_596cf105","line":310,"updated":"2018-06-14 08:51:46.000000000","message":"s/difference/different/","commit_id":"6b9f045ec0a10c040161cfb418ad263ac5c020e0"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"a8233bb860a4f2e84be48ba6d47d2e5348c50eac","unresolved":false,"context_lines":[{"line_number":307,"context_line":"                type_of_disks.append(physical_disk_dict[int(phys_disk)])"},{"line_number":308,"context_line":"                if physical_disk_dict[int(phys_disk)] !\u003d type_of_disks[0]:"},{"line_number":309,"context_line":"                    reason \u003d (\u0027Cannot create RAID configuration with \u0027"},{"line_number":310,"context_line":"                              \u0027difference hard drives type %s\u0027"},{"line_number":311,"context_line":"                              % physical_disk_dict[int(phys_disk)])"},{"line_number":312,"context_line":"                    raise exception.IRMCOperationError(operation\u003d\u0027RAID config\u0027,"},{"line_number":313,"context_line":"                                                       error\u003dreason)"}],"source_content_type":"text/x-python","patch_set":16,"id":"5f7c97a3_cde26431","line":310,"in_reply_to":"5f7c97a3_596cf105","updated":"2018-06-15 04:34:30.000000000","message":"Done","commit_id":"6b9f045ec0a10c040161cfb418ad263ac5c020e0"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"a1872140c4ed1ebb020f33ff1bfbb743468d4499","unresolved":false,"context_lines":[{"line_number":313,"context_line":"                                                       error\u003dreason)"},{"line_number":314,"context_line":"                # Check physical disk values with used disk slots"},{"line_number":315,"context_line":"                if int(phys_disk) in used_valid_disk_slots:"},{"line_number":316,"context_line":"                    reason \u003d (\u0027Physical disks used in RAID configuration \u0027"},{"line_number":317,"context_line":"                              \u0027before config raid %s\u0027 % disk[\u0027raid_level\u0027])"},{"line_number":318,"context_line":"                    raise exception.IRMCOperationError(operation\u003d\u0027RAID config\u0027,"},{"line_number":319,"context_line":"                                                       error\u003dreason)"}],"source_content_type":"text/x-python","patch_set":16,"id":"5f7c97a3_f9761dd8","line":316,"updated":"2018-06-14 08:51:46.000000000","message":"\"Disk %(disk)s is already used in a RAID configuration\"","commit_id":"6b9f045ec0a10c040161cfb418ad263ac5c020e0"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"a8233bb860a4f2e84be48ba6d47d2e5348c50eac","unresolved":false,"context_lines":[{"line_number":313,"context_line":"                                                       error\u003dreason)"},{"line_number":314,"context_line":"                # Check physical disk values with used disk slots"},{"line_number":315,"context_line":"                if int(phys_disk) in used_valid_disk_slots:"},{"line_number":316,"context_line":"                    reason \u003d (\u0027Physical disks used in RAID configuration \u0027"},{"line_number":317,"context_line":"                              \u0027before config raid %s\u0027 % disk[\u0027raid_level\u0027])"},{"line_number":318,"context_line":"                    raise exception.IRMCOperationError(operation\u003d\u0027RAID config\u0027,"},{"line_number":319,"context_line":"                                                       error\u003dreason)"}],"source_content_type":"text/x-python","patch_set":16,"id":"5f7c97a3_0dc29c87","line":316,"in_reply_to":"5f7c97a3_f9761dd8","updated":"2018-06-15 04:34:30.000000000","message":"Done","commit_id":"6b9f045ec0a10c040161cfb418ad263ac5c020e0"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"a1872140c4ed1ebb020f33ff1bfbb743468d4499","unresolved":false,"context_lines":[{"line_number":423,"context_line":"        node_list \u003d manager.iter_nodes(fields\u003dfields, filters\u003dfilters)"},{"line_number":424,"context_line":"        for (node_uuid, driver, raid_config) in node_list:"},{"line_number":425,"context_line":"            try:"},{"line_number":426,"context_line":"                lock_purpose \u003d \u0027checking async raid configuration task\u0027"},{"line_number":427,"context_line":"                with task_manager.acquire(context, node_uuid,"},{"line_number":428,"context_line":"                                          purpose\u003dlock_purpose,"},{"line_number":429,"context_line":"                                          shared\u003dTrue) as task:"}],"source_content_type":"text/x-python","patch_set":16,"id":"5f7c97a3_1972f9e3","line":426,"updated":"2018-06-14 08:51:46.000000000","message":"s/task//","commit_id":"6b9f045ec0a10c040161cfb418ad263ac5c020e0"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"a8233bb860a4f2e84be48ba6d47d2e5348c50eac","unresolved":false,"context_lines":[{"line_number":423,"context_line":"        node_list \u003d manager.iter_nodes(fields\u003dfields, filters\u003dfilters)"},{"line_number":424,"context_line":"        for (node_uuid, driver, raid_config) in node_list:"},{"line_number":425,"context_line":"            try:"},{"line_number":426,"context_line":"                lock_purpose \u003d \u0027checking async raid configuration task\u0027"},{"line_number":427,"context_line":"                with task_manager.acquire(context, node_uuid,"},{"line_number":428,"context_line":"                                          purpose\u003dlock_purpose,"},{"line_number":429,"context_line":"                                          shared\u003dTrue) as task:"}],"source_content_type":"text/x-python","patch_set":16,"id":"5f7c97a3_cdbb440d","line":426,"in_reply_to":"5f7c97a3_1972f9e3","updated":"2018-06-15 04:34:30.000000000","message":"Done","commit_id":"6b9f045ec0a10c040161cfb418ad263ac5c020e0"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"df775a7160d4c29ade6bfe59f2707dea0455c2c1","unresolved":false,"context_lines":[{"line_number":429,"context_line":"                                          shared\u003dTrue) as task:"},{"line_number":430,"context_line":"                    node \u003d task.node"},{"line_number":431,"context_line":"                    node_uuid \u003d task.node.uuid"},{"line_number":432,"context_line":"                    status \u003d [\u0027Completed\u0027, \u0027Failed\u0027]"},{"line_number":433,"context_line":"                    if not isinstance(task.driver.raid, IrmcRAID):"},{"line_number":434,"context_line":"                        continue"},{"line_number":435,"context_line":"                    if task.node.target_raid_config is None:"}],"source_content_type":"text/x-python","patch_set":16,"id":"5f7c97a3_63b3779b","line":432,"updated":"2018-06-12 08:06:13.000000000","message":"It would be better to define strings around line 72 like:\n\n  RAID_COMPLETING \u003d \u0027completing\u0027\n  RAID_COMPLETED \u003d \u0027completed\u0027\n  RAID_FAILED \u003d \u0027failed\u0027","commit_id":"6b9f045ec0a10c040161cfb418ad263ac5c020e0"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"a8233bb860a4f2e84be48ba6d47d2e5348c50eac","unresolved":false,"context_lines":[{"line_number":429,"context_line":"                                          shared\u003dTrue) as task:"},{"line_number":430,"context_line":"                    node \u003d task.node"},{"line_number":431,"context_line":"                    node_uuid \u003d task.node.uuid"},{"line_number":432,"context_line":"                    status \u003d [\u0027Completed\u0027, \u0027Failed\u0027]"},{"line_number":433,"context_line":"                    if not isinstance(task.driver.raid, IrmcRAID):"},{"line_number":434,"context_line":"                        continue"},{"line_number":435,"context_line":"                    if task.node.target_raid_config is None:"}],"source_content_type":"text/x-python","patch_set":16,"id":"5f7c97a3_a8d5b144","line":432,"in_reply_to":"5f7c97a3_63b3779b","updated":"2018-06-15 04:34:30.000000000","message":"Done","commit_id":"6b9f045ec0a10c040161cfb418ad263ac5c020e0"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"df775a7160d4c29ade6bfe59f2707dea0455c2c1","unresolved":false,"context_lines":[{"line_number":446,"context_line":"                    except client.scci.SCCIInvalidInputError:"},{"line_number":447,"context_line":"                        raid_config.update({\u0027fgi_status\u0027: status[1]})"},{"line_number":448,"context_line":"                        raid_common.update_raid_info(node, raid_config)"},{"line_number":449,"context_line":"                        return self._set_clean_failed(task, status[1])"},{"line_number":450,"context_line":"                    except client.scci.SCCIClientError:"},{"line_number":451,"context_line":"                        raid_config.update({\u0027fgi_status\u0027: status[1]})"},{"line_number":452,"context_line":"                        raid_common.update_raid_info(node, raid_config)"}],"source_content_type":"text/x-python","patch_set":16,"id":"5f7c97a3_002719c9","line":449,"updated":"2018-06-12 08:06:13.000000000","message":"Because \u0027return\u0027 finishes this method, \u0027return\u0027 isn\u0027t necessary. You should put \u0027continue\u0027 after _set_clean_failed() is done to check a next node.","commit_id":"6b9f045ec0a10c040161cfb418ad263ac5c020e0"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"a8233bb860a4f2e84be48ba6d47d2e5348c50eac","unresolved":false,"context_lines":[{"line_number":446,"context_line":"                    except client.scci.SCCIInvalidInputError:"},{"line_number":447,"context_line":"                        raid_config.update({\u0027fgi_status\u0027: status[1]})"},{"line_number":448,"context_line":"                        raid_common.update_raid_info(node, raid_config)"},{"line_number":449,"context_line":"                        return self._set_clean_failed(task, status[1])"},{"line_number":450,"context_line":"                    except client.scci.SCCIClientError:"},{"line_number":451,"context_line":"                        raid_config.update({\u0027fgi_status\u0027: status[1]})"},{"line_number":452,"context_line":"                        raid_common.update_raid_info(node, raid_config)"}],"source_content_type":"text/x-python","patch_set":16,"id":"5f7c97a3_883795b0","line":449,"in_reply_to":"5f7c97a3_002719c9","updated":"2018-06-15 04:34:30.000000000","message":"Done","commit_id":"6b9f045ec0a10c040161cfb418ad263ac5c020e0"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"df775a7160d4c29ade6bfe59f2707dea0455c2c1","unresolved":false,"context_lines":[{"line_number":450,"context_line":"                    except client.scci.SCCIClientError:"},{"line_number":451,"context_line":"                        raid_config.update({\u0027fgi_status\u0027: status[1]})"},{"line_number":452,"context_line":"                        raid_common.update_raid_info(node, raid_config)"},{"line_number":453,"context_line":"                        return self._set_clean_failed(task, status[1])"},{"line_number":454,"context_line":""},{"line_number":455,"context_line":"                    fgi_status_dict \u003d _get_fgi_status(report)"},{"line_number":456,"context_line":"                    LOG.info(\u0027Gathering FGI status from server on node %s\u0027,"}],"source_content_type":"text/x-python","patch_set":16,"id":"5f7c97a3_e0021d0c","line":453,"updated":"2018-06-12 08:06:13.000000000","message":"ditto","commit_id":"6b9f045ec0a10c040161cfb418ad263ac5c020e0"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"a8233bb860a4f2e84be48ba6d47d2e5348c50eac","unresolved":false,"context_lines":[{"line_number":450,"context_line":"                    except client.scci.SCCIClientError:"},{"line_number":451,"context_line":"                        raid_config.update({\u0027fgi_status\u0027: status[1]})"},{"line_number":452,"context_line":"                        raid_common.update_raid_info(node, raid_config)"},{"line_number":453,"context_line":"                        return self._set_clean_failed(task, status[1])"},{"line_number":454,"context_line":""},{"line_number":455,"context_line":"                    fgi_status_dict \u003d _get_fgi_status(report)"},{"line_number":456,"context_line":"                    LOG.info(\u0027Gathering FGI status from server on node %s\u0027,"}],"source_content_type":"text/x-python","patch_set":16,"id":"5f7c97a3_483dfd8b","line":453,"in_reply_to":"5f7c97a3_e0021d0c","updated":"2018-06-15 04:34:30.000000000","message":"Done","commit_id":"6b9f045ec0a10c040161cfb418ad263ac5c020e0"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"df775a7160d4c29ade6bfe59f2707dea0455c2c1","unresolved":false,"context_lines":[{"line_number":462,"context_line":"                    if not fgi_status_dict:"},{"line_number":463,"context_line":"                        raid_config.update({\u0027fgi_status\u0027: status[1]})"},{"line_number":464,"context_line":"                        raid_common.update_raid_info(node, raid_config)"},{"line_number":465,"context_line":"                        return self._set_clean_failed(task, fgi_status_dict)"},{"line_number":466,"context_line":"                    if all(fgi_status \u003d\u003d \u0027Idle\u0027 for fgi_status in"},{"line_number":467,"context_line":"                           fgi_status_dict.values()):"},{"line_number":468,"context_line":"                        raid_config.update({\u0027fgi_status\u0027: status[0]})"}],"source_content_type":"text/x-python","patch_set":16,"id":"5f7c97a3_56a07bf3","line":465,"updated":"2018-06-12 08:06:13.000000000","message":"Sorry for insisting. With \u0027return\u0027, this method finishes when one node gets failed even if there are more nodes which are not checked yet. Shouldn\u0027t we use \u0027continue\u0027 instead of returning this method.","commit_id":"6b9f045ec0a10c040161cfb418ad263ac5c020e0"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"a8233bb860a4f2e84be48ba6d47d2e5348c50eac","unresolved":false,"context_lines":[{"line_number":462,"context_line":"                    if not fgi_status_dict:"},{"line_number":463,"context_line":"                        raid_config.update({\u0027fgi_status\u0027: status[1]})"},{"line_number":464,"context_line":"                        raid_common.update_raid_info(node, raid_config)"},{"line_number":465,"context_line":"                        return self._set_clean_failed(task, fgi_status_dict)"},{"line_number":466,"context_line":"                    if all(fgi_status \u003d\u003d \u0027Idle\u0027 for fgi_status in"},{"line_number":467,"context_line":"                           fgi_status_dict.values()):"},{"line_number":468,"context_line":"                        raid_config.update({\u0027fgi_status\u0027: status[0]})"}],"source_content_type":"text/x-python","patch_set":16,"id":"5f7c97a3_e84ba924","line":465,"in_reply_to":"5f7c97a3_56a07bf3","updated":"2018-06-15 04:34:30.000000000","message":"Done","commit_id":"6b9f045ec0a10c040161cfb418ad263ac5c020e0"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"9e9d3cd5888f3d83f4e029b14fcfa3642e73bf07","unresolved":false,"context_lines":[{"line_number":96,"context_line":"    \"\"\"Get a dict FGI(Foreground initialization) status on a RAID controller."},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"    :param report: SCCI report information."},{"line_number":99,"context_line":"    :returns: dict of fgi status on success, None otherwise."},{"line_number":100,"context_line":"    \"\"\""},{"line_number":101,"context_line":"    try:"},{"line_number":102,"context_line":"        return client.scci.get_raid_fgi_status(report)"}],"source_content_type":"text/x-python","patch_set":20,"id":"5f7c97a3_1bd391d7","line":99,"updated":"2018-06-18 10:20:25.000000000","message":"Could you please update this?","commit_id":"c1b74b195574e4aaa6daea2c0cfc05270af82824"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"f3632445dca88f0b5bf230e20e19a252c0a377cf","unresolved":false,"context_lines":[{"line_number":96,"context_line":"    \"\"\"Get a dict FGI(Foreground initialization) status on a RAID controller."},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"    :param report: SCCI report information."},{"line_number":99,"context_line":"    :returns: dict of fgi status on success, None otherwise."},{"line_number":100,"context_line":"    \"\"\""},{"line_number":101,"context_line":"    try:"},{"line_number":102,"context_line":"        return client.scci.get_raid_fgi_status(report)"}],"source_content_type":"text/x-python","patch_set":20,"id":"5f7c97a3_8943c46c","line":99,"in_reply_to":"5f7c97a3_1bd391d7","updated":"2018-06-19 03:51:08.000000000","message":"Done","commit_id":"c1b74b195574e4aaa6daea2c0cfc05270af82824"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"9e9d3cd5888f3d83f4e029b14fcfa3642e73bf07","unresolved":false,"context_lines":[{"line_number":459,"context_line":"                        raid_common.update_raid_info(node, raid_config)"},{"line_number":460,"context_line":"                        self._set_clean_failed(task, RAID_FAILED)"},{"line_number":461,"context_line":"                        # remove fgi status for next node checking"},{"line_number":462,"context_line":"                        raid_config.pop(\u0027fgi_status\u0027)"},{"line_number":463,"context_line":"                        continue"},{"line_number":464,"context_line":""},{"line_number":465,"context_line":"                    fgi_status_dict \u003d _get_fgi_status(report)"}],"source_content_type":"text/x-python","patch_set":20,"id":"5f7c97a3_1b5e3176","line":462,"updated":"2018-06-18 10:20:25.000000000","message":"What do you intend to do with this? The variable \u0027raid_config\u0027 will refer to another dict at next iteration.","commit_id":"c1b74b195574e4aaa6daea2c0cfc05270af82824"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"f3632445dca88f0b5bf230e20e19a252c0a377cf","unresolved":false,"context_lines":[{"line_number":459,"context_line":"                        raid_common.update_raid_info(node, raid_config)"},{"line_number":460,"context_line":"                        self._set_clean_failed(task, RAID_FAILED)"},{"line_number":461,"context_line":"                        # remove fgi status for next node checking"},{"line_number":462,"context_line":"                        raid_config.pop(\u0027fgi_status\u0027)"},{"line_number":463,"context_line":"                        continue"},{"line_number":464,"context_line":""},{"line_number":465,"context_line":"                    fgi_status_dict \u003d _get_fgi_status(report)"}],"source_content_type":"text/x-python","patch_set":20,"id":"5f7c97a3_092c94aa","line":462,"in_reply_to":"5f7c97a3_1b5e3176","updated":"2018-06-19 03:51:08.000000000","message":"You right. They are locating in different nodes. Thanks","commit_id":"c1b74b195574e4aaa6daea2c0cfc05270af82824"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"57e120df1c9f8815fe3e43d8b7477eceda340b1e","unresolved":false,"context_lines":[{"line_number":102,"context_line":"    try:"},{"line_number":103,"context_line":"        return client.scci.get_raid_fgi_status(report)"},{"line_number":104,"context_line":"    except client.scci.SCCIInvalidInputError:"},{"line_number":105,"context_line":"        LOG.warning(\u0027ServerViewRAID not available in Baremetal Server\u0027)"},{"line_number":106,"context_line":"    except client.scci.SCCIRAIDNotReady:"},{"line_number":107,"context_line":"        return RAID_COMPLETING"},{"line_number":108,"context_line":""}],"source_content_type":"text/x-python","patch_set":22,"id":"5f7c97a3_e4d1ff30","line":105,"range":{"start_line":105,"start_character":21,"end_line":105,"end_character":69},"updated":"2018-06-21 10:29:14.000000000","message":"Add node uuid to the message.","commit_id":"45a8ce7d7b9e9147fecd822dbe5627485616d6e5"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"2522d420e64e4fa97dc6ea650b89572c0477672f","unresolved":false,"context_lines":[{"line_number":102,"context_line":"    try:"},{"line_number":103,"context_line":"        return client.scci.get_raid_fgi_status(report)"},{"line_number":104,"context_line":"    except client.scci.SCCIInvalidInputError:"},{"line_number":105,"context_line":"        LOG.warning(\u0027ServerViewRAID not available in Baremetal Server\u0027)"},{"line_number":106,"context_line":"    except client.scci.SCCIRAIDNotReady:"},{"line_number":107,"context_line":"        return RAID_COMPLETING"},{"line_number":108,"context_line":""}],"source_content_type":"text/x-python","patch_set":22,"id":"5f7c97a3_b0cfb355","line":105,"range":{"start_line":105,"start_character":21,"end_line":105,"end_character":69},"in_reply_to":"5f7c97a3_e4d1ff30","updated":"2018-06-22 01:57:04.000000000","message":"Done","commit_id":"45a8ce7d7b9e9147fecd822dbe5627485616d6e5"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"57e120df1c9f8815fe3e43d8b7477eceda340b1e","unresolved":false,"context_lines":[{"line_number":116,"context_line":""},{"line_number":117,"context_line":"    physical_disk_dict \u003d {}"},{"line_number":118,"context_line":"    raid_adapter \u003d _get_raid_adapter(node)"},{"line_number":119,"context_line":"    physical_disks \u003d raid_adapter[\u0027Server\u0027][\u0027HWConfigurationIrmc\u0027]["},{"line_number":120,"context_line":"        \u0027Adapters\u0027][\u0027RAIDAdapter\u0027][0][\u0027PhysicalDisks\u0027]"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"    if not physical_disks:"},{"line_number":123,"context_line":"        return physical_disk_dict"}],"source_content_type":"text/x-python","patch_set":22,"id":"5f7c97a3_c4b163e2","line":120,"range":{"start_line":119,"start_character":33,"end_line":120,"end_character":54},"updated":"2018-06-21 10:29:14.000000000","message":"Can\u0027t this cause KeyError?","commit_id":"45a8ce7d7b9e9147fecd822dbe5627485616d6e5"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"2522d420e64e4fa97dc6ea650b89572c0477672f","unresolved":false,"context_lines":[{"line_number":116,"context_line":""},{"line_number":117,"context_line":"    physical_disk_dict \u003d {}"},{"line_number":118,"context_line":"    raid_adapter \u003d _get_raid_adapter(node)"},{"line_number":119,"context_line":"    physical_disks \u003d raid_adapter[\u0027Server\u0027][\u0027HWConfigurationIrmc\u0027]["},{"line_number":120,"context_line":"        \u0027Adapters\u0027][\u0027RAIDAdapter\u0027][0][\u0027PhysicalDisks\u0027]"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"    if not physical_disks:"},{"line_number":123,"context_line":"        return physical_disk_dict"}],"source_content_type":"text/x-python","patch_set":22,"id":"5f7c97a3_d03a6f32","line":120,"range":{"start_line":119,"start_character":33,"end_line":120,"end_character":54},"in_reply_to":"5f7c97a3_c4b163e2","updated":"2018-06-22 01:57:04.000000000","message":"Yep. We always get correct values at PhysicalDisks after through L118.","commit_id":"45a8ce7d7b9e9147fecd822dbe5627485616d6e5"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"2522d420e64e4fa97dc6ea650b89572c0477672f","unresolved":false,"context_lines":[{"line_number":116,"context_line":""},{"line_number":117,"context_line":"    physical_disk_dict \u003d {}"},{"line_number":118,"context_line":"    raid_adapter \u003d _get_raid_adapter(node)"},{"line_number":119,"context_line":"    physical_disks \u003d raid_adapter[\u0027Server\u0027][\u0027HWConfigurationIrmc\u0027]["},{"line_number":120,"context_line":"        \u0027Adapters\u0027][\u0027RAIDAdapter\u0027][0][\u0027PhysicalDisks\u0027]"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"    if not physical_disks:"},{"line_number":123,"context_line":"        return physical_disk_dict"}],"source_content_type":"text/x-python","patch_set":22,"id":"5f7c97a3_3005e37a","line":120,"range":{"start_line":119,"start_character":33,"end_line":120,"end_character":54},"in_reply_to":"5f7c97a3_c4b163e2","updated":"2018-06-22 01:57:04.000000000","message":"Yep. We always get values","commit_id":"45a8ce7d7b9e9147fecd822dbe5627485616d6e5"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"57e120df1c9f8815fe3e43d8b7477eceda340b1e","unresolved":false,"context_lines":[{"line_number":119,"context_line":"    physical_disks \u003d raid_adapter[\u0027Server\u0027][\u0027HWConfigurationIrmc\u0027]["},{"line_number":120,"context_line":"        \u0027Adapters\u0027][\u0027RAIDAdapter\u0027][0][\u0027PhysicalDisks\u0027]"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"    if not physical_disks:"},{"line_number":123,"context_line":"        return physical_disk_dict"},{"line_number":124,"context_line":"    for disks in physical_disks[\u0027PhysicalDisk\u0027]:"},{"line_number":125,"context_line":"        physical_disk_dict.update({disks[\u0027Slot\u0027]: disks[\u0027Type\u0027]})"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"    return physical_disk_dict"},{"line_number":128,"context_line":""}],"source_content_type":"text/x-python","patch_set":22,"id":"5f7c97a3_e429fff1","line":125,"range":{"start_line":122,"start_character":1,"end_line":125,"end_character":65},"updated":"2018-06-21 10:29:14.000000000","message":"You can reduce one return statement:\n if physical_disks:\n     for disks in physical_disks[\u0027PhysicalDisk\u0027]:\n         physical_disk_dict.update({disks[\u0027Slot\u0027]: disks[\u0027Type\u0027]})","commit_id":"45a8ce7d7b9e9147fecd822dbe5627485616d6e5"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"2522d420e64e4fa97dc6ea650b89572c0477672f","unresolved":false,"context_lines":[{"line_number":119,"context_line":"    physical_disks \u003d raid_adapter[\u0027Server\u0027][\u0027HWConfigurationIrmc\u0027]["},{"line_number":120,"context_line":"        \u0027Adapters\u0027][\u0027RAIDAdapter\u0027][0][\u0027PhysicalDisks\u0027]"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"    if not physical_disks:"},{"line_number":123,"context_line":"        return physical_disk_dict"},{"line_number":124,"context_line":"    for disks in physical_disks[\u0027PhysicalDisk\u0027]:"},{"line_number":125,"context_line":"        physical_disk_dict.update({disks[\u0027Slot\u0027]: disks[\u0027Type\u0027]})"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"    return physical_disk_dict"},{"line_number":128,"context_line":""}],"source_content_type":"text/x-python","patch_set":22,"id":"5f7c97a3_904077a4","line":125,"range":{"start_line":122,"start_character":1,"end_line":125,"end_character":65},"in_reply_to":"5f7c97a3_e429fff1","updated":"2018-06-22 01:57:04.000000000","message":"Done","commit_id":"45a8ce7d7b9e9147fecd822dbe5627485616d6e5"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"57e120df1c9f8815fe3e43d8b7477eceda340b1e","unresolved":false,"context_lines":[{"line_number":175,"context_line":""},{"line_number":176,"context_line":"    node \u003d task.node"},{"line_number":177,"context_line":"    node_uuid \u003d task.node.uuid"},{"line_number":178,"context_line":"    node.raid_config \u003d {"},{"line_number":179,"context_line":"        \u0027logical_disks\u0027: []"},{"line_number":180,"context_line":"    }"},{"line_number":181,"context_line":""},{"line_number":182,"context_line":"    raid_adapter \u003d _get_raid_adapter(node)"},{"line_number":183,"context_line":""}],"source_content_type":"text/x-python","patch_set":22,"id":"5f7c97a3_0703dd0e","line":180,"range":{"start_line":178,"start_character":4,"end_line":180,"end_character":5},"updated":"2018-06-21 10:29:14.000000000","message":"Better to assign \u0027raid_config\u0027 to node once all update are done to \u0027raid_config\u0027 dictionary.\nraid_config \u003d { \u0027logical_disks\u0027: [] }","commit_id":"45a8ce7d7b9e9147fecd822dbe5627485616d6e5"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"2522d420e64e4fa97dc6ea650b89572c0477672f","unresolved":false,"context_lines":[{"line_number":175,"context_line":""},{"line_number":176,"context_line":"    node \u003d task.node"},{"line_number":177,"context_line":"    node_uuid \u003d task.node.uuid"},{"line_number":178,"context_line":"    node.raid_config \u003d {"},{"line_number":179,"context_line":"        \u0027logical_disks\u0027: []"},{"line_number":180,"context_line":"    }"},{"line_number":181,"context_line":""},{"line_number":182,"context_line":"    raid_adapter \u003d _get_raid_adapter(node)"},{"line_number":183,"context_line":""}],"source_content_type":"text/x-python","patch_set":22,"id":"5f7c97a3_701cbbc1","line":180,"range":{"start_line":178,"start_character":4,"end_line":180,"end_character":5},"in_reply_to":"5f7c97a3_0703dd0e","updated":"2018-06-22 01:57:04.000000000","message":"Done","commit_id":"45a8ce7d7b9e9147fecd822dbe5627485616d6e5"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"57e120df1c9f8815fe3e43d8b7477eceda340b1e","unresolved":false,"context_lines":[{"line_number":194,"context_line":"            \u0027 size\u0027: logical_drive[\u0027Size\u0027]}})"},{"line_number":195,"context_line":"    for physical_drive in \\"},{"line_number":196,"context_line":"            raid_adapter_info[\u0027PhysicalDisks\u0027][\u0027PhysicalDisk\u0027]:"},{"line_number":197,"context_line":"        node.raid_config[\u0027logical_disks\u0027].append({\u0027physical_drives\u0027: {"},{"line_number":198,"context_line":"            \u0027physical_drive\u0027: physical_drive}})"},{"line_number":199,"context_line":""},{"line_number":200,"context_line":"    raid_common.update_raid_info(node, node.raid_config)"},{"line_number":201,"context_line":"    LOG.info(\u0027RAID config is created successfully on node %s\u0027,"}],"source_content_type":"text/x-python","patch_set":22,"id":"5f7c97a3_0450bb31","line":198,"range":{"start_line":197,"start_character":8,"end_line":198,"end_character":47},"updated":"2018-06-21 10:29:14.000000000","message":"Need to perform node.save() after updating node.\nBetter to perform:\nfor physical_drive in ...\n    raid_config[\u0027logical_disks\u0027].append({\u0027physical_drives\u0027: {\n            \u0027physical_drive\u0027: physical_drive}})\n\nnode.raid_config \u003d raid_config\nnode.save","commit_id":"45a8ce7d7b9e9147fecd822dbe5627485616d6e5"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"2522d420e64e4fa97dc6ea650b89572c0477672f","unresolved":false,"context_lines":[{"line_number":194,"context_line":"            \u0027 size\u0027: logical_drive[\u0027Size\u0027]}})"},{"line_number":195,"context_line":"    for physical_drive in \\"},{"line_number":196,"context_line":"            raid_adapter_info[\u0027PhysicalDisks\u0027][\u0027PhysicalDisk\u0027]:"},{"line_number":197,"context_line":"        node.raid_config[\u0027logical_disks\u0027].append({\u0027physical_drives\u0027: {"},{"line_number":198,"context_line":"            \u0027physical_drive\u0027: physical_drive}})"},{"line_number":199,"context_line":""},{"line_number":200,"context_line":"    raid_common.update_raid_info(node, node.raid_config)"},{"line_number":201,"context_line":"    LOG.info(\u0027RAID config is created successfully on node %s\u0027,"}],"source_content_type":"text/x-python","patch_set":22,"id":"5f7c97a3_b026d315","line":198,"range":{"start_line":197,"start_character":8,"end_line":198,"end_character":47},"in_reply_to":"5f7c97a3_0450bb31","updated":"2018-06-22 01:57:04.000000000","message":"Done","commit_id":"45a8ce7d7b9e9147fecd822dbe5627485616d6e5"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"9f247995795bcacccd00fe807716d085bdcefc95","unresolved":false,"context_lines":[{"line_number":194,"context_line":"            raid_adapter_info[\u0027PhysicalDisks\u0027][\u0027PhysicalDisk\u0027]:"},{"line_number":195,"context_line":"        raid_config[\u0027logical_disks\u0027].append({\u0027physical_drives\u0027: {"},{"line_number":196,"context_line":"            \u0027physical_drive\u0027: physical_drive}})"},{"line_number":197,"context_line":"    node.raid_config \u003d raid_config"},{"line_number":198,"context_line":"    node.save()"},{"line_number":199,"context_line":""},{"line_number":200,"context_line":"    raid_common.update_raid_info(node, node.raid_config)"},{"line_number":201,"context_line":"    LOG.info(\u0027RAID config is created successfully on node %s\u0027,"}],"source_content_type":"text/x-python","patch_set":23,"id":"5f7c97a3_c1adbf31","line":198,"range":{"start_line":197,"start_character":0,"end_line":198,"end_character":15},"updated":"2018-06-22 07:10:13.000000000","message":"This doesn\u0027t look necessary. These are done in update_info bellow. You can just call raid_common.update_raid_info(raid_config).","commit_id":"676fed6924426fe1a97ded35e06c4da4480ed248"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"561a38ff4b2f575f2945cadabfa0779294521fbb","unresolved":false,"context_lines":[{"line_number":194,"context_line":"            raid_adapter_info[\u0027PhysicalDisks\u0027][\u0027PhysicalDisk\u0027]:"},{"line_number":195,"context_line":"        raid_config[\u0027logical_disks\u0027].append({\u0027physical_drives\u0027: {"},{"line_number":196,"context_line":"            \u0027physical_drive\u0027: physical_drive}})"},{"line_number":197,"context_line":"    node.raid_config \u003d raid_config"},{"line_number":198,"context_line":"    node.save()"},{"line_number":199,"context_line":""},{"line_number":200,"context_line":"    raid_common.update_raid_info(node, node.raid_config)"},{"line_number":201,"context_line":"    LOG.info(\u0027RAID config is created successfully on node %s\u0027,"}],"source_content_type":"text/x-python","patch_set":23,"id":"5f7c97a3_4ce6c3e9","line":198,"range":{"start_line":197,"start_character":0,"end_line":198,"end_character":15},"in_reply_to":"5f7c97a3_c1adbf31","updated":"2018-06-22 08:03:26.000000000","message":"Done","commit_id":"676fed6924426fe1a97ded35e06c4da4480ed248"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"b615fc8ad1bacea5ac9e20442643d9d0d6beba60","unresolved":false,"context_lines":[{"line_number":118,"context_line":"    physical_disk_dict \u003d {}"},{"line_number":119,"context_line":"    raid_adapter \u003d _get_raid_adapter(node)"},{"line_number":120,"context_line":"    physical_disks \u003d raid_adapter[\u0027Server\u0027][\u0027HWConfigurationIrmc\u0027]["},{"line_number":121,"context_line":"        \u0027Adapters\u0027][\u0027RAIDAdapter\u0027][0][\u0027PhysicalDisks\u0027]"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"    if physical_disks:"},{"line_number":124,"context_line":"        for disks in physical_disks[\u0027PhysicalDisk\u0027]:"}],"source_content_type":"text/x-python","patch_set":24,"id":"5f7c97a3_160e75e3","line":121,"range":{"start_line":121,"start_character":34,"end_line":121,"end_character":37},"updated":"2018-06-25 14:43:37.000000000","message":"At a minimum, we should detail that this is only supported for RAIDAdapter 0 in the docstring. This also seems like a basic limitation of the driver that needs to be documented.","commit_id":"0b276c93e725f52aadbb0d7a0147d4ba47e29a84"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"6ccfadd31d6b1ae78c67967251944ed4cc2a47a3","unresolved":false,"context_lines":[{"line_number":118,"context_line":"    physical_disk_dict \u003d {}"},{"line_number":119,"context_line":"    raid_adapter \u003d _get_raid_adapter(node)"},{"line_number":120,"context_line":"    physical_disks \u003d raid_adapter[\u0027Server\u0027][\u0027HWConfigurationIrmc\u0027]["},{"line_number":121,"context_line":"        \u0027Adapters\u0027][\u0027RAIDAdapter\u0027][0][\u0027PhysicalDisks\u0027]"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"    if physical_disks:"},{"line_number":124,"context_line":"        for disks in physical_disks[\u0027PhysicalDisk\u0027]:"}],"source_content_type":"text/x-python","patch_set":24,"id":"5f7c97a3_4aae71e7","line":121,"range":{"start_line":121,"start_character":34,"end_line":121,"end_character":37},"in_reply_to":"5f7c97a3_160e75e3","updated":"2018-06-26 01:32:21.000000000","message":"Done","commit_id":"0b276c93e725f52aadbb0d7a0147d4ba47e29a84"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"b615fc8ad1bacea5ac9e20442643d9d0d6beba60","unresolved":false,"context_lines":[{"line_number":141,"context_line":"        return client.elcm.create_raid_configuration(irmc_info,"},{"line_number":142,"context_line":"                                                     target_raid_config)"},{"line_number":143,"context_line":"    except client.elcm.ELCMProfileNotFound as exc:"},{"line_number":144,"context_line":"        LOG.error(\u0027iRMC driver failed with profile not found for node \u0027"},{"line_number":145,"context_line":"                  \u0027%(node_uuid)s. Reason: %(error)s.\u0027,"},{"line_number":146,"context_line":"                  {\u0027node_uuid\u0027: node.uuid, \u0027error\u0027: exc})"},{"line_number":147,"context_line":"        raise exception.IRMCOperationError(error\u003dexc)"}],"source_content_type":"text/x-python","patch_set":24,"id":"5f7c97a3_1640b505","line":144,"range":{"start_line":144,"start_character":19,"end_line":144,"end_character":24},"updated":"2018-06-25 14:43:37.000000000","message":"iRCM or IRMC? or irmc?","commit_id":"0b276c93e725f52aadbb0d7a0147d4ba47e29a84"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"6ccfadd31d6b1ae78c67967251944ed4cc2a47a3","unresolved":false,"context_lines":[{"line_number":141,"context_line":"        return client.elcm.create_raid_configuration(irmc_info,"},{"line_number":142,"context_line":"                                                     target_raid_config)"},{"line_number":143,"context_line":"    except client.elcm.ELCMProfileNotFound as exc:"},{"line_number":144,"context_line":"        LOG.error(\u0027iRMC driver failed with profile not found for node \u0027"},{"line_number":145,"context_line":"                  \u0027%(node_uuid)s. Reason: %(error)s.\u0027,"},{"line_number":146,"context_line":"                  {\u0027node_uuid\u0027: node.uuid, \u0027error\u0027: exc})"},{"line_number":147,"context_line":"        raise exception.IRMCOperationError(error\u003dexc)"}],"source_content_type":"text/x-python","patch_set":24,"id":"5f7c97a3_8f0fbb37","line":144,"range":{"start_line":144,"start_character":19,"end_line":144,"end_character":24},"in_reply_to":"5f7c97a3_1640b505","updated":"2018-06-26 01:32:21.000000000","message":"iRMC. thanks","commit_id":"0b276c93e725f52aadbb0d7a0147d4ba47e29a84"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"b615fc8ad1bacea5ac9e20442643d9d0d6beba60","unresolved":false,"context_lines":[{"line_number":146,"context_line":"                  {\u0027node_uuid\u0027: node.uuid, \u0027error\u0027: exc})"},{"line_number":147,"context_line":"        raise exception.IRMCOperationError(error\u003dexc)"},{"line_number":148,"context_line":"    except client.scci.SCCIClientError as exc:"},{"line_number":149,"context_line":"        LOG.error(\u0027IRMC driver failed to create raid adapter info for node \u0027"},{"line_number":150,"context_line":"                  \u0027%(node_uuid)s. Reason: %(error)s.\u0027,"},{"line_number":151,"context_line":"                  {\u0027node_uuid\u0027: node.uuid, \u0027error\u0027: exc})"},{"line_number":152,"context_line":"        raise exception.IRMCOperationError(error\u003dexc)"}],"source_content_type":"text/x-python","patch_set":24,"id":"5f7c97a3_b64a2124","line":149,"range":{"start_line":149,"start_character":19,"end_line":149,"end_character":23},"updated":"2018-06-25 14:43:37.000000000","message":"Same as above.","commit_id":"0b276c93e725f52aadbb0d7a0147d4ba47e29a84"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"6ccfadd31d6b1ae78c67967251944ed4cc2a47a3","unresolved":false,"context_lines":[{"line_number":146,"context_line":"                  {\u0027node_uuid\u0027: node.uuid, \u0027error\u0027: exc})"},{"line_number":147,"context_line":"        raise exception.IRMCOperationError(error\u003dexc)"},{"line_number":148,"context_line":"    except client.scci.SCCIClientError as exc:"},{"line_number":149,"context_line":"        LOG.error(\u0027IRMC driver failed to create raid adapter info for node \u0027"},{"line_number":150,"context_line":"                  \u0027%(node_uuid)s. Reason: %(error)s.\u0027,"},{"line_number":151,"context_line":"                  {\u0027node_uuid\u0027: node.uuid, \u0027error\u0027: exc})"},{"line_number":152,"context_line":"        raise exception.IRMCOperationError(error\u003dexc)"}],"source_content_type":"text/x-python","patch_set":24,"id":"5f7c97a3_af12b75f","line":149,"range":{"start_line":149,"start_character":19,"end_line":149,"end_character":23},"in_reply_to":"5f7c97a3_b64a2124","updated":"2018-06-26 01:32:21.000000000","message":"Done","commit_id":"0b276c93e725f52aadbb0d7a0147d4ba47e29a84"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"b615fc8ad1bacea5ac9e20442643d9d0d6beba60","unresolved":false,"context_lines":[{"line_number":164,"context_line":"    try:"},{"line_number":165,"context_line":"        client.elcm.delete_raid_configuration(irmc_info)"},{"line_number":166,"context_line":"    except client.scci.SCCIClientError as exc:"},{"line_number":167,"context_line":"        LOG.error(\u0027IRMC driver failed to delete RAID configuration \u0027"},{"line_number":168,"context_line":"                  \u0027for node %(node_uuid)s. Reason: %(error)s.\u0027,"},{"line_number":169,"context_line":"                  {\u0027node_uuid\u0027: node.uuid, \u0027error\u0027: exc})"},{"line_number":170,"context_line":"        raise exception.IRMCOperationError(error\u003dexc)"}],"source_content_type":"text/x-python","patch_set":24,"id":"5f7c97a3_366051a5","line":167,"range":{"start_line":167,"start_character":19,"end_line":167,"end_character":23},"updated":"2018-06-25 14:43:37.000000000","message":"ditto","commit_id":"0b276c93e725f52aadbb0d7a0147d4ba47e29a84"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"6ccfadd31d6b1ae78c67967251944ed4cc2a47a3","unresolved":false,"context_lines":[{"line_number":164,"context_line":"    try:"},{"line_number":165,"context_line":"        client.elcm.delete_raid_configuration(irmc_info)"},{"line_number":166,"context_line":"    except client.scci.SCCIClientError as exc:"},{"line_number":167,"context_line":"        LOG.error(\u0027IRMC driver failed to delete RAID configuration \u0027"},{"line_number":168,"context_line":"                  \u0027for node %(node_uuid)s. Reason: %(error)s.\u0027,"},{"line_number":169,"context_line":"                  {\u0027node_uuid\u0027: node.uuid, \u0027error\u0027: exc})"},{"line_number":170,"context_line":"        raise exception.IRMCOperationError(error\u003dexc)"}],"source_content_type":"text/x-python","patch_set":24,"id":"5f7c97a3_6f081f2c","line":167,"range":{"start_line":167,"start_character":19,"end_line":167,"end_character":23},"in_reply_to":"5f7c97a3_366051a5","updated":"2018-06-26 01:32:21.000000000","message":"Done","commit_id":"0b276c93e725f52aadbb0d7a0147d4ba47e29a84"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"b615fc8ad1bacea5ac9e20442643d9d0d6beba60","unresolved":false,"context_lines":[{"line_number":459,"context_line":"                        continue"},{"line_number":460,"context_line":""},{"line_number":461,"context_line":"                    fgi_status_dict \u003d _get_fgi_status(report, node_uuid)"},{"line_number":462,"context_line":"                    LOG.info(\u0027Gathering FGI status from server on node %s\u0027,"},{"line_number":463,"context_line":"                             node_uuid)"},{"line_number":464,"context_line":"                    # Note(trungnv): Allow to check until RAID mechanism to be"},{"line_number":465,"context_line":"                    # completed with RAID information in report."}],"source_content_type":"text/x-python","patch_set":24,"id":"5f7c97a3_b621c14f","line":462,"range":{"start_line":462,"start_character":40,"end_line":462,"end_character":43},"updated":"2018-06-25 14:43:37.000000000","message":"This should likely be written out.","commit_id":"0b276c93e725f52aadbb0d7a0147d4ba47e29a84"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"6ccfadd31d6b1ae78c67967251944ed4cc2a47a3","unresolved":false,"context_lines":[{"line_number":459,"context_line":"                        continue"},{"line_number":460,"context_line":""},{"line_number":461,"context_line":"                    fgi_status_dict \u003d _get_fgi_status(report, node_uuid)"},{"line_number":462,"context_line":"                    LOG.info(\u0027Gathering FGI status from server on node %s\u0027,"},{"line_number":463,"context_line":"                             node_uuid)"},{"line_number":464,"context_line":"                    # Note(trungnv): Allow to check until RAID mechanism to be"},{"line_number":465,"context_line":"                    # completed with RAID information in report."}],"source_content_type":"text/x-python","patch_set":24,"id":"5f7c97a3_ea017d05","line":462,"range":{"start_line":462,"start_character":40,"end_line":462,"end_character":43},"in_reply_to":"5f7c97a3_b621c14f","updated":"2018-06-26 01:32:21.000000000","message":"Done","commit_id":"0b276c93e725f52aadbb0d7a0147d4ba47e29a84"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"61d004c58bdbed8d0a8d8a65d06e27f7cbf95690","unresolved":false,"context_lines":[{"line_number":96,"context_line":"    \"\"\"Get a dict FGI(Foreground initialization) status on a RAID controller."},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"    :param report: SCCI report information."},{"line_number":99,"context_line":"    :returns: dict of fgi status on success, None if SCCIInvalidInputError and"},{"line_number":100,"context_line":"              waiting status if SCCIRAIDNotReady."},{"line_number":101,"context_line":"    \"\"\""},{"line_number":102,"context_line":"    try:"}],"source_content_type":"text/x-python","patch_set":27,"id":"5f7c97a3_94bd1469","line":99,"range":{"start_line":99,"start_character":14,"end_line":99,"end_character":18},"updated":"2018-07-02 06:51:47.000000000","message":"Its not dict, it is just value of fgi status.","commit_id":"512ec3dad7b2d315610891ead48d4c5c8c7f5072"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"61d004c58bdbed8d0a8d8a65d06e27f7cbf95690","unresolved":false,"context_lines":[{"line_number":96,"context_line":"    \"\"\"Get a dict FGI(Foreground initialization) status on a RAID controller."},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"    :param report: SCCI report information."},{"line_number":99,"context_line":"    :returns: dict of fgi status on success, None if SCCIInvalidInputError and"},{"line_number":100,"context_line":"              waiting status if SCCIRAIDNotReady."},{"line_number":101,"context_line":"    \"\"\""},{"line_number":102,"context_line":"    try:"}],"source_content_type":"text/x-python","patch_set":27,"id":"5f7c97a3_34b44082","line":99,"range":{"start_line":99,"start_character":22,"end_line":99,"end_character":25},"updated":"2018-07-02 06:51:47.000000000","message":"nit: s/ fgi / FGI /","commit_id":"512ec3dad7b2d315610891ead48d4c5c8c7f5072"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"44b31e148f87eeaee065138dde2d636cafb34f3c","unresolved":false,"context_lines":[{"line_number":96,"context_line":"    \"\"\"Get a dict FGI(Foreground initialization) status on a RAID controller."},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"    :param report: SCCI report information."},{"line_number":99,"context_line":"    :returns: dict of fgi status on success, None if SCCIInvalidInputError and"},{"line_number":100,"context_line":"              waiting status if SCCIRAIDNotReady."},{"line_number":101,"context_line":"    \"\"\""},{"line_number":102,"context_line":"    try:"}],"source_content_type":"text/x-python","patch_set":27,"id":"5f7c97a3_ba411739","line":99,"range":{"start_line":99,"start_character":22,"end_line":99,"end_character":25},"in_reply_to":"5f7c97a3_34b44082","updated":"2018-07-02 08:05:07.000000000","message":"Done","commit_id":"512ec3dad7b2d315610891ead48d4c5c8c7f5072"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"44b31e148f87eeaee065138dde2d636cafb34f3c","unresolved":false,"context_lines":[{"line_number":96,"context_line":"    \"\"\"Get a dict FGI(Foreground initialization) status on a RAID controller."},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"    :param report: SCCI report information."},{"line_number":99,"context_line":"    :returns: dict of fgi status on success, None if SCCIInvalidInputError and"},{"line_number":100,"context_line":"              waiting status if SCCIRAIDNotReady."},{"line_number":101,"context_line":"    \"\"\""},{"line_number":102,"context_line":"    try:"}],"source_content_type":"text/x-python","patch_set":27,"id":"5f7c97a3_5a7243b2","line":99,"range":{"start_line":99,"start_character":14,"end_line":99,"end_character":18},"in_reply_to":"5f7c97a3_94bd1469","updated":"2018-07-02 08:05:07.000000000","message":"Done","commit_id":"512ec3dad7b2d315610891ead48d4c5c8c7f5072"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"61d004c58bdbed8d0a8d8a65d06e27f7cbf95690","unresolved":false,"context_lines":[{"line_number":152,"context_line":"        LOG.error(\u0027iRMC driver failed to create raid adapter info for node \u0027"},{"line_number":153,"context_line":"                  \u0027%(node_uuid)s. Reason: %(error)s.\u0027,"},{"line_number":154,"context_line":"                  {\u0027node_uuid\u0027: node.uuid, \u0027error\u0027: exc})"},{"line_number":155,"context_line":"        raise exception.IRMCOperationError(error\u003dexc)"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"def _delete_raid_adapter(node):"}],"source_content_type":"text/x-python","patch_set":27,"id":"5f7c97a3_944bd484","line":155,"range":{"start_line":155,"start_character":43,"end_line":155,"end_character":52},"updated":"2018-07-02 06:51:47.000000000","message":"Its should also pass \u0027operation\u0027 parameter to IRMCOperationError.","commit_id":"512ec3dad7b2d315610891ead48d4c5c8c7f5072"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"44b31e148f87eeaee065138dde2d636cafb34f3c","unresolved":false,"context_lines":[{"line_number":152,"context_line":"        LOG.error(\u0027iRMC driver failed to create raid adapter info for node \u0027"},{"line_number":153,"context_line":"                  \u0027%(node_uuid)s. Reason: %(error)s.\u0027,"},{"line_number":154,"context_line":"                  {\u0027node_uuid\u0027: node.uuid, \u0027error\u0027: exc})"},{"line_number":155,"context_line":"        raise exception.IRMCOperationError(error\u003dexc)"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"def _delete_raid_adapter(node):"}],"source_content_type":"text/x-python","patch_set":27,"id":"5f7c97a3_faa54f02","line":155,"range":{"start_line":155,"start_character":43,"end_line":155,"end_character":52},"in_reply_to":"5f7c97a3_944bd484","updated":"2018-07-02 08:05:07.000000000","message":"Done","commit_id":"512ec3dad7b2d315610891ead48d4c5c8c7f5072"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"61d004c58bdbed8d0a8d8a65d06e27f7cbf95690","unresolved":false,"context_lines":[{"line_number":170,"context_line":"        LOG.error(\u0027iRMC driver failed to delete RAID configuration \u0027"},{"line_number":171,"context_line":"                  \u0027for node %(node_uuid)s. Reason: %(error)s.\u0027,"},{"line_number":172,"context_line":"                  {\u0027node_uuid\u0027: node.uuid, \u0027error\u0027: exc})"},{"line_number":173,"context_line":"        raise exception.IRMCOperationError(error\u003dexc)"},{"line_number":174,"context_line":""},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"def _commit_raid_config(task):"}],"source_content_type":"text/x-python","patch_set":27,"id":"5f7c97a3_f45b2852","line":173,"range":{"start_line":173,"start_character":43,"end_line":173,"end_character":52},"updated":"2018-07-02 06:51:47.000000000","message":"ditto","commit_id":"512ec3dad7b2d315610891ead48d4c5c8c7f5072"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"44b31e148f87eeaee065138dde2d636cafb34f3c","unresolved":false,"context_lines":[{"line_number":170,"context_line":"        LOG.error(\u0027iRMC driver failed to delete RAID configuration \u0027"},{"line_number":171,"context_line":"                  \u0027for node %(node_uuid)s. Reason: %(error)s.\u0027,"},{"line_number":172,"context_line":"                  {\u0027node_uuid\u0027: node.uuid, \u0027error\u0027: exc})"},{"line_number":173,"context_line":"        raise exception.IRMCOperationError(error\u003dexc)"},{"line_number":174,"context_line":""},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"def _commit_raid_config(task):"}],"source_content_type":"text/x-python","patch_set":27,"id":"5f7c97a3_9ab45b38","line":173,"range":{"start_line":173,"start_character":43,"end_line":173,"end_character":52},"in_reply_to":"5f7c97a3_f45b2852","updated":"2018-07-02 08:05:07.000000000","message":"Done","commit_id":"512ec3dad7b2d315610891ead48d4c5c8c7f5072"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"61d004c58bdbed8d0a8d8a65d06e27f7cbf95690","unresolved":false,"context_lines":[{"line_number":236,"context_line":""},{"line_number":237,"context_line":"    if disk[\u0027size_gb\u0027] \u003e valid_capacity:"},{"line_number":238,"context_line":"        raise exception.InvalidParameterValue("},{"line_number":239,"context_line":"            \u0027Raid volume not suitable value with %s GB\u0027 % disk[\u0027size_gb\u0027])"},{"line_number":240,"context_line":""},{"line_number":241,"context_line":"    if disk[\u0027size_gb\u0027] \u003d\u003d valid_capacity:"},{"line_number":242,"context_line":"        disk[\u0027size_gb\u0027] \u003d \u0027MAX\u0027"}],"source_content_type":"text/x-python","patch_set":27,"id":"5f7c97a3_14058415","line":239,"range":{"start_line":239,"start_character":13,"end_line":239,"end_character":54},"updated":"2018-07-02 06:51:47.000000000","message":"Not able to understand this message. From code it looks like something to do with \u0027insufficient disk capacity\u0027?","commit_id":"512ec3dad7b2d315610891ead48d4c5c8c7f5072"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"44b31e148f87eeaee065138dde2d636cafb34f3c","unresolved":false,"context_lines":[{"line_number":236,"context_line":""},{"line_number":237,"context_line":"    if disk[\u0027size_gb\u0027] \u003e valid_capacity:"},{"line_number":238,"context_line":"        raise exception.InvalidParameterValue("},{"line_number":239,"context_line":"            \u0027Raid volume not suitable value with %s GB\u0027 % disk[\u0027size_gb\u0027])"},{"line_number":240,"context_line":""},{"line_number":241,"context_line":"    if disk[\u0027size_gb\u0027] \u003d\u003d valid_capacity:"},{"line_number":242,"context_line":"        disk[\u0027size_gb\u0027] \u003d \u0027MAX\u0027"}],"source_content_type":"text/x-python","patch_set":27,"id":"5f7c97a3_1aefeb1d","line":239,"range":{"start_line":239,"start_character":13,"end_line":239,"end_character":54},"in_reply_to":"5f7c97a3_14058415","updated":"2018-07-02 08:05:07.000000000","message":"Done","commit_id":"512ec3dad7b2d315610891ead48d4c5c8c7f5072"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"61d004c58bdbed8d0a8d8a65d06e27f7cbf95690","unresolved":false,"context_lines":[{"line_number":334,"context_line":"            _validate_logical_drive_capacity(disk, valid_disks)"},{"line_number":335,"context_line":""},{"line_number":336,"context_line":""},{"line_number":337,"context_line":"class IrmcRAID(base.RAIDInterface):"},{"line_number":338,"context_line":""},{"line_number":339,"context_line":"    def get_properties(self):"},{"line_number":340,"context_line":"        \"\"\"Return the properties of the interface.\"\"\""}],"source_content_type":"text/x-python","patch_set":27,"id":"5f7c97a3_9f8d2d7e","line":337,"range":{"start_line":337,"start_character":6,"end_line":337,"end_character":14},"updated":"2018-07-02 06:51:47.000000000","message":"Should it have IRMC in caps as with other interface classes . Ex: IRMCPower, IRMCVirtualMediaBoot etc ?","commit_id":"512ec3dad7b2d315610891ead48d4c5c8c7f5072"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"44b31e148f87eeaee065138dde2d636cafb34f3c","unresolved":false,"context_lines":[{"line_number":334,"context_line":"            _validate_logical_drive_capacity(disk, valid_disks)"},{"line_number":335,"context_line":""},{"line_number":336,"context_line":""},{"line_number":337,"context_line":"class IrmcRAID(base.RAIDInterface):"},{"line_number":338,"context_line":""},{"line_number":339,"context_line":"    def get_properties(self):"},{"line_number":340,"context_line":"        \"\"\"Return the properties of the interface.\"\"\""}],"source_content_type":"text/x-python","patch_set":27,"id":"5f7c97a3_3acbc7a4","line":337,"range":{"start_line":337,"start_character":6,"end_line":337,"end_character":14},"in_reply_to":"5f7c97a3_9f8d2d7e","updated":"2018-07-02 08:05:07.000000000","message":"Done","commit_id":"512ec3dad7b2d315610891ead48d4c5c8c7f5072"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"61d004c58bdbed8d0a8d8a65d06e27f7cbf95690","unresolved":false,"context_lines":[{"line_number":371,"context_line":"            created. If False, no non-root volumes are created. Default"},{"line_number":372,"context_line":"            is True."},{"line_number":373,"context_line":"        :returns: states.CLEANWAIT if RAID configuration is in progress"},{"line_number":374,"context_line":"            asynchronously or None if it is complete."},{"line_number":375,"context_line":"        :raises: MissingParameterValue, if node.target_raid_config is missing"},{"line_number":376,"context_line":"            or empty."},{"line_number":377,"context_line":"        :raises: IRMCOperationError on an error from scciclient"}],"source_content_type":"text/x-python","patch_set":27,"id":"5f7c97a3_ff3781da","line":374,"range":{"start_line":374,"start_character":27,"end_line":374,"end_character":52},"updated":"2018-07-02 06:51:47.000000000","message":"This would be CLEANWAIT always for irmc RAID. Isnt it?","commit_id":"512ec3dad7b2d315610891ead48d4c5c8c7f5072"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"44b31e148f87eeaee065138dde2d636cafb34f3c","unresolved":false,"context_lines":[{"line_number":371,"context_line":"            created. If False, no non-root volumes are created. Default"},{"line_number":372,"context_line":"            is True."},{"line_number":373,"context_line":"        :returns: states.CLEANWAIT if RAID configuration is in progress"},{"line_number":374,"context_line":"            asynchronously or None if it is complete."},{"line_number":375,"context_line":"        :raises: MissingParameterValue, if node.target_raid_config is missing"},{"line_number":376,"context_line":"            or empty."},{"line_number":377,"context_line":"        :raises: IRMCOperationError on an error from scciclient"}],"source_content_type":"text/x-python","patch_set":27,"id":"5f7c97a3_5a3323c5","line":374,"range":{"start_line":374,"start_character":27,"end_line":374,"end_character":52},"in_reply_to":"5f7c97a3_ff3781da","updated":"2018-07-02 08:05:07.000000000","message":"Right. Thanks","commit_id":"512ec3dad7b2d315610891ead48d4c5c8c7f5072"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"61d004c58bdbed8d0a8d8a65d06e27f7cbf95690","unresolved":false,"context_lines":[{"line_number":405,"context_line":"        \"\"\"Delete the RAID configuration."},{"line_number":406,"context_line":""},{"line_number":407,"context_line":"        :param task: a TaskManager instance containing the node to act on."},{"line_number":408,"context_line":"        :returns: states.CLEANWAIT if deletion is in progress"},{"line_number":409,"context_line":"            asynchronously or None if it is complete."},{"line_number":410,"context_line":"        \"\"\""},{"line_number":411,"context_line":"        node \u003d task.node"},{"line_number":412,"context_line":"        node_uuid \u003d task.node.uuid"}],"source_content_type":"text/x-python","patch_set":27,"id":"5f7c97a3_df65e5e3","line":409,"range":{"start_line":408,"start_character":18,"end_line":409,"end_character":53},"updated":"2018-07-02 06:51:47.000000000","message":"This would be always \u0027None\u0027 for irmc RAID. Isn\u0027t it?","commit_id":"512ec3dad7b2d315610891ead48d4c5c8c7f5072"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"61d004c58bdbed8d0a8d8a65d06e27f7cbf95690","unresolved":false,"context_lines":[{"line_number":495,"context_line":"        LOG.error(\u0027RAID configuration task failed for node %(node)s. \u0027"},{"line_number":496,"context_line":"                  \u0027with FGI status is: %(fgi)s. \u0027,"},{"line_number":497,"context_line":"                  {\u0027node\u0027: task.node.uuid, \u0027fgi\u0027: fgi_status_dict})"},{"line_number":498,"context_line":"        fgi_message \u003d \u0027ServerViewRAID not available in Baremetal Server\u0027"},{"line_number":499,"context_line":"        task.node.last_error \u003d fgi_message"},{"line_number":500,"context_line":"        task.process_event(\u0027fail\u0027)"}],"source_content_type":"text/x-python","patch_set":27,"id":"5f7c97a3_9f5f6d0e","line":498,"range":{"start_line":498,"start_character":55,"end_line":498,"end_character":64},"updated":"2018-07-02 06:51:47.000000000","message":"nit: s/ Baremetal / bare metal /","commit_id":"512ec3dad7b2d315610891ead48d4c5c8c7f5072"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"5abe6712d35e19e7928854e0ec410c5e45268634","unresolved":false,"context_lines":[{"line_number":465,"context_line":"                        continue"},{"line_number":466,"context_line":""},{"line_number":467,"context_line":"                    fgi_status_dict \u003d _get_fgi_status(report, node_uuid)"},{"line_number":468,"context_line":"                    LOG.info(\u0027Gathering Foreground Initialization status from \u0027"},{"line_number":469,"context_line":"                             \u0027server on node %s\u0027, node_uuid)"},{"line_number":470,"context_line":"                    # Note(trungnv): Allow to check until RAID mechanism to be"},{"line_number":471,"context_line":"                    # completed with RAID information in report."}],"source_content_type":"text/x-python","patch_set":29,"id":"5f7c97a3_0fb54fd0","line":468,"updated":"2018-07-03 08:24:16.000000000","message":"nit: I\u0027m not sure how helpful this log is. Other messages are logged at L477 and L483 according to fgi_status. In these cases, this log is redundant. It might be better to put this log at L473 and at L487 with else with showing the configuration status for not emitting unnecessary logs.","commit_id":"134f1931378530004ed8bc6f7e0e4d9f3f530a27"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"53bf8c239d80f527ff6e5392b37ab86057356798","unresolved":false,"context_lines":[{"line_number":465,"context_line":"                        continue"},{"line_number":466,"context_line":""},{"line_number":467,"context_line":"                    fgi_status_dict \u003d _get_fgi_status(report, node_uuid)"},{"line_number":468,"context_line":"                    LOG.info(\u0027Gathering Foreground Initialization status from \u0027"},{"line_number":469,"context_line":"                             \u0027server on node %s\u0027, node_uuid)"},{"line_number":470,"context_line":"                    # Note(trungnv): Allow to check until RAID mechanism to be"},{"line_number":471,"context_line":"                    # completed with RAID information in report."}],"source_content_type":"text/x-python","patch_set":29,"id":"5f7c97a3_35e97e18","line":468,"in_reply_to":"5f7c97a3_0fb54fd0","updated":"2018-07-03 09:32:41.000000000","message":"Right. This log I used during debug. I think we should remove them. Thanks.","commit_id":"134f1931378530004ed8bc6f7e0e4d9f3f530a27"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"5302530e8189c993e19d4a7590513f4031fda3e2","unresolved":false,"context_lines":[{"line_number":446,"context_line":"                        continue"},{"line_number":447,"context_line":"                    if not raid_config or raid_config.get(\u0027fgi_status\u0027):"},{"line_number":448,"context_line":"                        continue"},{"line_number":449,"context_line":"                    if node.provision_state !\u003d states.CLEANWAIT:"},{"line_number":450,"context_line":"                        continue"},{"line_number":451,"context_line":"                    # Avoid hitting clean_callback_timeout expiration"},{"line_number":452,"context_line":"                    node.touch_provisioning()"}],"source_content_type":"text/x-python","patch_set":30,"id":"5f7c97a3_5f0be329","line":449,"updated":"2018-07-04 04:54:14.000000000","message":"We should call task.upgrade_lock() before this for a race condition with _check_cleanwait_timeouts().","commit_id":"cb85c01291774c58605d380ef550e23836ae5989"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"a7f9a1a09e20a4ddd4619461ae1ff9e8177aec4c","unresolved":false,"context_lines":[{"line_number":446,"context_line":"                        continue"},{"line_number":447,"context_line":"                    if not raid_config or raid_config.get(\u0027fgi_status\u0027):"},{"line_number":448,"context_line":"                        continue"},{"line_number":449,"context_line":"                    if node.provision_state !\u003d states.CLEANWAIT:"},{"line_number":450,"context_line":"                        continue"},{"line_number":451,"context_line":"                    # Avoid hitting clean_callback_timeout expiration"},{"line_number":452,"context_line":"                    node.touch_provisioning()"}],"source_content_type":"text/x-python","patch_set":30,"id":"5f7c97a3_7a226d03","line":449,"in_reply_to":"5f7c97a3_5f0be329","updated":"2018-07-04 06:05:33.000000000","message":"Done","commit_id":"cb85c01291774c58605d380ef550e23836ae5989"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"5302530e8189c993e19d4a7590513f4031fda3e2","unresolved":false,"context_lines":[{"line_number":472,"context_line":"                    if not fgi_status_dict:"},{"line_number":473,"context_line":"                        raid_config.update({\u0027fgi_status\u0027: RAID_FAILED})"},{"line_number":474,"context_line":"                        raid_common.update_raid_info(node, raid_config)"},{"line_number":475,"context_line":"                        LOG.info(\u0027RAID configuration has failed on \u0027"},{"line_number":476,"context_line":"                                 \u0027node %(node)s with fgi_status is %(fgi)s\u0027,"},{"line_number":477,"context_line":"                                 {\u0027node\u0027: node_uuid, \u0027fgi\u0027: RAID_FAILED})"},{"line_number":478,"context_line":"                        self._set_clean_failed(task, fgi_status_dict)"}],"source_content_type":"text/x-python","patch_set":30,"id":"5f7c97a3_1f49ebb6","line":475,"updated":"2018-07-04 04:54:14.000000000","message":"This is redundant because the same message is logged at L499 after _set_clean_failed is called.","commit_id":"cb85c01291774c58605d380ef550e23836ae5989"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"a7f9a1a09e20a4ddd4619461ae1ff9e8177aec4c","unresolved":false,"context_lines":[{"line_number":472,"context_line":"                    if not fgi_status_dict:"},{"line_number":473,"context_line":"                        raid_config.update({\u0027fgi_status\u0027: RAID_FAILED})"},{"line_number":474,"context_line":"                        raid_common.update_raid_info(node, raid_config)"},{"line_number":475,"context_line":"                        LOG.info(\u0027RAID configuration has failed on \u0027"},{"line_number":476,"context_line":"                                 \u0027node %(node)s with fgi_status is %(fgi)s\u0027,"},{"line_number":477,"context_line":"                                 {\u0027node\u0027: node_uuid, \u0027fgi\u0027: RAID_FAILED})"},{"line_number":478,"context_line":"                        self._set_clean_failed(task, fgi_status_dict)"}],"source_content_type":"text/x-python","patch_set":30,"id":"5f7c97a3_1a1b39cb","line":475,"in_reply_to":"5f7c97a3_1f49ebb6","updated":"2018-07-04 06:05:33.000000000","message":"Done","commit_id":"cb85c01291774c58605d380ef550e23836ae5989"}],"ironic/drivers/pxe.py":[{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"d9cd871d6ae4c413d9456a1789c0e232d2ea9fdd","unresolved":false,"context_lines":[{"line_number":145,"context_line":"        self.deploy \u003d iscsi_deploy.ISCSIDeploy()"},{"line_number":146,"context_line":"        self.management \u003d irmc_management.IRMCManagement()"},{"line_number":147,"context_line":"        self.inspect \u003d irmc_inspect.IRMCInspect()"},{"line_number":148,"context_line":"        self.raid \u003d raid.IrmcRAID()"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"    @classmethod"},{"line_number":151,"context_line":"    def to_hardware_type(cls):"}],"source_content_type":"text/x-python","patch_set":4,"id":"df7087c5_cf0038ae","line":148,"updated":"2018-03-16 05:30:35.000000000","message":"We don\u0027t need it because classic drivers are already deprecated.","commit_id":"b349223ad4c997dc8ba625bd6b136642455833ec"}],"ironic/tests/unit/drivers/modules/irmc/test_periodic_task.py":[{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"df775a7160d4c29ade6bfe59f2707dea0455c2c1","unresolved":false,"context_lines":[{"line_number":69,"context_line":"                                  shared\u003dTrue) as task:"},{"line_number":70,"context_line":"            node_list \u003d [(self.node.uuid, \u0027irmc\u0027, raid_config)]"},{"line_number":71,"context_line":"            mock_manager.iter_nodes.return_value \u003d node_list"},{"line_number":72,"context_line":"            task.driver.raid.IrmcRAID \u003d None"},{"line_number":73,"context_line":"            task.node.save()"},{"line_number":74,"context_line":"            raid_object \u003d irmc_raid.IrmcRAID()"},{"line_number":75,"context_line":"            raid_object._query_raid_config_fgi_status(mock_manager,"}],"source_content_type":"text/x-python","patch_set":16,"id":"5f7c97a3_16944343","line":72,"updated":"2018-06-12 08:06:13.000000000","message":"This should be:\n\n  task.node.raid_interface\u003d\u0027no-raid\u0027\n\nAny node has any raid_interface after classic drivers are removed.","commit_id":"6b9f045ec0a10c040161cfb418ad263ac5c020e0"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"a8233bb860a4f2e84be48ba6d47d2e5348c50eac","unresolved":false,"context_lines":[{"line_number":69,"context_line":"                                  shared\u003dTrue) as task:"},{"line_number":70,"context_line":"            node_list \u003d [(self.node.uuid, \u0027irmc\u0027, raid_config)]"},{"line_number":71,"context_line":"            mock_manager.iter_nodes.return_value \u003d node_list"},{"line_number":72,"context_line":"            task.driver.raid.IrmcRAID \u003d None"},{"line_number":73,"context_line":"            task.node.save()"},{"line_number":74,"context_line":"            raid_object \u003d irmc_raid.IrmcRAID()"},{"line_number":75,"context_line":"            raid_object._query_raid_config_fgi_status(mock_manager,"}],"source_content_type":"text/x-python","patch_set":16,"id":"5f7c97a3_a86371b0","line":72,"in_reply_to":"5f7c97a3_16944343","updated":"2018-06-15 04:34:30.000000000","message":"Done","commit_id":"6b9f045ec0a10c040161cfb418ad263ac5c020e0"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"df775a7160d4c29ade6bfe59f2707dea0455c2c1","unresolved":false,"context_lines":[{"line_number":157,"context_line":"            task.node.save()"},{"line_number":158,"context_line":"            task.driver.raid._query_raid_config_fgi_status(mock_manager,"},{"line_number":159,"context_line":"                                                           self.context)"},{"line_number":160,"context_line":"            self.assertEqual(0, clean_fail_mock.call_count)"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"    @mock.patch(\u0027ironic.drivers.modules.irmc.raid.IrmcRAID._set_clean_failed\u0027)"},{"line_number":163,"context_line":"    @mock.patch(\u0027ironic.drivers.modules.irmc.raid._get_fgi_status\u0027)"}],"source_content_type":"text/x-python","patch_set":16,"id":"5f7c97a3_56ccfb32","line":160,"updated":"2018-06-12 08:06:13.000000000","message":"Could you please add more assertions? It would be better to see if get_irmc_report is called.","commit_id":"6b9f045ec0a10c040161cfb418ad263ac5c020e0"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"a8233bb860a4f2e84be48ba6d47d2e5348c50eac","unresolved":false,"context_lines":[{"line_number":157,"context_line":"            task.node.save()"},{"line_number":158,"context_line":"            task.driver.raid._query_raid_config_fgi_status(mock_manager,"},{"line_number":159,"context_line":"                                                           self.context)"},{"line_number":160,"context_line":"            self.assertEqual(0, clean_fail_mock.call_count)"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"    @mock.patch(\u0027ironic.drivers.modules.irmc.raid.IrmcRAID._set_clean_failed\u0027)"},{"line_number":163,"context_line":"    @mock.patch(\u0027ironic.drivers.modules.irmc.raid._get_fgi_status\u0027)"}],"source_content_type":"text/x-python","patch_set":16,"id":"5f7c97a3_288441b0","line":160,"in_reply_to":"5f7c97a3_56ccfb32","updated":"2018-06-15 04:34:30.000000000","message":"Done","commit_id":"6b9f045ec0a10c040161cfb418ad263ac5c020e0"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"df775a7160d4c29ade6bfe59f2707dea0455c2c1","unresolved":false,"context_lines":[{"line_number":176,"context_line":"            task.node.save()"},{"line_number":177,"context_line":"            task.driver.raid._query_raid_config_fgi_status(mock_manager,"},{"line_number":178,"context_line":"                                                           self.context)"},{"line_number":179,"context_line":"            self.assertEqual(1, clean_fail_mock.call_count)"},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"    @mock.patch.object(irmc_common, \u0027resume_cleaning\u0027)"},{"line_number":182,"context_line":"    @mock.patch(\u0027ironic.drivers.modules.irmc.raid.IrmcRAID._set_clean_failed\u0027)"}],"source_content_type":"text/x-python","patch_set":16,"id":"5f7c97a3_76ea5774","line":179,"updated":"2018-06-12 08:06:13.000000000","message":"We use assert_called_once_with() for more precise validation.\n\nMore assertions here, too.","commit_id":"6b9f045ec0a10c040161cfb418ad263ac5c020e0"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"a8233bb860a4f2e84be48ba6d47d2e5348c50eac","unresolved":false,"context_lines":[{"line_number":176,"context_line":"            task.node.save()"},{"line_number":177,"context_line":"            task.driver.raid._query_raid_config_fgi_status(mock_manager,"},{"line_number":178,"context_line":"                                                           self.context)"},{"line_number":179,"context_line":"            self.assertEqual(1, clean_fail_mock.call_count)"},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"    @mock.patch.object(irmc_common, \u0027resume_cleaning\u0027)"},{"line_number":182,"context_line":"    @mock.patch(\u0027ironic.drivers.modules.irmc.raid.IrmcRAID._set_clean_failed\u0027)"}],"source_content_type":"text/x-python","patch_set":16,"id":"5f7c97a3_8d330cc5","line":179,"in_reply_to":"5f7c97a3_76ea5774","updated":"2018-06-15 04:34:30.000000000","message":"Done","commit_id":"6b9f045ec0a10c040161cfb418ad263ac5c020e0"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"df775a7160d4c29ade6bfe59f2707dea0455c2c1","unresolved":false,"context_lines":[{"line_number":189,"context_line":"        fgi_mock.return_value \u003d {\u00270\u0027: \u0027Idle\u0027, \u00271\u0027: \u0027Idle\u0027}"},{"line_number":190,"context_line":"        with task_manager.acquire(self.context, self.node.uuid,"},{"line_number":191,"context_line":"                                  shared\u003dTrue) as task:"},{"line_number":192,"context_line":"            node_list \u003d [(self.node.uuid, \u0027irmc\u0027, raid_config)]"},{"line_number":193,"context_line":"            mock_manager.iter_nodes.return_value \u003d node_list"},{"line_number":194,"context_line":"            # Set provision state value"},{"line_number":195,"context_line":"            task.node.provision_state \u003d \u0027clean wait\u0027"}],"source_content_type":"text/x-python","patch_set":16,"id":"5f7c97a3_f6f50752","line":192,"updated":"2018-06-12 08:06:13.000000000","message":"Could you please add a few tests for case where node_list contains multiple nodes regarding my comment to this revision?","commit_id":"6b9f045ec0a10c040161cfb418ad263ac5c020e0"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"a8233bb860a4f2e84be48ba6d47d2e5348c50eac","unresolved":false,"context_lines":[{"line_number":189,"context_line":"        fgi_mock.return_value \u003d {\u00270\u0027: \u0027Idle\u0027, \u00271\u0027: \u0027Idle\u0027}"},{"line_number":190,"context_line":"        with task_manager.acquire(self.context, self.node.uuid,"},{"line_number":191,"context_line":"                                  shared\u003dTrue) as task:"},{"line_number":192,"context_line":"            node_list \u003d [(self.node.uuid, \u0027irmc\u0027, raid_config)]"},{"line_number":193,"context_line":"            mock_manager.iter_nodes.return_value \u003d node_list"},{"line_number":194,"context_line":"            # Set provision state value"},{"line_number":195,"context_line":"            task.node.provision_state \u003d \u0027clean wait\u0027"}],"source_content_type":"text/x-python","patch_set":16,"id":"5f7c97a3_ad38489f","line":192,"in_reply_to":"5f7c97a3_f6f50752","updated":"2018-06-15 04:34:30.000000000","message":"Done","commit_id":"6b9f045ec0a10c040161cfb418ad263ac5c020e0"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"9e9d3cd5888f3d83f4e029b14fcfa3642e73bf07","unresolved":false,"context_lines":[{"line_number":43,"context_line":"                                               driver\u003d\u0027irmc\u0027,"},{"line_number":44,"context_line":"                                               driver_info\u003dINFO_DICT)"},{"line_number":45,"context_line":"        self.node_2 \u003d obj_utils.create_test_node("},{"line_number":46,"context_line":"            self.context, driver\u003d\u0027no-raid\u0027, uuid\u003duuidutils.generate_uuid())"},{"line_number":47,"context_line":"        self.driver \u003d driver_factory.build_driver_for_task(self)"},{"line_number":48,"context_line":"        self.raid_config \u003d {"},{"line_number":49,"context_line":"            \u0027logical_disks\u0027: ["}],"source_content_type":"text/x-python","patch_set":20,"id":"5f7c97a3_3681c44e","line":46,"range":{"start_line":46,"start_character":34,"end_line":46,"end_character":41},"updated":"2018-06-18 10:20:25.000000000","message":"\u0027no-raid\u0027 is a RAID interface. It would be better to use hardware type.","commit_id":"c1b74b195574e4aaa6daea2c0cfc05270af82824"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"f3632445dca88f0b5bf230e20e19a252c0a377cf","unresolved":false,"context_lines":[{"line_number":43,"context_line":"                                               driver\u003d\u0027irmc\u0027,"},{"line_number":44,"context_line":"                                               driver_info\u003dINFO_DICT)"},{"line_number":45,"context_line":"        self.node_2 \u003d obj_utils.create_test_node("},{"line_number":46,"context_line":"            self.context, driver\u003d\u0027no-raid\u0027, uuid\u003duuidutils.generate_uuid())"},{"line_number":47,"context_line":"        self.driver \u003d driver_factory.build_driver_for_task(self)"},{"line_number":48,"context_line":"        self.raid_config \u003d {"},{"line_number":49,"context_line":"            \u0027logical_disks\u0027: ["}],"source_content_type":"text/x-python","patch_set":20,"id":"5f7c97a3_06b491d0","line":46,"range":{"start_line":46,"start_character":34,"end_line":46,"end_character":41},"in_reply_to":"5f7c97a3_3681c44e","updated":"2018-06-19 03:51:08.000000000","message":"Yep. I will use \u0027fake-hardware\u0027 for node_2.","commit_id":"c1b74b195574e4aaa6daea2c0cfc05270af82824"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"9e9d3cd5888f3d83f4e029b14fcfa3642e73bf07","unresolved":false,"context_lines":[{"line_number":44,"context_line":"                                               driver_info\u003dINFO_DICT)"},{"line_number":45,"context_line":"        self.node_2 \u003d obj_utils.create_test_node("},{"line_number":46,"context_line":"            self.context, driver\u003d\u0027no-raid\u0027, uuid\u003duuidutils.generate_uuid())"},{"line_number":47,"context_line":"        self.driver \u003d driver_factory.build_driver_for_task(self)"},{"line_number":48,"context_line":"        self.raid_config \u003d {"},{"line_number":49,"context_line":"            \u0027logical_disks\u0027: ["},{"line_number":50,"context_line":"                {\u0027controller\u0027: \u0027RAIDAdapter0\u0027},"}],"source_content_type":"text/x-python","patch_set":20,"id":"5f7c97a3_365d44ec","line":47,"range":{"start_line":47,"start_character":59,"end_line":47,"end_character":63},"updated":"2018-06-18 10:20:25.000000000","message":"It doesn\u0027t look quite good because build_driver_for_task() usually receives a TaskManager object. Probably, there would be better way.","commit_id":"c1b74b195574e4aaa6daea2c0cfc05270af82824"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"f3632445dca88f0b5bf230e20e19a252c0a377cf","unresolved":false,"context_lines":[{"line_number":44,"context_line":"                                               driver_info\u003dINFO_DICT)"},{"line_number":45,"context_line":"        self.node_2 \u003d obj_utils.create_test_node("},{"line_number":46,"context_line":"            self.context, driver\u003d\u0027no-raid\u0027, uuid\u003duuidutils.generate_uuid())"},{"line_number":47,"context_line":"        self.driver \u003d driver_factory.build_driver_for_task(self)"},{"line_number":48,"context_line":"        self.raid_config \u003d {"},{"line_number":49,"context_line":"            \u0027logical_disks\u0027: ["},{"line_number":50,"context_line":"                {\u0027controller\u0027: \u0027RAIDAdapter0\u0027},"}],"source_content_type":"text/x-python","patch_set":20,"id":"5f7c97a3_06ba516d","line":47,"range":{"start_line":47,"start_character":59,"end_line":47,"end_character":63},"in_reply_to":"5f7c97a3_365d44ec","updated":"2018-06-19 03:51:08.000000000","message":"I am not sure, Please suggest me better solution. Thanks","commit_id":"c1b74b195574e4aaa6daea2c0cfc05270af82824"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"9e9d3cd5888f3d83f4e029b14fcfa3642e73bf07","unresolved":false,"context_lines":[{"line_number":288,"context_line":"        task.node.provision_state \u003d \u0027clean wait\u0027"},{"line_number":289,"context_line":"        task.node.target_raid_config \u003d self.target_raid_config"},{"line_number":290,"context_line":"        task.node.save()"},{"line_number":291,"context_line":"        task.driver.raid._query_raid_config_fgi_status(mock_manager,"},{"line_number":292,"context_line":"                                                       self.context)"},{"line_number":293,"context_line":"        # Set task for irmc raid in the node 2"},{"line_number":294,"context_line":"        fgi_mock.return_value \u003d {\u00270\u0027: \u0027Idle\u0027, \u00271\u0027: \u0027Idle\u0027}"}],"source_content_type":"text/x-python","patch_set":20,"id":"5f7c97a3_b69f1450","line":291,"updated":"2018-06-18 10:20:25.000000000","message":"It seems that this tests _query_raid_config_fgi_status() with a single node list twice. I believe _query_raid_config_fgi_status() would be called once with a node_list containing 2 nodes here.","commit_id":"c1b74b195574e4aaa6daea2c0cfc05270af82824"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"f3632445dca88f0b5bf230e20e19a252c0a377cf","unresolved":false,"context_lines":[{"line_number":288,"context_line":"        task.node.provision_state \u003d \u0027clean wait\u0027"},{"line_number":289,"context_line":"        task.node.target_raid_config \u003d self.target_raid_config"},{"line_number":290,"context_line":"        task.node.save()"},{"line_number":291,"context_line":"        task.driver.raid._query_raid_config_fgi_status(mock_manager,"},{"line_number":292,"context_line":"                                                       self.context)"},{"line_number":293,"context_line":"        # Set task for irmc raid in the node 2"},{"line_number":294,"context_line":"        fgi_mock.return_value \u003d {\u00270\u0027: \u0027Idle\u0027, \u00271\u0027: \u0027Idle\u0027}"}],"source_content_type":"text/x-python","patch_set":20,"id":"5f7c97a3_5a71ec76","line":291,"in_reply_to":"5f7c97a3_b69f1450","updated":"2018-06-19 03:51:08.000000000","message":"Done","commit_id":"c1b74b195574e4aaa6daea2c0cfc05270af82824"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"9f247995795bcacccd00fe807716d085bdcefc95","unresolved":false,"context_lines":[{"line_number":257,"context_line":"        task \u003d mock.Mock(node\u003dself.node, driver\u003dself.driver)"},{"line_number":258,"context_line":"        mock_acquire.return_value \u003d mock.MagicMock("},{"line_number":259,"context_line":"            __enter__\u003dmock.MagicMock(return_value\u003dtask))"},{"line_number":260,"context_line":"        node_list \u003d [(self.node_2.uuid, \u0027fake-hardware\u0027, raid_config_2),"},{"line_number":261,"context_line":"                     (self.node.uuid, \u0027irmc\u0027, raid_config)]"},{"line_number":262,"context_line":"        mock_manager.iter_nodes.return_value \u003d node_list"},{"line_number":263,"context_line":"        # Set provision state value"}],"source_content_type":"text/x-python","patch_set":23,"id":"5f7c97a3_c912c5fd","line":260,"range":{"start_line":260,"start_character":41,"end_line":260,"end_character":54},"updated":"2018-06-22 07:10:13.000000000","message":"nit: It would be natural to use \u0027irmc\u0027 here because this node has irmc raid interface in this test. Unless testing this path[1], the raid interface is \u0027irmc\u0027.\n\n[1] https://review.openstack.org/#/c/512979/23/ironic/drivers/modules/irmc/raid.py@439","commit_id":"676fed6924426fe1a97ded35e06c4da4480ed248"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"561a38ff4b2f575f2945cadabfa0779294521fbb","unresolved":false,"context_lines":[{"line_number":257,"context_line":"        task \u003d mock.Mock(node\u003dself.node, driver\u003dself.driver)"},{"line_number":258,"context_line":"        mock_acquire.return_value \u003d mock.MagicMock("},{"line_number":259,"context_line":"            __enter__\u003dmock.MagicMock(return_value\u003dtask))"},{"line_number":260,"context_line":"        node_list \u003d [(self.node_2.uuid, \u0027fake-hardware\u0027, raid_config_2),"},{"line_number":261,"context_line":"                     (self.node.uuid, \u0027irmc\u0027, raid_config)]"},{"line_number":262,"context_line":"        mock_manager.iter_nodes.return_value \u003d node_list"},{"line_number":263,"context_line":"        # Set provision state value"}],"source_content_type":"text/x-python","patch_set":23,"id":"5f7c97a3_ccd173fa","line":260,"range":{"start_line":260,"start_character":41,"end_line":260,"end_character":54},"in_reply_to":"5f7c97a3_c912c5fd","updated":"2018-06-22 08:03:26.000000000","message":"Done","commit_id":"676fed6924426fe1a97ded35e06c4da4480ed248"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"5abe6712d35e19e7928854e0ec410c5e45268634","unresolved":false,"context_lines":[{"line_number":30,"context_line":"INFO_DICT \u003d db_utils.get_test_irmc_info()"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"class iRMCPeriodicTaskTestCase(db_base.DbTestCase):"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    def setUp(self):"},{"line_number":36,"context_line":"        super(iRMCPeriodicTaskTestCase, self).setUp()"}],"source_content_type":"text/x-python","patch_set":29,"id":"5f7c97a3_4f8fc7cc","line":33,"range":{"start_line":33,"start_character":31,"end_line":33,"end_character":49},"updated":"2018-07-03 08:24:16.000000000","message":"nit: Now that BaseIRMCTest is introduced, we can use it to create the first node by adding configuration for raid to the superclass.\n\n[1] https://github.com/openstack/ironic/blob/master/ironic/tests/unit/drivers/modules/irmc/test_common.py#L33","commit_id":"134f1931378530004ed8bc6f7e0e4d9f3f530a27"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"53bf8c239d80f527ff6e5392b37ab86057356798","unresolved":false,"context_lines":[{"line_number":30,"context_line":"INFO_DICT \u003d db_utils.get_test_irmc_info()"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"class iRMCPeriodicTaskTestCase(db_base.DbTestCase):"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    def setUp(self):"},{"line_number":36,"context_line":"        super(iRMCPeriodicTaskTestCase, self).setUp()"}],"source_content_type":"text/x-python","patch_set":29,"id":"5f7c97a3_d5cdaa30","line":33,"range":{"start_line":33,"start_character":31,"end_line":33,"end_character":49},"in_reply_to":"5f7c97a3_4f8fc7cc","updated":"2018-07-03 09:32:41.000000000","message":"Done","commit_id":"134f1931378530004ed8bc6f7e0e4d9f3f530a27"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"5abe6712d35e19e7928854e0ec410c5e45268634","unresolved":false,"context_lines":[{"line_number":45,"context_line":"        self.node_2 \u003d obj_utils.create_test_node("},{"line_number":46,"context_line":"            self.context, driver\u003d\u0027fake-hardware\u0027,"},{"line_number":47,"context_line":"            uuid\u003duuidutils.generate_uuid())"},{"line_number":48,"context_line":"        self.driver \u003d driver_factory.build_driver_for_task(self)"},{"line_number":49,"context_line":"        self.raid_config \u003d {"},{"line_number":50,"context_line":"            \u0027logical_disks\u0027: ["},{"line_number":51,"context_line":"                {\u0027controller\u0027: \u0027RAIDAdapter0\u0027},"}],"source_content_type":"text/x-python","patch_set":29,"id":"5f7c97a3_6f7883c0","line":48,"updated":"2018-07-03 08:24:16.000000000","message":"nit: I prefer mocking the driver to passing TestCase class to this method like:\n\n  self.driver \u003d mock.Mock(raid\u003dIRMCRAID())","commit_id":"134f1931378530004ed8bc6f7e0e4d9f3f530a27"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"53bf8c239d80f527ff6e5392b37ab86057356798","unresolved":false,"context_lines":[{"line_number":45,"context_line":"        self.node_2 \u003d obj_utils.create_test_node("},{"line_number":46,"context_line":"            self.context, driver\u003d\u0027fake-hardware\u0027,"},{"line_number":47,"context_line":"            uuid\u003duuidutils.generate_uuid())"},{"line_number":48,"context_line":"        self.driver \u003d driver_factory.build_driver_for_task(self)"},{"line_number":49,"context_line":"        self.raid_config \u003d {"},{"line_number":50,"context_line":"            \u0027logical_disks\u0027: ["},{"line_number":51,"context_line":"                {\u0027controller\u0027: \u0027RAIDAdapter0\u0027},"}],"source_content_type":"text/x-python","patch_set":29,"id":"5f7c97a3_35c73e14","line":48,"in_reply_to":"5f7c97a3_6f7883c0","updated":"2018-07-03 09:32:41.000000000","message":"Done","commit_id":"134f1931378530004ed8bc6f7e0e4d9f3f530a27"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"5abe6712d35e19e7928854e0ec410c5e45268634","unresolved":false,"context_lines":[{"line_number":81,"context_line":"            __enter__\u003dmock.MagicMock(return_value\u003dtask))"},{"line_number":82,"context_line":"        node_list \u003d [(self.node.uuid, \u0027irmc\u0027, raid_config)]"},{"line_number":83,"context_line":"        mock_manager.iter_nodes.return_value \u003d node_list"},{"line_number":84,"context_line":"        task.driver.raid.IRMCRAID \u003d \u0027no-raid\u0027"},{"line_number":85,"context_line":"        task.node.save()"},{"line_number":86,"context_line":"        raid_object \u003d irmc_raid.IRMCRAID()"},{"line_number":87,"context_line":"        raid_object._query_raid_config_fgi_status(mock_manager,"}],"source_content_type":"text/x-python","patch_set":29,"id":"5f7c97a3_cf7f57dd","line":84,"updated":"2018-07-03 08:24:16.000000000","message":"nit: I prefer using another raid interface for simulating an actual case like:\n\n  task.driver.raid \u003d NoRAID()","commit_id":"134f1931378530004ed8bc6f7e0e4d9f3f530a27"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"53bf8c239d80f527ff6e5392b37ab86057356798","unresolved":false,"context_lines":[{"line_number":81,"context_line":"            __enter__\u003dmock.MagicMock(return_value\u003dtask))"},{"line_number":82,"context_line":"        node_list \u003d [(self.node.uuid, \u0027irmc\u0027, raid_config)]"},{"line_number":83,"context_line":"        mock_manager.iter_nodes.return_value \u003d node_list"},{"line_number":84,"context_line":"        task.driver.raid.IRMCRAID \u003d \u0027no-raid\u0027"},{"line_number":85,"context_line":"        task.node.save()"},{"line_number":86,"context_line":"        raid_object \u003d irmc_raid.IRMCRAID()"},{"line_number":87,"context_line":"        raid_object._query_raid_config_fgi_status(mock_manager,"}],"source_content_type":"text/x-python","patch_set":29,"id":"5f7c97a3_7547f6a4","line":84,"in_reply_to":"5f7c97a3_cf7f57dd","updated":"2018-07-03 09:32:41.000000000","message":"Done","commit_id":"134f1931378530004ed8bc6f7e0e4d9f3f530a27"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"5abe6712d35e19e7928854e0ec410c5e45268634","unresolved":false,"context_lines":[{"line_number":82,"context_line":"        node_list \u003d [(self.node.uuid, \u0027irmc\u0027, raid_config)]"},{"line_number":83,"context_line":"        mock_manager.iter_nodes.return_value \u003d node_list"},{"line_number":84,"context_line":"        task.driver.raid.IRMCRAID \u003d \u0027no-raid\u0027"},{"line_number":85,"context_line":"        task.node.save()"},{"line_number":86,"context_line":"        raid_object \u003d irmc_raid.IRMCRAID()"},{"line_number":87,"context_line":"        raid_object._query_raid_config_fgi_status(mock_manager,"},{"line_number":88,"context_line":"                                                  self.context)"}],"source_content_type":"text/x-python","patch_set":29,"id":"5f7c97a3_2f628b3e","line":85,"updated":"2018-07-03 08:24:16.000000000","message":"nit: this looks unnecessary because nothing is changed in the node.","commit_id":"134f1931378530004ed8bc6f7e0e4d9f3f530a27"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"53bf8c239d80f527ff6e5392b37ab86057356798","unresolved":false,"context_lines":[{"line_number":82,"context_line":"        node_list \u003d [(self.node.uuid, \u0027irmc\u0027, raid_config)]"},{"line_number":83,"context_line":"        mock_manager.iter_nodes.return_value \u003d node_list"},{"line_number":84,"context_line":"        task.driver.raid.IRMCRAID \u003d \u0027no-raid\u0027"},{"line_number":85,"context_line":"        task.node.save()"},{"line_number":86,"context_line":"        raid_object \u003d irmc_raid.IRMCRAID()"},{"line_number":87,"context_line":"        raid_object._query_raid_config_fgi_status(mock_manager,"},{"line_number":88,"context_line":"                                                  self.context)"}],"source_content_type":"text/x-python","patch_set":29,"id":"5f7c97a3_15c4820d","line":85,"in_reply_to":"5f7c97a3_2f628b3e","updated":"2018-07-03 09:32:41.000000000","message":"Done","commit_id":"134f1931378530004ed8bc6f7e0e4d9f3f530a27"}],"ironic/tests/unit/drivers/modules/irmc/test_raid.py":[{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"5302530e8189c993e19d4a7590513f4031fda3e2","unresolved":false,"context_lines":[{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    def setUp(self):"},{"line_number":34,"context_line":"        super(IRMCRaidConfigurationInternalMethodsTestCase, self).setUp()"},{"line_number":35,"context_line":"        self.config(enabled_hardware_types\u003d[\u0027irmc\u0027],"},{"line_number":36,"context_line":"                    enabled_boot_interfaces\u003d[\u0027irmc-pxe\u0027],"},{"line_number":37,"context_line":"                    enabled_management_interfaces\u003d[\u0027irmc\u0027],"},{"line_number":38,"context_line":"                    enabled_power_interfaces\u003d[\u0027irmc\u0027],"},{"line_number":39,"context_line":"                    enabled_raid_interfaces\u003d[\u0027irmc\u0027])"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"        self.node \u003d obj_utils.create_test_node(self.context,"},{"line_number":42,"context_line":"                                               driver\u003d\u0027irmc\u0027,"},{"line_number":43,"context_line":"                                               driver_info\u003dINFO_DICT)"},{"line_number":44,"context_line":"        self.raid_adapter_profile \u003d {"},{"line_number":45,"context_line":"            \"Server\": {"},{"line_number":46,"context_line":"                \"HWConfigurationIrmc\": {"}],"source_content_type":"text/x-python","patch_set":30,"id":"5f7c97a3_5ff7638d","line":43,"range":{"start_line":35,"start_character":0,"end_line":43,"end_character":69},"updated":"2018-07-04 04:54:14.000000000","message":"nit: This overwrites a setup done in BaseIRMCTest. Just replacing superclass is meaningless.","commit_id":"cb85c01291774c58605d380ef550e23836ae5989"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"a7f9a1a09e20a4ddd4619461ae1ff9e8177aec4c","unresolved":false,"context_lines":[{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    def setUp(self):"},{"line_number":34,"context_line":"        super(IRMCRaidConfigurationInternalMethodsTestCase, self).setUp()"},{"line_number":35,"context_line":"        self.config(enabled_hardware_types\u003d[\u0027irmc\u0027],"},{"line_number":36,"context_line":"                    enabled_boot_interfaces\u003d[\u0027irmc-pxe\u0027],"},{"line_number":37,"context_line":"                    enabled_management_interfaces\u003d[\u0027irmc\u0027],"},{"line_number":38,"context_line":"                    enabled_power_interfaces\u003d[\u0027irmc\u0027],"},{"line_number":39,"context_line":"                    enabled_raid_interfaces\u003d[\u0027irmc\u0027])"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"        self.node \u003d obj_utils.create_test_node(self.context,"},{"line_number":42,"context_line":"                                               driver\u003d\u0027irmc\u0027,"},{"line_number":43,"context_line":"                                               driver_info\u003dINFO_DICT)"},{"line_number":44,"context_line":"        self.raid_adapter_profile \u003d {"},{"line_number":45,"context_line":"            \"Server\": {"},{"line_number":46,"context_line":"                \"HWConfigurationIrmc\": {"}],"source_content_type":"text/x-python","patch_set":30,"id":"5f7c97a3_5ad8d1ee","line":43,"range":{"start_line":35,"start_character":0,"end_line":43,"end_character":69},"in_reply_to":"5f7c97a3_5ff7638d","updated":"2018-07-04 06:05:33.000000000","message":"Done","commit_id":"cb85c01291774c58605d380ef550e23836ae5989"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"55524d53c1dbae40419ebb3419dc2c2c4d40a367","unresolved":false,"context_lines":[{"line_number":25,"context_line":"from ironic.tests.unit.drivers.modules.irmc import test_common"},{"line_number":26,"context_line":"from ironic.tests.unit.objects import utils as obj_utils"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"INFO_DICT \u003d db_utils.get_test_irmc_info()"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"class IRMCRaidConfigurationInternalMethodsTestCase(test_common.BaseIRMCTest):"}],"source_content_type":"text/x-python","patch_set":32,"id":"5f7c97a3_b134abfb","line":28,"updated":"2018-07-04 08:22:12.000000000","message":"nit: Using BaseIRMCTest makes this dict unnecessary.","commit_id":"75f89118bb15e1e5b4da1f9ae1ae27e083694e46"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"29e978a137481cb193be0a2ec6c9d64c5e29d61d","unresolved":false,"context_lines":[{"line_number":25,"context_line":"from ironic.tests.unit.drivers.modules.irmc import test_common"},{"line_number":26,"context_line":"from ironic.tests.unit.objects import utils as obj_utils"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"INFO_DICT \u003d db_utils.get_test_irmc_info()"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"class IRMCRaidConfigurationInternalMethodsTestCase(test_common.BaseIRMCTest):"}],"source_content_type":"text/x-python","patch_set":32,"id":"5f7c97a3_c4a9638f","line":28,"in_reply_to":"5f7c97a3_b134abfb","updated":"2018-07-04 08:42:34.000000000","message":"Done","commit_id":"75f89118bb15e1e5b4da1f9ae1ae27e083694e46"}],"releasenotes/notes/irmc-manual-clean-create-raid-configuration-bccef8496520bf8c.yaml":[{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"722f09c6404d04f227208ec573d1b9ec30cf597b","unresolved":false,"context_lines":[{"line_number":4,"context_line":"    the functionality available via manual cleaning."},{"line_number":5,"context_line":"  - Update node info raid_config field with data retrieved from the server"},{"line_number":6,"context_line":"    after ironic performs successfully manual clean via iRMC driver."},{"line_number":7,"context_line":"other:"},{"line_number":8,"context_line":"  - iRMC driver only supports RAID 0, 1, 5, 6, 1+0, 5+0 and 6+0."},{"line_number":9,"context_line":"  - iRMC driver only supports raid_level of Mandatory properties and"},{"line_number":10,"context_line":"    physical_disks of backing physical disks."}],"source_content_type":"text/x-yaml","patch_set":9,"id":"bf659307_80deecd7","line":7,"updated":"2018-04-11 12:27:43.000000000","message":"You don\u0027t have to mention these notes at this \u0027other\u0027 section. It would be better to point the iRMC documentation.","commit_id":"4f47b407272e31997e82d532b52afe5dc457dc1b"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"548ecc33b063ac7ad1344d1fa48ce9206c2cdd4f","unresolved":false,"context_lines":[{"line_number":4,"context_line":"    the functionality available via manual cleaning."},{"line_number":5,"context_line":"  - Update node info raid_config field with data retrieved from the server"},{"line_number":6,"context_line":"    after ironic performs successfully manual clean via iRMC driver."},{"line_number":7,"context_line":"other:"},{"line_number":8,"context_line":"  - iRMC driver only supports RAID 0, 1, 5, 6, 1+0, 5+0 and 6+0."},{"line_number":9,"context_line":"  - iRMC driver only supports raid_level of Mandatory properties and"},{"line_number":10,"context_line":"    physical_disks of backing physical disks."}],"source_content_type":"text/x-yaml","patch_set":9,"id":"bf659307_99365303","line":7,"in_reply_to":"bf659307_80deecd7","updated":"2018-04-12 04:48:16.000000000","message":"Done","commit_id":"4f47b407272e31997e82d532b52afe5dc457dc1b"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"635984aa43b5985474f9a7a0120c4e34bb26a6ab","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Add out-of-band RAID configuration solution for iRMC driver which makes"},{"line_number":4,"context_line":"    the functionality available via manual cleaning."},{"line_number":5,"context_line":"  - Update node info raid_config field with data retrieved from the server"},{"line_number":6,"context_line":"    after ironic performs successfully manual clean via iRMC driver."}],"source_content_type":"text/x-yaml","patch_set":15,"id":"5f7c97a3_13abbad5","line":3,"range":{"start_line":3,"start_character":4,"end_line":3,"end_character":7},"updated":"2018-06-01 19:48:27.000000000","message":"s/Add/Adds/ but we can always catch that when we scrub the release notes prior to release.","commit_id":"1d5d61e4eaa03d2426061784fbf80eed7d96a840"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"50f6d43dda01a1e4d77d14b52b27c0eb19f1f38c","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Add out-of-band RAID configuration solution for iRMC driver which makes"},{"line_number":4,"context_line":"    the functionality available via manual cleaning."},{"line_number":5,"context_line":"  - Update node info raid_config field with data retrieved from the server"},{"line_number":6,"context_line":"    after ironic performs successfully manual clean via iRMC driver."}],"source_content_type":"text/x-yaml","patch_set":15,"id":"5f7c97a3_f8153b4a","line":3,"range":{"start_line":3,"start_character":4,"end_line":3,"end_character":7},"in_reply_to":"5f7c97a3_13abbad5","updated":"2018-06-11 04:42:29.000000000","message":"Done","commit_id":"1d5d61e4eaa03d2426061784fbf80eed7d96a840"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"635984aa43b5985474f9a7a0120c4e34bb26a6ab","unresolved":false,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Add out-of-band RAID configuration solution for iRMC driver which makes"},{"line_number":4,"context_line":"    the functionality available via manual cleaning."},{"line_number":5,"context_line":"  - Update node info raid_config field with data retrieved from the server"},{"line_number":6,"context_line":"    after ironic performs successfully manual clean via iRMC driver."}],"source_content_type":"text/x-yaml","patch_set":15,"id":"5f7c97a3_53a5b201","line":5,"range":{"start_line":5,"start_character":4,"end_line":5,"end_character":20},"updated":"2018-06-01 19:48:27.000000000","message":"Perhaps \"Adds support for the \"","commit_id":"1d5d61e4eaa03d2426061784fbf80eed7d96a840"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"50f6d43dda01a1e4d77d14b52b27c0eb19f1f38c","unresolved":false,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Add out-of-band RAID configuration solution for iRMC driver which makes"},{"line_number":4,"context_line":"    the functionality available via manual cleaning."},{"line_number":5,"context_line":"  - Update node info raid_config field with data retrieved from the server"},{"line_number":6,"context_line":"    after ironic performs successfully manual clean via iRMC driver."}],"source_content_type":"text/x-yaml","patch_set":15,"id":"5f7c97a3_23014405","line":5,"range":{"start_line":5,"start_character":4,"end_line":5,"end_character":20},"in_reply_to":"5f7c97a3_53a5b201","updated":"2018-06-11 04:42:29.000000000","message":"Done","commit_id":"1d5d61e4eaa03d2426061784fbf80eed7d96a840"},{"author":{"_account_id":22255,"name":"Tuan","email":"tuanla@vn.fujitsu.com","username":"Tuan"},"change_message_id":"81707b76f518f8eded9260fe29484a5d17712bc0","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Adds out-of-band RAID configuration solution for iRMC driver which makes"},{"line_number":4,"context_line":"    the functionality available via manual cleaning."},{"line_number":5,"context_line":"  - Adds support for the raid_config field with data retrieved from the server"},{"line_number":6,"context_line":"    after ironic performs successfully manual clean via iRMC driver."}],"source_content_type":"text/x-yaml","patch_set":22,"id":"5f7c97a3_b927b763","line":3,"range":{"start_line":3,"start_character":2,"end_line":3,"end_character":5},"updated":"2018-06-21 03:49:55.000000000","message":"should use \"- | \" instead of \"- \" for multiple lines.","commit_id":"45a8ce7d7b9e9147fecd822dbe5627485616d6e5"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"2522d420e64e4fa97dc6ea650b89572c0477672f","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Adds out-of-band RAID configuration solution for iRMC driver which makes"},{"line_number":4,"context_line":"    the functionality available via manual cleaning."},{"line_number":5,"context_line":"  - Adds support for the raid_config field with data retrieved from the server"},{"line_number":6,"context_line":"    after ironic performs successfully manual clean via iRMC driver."}],"source_content_type":"text/x-yaml","patch_set":22,"id":"5f7c97a3_3061633a","line":3,"range":{"start_line":3,"start_character":2,"end_line":3,"end_character":5},"in_reply_to":"5f7c97a3_b927b763","updated":"2018-06-22 01:57:04.000000000","message":"Done","commit_id":"45a8ce7d7b9e9147fecd822dbe5627485616d6e5"},{"author":{"_account_id":22255,"name":"Tuan","email":"tuanla@vn.fujitsu.com","username":"Tuan"},"change_message_id":"81707b76f518f8eded9260fe29484a5d17712bc0","unresolved":false,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Adds out-of-band RAID configuration solution for iRMC driver which makes"},{"line_number":4,"context_line":"    the functionality available via manual cleaning."},{"line_number":5,"context_line":"  - Adds support for the raid_config field with data retrieved from the server"},{"line_number":6,"context_line":"    after ironic performs successfully manual clean via iRMC driver."}],"source_content_type":"text/x-yaml","patch_set":22,"id":"5f7c97a3_791d9f0d","line":5,"range":{"start_line":5,"start_character":2,"end_line":5,"end_character":4},"updated":"2018-06-21 03:49:55.000000000","message":"same.","commit_id":"45a8ce7d7b9e9147fecd822dbe5627485616d6e5"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"2522d420e64e4fa97dc6ea650b89572c0477672f","unresolved":false,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Adds out-of-band RAID configuration solution for iRMC driver which makes"},{"line_number":4,"context_line":"    the functionality available via manual cleaning."},{"line_number":5,"context_line":"  - Adds support for the raid_config field with data retrieved from the server"},{"line_number":6,"context_line":"    after ironic performs successfully manual clean via iRMC driver."}],"source_content_type":"text/x-yaml","patch_set":22,"id":"5f7c97a3_50665f53","line":5,"range":{"start_line":5,"start_character":2,"end_line":5,"end_character":4},"in_reply_to":"5f7c97a3_791d9f0d","updated":"2018-06-22 01:57:04.000000000","message":"Done","commit_id":"45a8ce7d7b9e9147fecd822dbe5627485616d6e5"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"9f247995795bcacccd00fe807716d085bdcefc95","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"  - |"},{"line_number":8,"context_line":"    Adds support for the raid_config field with data retrieved from the server"},{"line_number":9,"context_line":"    after ironic performs successfully manual clean via iRMC driver."}],"source_content_type":"text/x-yaml","patch_set":23,"id":"5f7c97a3_41f44f5b","line":9,"updated":"2018-06-22 07:10:13.000000000","message":"I don\u0027t think there needs to be 2 bullets in the release notes. I believe we can put them in to a single paragraph.\n\nAlso, it would be better to add a link to the documentation of iRMC driver.","commit_id":"676fed6924426fe1a97ded35e06c4da4480ed248"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"561a38ff4b2f575f2945cadabfa0779294521fbb","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"  - |"},{"line_number":8,"context_line":"    Adds support for the raid_config field with data retrieved from the server"},{"line_number":9,"context_line":"    after ironic performs successfully manual clean via iRMC driver."}],"source_content_type":"text/x-yaml","patch_set":23,"id":"5f7c97a3_0c3a0b33","line":9,"in_reply_to":"5f7c97a3_41f44f5b","updated":"2018-06-22 08:03:26.000000000","message":"Done","commit_id":"676fed6924426fe1a97ded35e06c4da4480ed248"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"b615fc8ad1bacea5ac9e20442643d9d0d6beba60","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 out-of-band RAID configuration solution for iRMC driver which makes"},{"line_number":5,"context_line":"    the functionality available via manual cleaning."},{"line_number":6,"context_line":"    Adds support for the raid_config field with data retrieved from the server"},{"line_number":7,"context_line":"    after ironic performs successfully manual clean via iRMC driver."}],"source_content_type":"text/x-yaml","patch_set":24,"id":"5f7c97a3_d68f9d2b","line":4,"range":{"start_line":4,"start_character":52,"end_line":4,"end_character":53},"updated":"2018-06-25 14:43:37.000000000","message":"nit s/for/for the/","commit_id":"0b276c93e725f52aadbb0d7a0147d4ba47e29a84"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"6ccfadd31d6b1ae78c67967251944ed4cc2a47a3","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 out-of-band RAID configuration solution for iRMC driver which makes"},{"line_number":5,"context_line":"    the functionality available via manual cleaning."},{"line_number":6,"context_line":"    Adds support for the raid_config field with data retrieved from the server"},{"line_number":7,"context_line":"    after ironic performs successfully manual clean via iRMC driver."}],"source_content_type":"text/x-yaml","patch_set":24,"id":"5f7c97a3_4f7683da","line":4,"range":{"start_line":4,"start_character":52,"end_line":4,"end_character":53},"in_reply_to":"5f7c97a3_d68f9d2b","updated":"2018-06-26 01:32:21.000000000","message":"Done","commit_id":"0b276c93e725f52aadbb0d7a0147d4ba47e29a84"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"b615fc8ad1bacea5ac9e20442643d9d0d6beba60","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Adds out-of-band RAID configuration solution for iRMC driver which makes"},{"line_number":5,"context_line":"    the functionality available via manual cleaning."},{"line_number":6,"context_line":"    Adds support for the raid_config field with data retrieved from the server"},{"line_number":7,"context_line":"    after ironic performs successfully manual clean via iRMC driver."},{"line_number":8,"context_line":"    See \u003chttps://docs.openstack.org/ironic/latest/admin/drivers/irmc.html\u003e"},{"line_number":9,"context_line":"    for more details."}],"source_content_type":"text/x-yaml","patch_set":24,"id":"5f7c97a3_76a80977","line":9,"range":{"start_line":6,"start_character":4,"end_line":9,"end_character":21},"updated":"2018-06-25 14:43:37.000000000","message":"Consider this a nit: This feels like this is a separate feature in a sense with how it is worded starting with \"Adds\". Perhaps \"Additionally\", or keep it with \"Adds\", break it into a separate line, and move the main link up to the first feature?","commit_id":"0b276c93e725f52aadbb0d7a0147d4ba47e29a84"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"6ccfadd31d6b1ae78c67967251944ed4cc2a47a3","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Adds out-of-band RAID configuration solution for iRMC driver which makes"},{"line_number":5,"context_line":"    the functionality available via manual cleaning."},{"line_number":6,"context_line":"    Adds support for the raid_config field with data retrieved from the server"},{"line_number":7,"context_line":"    after ironic performs successfully manual clean via iRMC driver."},{"line_number":8,"context_line":"    See \u003chttps://docs.openstack.org/ironic/latest/admin/drivers/irmc.html\u003e"},{"line_number":9,"context_line":"    for more details."}],"source_content_type":"text/x-yaml","patch_set":24,"id":"5f7c97a3_ef33cf11","line":9,"range":{"start_line":6,"start_character":4,"end_line":9,"end_character":21},"in_reply_to":"5f7c97a3_76a80977","updated":"2018-06-26 01:32:21.000000000","message":"Done","commit_id":"0b276c93e725f52aadbb0d7a0147d4ba47e29a84"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"61d004c58bdbed8d0a8d8a65d06e27f7cbf95690","unresolved":false,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Adds out-of-band RAID configuration solution for the iRMC driver which"},{"line_number":4,"context_line":"    makes the functionality available via manual cleaning."},{"line_number":5,"context_line":"    See \u003chttps://docs.openstack.org/ironic/latest/admin/drivers/irmc.html\u003e"},{"line_number":6,"context_line":"    for more details."},{"line_number":7,"context_line":"  - Adds support for the raid_config field with data retrieved from the server"},{"line_number":8,"context_line":"    after ironic performs successfully manual clean via iRMC driver."}],"source_content_type":"text/x-yaml","patch_set":27,"id":"5f7c97a3_3fcbb9a4","line":5,"range":{"start_line":5,"start_character":8,"end_line":5,"end_character":74},"updated":"2018-07-02 06:51:47.000000000","message":"s/ \u003chttps://docs.openstack.org/ironic/latest/admin/drivers/irmc.html\u003e / `iRMC hardware type documentation \u003chttps://docs.openstack.org/ironic/latest/admin/drivers/irmc.html\u003e`_ /","commit_id":"512ec3dad7b2d315610891ead48d4c5c8c7f5072"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"44b31e148f87eeaee065138dde2d636cafb34f3c","unresolved":false,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Adds out-of-band RAID configuration solution for the iRMC driver which"},{"line_number":4,"context_line":"    makes the functionality available via manual cleaning."},{"line_number":5,"context_line":"    See \u003chttps://docs.openstack.org/ironic/latest/admin/drivers/irmc.html\u003e"},{"line_number":6,"context_line":"    for more details."},{"line_number":7,"context_line":"  - Adds support for the raid_config field with data retrieved from the server"},{"line_number":8,"context_line":"    after ironic performs successfully manual clean via iRMC driver."}],"source_content_type":"text/x-yaml","patch_set":27,"id":"5f7c97a3_9a50dbd7","line":5,"range":{"start_line":5,"start_character":8,"end_line":5,"end_character":74},"in_reply_to":"5f7c97a3_3fcbb9a4","updated":"2018-07-02 08:05:07.000000000","message":"Done","commit_id":"512ec3dad7b2d315610891ead48d4c5c8c7f5072"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"61d004c58bdbed8d0a8d8a65d06e27f7cbf95690","unresolved":false,"context_lines":[{"line_number":5,"context_line":"    See \u003chttps://docs.openstack.org/ironic/latest/admin/drivers/irmc.html\u003e"},{"line_number":6,"context_line":"    for more details."},{"line_number":7,"context_line":"  - Adds support for the raid_config field with data retrieved from the server"},{"line_number":8,"context_line":"    after ironic performs successfully manual clean via iRMC driver."}],"source_content_type":"text/x-yaml","patch_set":27,"id":"5f7c97a3_ffd30162","line":8,"range":{"start_line":8,"start_character":16,"end_line":8,"end_character":38},"updated":"2018-07-02 06:51:47.000000000","message":"s/  performs successfully / successfully completes RAID configuration using /","commit_id":"512ec3dad7b2d315610891ead48d4c5c8c7f5072"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"44b31e148f87eeaee065138dde2d636cafb34f3c","unresolved":false,"context_lines":[{"line_number":5,"context_line":"    See \u003chttps://docs.openstack.org/ironic/latest/admin/drivers/irmc.html\u003e"},{"line_number":6,"context_line":"    for more details."},{"line_number":7,"context_line":"  - Adds support for the raid_config field with data retrieved from the server"},{"line_number":8,"context_line":"    after ironic performs successfully manual clean via iRMC driver."}],"source_content_type":"text/x-yaml","patch_set":27,"id":"5f7c97a3_ba4b5726","line":8,"range":{"start_line":8,"start_character":16,"end_line":8,"end_character":38},"in_reply_to":"5f7c97a3_ffd30162","updated":"2018-07-02 08:05:07.000000000","message":"Done","commit_id":"512ec3dad7b2d315610891ead48d4c5c8c7f5072"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"5abe6712d35e19e7928854e0ec410c5e45268634","unresolved":false,"context_lines":[{"line_number":4,"context_line":"    makes the functionality available via manual cleaning."},{"line_number":5,"context_line":"    See `iRMC hardware type documentation \u003chttps://docs.openstack.org/ironic/latest/admin/drivers/irmc.html\u003e`_"},{"line_number":6,"context_line":"    for more details."},{"line_number":7,"context_line":"  - Adds support for the raid_config field with data retrieved from the server"},{"line_number":8,"context_line":"    after ironic successfully completes RAID configuration using manual clean"},{"line_number":9,"context_line":"    via iRMC driver."}],"source_content_type":"text/x-yaml","patch_set":29,"id":"5f7c97a3_d26ce0d1","line":7,"updated":"2018-07-03 08:24:16.000000000","message":"I\u0027m still not sure why this sentence is highlighted at a separated bullet and what this indicates precisely. If this is so important, it would be better to mention this in documentation.","commit_id":"134f1931378530004ed8bc6f7e0e4d9f3f530a27"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"53bf8c239d80f527ff6e5392b37ab86057356798","unresolved":false,"context_lines":[{"line_number":4,"context_line":"    makes the functionality available via manual cleaning."},{"line_number":5,"context_line":"    See `iRMC hardware type documentation \u003chttps://docs.openstack.org/ironic/latest/admin/drivers/irmc.html\u003e`_"},{"line_number":6,"context_line":"    for more details."},{"line_number":7,"context_line":"  - Adds support for the raid_config field with data retrieved from the server"},{"line_number":8,"context_line":"    after ironic successfully completes RAID configuration using manual clean"},{"line_number":9,"context_line":"    via iRMC driver."}],"source_content_type":"text/x-yaml","patch_set":29,"id":"5f7c97a3_125fb875","line":7,"in_reply_to":"5f7c97a3_d26ce0d1","updated":"2018-07-03 09:32:41.000000000","message":"Only show that data will be located in raid_config of node. I think we should remove this line in the next patch.","commit_id":"134f1931378530004ed8bc6f7e0e4d9f3f530a27"}]}
