)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"dd4ea6afbc742b3342d32163a199710dcaa9f46e","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This feature will support to record volume error info to the database"},{"line_number":10,"context_line":"automatically when volume meet some action error, it will help us to"},{"line_number":11,"context_line":"find the failure reason quickly, and save the trouble of finding the"},{"line_number":12,"context_line":"corresponding error log in the multi-node cluster."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: I962c998ac62f4468a1deebd5757b0e0b628d9a26"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"3fa7e38b_c0dbc61d","line":11,"range":{"start_line":11,"start_character":17,"end_line":11,"end_character":23},"updated":"2019-12-18 20:48:23.000000000","message":"reasonably","commit_id":"ca3e47630c73d1b078448316b5808cdd353001e3"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"80330aec60b3a4150faeae6f1eceae23e7d15819","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This feature will support to record volume error info to the database"},{"line_number":10,"context_line":"automatically when volume meet some action error, it will help us to"},{"line_number":11,"context_line":"find the failure reason quickly, and save the trouble of finding the"},{"line_number":12,"context_line":"corresponding error log in the multi-node cluster."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: I962c998ac62f4468a1deebd5757b0e0b628d9a26"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"3fa7e38b_3e30a455","line":11,"range":{"start_line":11,"start_character":17,"end_line":11,"end_character":23},"in_reply_to":"3fa7e38b_c0dbc61d","updated":"2019-12-20 07:47:35.000000000","message":"Done","commit_id":"ca3e47630c73d1b078448316b5808cdd353001e3"}],"specs/untargeted/volume-record-failure-information.rst":[{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"eb8cb72bf46a4224fa7df71595add92e0cc8b2b9","unresolved":false,"context_lines":[{"line_number":14,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"In a multi-node OpenStack cluster, if volume failed to exec some action,"},{"line_number":17,"context_line":"Searching for the corresponding error log on multiple storage nodes can be"},{"line_number":18,"context_line":"cumbersome,So, we came up with this BP, It automatically record volume"},{"line_number":19,"context_line":"execution errors to the database, then we can get it by see volume details."},{"line_number":20,"context_line":"This will help us quickly pinpoint the cause of volume failures."}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa7e38b_c13677e8","line":17,"range":{"start_line":17,"start_character":0,"end_line":17,"end_character":9},"updated":"2019-10-22 07:17:12.000000000","message":"searching","commit_id":"0155152b07420a794b4195c08a73c14a09cc142f"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"06fe4acd851cdc1d7f001fd7a454f9c6d3e82e15","unresolved":false,"context_lines":[{"line_number":14,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"In a multi-node OpenStack cluster, if volume failed to exec some action,"},{"line_number":17,"context_line":"Searching for the corresponding error log on multiple storage nodes can be"},{"line_number":18,"context_line":"cumbersome,So, we came up with this BP, It automatically record volume"},{"line_number":19,"context_line":"execution errors to the database, then we can get it by see volume details."},{"line_number":20,"context_line":"This will help us quickly pinpoint the cause of volume failures."}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa7e38b_e125b35d","line":17,"range":{"start_line":17,"start_character":0,"end_line":17,"end_character":9},"in_reply_to":"3fa7e38b_c13677e8","updated":"2019-10-22 08:22:49.000000000","message":"Done","commit_id":"0155152b07420a794b4195c08a73c14a09cc142f"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"eb8cb72bf46a4224fa7df71595add92e0cc8b2b9","unresolved":false,"context_lines":[{"line_number":15,"context_line":""},{"line_number":16,"context_line":"In a multi-node OpenStack cluster, if volume failed to exec some action,"},{"line_number":17,"context_line":"Searching for the corresponding error log on multiple storage nodes can be"},{"line_number":18,"context_line":"cumbersome,So, we came up with this BP, It automatically record volume"},{"line_number":19,"context_line":"execution errors to the database, then we can get it by see volume details."},{"line_number":20,"context_line":"This will help us quickly pinpoint the cause of volume failures."},{"line_number":21,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa7e38b_4150470b","line":18,"range":{"start_line":18,"start_character":40,"end_line":18,"end_character":43},"updated":"2019-10-22 07:17:12.000000000","message":"it","commit_id":"0155152b07420a794b4195c08a73c14a09cc142f"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"eb8cb72bf46a4224fa7df71595add92e0cc8b2b9","unresolved":false,"context_lines":[{"line_number":15,"context_line":""},{"line_number":16,"context_line":"In a multi-node OpenStack cluster, if volume failed to exec some action,"},{"line_number":17,"context_line":"Searching for the corresponding error log on multiple storage nodes can be"},{"line_number":18,"context_line":"cumbersome,So, we came up with this BP, It automatically record volume"},{"line_number":19,"context_line":"execution errors to the database, then we can get it by see volume details."},{"line_number":20,"context_line":"This will help us quickly pinpoint the cause of volume failures."},{"line_number":21,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa7e38b_81307fea","line":18,"range":{"start_line":18,"start_character":10,"end_line":18,"end_character":13},"updated":"2019-10-22 07:17:12.000000000","message":"white space.","commit_id":"0155152b07420a794b4195c08a73c14a09cc142f"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"06fe4acd851cdc1d7f001fd7a454f9c6d3e82e15","unresolved":false,"context_lines":[{"line_number":15,"context_line":""},{"line_number":16,"context_line":"In a multi-node OpenStack cluster, if volume failed to exec some action,"},{"line_number":17,"context_line":"Searching for the corresponding error log on multiple storage nodes can be"},{"line_number":18,"context_line":"cumbersome,So, we came up with this BP, It automatically record volume"},{"line_number":19,"context_line":"execution errors to the database, then we can get it by see volume details."},{"line_number":20,"context_line":"This will help us quickly pinpoint the cause of volume failures."},{"line_number":21,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa7e38b_41d6072a","line":18,"range":{"start_line":18,"start_character":40,"end_line":18,"end_character":43},"in_reply_to":"3fa7e38b_4150470b","updated":"2019-10-22 08:22:49.000000000","message":"Done","commit_id":"0155152b07420a794b4195c08a73c14a09cc142f"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"eb8cb72bf46a4224fa7df71595add92e0cc8b2b9","unresolved":false,"context_lines":[{"line_number":33,"context_line":"will automatically record volume execution errors to the database."},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"we need to crate a new form in database, which named \u0027volume_faults\u0027.The table"},{"line_number":36,"context_line":"structure is as follows:"},{"line_number":37,"context_line":"volume_faults \u003d Table("},{"line_number":38,"context_line":"    \u0027volume_faults\u0027, meta,"},{"line_number":39,"context_line":"    Column(\u0027created_at\u0027, DateTime),"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa7e38b_2f189782","line":36,"updated":"2019-10-22 07:17:12.000000000","message":"Add a white line.","commit_id":"0155152b07420a794b4195c08a73c14a09cc142f"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"06fe4acd851cdc1d7f001fd7a454f9c6d3e82e15","unresolved":false,"context_lines":[{"line_number":33,"context_line":"will automatically record volume execution errors to the database."},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"we need to crate a new form in database, which named \u0027volume_faults\u0027.The table"},{"line_number":36,"context_line":"structure is as follows:"},{"line_number":37,"context_line":"volume_faults \u003d Table("},{"line_number":38,"context_line":"    \u0027volume_faults\u0027, meta,"},{"line_number":39,"context_line":"    Column(\u0027created_at\u0027, DateTime),"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa7e38b_0186cfdc","line":36,"in_reply_to":"3fa7e38b_2f189782","updated":"2019-10-22 08:22:49.000000000","message":"Done","commit_id":"0155152b07420a794b4195c08a73c14a09cc142f"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"eb8cb72bf46a4224fa7df71595add92e0cc8b2b9","unresolved":false,"context_lines":[{"line_number":34,"context_line":""},{"line_number":35,"context_line":"we need to crate a new form in database, which named \u0027volume_faults\u0027.The table"},{"line_number":36,"context_line":"structure is as follows:"},{"line_number":37,"context_line":"volume_faults \u003d Table("},{"line_number":38,"context_line":"    \u0027volume_faults\u0027, meta,"},{"line_number":39,"context_line":"    Column(\u0027created_at\u0027, DateTime),"},{"line_number":40,"context_line":"    Column(\u0027updated_at\u0027, DateTime),"},{"line_number":41,"context_line":"    Column(\u0027deleted_at\u0027, DateTime),"},{"line_number":42,"context_line":"    Column(\u0027deleted\u0027, Boolean),"},{"line_number":43,"context_line":"    Column(\u0027id\u0027, String(36), primary_key\u003dTrue, nullable\u003dFalse),"},{"line_number":44,"context_line":"    Column(\u0027volume_uuid\u0027, String(36), ForeignKey(\u0027volumes.id\u0027),"},{"line_number":45,"context_line":"           nullable\u003dFalse),"},{"line_number":46,"context_line":"    Column(\u0027code\u0027, Integer, nullable\u003dFalse),"},{"line_number":47,"context_line":"    Column(\u0027message\u0027, String(length\u003d255)),"},{"line_number":48,"context_line":"    Column(\u0027details\u0027, MediumText()),"},{"line_number":49,"context_line":"    mysql_engine\u003d\u0027InnoDB\u0027,"},{"line_number":50,"context_line":"    mysql_charest\u003d\u0027utf-8\u0027"},{"line_number":51,"context_line":")"},{"line_number":52,"context_line":"code is http error code, message is the brief error information of volume"},{"line_number":53,"context_line":"action, details is the traceback information about the volume action."},{"line_number":54,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa7e38b_6f2c4fac","line":51,"range":{"start_line":37,"start_character":0,"end_line":51,"end_character":1},"updated":"2019-10-22 07:17:12.000000000","message":"It\u0027s better to indentation 4 characters.","commit_id":"0155152b07420a794b4195c08a73c14a09cc142f"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"06fe4acd851cdc1d7f001fd7a454f9c6d3e82e15","unresolved":false,"context_lines":[{"line_number":34,"context_line":""},{"line_number":35,"context_line":"we need to crate a new form in database, which named \u0027volume_faults\u0027.The table"},{"line_number":36,"context_line":"structure is as follows:"},{"line_number":37,"context_line":"volume_faults \u003d Table("},{"line_number":38,"context_line":"    \u0027volume_faults\u0027, meta,"},{"line_number":39,"context_line":"    Column(\u0027created_at\u0027, DateTime),"},{"line_number":40,"context_line":"    Column(\u0027updated_at\u0027, DateTime),"},{"line_number":41,"context_line":"    Column(\u0027deleted_at\u0027, DateTime),"},{"line_number":42,"context_line":"    Column(\u0027deleted\u0027, Boolean),"},{"line_number":43,"context_line":"    Column(\u0027id\u0027, String(36), primary_key\u003dTrue, nullable\u003dFalse),"},{"line_number":44,"context_line":"    Column(\u0027volume_uuid\u0027, String(36), ForeignKey(\u0027volumes.id\u0027),"},{"line_number":45,"context_line":"           nullable\u003dFalse),"},{"line_number":46,"context_line":"    Column(\u0027code\u0027, Integer, nullable\u003dFalse),"},{"line_number":47,"context_line":"    Column(\u0027message\u0027, String(length\u003d255)),"},{"line_number":48,"context_line":"    Column(\u0027details\u0027, MediumText()),"},{"line_number":49,"context_line":"    mysql_engine\u003d\u0027InnoDB\u0027,"},{"line_number":50,"context_line":"    mysql_charest\u003d\u0027utf-8\u0027"},{"line_number":51,"context_line":")"},{"line_number":52,"context_line":"code is http error code, message is the brief error information of volume"},{"line_number":53,"context_line":"action, details is the traceback information about the volume action."},{"line_number":54,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa7e38b_a16a5b18","line":51,"range":{"start_line":37,"start_character":0,"end_line":51,"end_character":1},"in_reply_to":"3fa7e38b_6f2c4fac","updated":"2019-10-22 08:22:49.000000000","message":"Done","commit_id":"0155152b07420a794b4195c08a73c14a09cc142f"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"eb8cb72bf46a4224fa7df71595add92e0cc8b2b9","unresolved":false,"context_lines":[{"line_number":49,"context_line":"    mysql_engine\u003d\u0027InnoDB\u0027,"},{"line_number":50,"context_line":"    mysql_charest\u003d\u0027utf-8\u0027"},{"line_number":51,"context_line":")"},{"line_number":52,"context_line":"code is http error code, message is the brief error information of volume"},{"line_number":53,"context_line":"action, details is the traceback information about the volume action."},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"When we get volumes list or volume detail, if the status of volume or the"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa7e38b_a13edbb6","line":52,"range":{"start_line":52,"start_character":0,"end_line":52,"end_character":4},"updated":"2019-10-22 07:17:12.000000000","message":"?","commit_id":"0155152b07420a794b4195c08a73c14a09cc142f"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"06fe4acd851cdc1d7f001fd7a454f9c6d3e82e15","unresolved":false,"context_lines":[{"line_number":49,"context_line":"    mysql_engine\u003d\u0027InnoDB\u0027,"},{"line_number":50,"context_line":"    mysql_charest\u003d\u0027utf-8\u0027"},{"line_number":51,"context_line":")"},{"line_number":52,"context_line":"code is http error code, message is the brief error information of volume"},{"line_number":53,"context_line":"action, details is the traceback information about the volume action."},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"When we get volumes list or volume detail, if the status of volume or the"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa7e38b_2160ab35","line":52,"range":{"start_line":52,"start_character":0,"end_line":52,"end_character":4},"in_reply_to":"3fa7e38b_a13edbb6","updated":"2019-10-22 08:22:49.000000000","message":"Done","commit_id":"0155152b07420a794b4195c08a73c14a09cc142f"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"eb8cb72bf46a4224fa7df71595add92e0cc8b2b9","unresolved":false,"context_lines":[{"line_number":128,"context_line":"* Add \u0027volume_faults\u0027 from to database."},{"line_number":129,"context_line":"* Add function for volume to record error message."},{"line_number":130,"context_line":"* Add units tests."},{"line_number":131,"context_line":"* Add tempest tests."},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"Dependencies"},{"line_number":134,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa7e38b_2f4ad782","line":131,"range":{"start_line":131,"start_character":0,"end_line":131,"end_character":20},"updated":"2019-10-22 07:17:12.000000000","message":"I think this feature doesnot need the tempest tests.","commit_id":"0155152b07420a794b4195c08a73c14a09cc142f"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"06fe4acd851cdc1d7f001fd7a454f9c6d3e82e15","unresolved":false,"context_lines":[{"line_number":128,"context_line":"* Add \u0027volume_faults\u0027 from to database."},{"line_number":129,"context_line":"* Add function for volume to record error message."},{"line_number":130,"context_line":"* Add units tests."},{"line_number":131,"context_line":"* Add tempest tests."},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"Dependencies"},{"line_number":134,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa7e38b_811cffc1","line":131,"range":{"start_line":131,"start_character":0,"end_line":131,"end_character":20},"in_reply_to":"3fa7e38b_2f4ad782","updated":"2019-10-22 08:22:49.000000000","message":"Done","commit_id":"0155152b07420a794b4195c08a73c14a09cc142f"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"a46a4d46dff06b409071dc40681193d38ab3da25","unresolved":false,"context_lines":[{"line_number":15,"context_line":""},{"line_number":16,"context_line":"In a multi-node OpenStack cluster, if volume failed to exec some action,"},{"line_number":17,"context_line":"searching for the corresponding error log on multiple storage nodes can be"},{"line_number":18,"context_line":"cumbersome, so we came up with this BP, it automatically record volume"},{"line_number":19,"context_line":"execution errors to the database, then we can get it by see volume details."},{"line_number":20,"context_line":"This will help us quickly pinpoint the cause of volume failures."},{"line_number":21,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"3fa7e38b_dae73cac","line":18,"range":{"start_line":18,"start_character":12,"end_line":18,"end_character":39},"updated":"2019-10-22 11:24:35.000000000","message":"Remove this.","commit_id":"8171c816794043af58945979f6b9fc6fe00b627e"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"986dbd6157084b36a50466c2f7945a8e1a25631c","unresolved":false,"context_lines":[{"line_number":15,"context_line":""},{"line_number":16,"context_line":"In a multi-node OpenStack cluster, if volume failed to exec some action,"},{"line_number":17,"context_line":"searching for the corresponding error log on multiple storage nodes can be"},{"line_number":18,"context_line":"cumbersome, so we came up with this BP, it automatically record volume"},{"line_number":19,"context_line":"execution errors to the database, then we can get it by see volume details."},{"line_number":20,"context_line":"This will help us quickly pinpoint the cause of volume failures."},{"line_number":21,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"3fa7e38b_ddd3a45e","line":18,"range":{"start_line":18,"start_character":12,"end_line":18,"end_character":39},"in_reply_to":"3fa7e38b_dae73cac","updated":"2019-10-23 10:00:56.000000000","message":"Done","commit_id":"8171c816794043af58945979f6b9fc6fe00b627e"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"b5753accdacd76c01b6f7aa533d431d255231333","unresolved":false,"context_lines":[{"line_number":16,"context_line":"In a multi-node OpenStack cluster, if volume failed to exec some action,"},{"line_number":17,"context_line":"searching for the corresponding error log on multiple storage nodes can be"},{"line_number":18,"context_line":"cumbersome, so we came up with this BP, it automatically record volume"},{"line_number":19,"context_line":"execution errors to the database, then we can get it by see volume details."},{"line_number":20,"context_line":"This will help us quickly pinpoint the cause of volume failures."},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"Use Cases"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3fa7e38b_b778592b","line":19,"range":{"start_line":19,"start_character":56,"end_line":19,"end_character":59},"updated":"2019-10-22 10:03:20.000000000","message":"s/see/show/","commit_id":"8171c816794043af58945979f6b9fc6fe00b627e"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"986dbd6157084b36a50466c2f7945a8e1a25631c","unresolved":false,"context_lines":[{"line_number":16,"context_line":"In a multi-node OpenStack cluster, if volume failed to exec some action,"},{"line_number":17,"context_line":"searching for the corresponding error log on multiple storage nodes can be"},{"line_number":18,"context_line":"cumbersome, so we came up with this BP, it automatically record volume"},{"line_number":19,"context_line":"execution errors to the database, then we can get it by see volume details."},{"line_number":20,"context_line":"This will help us quickly pinpoint the cause of volume failures."},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"Use Cases"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3fa7e38b_7dcab0a1","line":19,"range":{"start_line":19,"start_character":56,"end_line":19,"end_character":59},"in_reply_to":"3fa7e38b_b778592b","updated":"2019-10-23 10:00:56.000000000","message":"Done","commit_id":"8171c816794043af58945979f6b9fc6fe00b627e"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"b5753accdacd76c01b6f7aa533d431d255231333","unresolved":false,"context_lines":[{"line_number":82,"context_line":"REST API impact"},{"line_number":83,"context_line":"---------------"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"None"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"Security impact"},{"line_number":88,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3fa7e38b_77a741a9","line":85,"range":{"start_line":85,"start_character":0,"end_line":85,"end_character":4},"updated":"2019-10-22 10:03:20.000000000","message":"Here should add a new microversion to list/show volume(s) details, so you should description the change of these APIs:\n\n[1] List accessible volumes with details https://docs.openstack.org/api-ref/block-storage/v3/index.html?expanded\u003d#list-accessible-volumes-with-details\n\n[2] Show a volume’s details https://docs.openstack.org/api-ref/block-storage/v3/index.html?expanded\u003d#show-a-volume-s-details","commit_id":"8171c816794043af58945979f6b9fc6fe00b627e"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"986dbd6157084b36a50466c2f7945a8e1a25631c","unresolved":false,"context_lines":[{"line_number":82,"context_line":"REST API impact"},{"line_number":83,"context_line":"---------------"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"None"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"Security impact"},{"line_number":88,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3fa7e38b_fd48e05c","line":85,"range":{"start_line":85,"start_character":0,"end_line":85,"end_character":4},"in_reply_to":"3fa7e38b_77a741a9","updated":"2019-10-23 10:00:56.000000000","message":"Done","commit_id":"8171c816794043af58945979f6b9fc6fe00b627e"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"dd4ea6afbc742b3342d32163a199710dcaa9f46e","unresolved":false,"context_lines":[{"line_number":15,"context_line":""},{"line_number":16,"context_line":"In a multi-node OpenStack cluster, if volume failed to exec some action,"},{"line_number":17,"context_line":"searching for the corresponding error log on multiple storage nodes can be"},{"line_number":18,"context_line":"cumbersome, it automatically record volume execution errors to the database,"},{"line_number":19,"context_line":"then we can get it by show volume details. This will help us quickly pinpoint"},{"line_number":20,"context_line":"the cause of volume failures."},{"line_number":21,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"3fa7e38b_a001ea6f","line":18,"range":{"start_line":18,"start_character":11,"end_line":18,"end_character":15},"updated":"2019-12-18 20:48:23.000000000","message":"if we","commit_id":"ca3e47630c73d1b078448316b5808cdd353001e3"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"80330aec60b3a4150faeae6f1eceae23e7d15819","unresolved":false,"context_lines":[{"line_number":15,"context_line":""},{"line_number":16,"context_line":"In a multi-node OpenStack cluster, if volume failed to exec some action,"},{"line_number":17,"context_line":"searching for the corresponding error log on multiple storage nodes can be"},{"line_number":18,"context_line":"cumbersome, it automatically record volume execution errors to the database,"},{"line_number":19,"context_line":"then we can get it by show volume details. This will help us quickly pinpoint"},{"line_number":20,"context_line":"the cause of volume failures."},{"line_number":21,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"3fa7e38b_e84fb689","line":18,"range":{"start_line":18,"start_character":11,"end_line":18,"end_character":15},"in_reply_to":"3fa7e38b_a001ea6f","updated":"2019-12-20 07:47:35.000000000","message":"Done","commit_id":"ca3e47630c73d1b078448316b5808cdd353001e3"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"dd4ea6afbc742b3342d32163a199710dcaa9f46e","unresolved":false,"context_lines":[{"line_number":16,"context_line":"In a multi-node OpenStack cluster, if volume failed to exec some action,"},{"line_number":17,"context_line":"searching for the corresponding error log on multiple storage nodes can be"},{"line_number":18,"context_line":"cumbersome, it automatically record volume execution errors to the database,"},{"line_number":19,"context_line":"then we can get it by show volume details. This will help us quickly pinpoint"},{"line_number":20,"context_line":"the cause of volume failures."},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"Use Cases"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3fa7e38b_80fe2e68","line":19,"range":{"start_line":19,"start_character":22,"end_line":19,"end_character":26},"updated":"2019-12-18 20:48:23.000000000","message":"showing","commit_id":"ca3e47630c73d1b078448316b5808cdd353001e3"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"80330aec60b3a4150faeae6f1eceae23e7d15819","unresolved":false,"context_lines":[{"line_number":16,"context_line":"In a multi-node OpenStack cluster, if volume failed to exec some action,"},{"line_number":17,"context_line":"searching for the corresponding error log on multiple storage nodes can be"},{"line_number":18,"context_line":"cumbersome, it automatically record volume execution errors to the database,"},{"line_number":19,"context_line":"then we can get it by show volume details. This will help us quickly pinpoint"},{"line_number":20,"context_line":"the cause of volume failures."},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"Use Cases"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3fa7e38b_3e0ae4d0","line":19,"range":{"start_line":19,"start_character":22,"end_line":19,"end_character":26},"in_reply_to":"3fa7e38b_80fe2e68","updated":"2019-12-20 07:47:35.000000000","message":"Done","commit_id":"ca3e47630c73d1b078448316b5808cdd353001e3"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"dd4ea6afbc742b3342d32163a199710dcaa9f46e","unresolved":false,"context_lines":[{"line_number":32,"context_line":"When volume fail to create, delete, extend, migrate or other actions, cinder"},{"line_number":33,"context_line":"will automatically record volume execution errors to the database."},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"we need to crate a new form in database, which named \u0027volume_faults\u0027.The table"},{"line_number":36,"context_line":"structure is as follows:"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"volume_faults \u003d Table("}],"source_content_type":"text/x-rst","patch_set":3,"id":"3fa7e38b_20f5fa84","line":35,"range":{"start_line":35,"start_character":0,"end_line":35,"end_character":3},"updated":"2019-12-18 20:48:23.000000000","message":"We","commit_id":"ca3e47630c73d1b078448316b5808cdd353001e3"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"dd4ea6afbc742b3342d32163a199710dcaa9f46e","unresolved":false,"context_lines":[{"line_number":32,"context_line":"When volume fail to create, delete, extend, migrate or other actions, cinder"},{"line_number":33,"context_line":"will automatically record volume execution errors to the database."},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"we need to crate a new form in database, which named \u0027volume_faults\u0027.The table"},{"line_number":36,"context_line":"structure is as follows:"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"volume_faults \u003d Table("}],"source_content_type":"text/x-rst","patch_set":3,"id":"3fa7e38b_40f03693","line":35,"range":{"start_line":35,"start_character":28,"end_line":35,"end_character":72},"updated":"2019-12-18 20:48:23.000000000","message":"in the database named \u0027volume_faults. The","commit_id":"ca3e47630c73d1b078448316b5808cdd353001e3"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"80330aec60b3a4150faeae6f1eceae23e7d15819","unresolved":false,"context_lines":[{"line_number":32,"context_line":"When volume fail to create, delete, extend, migrate or other actions, cinder"},{"line_number":33,"context_line":"will automatically record volume execution errors to the database."},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"we need to crate a new form in database, which named \u0027volume_faults\u0027.The table"},{"line_number":36,"context_line":"structure is as follows:"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"volume_faults \u003d Table("}],"source_content_type":"text/x-rst","patch_set":3,"id":"3fa7e38b_3eb18402","line":35,"range":{"start_line":35,"start_character":0,"end_line":35,"end_character":3},"in_reply_to":"3fa7e38b_20f5fa84","updated":"2019-12-20 07:47:35.000000000","message":"Done","commit_id":"ca3e47630c73d1b078448316b5808cdd353001e3"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"80330aec60b3a4150faeae6f1eceae23e7d15819","unresolved":false,"context_lines":[{"line_number":32,"context_line":"When volume fail to create, delete, extend, migrate or other actions, cinder"},{"line_number":33,"context_line":"will automatically record volume execution errors to the database."},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"we need to crate a new form in database, which named \u0027volume_faults\u0027.The table"},{"line_number":36,"context_line":"structure is as follows:"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"volume_faults \u003d Table("}],"source_content_type":"text/x-rst","patch_set":3,"id":"3fa7e38b_5eb480f1","line":35,"range":{"start_line":35,"start_character":28,"end_line":35,"end_character":72},"in_reply_to":"3fa7e38b_40f03693","updated":"2019-12-20 07:47:35.000000000","message":"Done","commit_id":"ca3e47630c73d1b078448316b5808cdd353001e3"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"dd4ea6afbc742b3342d32163a199710dcaa9f46e","unresolved":false,"context_lines":[{"line_number":61,"context_line":"It is possible to record multiple error messages for one volume"},{"line_number":62,"context_line":"in the database."},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"After successful delete a volume, the corresponding error record is also"},{"line_number":65,"context_line":"deleted."},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"Vendor-specific changes"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3fa7e38b_6030d256","line":64,"range":{"start_line":64,"start_character":17,"end_line":64,"end_character":32},"updated":"2019-12-18 20:48:23.000000000","message":"delete of a volume","commit_id":"ca3e47630c73d1b078448316b5808cdd353001e3"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"80330aec60b3a4150faeae6f1eceae23e7d15819","unresolved":false,"context_lines":[{"line_number":61,"context_line":"It is possible to record multiple error messages for one volume"},{"line_number":62,"context_line":"in the database."},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"After successful delete a volume, the corresponding error record is also"},{"line_number":65,"context_line":"deleted."},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"Vendor-specific changes"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3fa7e38b_fe1c4c15","line":64,"range":{"start_line":64,"start_character":17,"end_line":64,"end_character":32},"in_reply_to":"3fa7e38b_6030d256","updated":"2019-12-20 07:47:35.000000000","message":"Done","commit_id":"ca3e47630c73d1b078448316b5808cdd353001e3"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"dd4ea6afbc742b3342d32163a199710dcaa9f46e","unresolved":false,"context_lines":[{"line_number":107,"context_line":"Security impact"},{"line_number":108,"context_line":"---------------"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"None"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"Notifications impact"},{"line_number":113,"context_line":"--------------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3fa7e38b_a00faa89","line":110,"range":{"start_line":110,"start_character":0,"end_line":110,"end_character":4},"updated":"2019-12-18 20:48:23.000000000","message":"We do kind-of have a security impact here as it is exposing failure details to the end user.  This would have previously been limited to the administrator.","commit_id":"ca3e47630c73d1b078448316b5808cdd353001e3"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"2d390923ec830717fc0030c3caf89f1cc52bfe91","unresolved":false,"context_lines":[{"line_number":17,"context_line":"searching for the corresponding error log on multiple storage nodes can be"},{"line_number":18,"context_line":"cumbersome, if we automatically record volume execution errors to the database,"},{"line_number":19,"context_line":"then we can get it by showing volume details. This will help us quickly pinpoint"},{"line_number":20,"context_line":"the cause of volume failures."},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"Use Cases"},{"line_number":23,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3fa7e38b_7b7c5c21","line":20,"updated":"2020-01-28 21:00:43.000000000","message":"This spec doesn\u0027t explain why you can\u0027t do this with user messages already.","commit_id":"956bc80995aff7b54c5af82a4833a9ba61224ef0"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"533f5d17f07bdcac02dff2a555e76627721f74c2","unresolved":false,"context_lines":[{"line_number":17,"context_line":"searching for the corresponding error log on multiple storage nodes can be"},{"line_number":18,"context_line":"cumbersome, if we automatically record volume execution errors to the database,"},{"line_number":19,"context_line":"then we can get it by showing volume details. This will help us quickly pinpoint"},{"line_number":20,"context_line":"the cause of volume failures."},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"Use Cases"},{"line_number":23,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3fa7e38b_90a7630b","line":20,"in_reply_to":"3fa7e38b_2c8f8576","updated":"2020-02-04 02:43:11.000000000","message":"Yes, this function is actually to help the user to display the log information, so as to avoid manually looking for the log, which is very troublesome in the multi-node environment,\nHere, because the detail is limited to 255 characters, you only see driver.extend_volume(). If you increase the length limit, you can display the driver file\nMore details of the error location, as in the log.This will be more detailed than the user message.Of course, I have also considered how to use the user message framework\nMessage and detail are populated automatically without having to add them to the message_field manually.","commit_id":"956bc80995aff7b54c5af82a4833a9ba61224ef0"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"a9a29959fafbdd6af2c3471276cbe474abb2e5a4","unresolved":false,"context_lines":[{"line_number":17,"context_line":"searching for the corresponding error log on multiple storage nodes can be"},{"line_number":18,"context_line":"cumbersome, if we automatically record volume execution errors to the database,"},{"line_number":19,"context_line":"then we can get it by showing volume details. This will help us quickly pinpoint"},{"line_number":20,"context_line":"the cause of volume failures."},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"Use Cases"},{"line_number":23,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3fa7e38b_2c8f8576","line":20,"in_reply_to":"3fa7e38b_7b7c5c21","updated":"2020-01-29 13:15:02.000000000","message":"Eric has a good point here.  He raised it earlier, and you replied that the problem is that current user messages, which are designed to be displayed to the end user, don\u0027t provide enough information.  But looking at the example you give at line 93, the stack trace really doesn\u0027t provide any more information than the message.  Message is: driver failed to extend volume.  Trace is the call to driver.extend_volume().  What the person troubleshooting this needs to do is look at the backend and see what\u0027s up, and this stack trace doesn\u0027t really help in that regard.\n\nSo I\u0027m back to thinking that we should stick with user messages here.  I\u0027m not saying that user messages couldn\u0027t be improved, just that you should reconsider using that framework for this proposal -- or explain clearly why they are insufficient.  Seems to me that a combination of user messages + logstash gets you everything you need here.","commit_id":"956bc80995aff7b54c5af82a4833a9ba61224ef0"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"533f5d17f07bdcac02dff2a555e76627721f74c2","unresolved":false,"context_lines":[{"line_number":17,"context_line":"searching for the corresponding error log on multiple storage nodes can be"},{"line_number":18,"context_line":"cumbersome, if we automatically record volume execution errors to the database,"},{"line_number":19,"context_line":"then we can get it by showing volume details. This will help us quickly pinpoint"},{"line_number":20,"context_line":"the cause of volume failures."},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"Use Cases"},{"line_number":23,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3fa7e38b_3518e181","line":20,"in_reply_to":"3fa7e38b_7b7c5c21","updated":"2020-02-04 02:43:11.000000000","message":"It now appears that the only advantage of this framework is that it automatically validates message and stack messages, unlike the user message, which needs to be added manually, when you need to specify a new exception.","commit_id":"956bc80995aff7b54c5af82a4833a9ba61224ef0"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"dccabd652a19e13e0e55677e4b6af50cf7527ad2","unresolved":false,"context_lines":[{"line_number":22,"context_line":"Use Cases"},{"line_number":23,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"* The user wants to know the reason of volume failure without log."},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"Proposed change"},{"line_number":28,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3fa7e38b_da7231b0","line":25,"range":{"start_line":25,"start_character":6,"end_line":25,"end_character":10},"updated":"2020-01-28 16:20:35.000000000","message":"We need to be clear about who this is: since we\u0027re only allowing an admin to see this, we\u0027re talking about an *operator* here.","commit_id":"956bc80995aff7b54c5af82a4833a9ba61224ef0"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"533f5d17f07bdcac02dff2a555e76627721f74c2","unresolved":false,"context_lines":[{"line_number":22,"context_line":"Use Cases"},{"line_number":23,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"* The user wants to know the reason of volume failure without log."},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"Proposed change"},{"line_number":28,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3fa7e38b_9090c399","line":25,"range":{"start_line":25,"start_character":6,"end_line":25,"end_character":10},"in_reply_to":"3fa7e38b_da7231b0","updated":"2020-02-04 02:43:11.000000000","message":"yes, it means admin user only.","commit_id":"956bc80995aff7b54c5af82a4833a9ba61224ef0"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"dccabd652a19e13e0e55677e4b6af50cf7527ad2","unresolved":false,"context_lines":[{"line_number":32,"context_line":"When volume fail to create, delete, extend, migrate or other actions, cinder"},{"line_number":33,"context_line":"will automatically record volume execution errors to the database."},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"We need to crate a new form in the database named \u0027volume_faults. The table"},{"line_number":36,"context_line":"structure is as follows:"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"volume_faults \u003d Table("}],"source_content_type":"text/x-rst","patch_set":4,"id":"3fa7e38b_da97919b","line":35,"range":{"start_line":35,"start_character":0,"end_line":35,"end_character":64},"updated":"2020-01-28 16:20:35.000000000","message":"crate -\u003e create\n\u0027volume_faults. -\u003e \u0027volume_faults\u0027.","commit_id":"956bc80995aff7b54c5af82a4833a9ba61224ef0"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"dccabd652a19e13e0e55677e4b6af50cf7527ad2","unresolved":false,"context_lines":[{"line_number":51,"context_line":"    mysql_charest\u003d\u0027utf-8\u0027"},{"line_number":52,"context_line":"    )"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"Code is http error code, message is the brief error information of volume"},{"line_number":55,"context_line":"action, details is the traceback information about the volume action."},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"When we get volumes list or volume detail, if the status of volume or the"},{"line_number":58,"context_line":"status of migration include \u0027error\u0027, it will to search the latest error info"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3fa7e38b_ba941536","line":55,"range":{"start_line":54,"start_character":25,"end_line":55,"end_character":6},"updated":"2020-01-28 16:20:35.000000000","message":"Where is this coming from? Will it be the exception message or something else?","commit_id":"956bc80995aff7b54c5af82a4833a9ba61224ef0"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"533f5d17f07bdcac02dff2a555e76627721f74c2","unresolved":false,"context_lines":[{"line_number":51,"context_line":"    mysql_charest\u003d\u0027utf-8\u0027"},{"line_number":52,"context_line":"    )"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"Code is http error code, message is the brief error information of volume"},{"line_number":55,"context_line":"action, details is the traceback information about the volume action."},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"When we get volumes list or volume detail, if the status of volume or the"},{"line_number":58,"context_line":"status of migration include \u0027error\u0027, it will to search the latest error info"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3fa7e38b_d0c4fb96","line":55,"range":{"start_line":54,"start_character":25,"end_line":55,"end_character":6},"in_reply_to":"3fa7e38b_ba941536","updated":"2020-02-04 02:43:11.000000000","message":"This functionality constructs a function decorator that extracts try...except error of the decorated function as message(like line 95) and captures the error stack as the details.\nThis is why the framework does not need to add messages manually.","commit_id":"956bc80995aff7b54c5af82a4833a9ba61224ef0"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"dccabd652a19e13e0e55677e4b6af50cf7527ad2","unresolved":false,"context_lines":[{"line_number":56,"context_line":""},{"line_number":57,"context_line":"When we get volumes list or volume detail, if the status of volume or the"},{"line_number":58,"context_line":"status of migration include \u0027error\u0027, it will to search the latest error info"},{"line_number":59,"context_line":"of the volume. For security impact, this error info will limited to the"},{"line_number":60,"context_line":"administrator, but not to end user."},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"It is possible to record multiple error messages for one volume"},{"line_number":63,"context_line":"in the database."}],"source_content_type":"text/x-rst","patch_set":4,"id":"3fa7e38b_fa360db3","line":60,"range":{"start_line":59,"start_character":15,"end_line":60,"end_character":35},"updated":"2020-01-28 16:20:35.000000000","message":"I just want to be clear here.  Is your proposal that only an administrator will see the \u0027fault\u0027 element in the response?   (Just want to be clear that we\u0027re not talking about displaying \u0027fault\u0027 to end user, but only include the \u0027details\u0027 field for administrators.)","commit_id":"956bc80995aff7b54c5af82a4833a9ba61224ef0"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"533f5d17f07bdcac02dff2a555e76627721f74c2","unresolved":false,"context_lines":[{"line_number":56,"context_line":""},{"line_number":57,"context_line":"When we get volumes list or volume detail, if the status of volume or the"},{"line_number":58,"context_line":"status of migration include \u0027error\u0027, it will to search the latest error info"},{"line_number":59,"context_line":"of the volume. For security impact, this error info will limited to the"},{"line_number":60,"context_line":"administrator, but not to end user."},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"It is possible to record multiple error messages for one volume"},{"line_number":63,"context_line":"in the database."}],"source_content_type":"text/x-rst","patch_set":4,"id":"3fa7e38b_103053b7","line":60,"range":{"start_line":59,"start_character":15,"end_line":60,"end_character":35},"in_reply_to":"3fa7e38b_fa360db3","updated":"2020-02-04 02:43:11.000000000","message":"yes,only admin will see fault element.","commit_id":"956bc80995aff7b54c5af82a4833a9ba61224ef0"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"dccabd652a19e13e0e55677e4b6af50cf7527ad2","unresolved":false,"context_lines":[{"line_number":59,"context_line":"of the volume. For security impact, this error info will limited to the"},{"line_number":60,"context_line":"administrator, but not to end user."},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"It is possible to record multiple error messages for one volume"},{"line_number":63,"context_line":"in the database."},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"After successful delete of a volume, the corresponding error record is also"},{"line_number":66,"context_line":"deleted."}],"source_content_type":"text/x-rst","patch_set":4,"id":"3fa7e38b_6f6ee1fe","line":63,"range":{"start_line":62,"start_character":0,"end_line":63,"end_character":16},"updated":"2020-01-28 16:20:35.000000000","message":"Why do this, if we are only going to display the most recent?","commit_id":"956bc80995aff7b54c5af82a4833a9ba61224ef0"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"533f5d17f07bdcac02dff2a555e76627721f74c2","unresolved":false,"context_lines":[{"line_number":59,"context_line":"of the volume. For security impact, this error info will limited to the"},{"line_number":60,"context_line":"administrator, but not to end user."},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"It is possible to record multiple error messages for one volume"},{"line_number":63,"context_line":"in the database."},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"After successful delete of a volume, the corresponding error record is also"},{"line_number":66,"context_line":"deleted."}],"source_content_type":"text/x-rst","patch_set":4,"id":"3fa7e38b_9043e312","line":63,"range":{"start_line":62,"start_character":0,"end_line":63,"end_character":16},"in_reply_to":"3fa7e38b_6f6ee1fe","updated":"2020-02-04 02:43:11.000000000","message":"It can be used as a basis for a subsequent feature extension, such as viewing error history.","commit_id":"956bc80995aff7b54c5af82a4833a9ba61224ef0"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"dccabd652a19e13e0e55677e4b6af50cf7527ad2","unresolved":false,"context_lines":[{"line_number":73,"context_line":"Alternatives"},{"line_number":74,"context_line":"------------"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"None"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"Data model impact"},{"line_number":79,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3fa7e38b_3a10254c","line":76,"range":{"start_line":76,"start_character":0,"end_line":76,"end_character":4},"updated":"2020-01-28 16:20:35.000000000","message":"An alternative I\u0027d like you to address is using something like Logstash to collate and index the logs from all the cinder nodes.  I imagine most large deployments are doing that already, and so the info in the volume_faults table is going to be redundant.  Additionally, collating the logs allows you get contextual information about what\u0027s been happening with the particular volume you\u0027re interested in (that is, you have more information that just the last bad thing that happened to this volume), and also to determine whether other volumes are experiencing similar errors.","commit_id":"956bc80995aff7b54c5af82a4833a9ba61224ef0"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"2d390923ec830717fc0030c3caf89f1cc52bfe91","unresolved":false,"context_lines":[{"line_number":73,"context_line":"Alternatives"},{"line_number":74,"context_line":"------------"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"None"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"Data model impact"},{"line_number":79,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3fa7e38b_fb6fec5d","line":76,"range":{"start_line":76,"start_character":0,"end_line":76,"end_character":4},"in_reply_to":"3fa7e38b_3a10254c","updated":"2020-01-28 21:00:43.000000000","message":"The alternative is the existing user messages functionality, which is probably what should be used instead of adding this framework.","commit_id":"956bc80995aff7b54c5af82a4833a9ba61224ef0"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"533f5d17f07bdcac02dff2a555e76627721f74c2","unresolved":false,"context_lines":[{"line_number":73,"context_line":"Alternatives"},{"line_number":74,"context_line":"------------"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"None"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"Data model impact"},{"line_number":79,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3fa7e38b_906c439f","line":76,"range":{"start_line":76,"start_character":0,"end_line":76,"end_character":4},"in_reply_to":"3fa7e38b_3a10254c","updated":"2020-02-04 02:43:11.000000000","message":"yes","commit_id":"956bc80995aff7b54c5af82a4833a9ba61224ef0"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"dccabd652a19e13e0e55677e4b6af50cf7527ad2","unresolved":false,"context_lines":[{"line_number":149,"context_line":"Work Items"},{"line_number":150,"context_line":"----------"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"* Add \u0027volume_faults\u0027 from to database."},{"line_number":153,"context_line":"* Add function for volume to record error message."},{"line_number":154,"context_line":"* Add units tests."},{"line_number":155,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"3fa7e38b_efbdf166","line":152,"range":{"start_line":152,"start_character":22,"end_line":152,"end_character":26},"updated":"2020-01-28 16:20:35.000000000","message":"s/from/table/","commit_id":"956bc80995aff7b54c5af82a4833a9ba61224ef0"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"dccabd652a19e13e0e55677e4b6af50cf7527ad2","unresolved":false,"context_lines":[{"line_number":151,"context_line":""},{"line_number":152,"context_line":"* Add \u0027volume_faults\u0027 from to database."},{"line_number":153,"context_line":"* Add function for volume to record error message."},{"line_number":154,"context_line":"* Add units tests."},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"Dependencies"},{"line_number":157,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3fa7e38b_6fa90123","line":154,"range":{"start_line":154,"start_character":6,"end_line":154,"end_character":11},"updated":"2020-01-28 16:20:35.000000000","message":"s/units/unit/","commit_id":"956bc80995aff7b54c5af82a4833a9ba61224ef0"}]}
