)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"8f4a99466c01596446177d3edc94eebce8092d03","unresolved":false,"context_lines":[{"line_number":9,"context_line":"Implements the basic /messages resource"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Implements Blueprint user-messages"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: Ia0cc524e0bfb2ca5e495e575e17e9911c746690b"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"dab17558_5f6ed795","line":12,"range":{"start_line":12,"start_character":0,"end_line":12,"end_character":0},"updated":"2016-05-09 15:42:57.000000000","message":"APIImpact, DocImpact flags please: http://docs.openstack.org/developer/manila/devref/commit_message_tags.html","commit_id":"3826f5bfa3c48cf760e8067df7dcfe708815bbf7"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"086c9132112cd40b280a64e1d5e22ebb4238a29c","unresolved":false,"context_lines":[{"line_number":9,"context_line":"Implements the basic /messages resource"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Implements Blueprint user-messages"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: Ia0cc524e0bfb2ca5e495e575e17e9911c746690b"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"dab17558_1afbbdc2","line":12,"range":{"start_line":12,"start_character":0,"end_line":12,"end_character":0},"in_reply_to":"dab17558_5f6ed795","updated":"2016-05-09 15:48:04.000000000","message":"Not sure what docs can go into admin-guide, user-guide though.. you may want to hold off from API documentation until we hash out the in-tree api-ref","commit_id":"3826f5bfa3c48cf760e8067df7dcfe708815bbf7"},{"author":{"_account_id":7872,"name":"Marc Koderer","email":"marc@koderer.com","username":"mkoderer"},"change_message_id":"f09b5da6462854da4e6898a70df60938a946acb3","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Alex Meade \u003cmr.alex.meade@gmail.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2016-05-12 09:33:43 -0400"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"User Messages"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Implements the basic /messages resource"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"DocImpact"},{"line_number":12,"context_line":"APIImpact"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"dab17558_cc0aba1f","line":9,"range":{"start_line":7,"start_character":0,"end_line":9,"end_character":39},"updated":"2016-05-17 09:22:44.000000000","message":"Can you add some more details to the commit message? Important for me is a brief summary of \"why\" a patch is needed.","commit_id":"ec3ab15d86728128b41df67c14753d8bd04c8101"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"31419aedb8310d31cc1304a1a57f56aa6a1b3ece","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Alex Meade \u003cmr.alex.meade@gmail.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2016-05-12 09:33:43 -0400"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"User Messages"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Implements the basic /messages resource"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"DocImpact"},{"line_number":12,"context_line":"APIImpact"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"bab6814e_62442d74","line":9,"range":{"start_line":7,"start_character":0,"end_line":9,"end_character":39},"in_reply_to":"dab17558_cc0aba1f","updated":"2016-05-18 12:49:13.000000000","message":"+1","commit_id":"ec3ab15d86728128b41df67c14753d8bd04c8101"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"1b9537c7438257e8c82bbbb4a15417fb28ab25f3","unresolved":false,"context_lines":[{"line_number":18,"context_line":"Implements the basic /messages resource and tempest tests"},{"line_number":19,"context_line":"The patch is aligned with related cinder patch where possible:"},{"line_number":20,"context_line":"I8a635a07ed6ff93ccb71df8c404c927d1ecef005"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"DocImpact"},{"line_number":23,"context_line":"APIImpact"},{"line_number":24,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":46,"id":"3f1d235d_acc5b790","line":21,"range":{"start_line":21,"start_character":0,"end_line":21,"end_character":0},"updated":"2017-06-30 01:34:38.000000000","message":"please link the other Change-Ids here for the follow on patches\n\nNeeded-By: xyzzy\nNeeded-By: foo\n\nHelps understand the order that you would like these to be reviewed/merged.","commit_id":"5e7569362eda31222f3623e9a4d8da5d8721846c"},{"author":{"_account_id":7582,"name":"Jan Provaznik","email":"jan.provaznik@gmail.com","username":"jprovazn"},"change_message_id":"a36256dbd72967fd87ed4f7ff9217d3cadaa805b","unresolved":false,"context_lines":[{"line_number":18,"context_line":"Implements the basic /messages resource and tempest tests"},{"line_number":19,"context_line":"The patch is aligned with related cinder patch where possible:"},{"line_number":20,"context_line":"I8a635a07ed6ff93ccb71df8c404c927d1ecef005"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"DocImpact"},{"line_number":23,"context_line":"APIImpact"},{"line_number":24,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":46,"id":"3f1d235d_334c5bc6","line":21,"range":{"start_line":21,"start_character":0,"end_line":21,"end_character":0},"in_reply_to":"3f1d235d_acc5b790","updated":"2017-06-30 09:42:59.000000000","message":"Done","commit_id":"5e7569362eda31222f3623e9a4d8da5d8721846c"}],"api-ref/source/user-messages.inc":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"a641746097820baacdca29b68dd405b77772e6ed","unresolved":false,"context_lines":[{"line_number":16,"context_line":""},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Normal response codes: 200"},{"line_number":19,"context_line":"Error response codes: badRequest(400), unauthorized(401), forbidden(403),"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"Request"},{"line_number":22,"context_line":"-------"}],"source_content_type":"text/x-c++src","patch_set":56,"id":"3f1d235d_78070b1e","line":19,"range":{"start_line":19,"start_character":72,"end_line":19,"end_character":73},"updated":"2017-07-12 03:35:52.000000000","message":"remove","commit_id":"11c9aa60b0752318ce4ddaf0bd3edbd3a30048e6"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"a641746097820baacdca29b68dd405b77772e6ed","unresolved":false,"context_lines":[{"line_number":99,"context_line":"   :language: javascript"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"Delete consistency group snapshot"},{"line_number":103,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":".. rest_method::  DELETE /v2/{tenant_id}/messages/{message_id}"}],"source_content_type":"text/x-c++src","patch_set":56,"id":"3f1d235d_d8161f56","line":102,"range":{"start_line":102,"start_character":7,"end_line":102,"end_character":33},"updated":"2017-07-12 03:35:52.000000000","message":"? message","commit_id":"11c9aa60b0752318ce4ddaf0bd3edbd3a30048e6"},{"author":{"_account_id":7582,"name":"Jan Provaznik","email":"jan.provaznik@gmail.com","username":"jprovazn"},"change_message_id":"c970381c1860f5b2f9df3dc2110866efa88bcadc","unresolved":false,"context_lines":[{"line_number":99,"context_line":"   :language: javascript"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"Delete consistency group snapshot"},{"line_number":103,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":".. rest_method::  DELETE /v2/{tenant_id}/messages/{message_id}"}],"source_content_type":"text/x-c++src","patch_set":56,"id":"3f1d235d_811f126f","line":102,"range":{"start_line":102,"start_character":7,"end_line":102,"end_character":33},"in_reply_to":"3f1d235d_d8161f56","updated":"2017-07-12 07:27:30.000000000","message":"Done","commit_id":"11c9aa60b0752318ce4ddaf0bd3edbd3a30048e6"}],"doc/source/devref/user_messages.rst":[{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"31419aedb8310d31cc1304a1a57f56aa6a1b3ece","unresolved":false,"context_lines":[{"line_number":19,"context_line":""},{"line_number":20,"context_line":" context \u003d context.RequestContext()"},{"line_number":21,"context_line":" project_id \u003d \u00276c430ede-9476-4128-8838-8d3929ced223\u0027"},{"line_number":22,"context_line":" volume_id \u003d \u0027f292cc0c-54a7-4b3b-8174-d2ff82d87008\u0027"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":" self.message_api.create("},{"line_number":25,"context_line":"     context,"}],"source_content_type":"text/x-rst","patch_set":7,"id":"bab6814e_a2dbb5ec","line":22,"range":{"start_line":22,"start_character":1,"end_line":22,"end_character":7},"updated":"2016-05-18 12:49:13.000000000","message":"why volume?","commit_id":"ec3ab15d86728128b41df67c14753d8bd04c8101"},{"author":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"change_message_id":"be9008d430494f24994de8406574f50c43a9a5b0","unresolved":false,"context_lines":[{"line_number":19,"context_line":""},{"line_number":20,"context_line":" context \u003d context.RequestContext()"},{"line_number":21,"context_line":" project_id \u003d \u00276c430ede-9476-4128-8838-8d3929ced223\u0027"},{"line_number":22,"context_line":" volume_id \u003d \u0027f292cc0c-54a7-4b3b-8174-d2ff82d87008\u0027"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":" self.message_api.create("},{"line_number":25,"context_line":"     context,"}],"source_content_type":"text/x-rst","patch_set":7,"id":"bab6814e_18452245","line":22,"range":{"start_line":22,"start_character":1,"end_line":22,"end_character":7},"in_reply_to":"bab6814e_a2dbb5ec","updated":"2016-05-22 15:52:18.000000000","message":"Done","commit_id":"ec3ab15d86728128b41df67c14753d8bd04c8101"},{"author":{"_account_id":17780,"name":"Dustin Schoenbrun","email":"dschoenb@redhat.com","username":"dschoenb"},"change_message_id":"7b7d0ff825108c1caa0a97a0cc30addee1770a14","unresolved":false,"context_lines":[{"line_number":4,"context_line":"User messages are a way to inform users about the state of asynchronous"},{"line_number":5,"context_line":"operations. One example would be notifying the user of why a share"},{"line_number":6,"context_line":"provisioning request failed. These messages can be requested via the"},{"line_number":7,"context_line":"/messages API. All user visible messages must be defined in the permitted"},{"line_number":8,"context_line":"messages module in order to prevent sharing sensitive information with users."},{"line_number":9,"context_line":""},{"line_number":10,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"bab6814e_7c13095d","line":7,"range":{"start_line":7,"start_character":1,"end_line":7,"end_character":9},"updated":"2016-05-25 16:19:23.000000000","message":"We can put \"/messages\" in backticks to make it clear that it is a callable API.","commit_id":"d49bb9f03590ae1c4a6f332efc3343094afff9bc"},{"author":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"change_message_id":"18bdcf92f76134c896a60543a5d6875c6589d9ad","unresolved":false,"context_lines":[{"line_number":4,"context_line":"User messages are a way to inform users about the state of asynchronous"},{"line_number":5,"context_line":"operations. One example would be notifying the user of why a share"},{"line_number":6,"context_line":"provisioning request failed. These messages can be requested via the"},{"line_number":7,"context_line":"/messages API. All user visible messages must be defined in the permitted"},{"line_number":8,"context_line":"messages module in order to prevent sharing sensitive information with users."},{"line_number":9,"context_line":""},{"line_number":10,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"5a9d85d2_bd16eb52","line":7,"range":{"start_line":7,"start_character":1,"end_line":7,"end_character":9},"in_reply_to":"bab6814e_7c13095d","updated":"2016-06-21 17:01:36.000000000","message":"Done","commit_id":"d49bb9f03590ae1c4a6f332efc3343094afff9bc"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"79b479a05be6f89c66cee8e5b9c4d7d27af6b80c","unresolved":false,"context_lines":[{"line_number":64,"context_line":"The Resource Types Module"},{"line_number":65,"context_line":"-------------------------"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":".. automodule:: manila.message.resource_types"},{"line_number":68,"context_line":"    :noindex:"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"The Permitted Messages Module"}],"source_content_type":"text/x-rst","patch_set":35,"id":"df140735_3a446673","line":67,"range":{"start_line":67,"start_character":0,"end_line":67,"end_character":45},"updated":"2017-06-06 14:48:47.000000000","message":"I don\u0027t think there is a module manila/message/resource_types.py and the doc build appears to be failing on this line.","commit_id":"e45346ecb7e8c1bccabe6c81b44d467b57660915"},{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"3b29ecfc6e9a331aed2c828fd46e8d7401354d61","unresolved":false,"context_lines":[{"line_number":13,"context_line":" from manila import context"},{"line_number":14,"context_line":" from manila.message import api as message_api"},{"line_number":15,"context_line":" from manila.message import message_field"},{"line_number":16,"context_line":" from manila.message import resource_types"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":" self.message_api \u003d message_api.API()"},{"line_number":19,"context_line":""}],"source_content_type":"text/x-rst","patch_set":36,"id":"df140735_27cf9958","line":16,"range":{"start_line":16,"start_character":28,"end_line":16,"end_character":42},"updated":"2017-06-07 02:30:11.000000000","message":"The resource_types is not exist.","commit_id":"96c5acb31923dfa41af6efec1fcd57ee64c14eb7"},{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"3b29ecfc6e9a331aed2c828fd46e8d7401354d61","unresolved":false,"context_lines":[{"line_number":25,"context_line":"     context,"},{"line_number":26,"context_line":"     message_field.Actions.CREATE,"},{"line_number":27,"context_line":"     project_id,"},{"line_number":28,"context_line":"     resource_type\u003dresource_types.SHARE,"},{"line_number":29,"context_line":"     resource_uuid\u003dSHARE_id,"},{"line_number":30,"context_line":"     detail\u003dmessage_field.Details.NO_VALID_HOST)"},{"line_number":31,"context_line":""}],"source_content_type":"text/x-rst","patch_set":36,"id":"df140735_67feb16c","line":28,"range":{"start_line":28,"start_character":19,"end_line":28,"end_character":39},"updated":"2017-06-07 02:30:11.000000000","message":"message_field.py\n\nclass Resource(fields.Enum):\n\n    SHARE \u003d \u0027SHARE\u0027","commit_id":"96c5acb31923dfa41af6efec1fcd57ee64c14eb7"},{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"3b29ecfc6e9a331aed2c828fd46e8d7401354d61","unresolved":false,"context_lines":[{"line_number":64,"context_line":"The Resource Types Module"},{"line_number":65,"context_line":"-------------------------"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":".. automodule:: manila.message.resource_types"},{"line_number":68,"context_line":"    :noindex:"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"The Permitted Messages Module"}],"source_content_type":"text/x-rst","patch_set":36,"id":"df140735_6797d13c","line":67,"range":{"start_line":67,"start_character":16,"end_line":67,"end_character":45},"updated":"2017-06-07 02:30:11.000000000","message":"ImportError: No module named resource_types\nIt looks like you have moved resource types into message_field.","commit_id":"96c5acb31923dfa41af6efec1fcd57ee64c14eb7"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"257c38307cca557bc9e3cfbc90acdcd4aa4d49c5","unresolved":false,"context_lines":[{"line_number":44,"context_line":"      \"resource_type\": \"SHARE\","},{"line_number":45,"context_line":"      \"resource_uuid\": \"f292cc0c-54a7-4b3b-8174-d2ff82d87008\","},{"line_number":46,"context_line":"      \"created_at\": 2015-08-27T09:49:58-05:00,"},{"line_number":47,"context_line":"      \"expires_at\": 2015-09-27T09:49:58-05:00,"},{"line_number":48,"context_line":"      \"request_id\": \"req-936666d2-4c8f-4e41-9ac9-237b43f8b848\","},{"line_number":49,"context_line":"     }"},{"line_number":50,"context_line":"   ]"}],"source_content_type":"text/x-rst","patch_set":46,"id":"5f201791_440cd893","line":47,"range":{"start_line":47,"start_character":20,"end_line":47,"end_character":45},"updated":"2017-06-30 00:25:43.000000000","message":"The default TTL is: 2592000","commit_id":"5e7569362eda31222f3623e9a4d8da5d8721846c"},{"author":{"_account_id":7582,"name":"Jan Provaznik","email":"jan.provaznik@gmail.com","username":"jprovazn"},"change_message_id":"a36256dbd72967fd87ed4f7ff9217d3cadaa805b","unresolved":false,"context_lines":[{"line_number":44,"context_line":"      \"resource_type\": \"SHARE\","},{"line_number":45,"context_line":"      \"resource_uuid\": \"f292cc0c-54a7-4b3b-8174-d2ff82d87008\","},{"line_number":46,"context_line":"      \"created_at\": 2015-08-27T09:49:58-05:00,"},{"line_number":47,"context_line":"      \"expires_at\": 2015-09-27T09:49:58-05:00,"},{"line_number":48,"context_line":"      \"request_id\": \"req-936666d2-4c8f-4e41-9ac9-237b43f8b848\","},{"line_number":49,"context_line":"     }"},{"line_number":50,"context_line":"   ]"}],"source_content_type":"text/x-rst","patch_set":46,"id":"3f1d235d_154ca7c5","line":47,"range":{"start_line":47,"start_character":20,"end_line":47,"end_character":45},"in_reply_to":"5f201791_440cd893","updated":"2017-06-30 09:42:59.000000000","message":":) fixed","commit_id":"5e7569362eda31222f3623e9a4d8da5d8721846c"}],"etc/manila/policy.json":[{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"6028453d025f9a854c7c303c9ffb697777f52558","unresolved":false,"context_lines":[{"line_number":159,"context_line":""},{"line_number":160,"context_line":"    \"message:delete\": \"rule:default\","},{"line_number":161,"context_line":"    \"message:get\": \"rule:default\","},{"line_number":162,"context_line":"    \"message:get_all\": \"rule:default\""},{"line_number":163,"context_line":"}"}],"source_content_type":"application/json","patch_set":34,"id":"ff0f0b1f_712d6893","line":163,"range":{"start_line":162,"start_character":37,"end_line":163,"end_character":1},"updated":"2017-05-25 10:48:35.000000000","message":"Add \",\" in the end.","commit_id":"75506e75c318916ed4420bae49b414ef91809626"},{"author":{"_account_id":7582,"name":"Jan Provaznik","email":"jan.provaznik@gmail.com","username":"jprovazn"},"change_message_id":"9ea39493c5b55c6a657bed1a59601bd487c8c5f0","unresolved":false,"context_lines":[{"line_number":159,"context_line":""},{"line_number":160,"context_line":"    \"message:delete\": \"rule:default\","},{"line_number":161,"context_line":"    \"message:get\": \"rule:default\","},{"line_number":162,"context_line":"    \"message:get_all\": \"rule:default\""},{"line_number":163,"context_line":"}"}],"source_content_type":"application/json","patch_set":34,"id":"df140735_352c0798","line":163,"range":{"start_line":162,"start_character":37,"end_line":163,"end_character":1},"in_reply_to":"ff0f0b1f_712d6893","updated":"2017-06-01 08:18:38.000000000","message":"This is json file, not python dict, there should not be comma in the end.","commit_id":"75506e75c318916ed4420bae49b414ef91809626"}],"manila/api/v2/messages.py":[{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"f8447bc6daaeee9b96c449734145d63471001663","unresolved":false,"context_lines":[{"line_number":23,"context_line":"from manila.message import api as message_api"},{"line_number":24,"context_line":"from manila.message import defined_messages"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":27,"context_line":"MESSAGES_BASE_MICRO_VERSION \u003d \u00272.16\u0027"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"dab17558_b91bac7f","line":26,"updated":"2016-05-09 11:57:10.000000000","message":"Remove this line and the corresponding import as LOG is not used.","commit_id":"1817cf5c0dfc6e0745b7c2f4cd633c9071568a1f"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"31419aedb8310d31cc1304a1a57f56aa6a1b3ece","unresolved":false,"context_lines":[{"line_number":69,"context_line":"    @wsgi.Controller.authorize(\u0027get_all\u0027)"},{"line_number":70,"context_line":"    def index(self, req):"},{"line_number":71,"context_line":"        \"\"\"Returns a list of messages, transformed through view builder.\"\"\""},{"line_number":72,"context_line":"        context \u003d req.environ[\u0027manila.context\u0027]"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"        messages \u003d self.message_api.get_all(context)"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"        for message in messages:"},{"line_number":77,"context_line":"            # Fetches message text based on event id passed to it."},{"line_number":78,"context_line":"            user_message \u003d defined_messages.get_message_text("},{"line_number":79,"context_line":"                message[\u0027event_id\u0027])"},{"line_number":80,"context_line":"            message[\u0027user_message\u0027] \u003d user_message"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"        messages \u003d self._view_builder.index(req, messages)"},{"line_number":83,"context_line":"        return messages"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"bab6814e_9868a0bc","line":82,"range":{"start_line":72,"start_character":8,"end_line":82,"end_character":58},"updated":"2016-05-18 12:49:13.000000000","message":"We should have possibility to set filters by:\n\n- resource_type\n- resource_uuid\n- request_id\n- message_level\n- tenants/projects (for admins).\n- order (ASC/DESC on some field)\n\nUUID fields are useful when we have only it and want to get info by it, even if it is always only single message.","commit_id":"ec3ab15d86728128b41df67c14753d8bd04c8101"},{"author":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"change_message_id":"be9008d430494f24994de8406574f50c43a9a5b0","unresolved":false,"context_lines":[{"line_number":69,"context_line":"    @wsgi.Controller.authorize(\u0027get_all\u0027)"},{"line_number":70,"context_line":"    def index(self, req):"},{"line_number":71,"context_line":"        \"\"\"Returns a list of messages, transformed through view builder.\"\"\""},{"line_number":72,"context_line":"        context \u003d req.environ[\u0027manila.context\u0027]"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"        messages \u003d self.message_api.get_all(context)"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"        for message in messages:"},{"line_number":77,"context_line":"            # Fetches message text based on event id passed to it."},{"line_number":78,"context_line":"            user_message \u003d defined_messages.get_message_text("},{"line_number":79,"context_line":"                message[\u0027event_id\u0027])"},{"line_number":80,"context_line":"            message[\u0027user_message\u0027] \u003d user_message"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"        messages \u003d self._view_builder.index(req, messages)"},{"line_number":83,"context_line":"        return messages"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"bab6814e_584b2a59","line":82,"range":{"start_line":72,"start_character":8,"end_line":82,"end_character":58},"in_reply_to":"bab6814e_9868a0bc","updated":"2016-05-22 15:52:18.000000000","message":"I was going to add pagination and filtering in a later patch.","commit_id":"ec3ab15d86728128b41df67c14753d8bd04c8101"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"31419aedb8310d31cc1304a1a57f56aa6a1b3ece","unresolved":false,"context_lines":[{"line_number":81,"context_line":""},{"line_number":82,"context_line":"        messages \u003d self._view_builder.index(req, messages)"},{"line_number":83,"context_line":"        return messages"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"def create_resource():"},{"line_number":87,"context_line":"    return wsgi.Resource(MessagesController())"}],"source_content_type":"text/x-python","patch_set":7,"id":"bab6814e_dd905a98","line":84,"updated":"2016-05-18 12:49:13.000000000","message":"why detail list is absent?","commit_id":"ec3ab15d86728128b41df67c14753d8bd04c8101"},{"author":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"change_message_id":"be9008d430494f24994de8406574f50c43a9a5b0","unresolved":false,"context_lines":[{"line_number":81,"context_line":""},{"line_number":82,"context_line":"        messages \u003d self._view_builder.index(req, messages)"},{"line_number":83,"context_line":"        return messages"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"def create_resource():"},{"line_number":87,"context_line":"    return wsgi.Resource(MessagesController())"}],"source_content_type":"text/x-python","patch_set":7,"id":"bab6814e_d86d5acd","line":84,"in_reply_to":"bab6814e_dd905a98","updated":"2016-05-22 15:52:18.000000000","message":"In Cinder, we settled on not having a detail list for messages. Perhaps we should have a basic list that does not add the actual message which would allow quicker polling. It does seem like nobody ever uses a \u0027summary\u0027 list in their clients, curious how often it\u0027s used.","commit_id":"ec3ab15d86728128b41df67c14753d8bd04c8101"},{"author":{"_account_id":17780,"name":"Dustin Schoenbrun","email":"dschoenb@redhat.com","username":"dschoenb"},"change_message_id":"7b7d0ff825108c1caa0a97a0cc30addee1770a14","unresolved":false,"context_lines":[{"line_number":10,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":11,"context_line":"#    under the License."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"\"\"\"The messages API.\"\"\""},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"import webob"},{"line_number":16,"context_line":"from webob import exc"}],"source_content_type":"text/x-python","patch_set":10,"id":"bab6814e_3cf3410c","line":13,"range":{"start_line":13,"start_character":0,"end_line":13,"end_character":23},"updated":"2016-05-25 16:19:23.000000000","message":"I don\u0027t think there\u0027s enough information here if someone were to come by and try to figure out what this file does. We could modify and reuse the commit message here to add some clarity to the docstring here.","commit_id":"d49bb9f03590ae1c4a6f332efc3343094afff9bc"},{"author":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"change_message_id":"18bdcf92f76134c896a60543a5d6875c6589d9ad","unresolved":false,"context_lines":[{"line_number":10,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":11,"context_line":"#    under the License."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"\"\"\"The messages API.\"\"\""},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"import webob"},{"line_number":16,"context_line":"from webob import exc"}],"source_content_type":"text/x-python","patch_set":10,"id":"5a9d85d2_f8f40188","line":13,"range":{"start_line":13,"start_character":0,"end_line":13,"end_character":23},"in_reply_to":"bab6814e_3cf3410c","updated":"2016-06-21 17:01:36.000000000","message":"Done","commit_id":"d49bb9f03590ae1c4a6f332efc3343094afff9bc"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"ed4f84b2e9582998f9ddd01c1f09d41727fbce3a","unresolved":false,"context_lines":[{"line_number":52,"context_line":"        return self._view_builder.detail(req, message)"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    @wsgi.Controller.api_version(MESSAGES_BASE_MICRO_VERSION)"},{"line_number":55,"context_line":"    @wsgi.Controller.authorize(\u0027delete\u0027)"},{"line_number":56,"context_line":"    def delete(self, req, id):"},{"line_number":57,"context_line":"        \"\"\"Delete a message.\"\"\""},{"line_number":58,"context_line":"        context \u003d req.environ[\u0027manila.context\u0027]"}],"source_content_type":"text/x-python","patch_set":11,"id":"9abb7d3a_012c1601","line":55,"range":{"start_line":55,"start_character":30,"end_line":55,"end_character":40},"updated":"2016-05-30 05:21:41.000000000","message":"not necessary","commit_id":"e05ac733bb227b93efad076a2906fb1e3003379f"},{"author":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"change_message_id":"a3771c9070f242649e3ead65880435739bfd96ca","unresolved":false,"context_lines":[{"line_number":52,"context_line":"        return self._view_builder.detail(req, message)"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    @wsgi.Controller.api_version(MESSAGES_BASE_MICRO_VERSION)"},{"line_number":55,"context_line":"    @wsgi.Controller.authorize(\u0027delete\u0027)"},{"line_number":56,"context_line":"    def delete(self, req, id):"},{"line_number":57,"context_line":"        \"\"\"Delete a message.\"\"\""},{"line_number":58,"context_line":"        context \u003d req.environ[\u0027manila.context\u0027]"}],"source_content_type":"text/x-python","patch_set":11,"id":"5a9d85d2_7dc003e1","line":55,"range":{"start_line":55,"start_character":30,"end_line":55,"end_character":40},"in_reply_to":"9abb7d3a_012c1601","updated":"2016-06-21 17:01:41.000000000","message":"Done","commit_id":"e05ac733bb227b93efad076a2906fb1e3003379f"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"2a2c21381e451b36c14c2bef45d2a69de201ca41","unresolved":false,"context_lines":[{"line_number":67,"context_line":""},{"line_number":68,"context_line":"    @wsgi.Controller.api_version(MESSAGES_BASE_MICRO_VERSION)"},{"line_number":69,"context_line":"    @wsgi.Controller.authorize(\u0027get_all\u0027)"},{"line_number":70,"context_line":"    def index(self, req):"},{"line_number":71,"context_line":"        \"\"\"Returns a list of messages, transformed through view builder.\"\"\""},{"line_number":72,"context_line":"        context \u003d req.environ[\u0027manila.context\u0027]"},{"line_number":73,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"7aa08908_747e8ee5","line":70,"range":{"start_line":70,"start_character":8,"end_line":70,"end_character":13},"updated":"2016-06-06 13:43:01.000000000","message":"Still no filters here.","commit_id":"e05ac733bb227b93efad076a2906fb1e3003379f"},{"author":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"change_message_id":"a3771c9070f242649e3ead65880435739bfd96ca","unresolved":false,"context_lines":[{"line_number":67,"context_line":""},{"line_number":68,"context_line":"    @wsgi.Controller.api_version(MESSAGES_BASE_MICRO_VERSION)"},{"line_number":69,"context_line":"    @wsgi.Controller.authorize(\u0027get_all\u0027)"},{"line_number":70,"context_line":"    def index(self, req):"},{"line_number":71,"context_line":"        \"\"\"Returns a list of messages, transformed through view builder.\"\"\""},{"line_number":72,"context_line":"        context \u003d req.environ[\u0027manila.context\u0027]"},{"line_number":73,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"5a9d85d2_1d79ffc8","line":70,"range":{"start_line":70,"start_character":8,"end_line":70,"end_character":13},"in_reply_to":"7aa08908_747e8ee5","updated":"2016-06-21 17:01:41.000000000","message":"Going to add these in a follow-up patch since they aren\u0027t needed for the minimal functionality and require their own tempest tests.","commit_id":"e05ac733bb227b93efad076a2906fb1e3003379f"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"8948513a53eef2607e4ac29039d5c18fef4d01c1","unresolved":false,"context_lines":[{"line_number":77,"context_line":"        \"\"\"Returns a list of messages, transformed through view builder.\"\"\""},{"line_number":78,"context_line":"        context \u003d req.environ[\u0027manila.context\u0027]"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"        messages \u003d self.message_api.get_all(context)"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"        for message in messages:"},{"line_number":83,"context_line":"            # Fetches message text based on event id passed to it."}],"source_content_type":"text/x-python","patch_set":19,"id":"9ad45d7e_4309d0dc","line":80,"range":{"start_line":80,"start_character":9,"end_line":80,"end_character":52},"updated":"2016-08-10 04:07:52.000000000","message":"How bad are limits/marker/sort/filter to add in this PS?","commit_id":"b29a4c56d0dae045e2a56f15a859c8f33588c30d"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"71db9d25bfafc7e0eee30f888424c9bf80236f77","unresolved":false,"context_lines":[{"line_number":51,"context_line":"            raise exc.HTTPNotFound(explanation\u003derror.msg)"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"        # Generates message text based on action and detail."},{"line_number":54,"context_line":"        message[\u0027user_message\u0027] \u003d \"%s[%s]:%s\" % (message[\u0027action\u0027],"},{"line_number":55,"context_line":"                                                 message[\u0027message_level\u0027],"},{"line_number":56,"context_line":"                                                 message[\u0027detail\u0027])"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"        return self._view_builder.detail(req, message)"},{"line_number":59,"context_line":""}],"source_content_type":"text/x-python","patch_set":29,"id":"bff0334d_3378b728","line":56,"range":{"start_line":54,"start_character":0,"end_line":56,"end_character":67},"updated":"2017-04-07 00:57:59.000000000","message":"this can belong in the view_builder...","commit_id":"6f6adbef86fc54b788245ab35b5bb2a8ddf6b7f0"},{"author":{"_account_id":7582,"name":"Jan Provaznik","email":"jan.provaznik@gmail.com","username":"jprovazn"},"change_message_id":"4df792286a238b6cbb6cba901c4c4d7ad098e6bd","unresolved":false,"context_lines":[{"line_number":51,"context_line":"            raise exc.HTTPNotFound(explanation\u003derror.msg)"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"        # Generates message text based on action and detail."},{"line_number":54,"context_line":"        message[\u0027user_message\u0027] \u003d \"%s[%s]:%s\" % (message[\u0027action\u0027],"},{"line_number":55,"context_line":"                                                 message[\u0027message_level\u0027],"},{"line_number":56,"context_line":"                                                 message[\u0027detail\u0027])"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"        return self._view_builder.detail(req, message)"},{"line_number":59,"context_line":""}],"source_content_type":"text/x-python","patch_set":29,"id":"5ff73747_af052f48","line":56,"range":{"start_line":54,"start_character":0,"end_line":56,"end_character":67},"in_reply_to":"bff0334d_3378b728","updated":"2017-05-03 08:21:18.000000000","message":"Done","commit_id":"6f6adbef86fc54b788245ab35b5bb2a8ddf6b7f0"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"71db9d25bfafc7e0eee30f888424c9bf80236f77","unresolved":false,"context_lines":[{"line_number":81,"context_line":""},{"line_number":82,"context_line":"        for message in messages:"},{"line_number":83,"context_line":"            # Generates message text based on action and detail."},{"line_number":84,"context_line":"            message[\u0027user_message\u0027] \u003d \"%s[%s]:%s\" % (message[\u0027action\u0027],"},{"line_number":85,"context_line":"                                                     message[\u0027message_level\u0027],"},{"line_number":86,"context_line":"                                                     message[\u0027detail\u0027])"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"        messages \u003d self._view_builder.index(req, messages)"},{"line_number":89,"context_line":"        return messages"}],"source_content_type":"text/x-python","patch_set":29,"id":"bff0334d_33c6774a","line":86,"range":{"start_line":84,"start_character":12,"end_line":86,"end_character":71},"updated":"2017-04-07 00:57:59.000000000","message":"reuse is possible if formatted in the view builder.","commit_id":"6f6adbef86fc54b788245ab35b5bb2a8ddf6b7f0"},{"author":{"_account_id":7582,"name":"Jan Provaznik","email":"jan.provaznik@gmail.com","username":"jprovazn"},"change_message_id":"4df792286a238b6cbb6cba901c4c4d7ad098e6bd","unresolved":false,"context_lines":[{"line_number":81,"context_line":""},{"line_number":82,"context_line":"        for message in messages:"},{"line_number":83,"context_line":"            # Generates message text based on action and detail."},{"line_number":84,"context_line":"            message[\u0027user_message\u0027] \u003d \"%s[%s]:%s\" % (message[\u0027action\u0027],"},{"line_number":85,"context_line":"                                                     message[\u0027message_level\u0027],"},{"line_number":86,"context_line":"                                                     message[\u0027detail\u0027])"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"        messages \u003d self._view_builder.index(req, messages)"},{"line_number":89,"context_line":"        return messages"}],"source_content_type":"text/x-python","patch_set":29,"id":"5ff73747_8f02733c","line":86,"range":{"start_line":84,"start_character":12,"end_line":86,"end_character":71},"in_reply_to":"bff0334d_33c6774a","updated":"2017-05-03 08:21:18.000000000","message":"Done","commit_id":"6f6adbef86fc54b788245ab35b5bb2a8ddf6b7f0"},{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"6028453d025f9a854c7c303c9ffb697777f52558","unresolved":false,"context_lines":[{"line_number":53,"context_line":"        return self._view_builder.detail(req, message)"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    @wsgi.Controller.api_version(MESSAGES_BASE_MICRO_VERSION)"},{"line_number":56,"context_line":"    @wsgi.Controller.authorize"},{"line_number":57,"context_line":"    def delete(self, req, id):"},{"line_number":58,"context_line":"        \"\"\"Delete a message.\"\"\""},{"line_number":59,"context_line":"        context \u003d req.environ[\u0027manila.context\u0027]"}],"source_content_type":"text/x-python","patch_set":34,"id":"ff0f0b1f_f147381c","line":56,"range":{"start_line":56,"start_character":30,"end_line":56,"end_character":30},"updated":"2017-05-25 10:48:35.000000000","message":"@wsgi.action(\"delete\")","commit_id":"75506e75c318916ed4420bae49b414ef91809626"},{"author":{"_account_id":7582,"name":"Jan Provaznik","email":"jan.provaznik@gmail.com","username":"jprovazn"},"change_message_id":"9ea39493c5b55c6a657bed1a59601bd487c8c5f0","unresolved":false,"context_lines":[{"line_number":53,"context_line":"        return self._view_builder.detail(req, message)"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    @wsgi.Controller.api_version(MESSAGES_BASE_MICRO_VERSION)"},{"line_number":56,"context_line":"    @wsgi.Controller.authorize"},{"line_number":57,"context_line":"    def delete(self, req, id):"},{"line_number":58,"context_line":"        \"\"\"Delete a message.\"\"\""},{"line_number":59,"context_line":"        context \u003d req.environ[\u0027manila.context\u0027]"}],"source_content_type":"text/x-python","patch_set":34,"id":"df140735_15422311","line":56,"range":{"start_line":56,"start_character":30,"end_line":56,"end_character":30},"in_reply_to":"ff0f0b1f_f147381c","updated":"2017-06-01 08:18:38.000000000","message":"Done","commit_id":"75506e75c318916ed4420bae49b414ef91809626"}],"manila/api/v2/router.py":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"257c38307cca557bc9e3cfbc90acdcd4aa4d49c5","unresolved":false,"context_lines":[{"line_number":415,"context_line":"        self.resources[\u0027messages\u0027] \u003d messages.create_resource()"},{"line_number":416,"context_line":"        mapper.resource(\"message\", \"messages\","},{"line_number":417,"context_line":"                        controller\u003dself.resources[\u0027messages\u0027],"},{"line_number":418,"context_line":"                        collection\u003d{\u0027detail\u0027: \u0027GET\u0027})"}],"source_content_type":"text/x-python","patch_set":46,"id":"3f1d235d_deb539f0","line":418,"range":{"start_line":418,"start_character":37,"end_line":418,"end_character":43},"updated":"2017-06-30 00:25:43.000000000","message":"\"detail\" API isn\u0027t defined for this resource\nhttps://review.openstack.org/#/c/313549/46/manila/api/v2/messages.py","commit_id":"5e7569362eda31222f3623e9a4d8da5d8721846c"},{"author":{"_account_id":7582,"name":"Jan Provaznik","email":"jan.provaznik@gmail.com","username":"jprovazn"},"change_message_id":"a36256dbd72967fd87ed4f7ff9217d3cadaa805b","unresolved":false,"context_lines":[{"line_number":415,"context_line":"        self.resources[\u0027messages\u0027] \u003d messages.create_resource()"},{"line_number":416,"context_line":"        mapper.resource(\"message\", \"messages\","},{"line_number":417,"context_line":"                        controller\u003dself.resources[\u0027messages\u0027],"},{"line_number":418,"context_line":"                        collection\u003d{\u0027detail\u0027: \u0027GET\u0027})"}],"source_content_type":"text/x-python","patch_set":46,"id":"3f1d235d_5500df34","line":418,"range":{"start_line":418,"start_character":37,"end_line":418,"end_character":43},"in_reply_to":"3f1d235d_deb539f0","updated":"2017-06-30 09:42:59.000000000","message":"Done","commit_id":"5e7569362eda31222f3623e9a4d8da5d8721846c"}],"manila/api/views/messages.py":[{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"31419aedb8310d31cc1304a1a57f56aa6a1b3ece","unresolved":false,"context_lines":[{"line_number":21,"context_line":""},{"line_number":22,"context_line":"    def index(self, request, messages):"},{"line_number":23,"context_line":"        \"\"\"Show a list of messages.\"\"\""},{"line_number":24,"context_line":"        return self._list_view(self.detail, request, messages)"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    def detail(self, request, message):"},{"line_number":27,"context_line":"        \"\"\"Detailed view of a single message.\"\"\""}],"source_content_type":"text/x-python","patch_set":7,"id":"bab6814e_dd769a3d","line":24,"range":{"start_line":24,"start_character":8,"end_line":24,"end_character":62},"updated":"2016-05-18 12:49:13.000000000","message":"Looks like you always return list of detailed messages. We should be able get summary list.","commit_id":"ec3ab15d86728128b41df67c14753d8bd04c8101"},{"author":{"_account_id":7872,"name":"Marc Koderer","email":"marc@koderer.com","username":"mkoderer"},"change_message_id":"f09b5da6462854da4e6898a70df60938a946acb3","unresolved":false,"context_lines":[{"line_number":37,"context_line":"        }"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"        if message.get(\u0027resource_type\u0027):"},{"line_number":40,"context_line":"            message_ref[\u0027resource_type\u0027] \u003d message.get(\u0027resource_type\u0027)"},{"line_number":41,"context_line":"        if message.get(\u0027resource_uuid\u0027):"},{"line_number":42,"context_line":"            message_ref[\u0027resource_uuid\u0027] \u003d message.get(\u0027resource_uuid\u0027)"},{"line_number":43,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"dab17558_2716014c","line":40,"updated":"2016-05-17 09:22:44.000000000","message":"not covered by any unit test.","commit_id":"ec3ab15d86728128b41df67c14753d8bd04c8101"},{"author":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"change_message_id":"be9008d430494f24994de8406574f50c43a9a5b0","unresolved":false,"context_lines":[{"line_number":37,"context_line":"        }"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"        if message.get(\u0027resource_type\u0027):"},{"line_number":40,"context_line":"            message_ref[\u0027resource_type\u0027] \u003d message.get(\u0027resource_type\u0027)"},{"line_number":41,"context_line":"        if message.get(\u0027resource_uuid\u0027):"},{"line_number":42,"context_line":"            message_ref[\u0027resource_uuid\u0027] \u003d message.get(\u0027resource_uuid\u0027)"},{"line_number":43,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"bab6814e_b8f5f6ed","line":40,"in_reply_to":"dab17558_2716014c","updated":"2016-05-22 15:52:18.000000000","message":"Done","commit_id":"ec3ab15d86728128b41df67c14753d8bd04c8101"},{"author":{"_account_id":7872,"name":"Marc Koderer","email":"marc@koderer.com","username":"mkoderer"},"change_message_id":"f09b5da6462854da4e6898a70df60938a946acb3","unresolved":false,"context_lines":[{"line_number":39,"context_line":"        if message.get(\u0027resource_type\u0027):"},{"line_number":40,"context_line":"            message_ref[\u0027resource_type\u0027] \u003d message.get(\u0027resource_type\u0027)"},{"line_number":41,"context_line":"        if message.get(\u0027resource_uuid\u0027):"},{"line_number":42,"context_line":"            message_ref[\u0027resource_uuid\u0027] \u003d message.get(\u0027resource_uuid\u0027)"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"        return {\u0027message\u0027: message_ref}"},{"line_number":45,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"dab17558_4717c544","line":42,"updated":"2016-05-17 09:22:44.000000000","message":"not covered by any unit test.","commit_id":"ec3ab15d86728128b41df67c14753d8bd04c8101"},{"author":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"change_message_id":"be9008d430494f24994de8406574f50c43a9a5b0","unresolved":false,"context_lines":[{"line_number":39,"context_line":"        if message.get(\u0027resource_type\u0027):"},{"line_number":40,"context_line":"            message_ref[\u0027resource_type\u0027] \u003d message.get(\u0027resource_type\u0027)"},{"line_number":41,"context_line":"        if message.get(\u0027resource_uuid\u0027):"},{"line_number":42,"context_line":"            message_ref[\u0027resource_uuid\u0027] \u003d message.get(\u0027resource_uuid\u0027)"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"        return {\u0027message\u0027: message_ref}"},{"line_number":45,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"bab6814e_18e1a22d","line":42,"in_reply_to":"dab17558_4717c544","updated":"2016-05-22 15:52:18.000000000","message":"Done","commit_id":"ec3ab15d86728128b41df67c14753d8bd04c8101"},{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"57318532c41d52e03b2e1e385bc62ae9cbe2ab69","unresolved":false,"context_lines":[{"line_number":49,"context_line":"        :param func: Function used to format the message data"},{"line_number":50,"context_line":"        :param request: API request"},{"line_number":51,"context_line":"        :param messages: List of messages in dictionary format"},{"line_number":52,"context_line":"        :param message_count: Length of the original list of messages"},{"line_number":53,"context_line":"        :param coll_name: Name of collection, used to generate the next link"},{"line_number":54,"context_line":"                          for a pagination query"},{"line_number":55,"context_line":"        :returns: message data in dictionary format"}],"source_content_type":"text/x-python","patch_set":7,"id":"bab6814e_832125b7","line":52,"range":{"start_line":52,"start_character":8,"end_line":52,"end_character":69},"updated":"2016-05-19 08:47:26.000000000","message":"Is there a parameter named message_count?","commit_id":"ec3ab15d86728128b41df67c14753d8bd04c8101"},{"author":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"change_message_id":"be9008d430494f24994de8406574f50c43a9a5b0","unresolved":false,"context_lines":[{"line_number":49,"context_line":"        :param func: Function used to format the message data"},{"line_number":50,"context_line":"        :param request: API request"},{"line_number":51,"context_line":"        :param messages: List of messages in dictionary format"},{"line_number":52,"context_line":"        :param message_count: Length of the original list of messages"},{"line_number":53,"context_line":"        :param coll_name: Name of collection, used to generate the next link"},{"line_number":54,"context_line":"                          for a pagination query"},{"line_number":55,"context_line":"        :returns: message data in dictionary format"}],"source_content_type":"text/x-python","patch_set":7,"id":"bab6814e_186c02cd","line":52,"range":{"start_line":52,"start_character":8,"end_line":52,"end_character":69},"in_reply_to":"bab6814e_832125b7","updated":"2016-05-22 15:52:18.000000000","message":"aww, fixed","commit_id":"ec3ab15d86728128b41df67c14753d8bd04c8101"},{"author":{"_account_id":7872,"name":"Marc Koderer","email":"marc@koderer.com","username":"mkoderer"},"change_message_id":"f09b5da6462854da4e6898a70df60938a946acb3","unresolved":false,"context_lines":[{"line_number":62,"context_line":"        messages_dict \u003d dict(messages\u003dmessages_list)"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"        if messages_links:"},{"line_number":65,"context_line":"            messages_dict[\u0027messages_links\u0027] \u003d messages_links"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"        return messages_dict"}],"source_content_type":"text/x-python","patch_set":7,"id":"dab17558_a7283187","line":65,"updated":"2016-05-17 09:22:44.000000000","message":"not covered by any unit test.","commit_id":"ec3ab15d86728128b41df67c14753d8bd04c8101"},{"author":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"change_message_id":"be9008d430494f24994de8406574f50c43a9a5b0","unresolved":false,"context_lines":[{"line_number":62,"context_line":"        messages_dict \u003d dict(messages\u003dmessages_list)"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"        if messages_links:"},{"line_number":65,"context_line":"            messages_dict[\u0027messages_links\u0027] \u003d messages_links"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"        return messages_dict"}],"source_content_type":"text/x-python","patch_set":7,"id":"bab6814e_7888ae71","line":65,"in_reply_to":"dab17558_a7283187","updated":"2016-05-22 15:52:18.000000000","message":"Done","commit_id":"ec3ab15d86728128b41df67c14753d8bd04c8101"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"8948513a53eef2607e4ac29039d5c18fef4d01c1","unresolved":false,"context_lines":[{"line_number":22,"context_line":"    def index(self, request, messages):"},{"line_number":23,"context_line":"        \"\"\"Show a list of messages.\"\"\""},{"line_number":24,"context_line":"        return self._list_view(self.detail, request, messages)"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    def detail(self, request, message):"},{"line_number":27,"context_line":"        \"\"\"Detailed view of a single message.\"\"\""},{"line_number":28,"context_line":"        message_ref \u003d {"}],"source_content_type":"text/x-python","patch_set":19,"id":"9ad45d7e_a3decc3c","line":25,"range":{"start_line":25,"start_character":0,"end_line":25,"end_character":0},"updated":"2016-08-10 04:07:52.000000000","message":"so this has no \"summary\" view? \nmaybe just id, request_id and user_message?","commit_id":"b29a4c56d0dae045e2a56f15a859c8f33588c30d"},{"author":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"change_message_id":"c29590d196255d47b777c260442417288ece9794","unresolved":false,"context_lines":[{"line_number":22,"context_line":"    def index(self, request, messages):"},{"line_number":23,"context_line":"        \"\"\"Show a list of messages.\"\"\""},{"line_number":24,"context_line":"        return self._list_view(self.detail, request, messages)"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    def detail(self, request, message):"},{"line_number":27,"context_line":"        \"\"\"Detailed view of a single message.\"\"\""},{"line_number":28,"context_line":"        message_ref \u003d {"}],"source_content_type":"text/x-python","patch_set":19,"id":"9ad45d7e_50d914f2","line":25,"range":{"start_line":25,"start_character":0,"end_line":25,"end_character":0},"in_reply_to":"9ad45d7e_a3decc3c","updated":"2016-08-12 01:06:12.000000000","message":"I\u0027m not sure how valuable that would be and could certainly come later.  Currently this is consistent with Cinder","commit_id":"b29a4c56d0dae045e2a56f15a859c8f33588c30d"},{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"346fdc95cc55945eea88abd9f21ff77de5e589c8","unresolved":false,"context_lines":[{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    def detail(self, request, message):"},{"line_number":27,"context_line":"        \"\"\"Detailed view of a single message.\"\"\""},{"line_number":28,"context_line":"        message_ref \u003d {"},{"line_number":29,"context_line":"            \u0027id\u0027: message.get(\u0027id\u0027),"},{"line_number":30,"context_line":"            \u0027event_id\u0027: message.get(\u0027event_id\u0027),"},{"line_number":31,"context_line":"            \u0027user_message\u0027: message.get(\u0027user_message\u0027),"}],"source_content_type":"text/x-python","patch_set":19,"id":"dada55a8_5fa8a577","line":28,"range":{"start_line":28,"start_character":8,"end_line":28,"end_character":23},"updated":"2016-07-25 09:09:32.000000000","message":"How about add project_id in this dict? \nhttps://review.openstack.org/#/c/313549/19/manila/db/sqlalchemy/models.py","commit_id":"b29a4c56d0dae045e2a56f15a859c8f33588c30d"},{"author":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"change_message_id":"c29590d196255d47b777c260442417288ece9794","unresolved":false,"context_lines":[{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    def detail(self, request, message):"},{"line_number":27,"context_line":"        \"\"\"Detailed view of a single message.\"\"\""},{"line_number":28,"context_line":"        message_ref \u003d {"},{"line_number":29,"context_line":"            \u0027id\u0027: message.get(\u0027id\u0027),"},{"line_number":30,"context_line":"            \u0027event_id\u0027: message.get(\u0027event_id\u0027),"},{"line_number":31,"context_line":"            \u0027user_message\u0027: message.get(\u0027user_message\u0027),"}],"source_content_type":"text/x-python","patch_set":19,"id":"9ad45d7e_d09a2413","line":28,"range":{"start_line":28,"start_character":8,"end_line":28,"end_character":23},"in_reply_to":"9ad45d7e_c3aca037","updated":"2016-08-12 01:06:12.000000000","message":"yeah sure.\n\nGoutham the tenant is in the url, so no it shouldnt.","commit_id":"b29a4c56d0dae045e2a56f15a859c8f33588c30d"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"8948513a53eef2607e4ac29039d5c18fef4d01c1","unresolved":false,"context_lines":[{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    def detail(self, request, message):"},{"line_number":27,"context_line":"        \"\"\"Detailed view of a single message.\"\"\""},{"line_number":28,"context_line":"        message_ref \u003d {"},{"line_number":29,"context_line":"            \u0027id\u0027: message.get(\u0027id\u0027),"},{"line_number":30,"context_line":"            \u0027event_id\u0027: message.get(\u0027event_id\u0027),"},{"line_number":31,"context_line":"            \u0027user_message\u0027: message.get(\u0027user_message\u0027),"}],"source_content_type":"text/x-python","patch_set":19,"id":"9ad45d7e_c3aca037","line":28,"range":{"start_line":28,"start_character":8,"end_line":28,"end_character":23},"in_reply_to":"dada55a8_5fa8a577","updated":"2016-08-10 04:07:52.000000000","message":"+1.. \nThe index call when issued as an admin gives you messages of all tenants?","commit_id":"b29a4c56d0dae045e2a56f15a859c8f33588c30d"},{"author":{"_account_id":7582,"name":"Jan Provaznik","email":"jan.provaznik@gmail.com","username":"jprovazn"},"change_message_id":"2cc96846145f7643d65204a8679fdb01fa3dfb65","unresolved":false,"context_lines":[{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    def detail(self, request, message):"},{"line_number":27,"context_line":"        \"\"\"Detailed view of a single message.\"\"\""},{"line_number":28,"context_line":"        message_ref \u003d {"},{"line_number":29,"context_line":"            \u0027id\u0027: message.get(\u0027id\u0027),"},{"line_number":30,"context_line":"            \u0027event_id\u0027: message.get(\u0027event_id\u0027),"},{"line_number":31,"context_line":"            \u0027user_message\u0027: message.get(\u0027user_message\u0027),"}],"source_content_type":"text/x-python","patch_set":19,"id":"3a461143_90a24d99","line":28,"range":{"start_line":28,"start_character":8,"end_line":28,"end_character":23},"in_reply_to":"dada55a8_5fa8a577","updated":"2017-02-06 09:52:00.000000000","message":"Done","commit_id":"b29a4c56d0dae045e2a56f15a859c8f33588c30d"},{"author":{"_account_id":11865,"name":"Clinton Knight","email":"cknight@netapp.com","username":"cknight"},"change_message_id":"d57030b92022ce3d295c8f09fe01f7bb70813a5c","unresolved":false,"context_lines":[{"line_number":31,"context_line":"            \u0027user_message\u0027: message.get(\u0027user_message\u0027),"},{"line_number":32,"context_line":"            \u0027message_level\u0027: message.get(\u0027message_level\u0027),"},{"line_number":33,"context_line":"            \u0027created_at\u0027: message.get(\u0027created_at\u0027),"},{"line_number":34,"context_line":"            \u0027guaranteed_until\u0027: message.get(\u0027expires_at\u0027),"},{"line_number":35,"context_line":"            \u0027request_id\u0027: message.get(\u0027request_id\u0027),"},{"line_number":36,"context_line":"            \u0027links\u0027: self._get_links(request, message[\u0027id\u0027]),"},{"line_number":37,"context_line":"        }"}],"source_content_type":"text/x-python","patch_set":19,"id":"9ad45d7e_ecb5a331","line":34,"range":{"start_line":34,"start_character":12,"end_line":34,"end_character":58},"updated":"2016-08-12 18:34:38.000000000","message":"Any reason for renaming this field?","commit_id":"b29a4c56d0dae045e2a56f15a859c8f33588c30d"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"a7c0b423906cfbd0c2e89923c2a4514409e65eae","unresolved":false,"context_lines":[{"line_number":31,"context_line":"            \u0027user_message\u0027: message.get(\u0027user_message\u0027),"},{"line_number":32,"context_line":"            \u0027message_level\u0027: message.get(\u0027message_level\u0027),"},{"line_number":33,"context_line":"            \u0027created_at\u0027: message.get(\u0027created_at\u0027),"},{"line_number":34,"context_line":"            \u0027guaranteed_until\u0027: message.get(\u0027expires_at\u0027),"},{"line_number":35,"context_line":"            \u0027request_id\u0027: message.get(\u0027request_id\u0027),"},{"line_number":36,"context_line":"            \u0027links\u0027: self._get_links(request, message[\u0027id\u0027]),"},{"line_number":37,"context_line":"        }"}],"source_content_type":"text/x-python","patch_set":19,"id":"3ac371cc_9f20a4f9","line":34,"range":{"start_line":34,"start_character":12,"end_line":34,"end_character":58},"in_reply_to":"9ad45d7e_ecb5a331","updated":"2016-08-14 21:50:22.000000000","message":"Guaranteed Until seems more meaningful to the end user.. Will rename the database field as well.","commit_id":"b29a4c56d0dae045e2a56f15a859c8f33588c30d"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"8948513a53eef2607e4ac29039d5c18fef4d01c1","unresolved":false,"context_lines":[{"line_number":36,"context_line":"            \u0027links\u0027: self._get_links(request, message[\u0027id\u0027]),"},{"line_number":37,"context_line":"        }"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"        if message.get(\u0027resource_type\u0027):"},{"line_number":40,"context_line":"            message_ref[\u0027resource_type\u0027] \u003d message.get(\u0027resource_type\u0027)"},{"line_number":41,"context_line":"        if message.get(\u0027resource_uuid\u0027):"},{"line_number":42,"context_line":"            message_ref[\u0027resource_uuid\u0027] \u003d message.get(\u0027resource_uuid\u0027)"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"        return {\u0027message\u0027: message_ref}"},{"line_number":45,"context_line":""}],"source_content_type":"text/x-python","patch_set":19,"id":"9ad45d7e_c3cae06d","line":42,"range":{"start_line":39,"start_character":0,"end_line":42,"end_character":71},"updated":"2016-08-10 04:07:52.000000000","message":"lets always respond with the keys.. It\u0027s okay to set these keys to None.. let the client decide how to parse this.. We should not change the API response schema based on the type of resource available.. \n\nP.S: this bit me many a time about glance and has come up in the API-WG meeting..","commit_id":"b29a4c56d0dae045e2a56f15a859c8f33588c30d"},{"author":{"_account_id":7582,"name":"Jan Provaznik","email":"jan.provaznik@gmail.com","username":"jprovazn"},"change_message_id":"2cc96846145f7643d65204a8679fdb01fa3dfb65","unresolved":false,"context_lines":[{"line_number":36,"context_line":"            \u0027links\u0027: self._get_links(request, message[\u0027id\u0027]),"},{"line_number":37,"context_line":"        }"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"        if message.get(\u0027resource_type\u0027):"},{"line_number":40,"context_line":"            message_ref[\u0027resource_type\u0027] \u003d message.get(\u0027resource_type\u0027)"},{"line_number":41,"context_line":"        if message.get(\u0027resource_uuid\u0027):"},{"line_number":42,"context_line":"            message_ref[\u0027resource_uuid\u0027] \u003d message.get(\u0027resource_uuid\u0027)"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"        return {\u0027message\u0027: message_ref}"},{"line_number":45,"context_line":""}],"source_content_type":"text/x-python","patch_set":19,"id":"3a461143_f0d711eb","line":42,"range":{"start_line":39,"start_character":0,"end_line":42,"end_character":71},"in_reply_to":"9ad45d7e_c3cae06d","updated":"2017-02-06 09:52:00.000000000","message":"Done","commit_id":"b29a4c56d0dae045e2a56f15a859c8f33588c30d"},{"author":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"change_message_id":"c29590d196255d47b777c260442417288ece9794","unresolved":false,"context_lines":[{"line_number":36,"context_line":"            \u0027links\u0027: self._get_links(request, message[\u0027id\u0027]),"},{"line_number":37,"context_line":"        }"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"        if message.get(\u0027resource_type\u0027):"},{"line_number":40,"context_line":"            message_ref[\u0027resource_type\u0027] \u003d message.get(\u0027resource_type\u0027)"},{"line_number":41,"context_line":"        if message.get(\u0027resource_uuid\u0027):"},{"line_number":42,"context_line":"            message_ref[\u0027resource_uuid\u0027] \u003d message.get(\u0027resource_uuid\u0027)"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"        return {\u0027message\u0027: message_ref}"},{"line_number":45,"context_line":""}],"source_content_type":"text/x-python","patch_set":19,"id":"9ad45d7e_309e2007","line":42,"range":{"start_line":39,"start_character":0,"end_line":42,"end_character":71},"in_reply_to":"9ad45d7e_c3cae06d","updated":"2016-08-12 01:06:12.000000000","message":"sure sure","commit_id":"b29a4c56d0dae045e2a56f15a859c8f33588c30d"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"8948513a53eef2607e4ac29039d5c18fef4d01c1","unresolved":false,"context_lines":[{"line_number":58,"context_line":"        messages_links \u003d self._get_collection_links(request,"},{"line_number":59,"context_line":"                                                    messages,"},{"line_number":60,"context_line":"                                                    coll_name)"},{"line_number":61,"context_line":"        messages_dict \u003d dict(messages\u003dmessages_list)"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"        if messages_links:"},{"line_number":64,"context_line":"            messages_dict[\u0027messages_links\u0027] \u003d messages_links"}],"source_content_type":"text/x-python","patch_set":19,"id":"9ad45d7e_83af4893","line":61,"range":{"start_line":61,"start_character":24,"end_line":61,"end_character":29},"updated":"2016-08-10 04:07:52.000000000","message":"{}","commit_id":"b29a4c56d0dae045e2a56f15a859c8f33588c30d"},{"author":{"_account_id":7582,"name":"Jan Provaznik","email":"jan.provaznik@gmail.com","username":"jprovazn"},"change_message_id":"2cc96846145f7643d65204a8679fdb01fa3dfb65","unresolved":false,"context_lines":[{"line_number":58,"context_line":"        messages_links \u003d self._get_collection_links(request,"},{"line_number":59,"context_line":"                                                    messages,"},{"line_number":60,"context_line":"                                                    coll_name)"},{"line_number":61,"context_line":"        messages_dict \u003d dict(messages\u003dmessages_list)"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"        if messages_links:"},{"line_number":64,"context_line":"            messages_dict[\u0027messages_links\u0027] \u003d messages_links"}],"source_content_type":"text/x-python","patch_set":19,"id":"3a461143_302fd9f7","line":61,"range":{"start_line":61,"start_character":24,"end_line":61,"end_character":29},"in_reply_to":"9ad45d7e_83af4893","updated":"2017-02-06 09:52:00.000000000","message":"Done","commit_id":"b29a4c56d0dae045e2a56f15a859c8f33588c30d"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"3d708d8eeb2a56e874d0271a5345fb6cbda962b6","unresolved":false,"context_lines":[{"line_number":37,"context_line":"            \u0027request_id\u0027: message.get(\u0027request_id\u0027),"},{"line_number":38,"context_line":"            \u0027links\u0027: self._get_links(request, message[\u0027id\u0027]),"},{"line_number":39,"context_line":"            \u0027resource_type\u0027: message.get(\u0027resource_type\u0027),"},{"line_number":40,"context_line":"            \u0027resource_uuid\u0027: message.get(\u0027resource_uuid\u0027),"},{"line_number":41,"context_line":"            \u0027user_message\u0027: \"%s: %s\" % ("},{"line_number":42,"context_line":"                message_field.translate_action(message.get(\u0027action_id\u0027)),"},{"line_number":43,"context_line":"                message_field.translate_detail(message.get(\u0027detail_id\u0027))),"}],"source_content_type":"text/x-python","patch_set":46,"id":"3f1d235d_213770b3","line":40,"range":{"start_line":40,"start_character":0,"end_line":40,"end_character":58},"updated":"2017-06-30 00:45:16.000000000","message":"my concern with this is this: all our resources have \"id\"s in the REST API... not \"uuid\"s, why call this field \"resource_uuid\", wouldn\u0027t it be simpler and consistent to to just use \"resource_id\" .. \n\nI\u0027m not a fan of aliasing API fields that mean the same thing for the reason that it defeats simplicity and explicitness. \"share_proto\", \"protocol\" and \"share_protocol\" is one example where we did that.\n\nSee API Ref here:\n\nhttps://developer.openstack.org/api-ref/shared-file-systems/?expanded\u003dlist-all-major-versions-detail,show-details-of-specific-api-version-detail,list-extensions-detail,list-share-limits-detail,list-shares-detail,list-shares-with-details-detail,show-share-details-detail,create-share-detail,manage-share-detail,update-share-detail,delete-share-detail,list-export-locations-detail,show-single-export-location-detail,show-share-metadata-detail,set-share-metadata-detail,update-share-metadata-detail,unset-share-metadata-detail,grant-access-detail,revoke-access-detail,list-access-rules-detail,reset-share-state-detail,force-delete-share-detail,extend-share-detail,shrink-share-detail,unmanage-share-detail,revert-share-to-snapshot-detail,list-share-snapshots-detail,list-share-snapshots-with-details-detail,show-share-snapshot-details-detail,create-share-snapshot-detail,manage-share-snapshot-detail,unmanage-share-snapshot-detail,reset-share-snapshot-state-detail,force-delete-share-snapshot-detail,update-share-snapshot-detail,delete-share-snapshot-detail,list-share-networks-detail,list-share-networks-with-details-detail,show-share-network-details-detail,create-share-network-detail,add-security-service-to-share-network-detail,remove-security-service-from-share-network-detail,update-share-network-detail,delete-share-network-detail,list-security-services-detail,list-security-services-with-details-detail,show-security-service-details-detail,create-security-service-detail,update-security-service-detail,delete-security-service-detail,list-share-servers-detail,show-share-server-details-detail,delete-share-server-detail,list-share-instances-detail,show-share-instance-details-detail,reset-share-instance-state-detail,force-delete-share-instance-detail,id236-detail,id240-detail,list-share-types-detail,list-default-share-types-detail,list-extra-specs-detail,create-share-type-detail,show-share-type-access-details-detail,set-extra-spec-for-share-type-detail,unset-an-extra-spec-detail,add-share-type-access-detail,remove-share-type-access-detail,delete-share-type-detail,list-back-end-storage-pools-detail,list-back-end-storage-pools-with-details-detail,list-services-detail,enable-service-detail,disable-service-detail,list-availability-zones-detail,id297-detail,id309-detail,show-default-quota-set-detail,show-quota-set-detail,show-quota-set-in-detail-detail,update-quota-set-detail,delete-quota-set-detail,migrate-share-versions-2-5-to-2-14-detail,start-migration-since-version-2-15-detail,complete-migration-since-version-2-15-detail,list-consistency-groups-detail,list-consistency-groups-with-details-detail,show-consistency-group-details-detail,create-consistency-group-detail,update-consistency-group-detail,reset-consistency-group-state-detail,force-delete-consistency-group-detail,delete-consistency-group-detail,list-consistency-group-snapshots-detail,list-consistency-group-snapshots-with-details-detail,show-consistency-group-snapshot-details-detail,list-consistency-group-snapshot-members-detail,create-consistency-group-snapshot-detail,reset-consistency-group-snapshot-state-detail,force-delete-consistency-group-snapshot-detail,update-consistency-group-snapshot-detail,delete-consistency-group-snapshot-detail","commit_id":"5e7569362eda31222f3623e9a4d8da5d8721846c"},{"author":{"_account_id":7582,"name":"Jan Provaznik","email":"jan.provaznik@gmail.com","username":"jprovazn"},"change_message_id":"a36256dbd72967fd87ed4f7ff9217d3cadaa805b","unresolved":false,"context_lines":[{"line_number":37,"context_line":"            \u0027request_id\u0027: message.get(\u0027request_id\u0027),"},{"line_number":38,"context_line":"            \u0027links\u0027: self._get_links(request, message[\u0027id\u0027]),"},{"line_number":39,"context_line":"            \u0027resource_type\u0027: message.get(\u0027resource_type\u0027),"},{"line_number":40,"context_line":"            \u0027resource_uuid\u0027: message.get(\u0027resource_uuid\u0027),"},{"line_number":41,"context_line":"            \u0027user_message\u0027: \"%s: %s\" % ("},{"line_number":42,"context_line":"                message_field.translate_action(message.get(\u0027action_id\u0027)),"},{"line_number":43,"context_line":"                message_field.translate_detail(message.get(\u0027detail_id\u0027))),"}],"source_content_type":"text/x-python","patch_set":46,"id":"3f1d235d_b3450b1a","line":40,"range":{"start_line":40,"start_character":0,"end_line":40,"end_character":58},"in_reply_to":"3f1d235d_213770b3","updated":"2017-06-30 09:42:59.000000000","message":"Makes sense, no reason for aliases. Alex used resource_uuid originally, renamed to resource_id everywhere.","commit_id":"5e7569362eda31222f3623e9a4d8da5d8721846c"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"fd72f41ba3e21d666c48179990c2fbce8b2517ab","unresolved":false,"context_lines":[{"line_number":62,"context_line":"                                                    coll_name)"},{"line_number":63,"context_line":"        messages_dict \u003d dict({\"messages\": messages_list})"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"        if messages_links:"},{"line_number":66,"context_line":"            messages_dict[\u0027messages_links\u0027] \u003d messages_links"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"        return messages_dict"}],"source_content_type":"text/x-python","patch_set":56,"id":"3f1d235d_8bf2ac6e","line":66,"range":{"start_line":65,"start_character":8,"end_line":66,"end_character":60},"updated":"2017-07-11 13:27:28.000000000","message":"Contradicts spec: https://specs.openstack.org/openstack/manila-specs/specs/pike/user-messages.html#rest-api-impact","commit_id":"11c9aa60b0752318ce4ddaf0bd3edbd3a30048e6"},{"author":{"_account_id":7582,"name":"Jan Provaznik","email":"jan.provaznik@gmail.com","username":"jprovazn"},"change_message_id":"c970381c1860f5b2f9df3dc2110866efa88bcadc","unresolved":false,"context_lines":[{"line_number":62,"context_line":"                                                    coll_name)"},{"line_number":63,"context_line":"        messages_dict \u003d dict({\"messages\": messages_list})"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"        if messages_links:"},{"line_number":66,"context_line":"            messages_dict[\u0027messages_links\u0027] \u003d messages_links"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"        return messages_dict"}],"source_content_type":"text/x-python","patch_set":56,"id":"3f1d235d_6c350dda","line":66,"range":{"start_line":65,"start_character":8,"end_line":66,"end_character":60},"in_reply_to":"3f1d235d_1b02510a","updated":"2017-07-12 07:27:30.000000000","message":"All APIs add message_links conditionally if query used \u0027limit\u0027 parameter. I think the best option is as it is now and I also think that minor deviations from spec are OK too (not all bits are obvious at the time of writing the spec).","commit_id":"11c9aa60b0752318ce4ddaf0bd3edbd3a30048e6"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"a641746097820baacdca29b68dd405b77772e6ed","unresolved":false,"context_lines":[{"line_number":62,"context_line":"                                                    coll_name)"},{"line_number":63,"context_line":"        messages_dict \u003d dict({\"messages\": messages_list})"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"        if messages_links:"},{"line_number":66,"context_line":"            messages_dict[\u0027messages_links\u0027] \u003d messages_links"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"        return messages_dict"}],"source_content_type":"text/x-python","patch_set":56,"id":"3f1d235d_1b02510a","line":66,"range":{"start_line":65,"start_character":8,"end_line":66,"end_character":60},"in_reply_to":"3f1d235d_8bf2ac6e","updated":"2017-07-12 03:35:52.000000000","message":"Shouldn\u0027t all APIs support links?","commit_id":"11c9aa60b0752318ce4ddaf0bd3edbd3a30048e6"}],"manila/db/api.py":[{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"31419aedb8310d31cc1304a1a57f56aa6a1b3ece","unresolved":false,"context_lines":[{"line_number":1123,"context_line":"    return IMPL.message_get(context, message_id)"},{"line_number":1124,"context_line":""},{"line_number":1125,"context_line":""},{"line_number":1126,"context_line":"def message_get_all(context):"},{"line_number":1127,"context_line":"    return IMPL.message_get_all(context)"},{"line_number":1128,"context_line":""},{"line_number":1129,"context_line":""},{"line_number":1130,"context_line":"def message_create(context, values):"}],"source_content_type":"text/x-python","patch_set":7,"id":"bab6814e_7dc7ae45","line":1127,"range":{"start_line":1126,"start_character":4,"end_line":1127,"end_character":40},"updated":"2016-05-18 12:49:13.000000000","message":"As requested in API module, need to filters.","commit_id":"ec3ab15d86728128b41df67c14753d8bd04c8101"},{"author":{"_account_id":17780,"name":"Dustin Schoenbrun","email":"dschoenb@redhat.com","username":"dschoenb"},"change_message_id":"7b7d0ff825108c1caa0a97a0cc30addee1770a14","unresolved":false,"context_lines":[{"line_number":1123,"context_line":"    return IMPL.message_get(context, message_id)"},{"line_number":1124,"context_line":""},{"line_number":1125,"context_line":""},{"line_number":1126,"context_line":"def message_get_all(context):"},{"line_number":1127,"context_line":"    return IMPL.message_get_all(context)"},{"line_number":1128,"context_line":""},{"line_number":1129,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"bab6814e_1cae3d98","line":1126,"range":{"start_line":1126,"start_character":0,"end_line":1126,"end_character":29},"updated":"2016-05-25 16:19:23.000000000","message":"Could we put a docstring in here to match most of the other methods in the file?","commit_id":"d49bb9f03590ae1c4a6f332efc3343094afff9bc"},{"author":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"change_message_id":"18bdcf92f76134c896a60543a5d6875c6589d9ad","unresolved":false,"context_lines":[{"line_number":1123,"context_line":"    return IMPL.message_get(context, message_id)"},{"line_number":1124,"context_line":""},{"line_number":1125,"context_line":""},{"line_number":1126,"context_line":"def message_get_all(context):"},{"line_number":1127,"context_line":"    return IMPL.message_get_all(context)"},{"line_number":1128,"context_line":""},{"line_number":1129,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"5a9d85d2_787db1e6","line":1126,"range":{"start_line":1126,"start_character":0,"end_line":1126,"end_character":29},"in_reply_to":"bab6814e_1cae3d98","updated":"2016-06-21 17:01:36.000000000","message":"Done","commit_id":"d49bb9f03590ae1c4a6f332efc3343094afff9bc"}],"manila/db/migrations/alembic/versions/238720805ce1_add_messages_table.py":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"7d23b405bd2056450f6f2893f5ca195c3272ea93","unresolved":false,"context_lines":[{"line_number":52,"context_line":"        Column(\u0027deleted_at\u0027, DateTime(timezone\u003dFalse)),"},{"line_number":53,"context_line":"        Column(\u0027deleted\u0027, String(36)),"},{"line_number":54,"context_line":"        Column(\u0027expires_at\u0027, DateTime(timezone\u003dFalse)),"},{"line_number":55,"context_line":"        mysql_engine\u003d\u0027InnoDB\u0027"},{"line_number":56,"context_line":"    )"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"    messages.create()"}],"source_content_type":"text/x-python","patch_set":14,"id":"3aaa91ec_e2684bf7","line":55,"range":{"start_line":55,"start_character":28,"end_line":55,"end_character":29},"updated":"2016-06-26 20:22:38.000000000","message":"mysql_charset\u003d\u0027utf8\u0027,","commit_id":"022317f9a877fdad3c08a654d4b6fd141d580213"},{"author":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"change_message_id":"f548678655af899e043ccc0ed3faa13a6ec43a1d","unresolved":false,"context_lines":[{"line_number":52,"context_line":"        Column(\u0027deleted_at\u0027, DateTime(timezone\u003dFalse)),"},{"line_number":53,"context_line":"        Column(\u0027deleted\u0027, String(36)),"},{"line_number":54,"context_line":"        Column(\u0027expires_at\u0027, DateTime(timezone\u003dFalse)),"},{"line_number":55,"context_line":"        mysql_engine\u003d\u0027InnoDB\u0027"},{"line_number":56,"context_line":"    )"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"    messages.create()"}],"source_content_type":"text/x-python","patch_set":14,"id":"3aaa91ec_7fc4893f","line":55,"range":{"start_line":55,"start_character":28,"end_line":55,"end_character":29},"in_reply_to":"3aaa91ec_e2684bf7","updated":"2016-06-28 16:46:02.000000000","message":"Done","commit_id":"022317f9a877fdad3c08a654d4b6fd141d580213"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"8948513a53eef2607e4ac29039d5c18fef4d01c1","unresolved":false,"context_lines":[{"line_number":13,"context_line":"\"\"\"Add messages table"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Revision ID: 238720805ce1"},{"line_number":16,"context_line":"Revises: 221a83cfd85b"},{"line_number":17,"context_line":"Create Date: 2016-05-06 08:38:55.134095"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"\"\"\""}],"source_content_type":"text/x-python","patch_set":19,"id":"9ad45d7e_839d885b","line":16,"range":{"start_line":16,"start_character":9,"end_line":16,"end_character":21},"updated":"2016-08-10 04:07:52.000000000","message":"e8ea58723178","commit_id":"b29a4c56d0dae045e2a56f15a859c8f33588c30d"},{"author":{"_account_id":7582,"name":"Jan Provaznik","email":"jan.provaznik@gmail.com","username":"jprovazn"},"change_message_id":"2cc96846145f7643d65204a8679fdb01fa3dfb65","unresolved":false,"context_lines":[{"line_number":13,"context_line":"\"\"\"Add messages table"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Revision ID: 238720805ce1"},{"line_number":16,"context_line":"Revises: 221a83cfd85b"},{"line_number":17,"context_line":"Create Date: 2016-05-06 08:38:55.134095"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"\"\"\""}],"source_content_type":"text/x-python","patch_set":19,"id":"3a461143_cb08aa30","line":16,"range":{"start_line":16,"start_character":9,"end_line":16,"end_character":21},"in_reply_to":"9ad45d7e_839d885b","updated":"2017-02-06 09:52:00.000000000","message":"Done","commit_id":"b29a4c56d0dae045e2a56f15a859c8f33588c30d"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"8948513a53eef2607e4ac29039d5c18fef4d01c1","unresolved":false,"context_lines":[{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Revision ID: 238720805ce1"},{"line_number":16,"context_line":"Revises: 221a83cfd85b"},{"line_number":17,"context_line":"Create Date: 2016-05-06 08:38:55.134095"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"\"\"\""},{"line_number":20,"context_line":""}],"source_content_type":"text/x-python","patch_set":19,"id":"9ad45d7e_43ba70c1","line":17,"range":{"start_line":17,"start_character":13,"end_line":17,"end_character":23},"updated":"2016-08-10 04:07:52.000000000","message":"Probably we shouldn\u0027t pay heed to this.. but this is old :D","commit_id":"b29a4c56d0dae045e2a56f15a859c8f33588c30d"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"8948513a53eef2607e4ac29039d5c18fef4d01c1","unresolved":false,"context_lines":[{"line_number":20,"context_line":""},{"line_number":21,"context_line":"# revision identifiers, used by Alembic."},{"line_number":22,"context_line":"revision \u003d \u0027238720805ce1\u0027"},{"line_number":23,"context_line":"down_revision \u003d \u0027fdfb668d19e1\u0027"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"from alembic import op"},{"line_number":26,"context_line":"from oslo_log import log"}],"source_content_type":"text/x-python","patch_set":19,"id":"9ad45d7e_a39a4c61","line":23,"range":{"start_line":23,"start_character":0,"end_line":23,"end_character":30},"updated":"2016-08-10 04:07:52.000000000","message":"Current down_revision: e8ea58723178","commit_id":"b29a4c56d0dae045e2a56f15a859c8f33588c30d"},{"author":{"_account_id":7582,"name":"Jan Provaznik","email":"jan.provaznik@gmail.com","username":"jprovazn"},"change_message_id":"2cc96846145f7643d65204a8679fdb01fa3dfb65","unresolved":false,"context_lines":[{"line_number":20,"context_line":""},{"line_number":21,"context_line":"# revision identifiers, used by Alembic."},{"line_number":22,"context_line":"revision \u003d \u0027238720805ce1\u0027"},{"line_number":23,"context_line":"down_revision \u003d \u0027fdfb668d19e1\u0027"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"from alembic import op"},{"line_number":26,"context_line":"from oslo_log import log"}],"source_content_type":"text/x-python","patch_set":19,"id":"3a461143_0b039210","line":23,"range":{"start_line":23,"start_character":0,"end_line":23,"end_character":30},"in_reply_to":"9ad45d7e_a39a4c61","updated":"2017-02-06 09:52:00.000000000","message":"Done","commit_id":"b29a4c56d0dae045e2a56f15a859c8f33588c30d"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"967c182c6cd752cda3225b14b474d44fe61a2ebf","unresolved":false,"context_lines":[{"line_number":39,"context_line":"        \u0027messages\u0027,"},{"line_number":40,"context_line":"        meta,"},{"line_number":41,"context_line":"        Column(\u0027id\u0027, String(36), primary_key\u003dTrue, nullable\u003dFalse),"},{"line_number":42,"context_line":"        Column(\u0027project_id\u0027, String(36), nullable\u003dFalse),"},{"line_number":43,"context_line":"        Column(\u0027request_id\u0027, String(255), nullable\u003dTrue),"},{"line_number":44,"context_line":"        Column(\u0027resource_type\u0027, String(255)),"},{"line_number":45,"context_line":"        Column(\u0027resource_id\u0027, String(36), nullable\u003dTrue),"}],"source_content_type":"text/x-python","patch_set":53,"id":"3f1d235d_4b11d003","line":42,"range":{"start_line":42,"start_character":0,"end_line":42,"end_character":57},"updated":"2017-07-06 00:04:29.000000000","message":"Column length needs to be 255","commit_id":"7dd7ad67382709649717f4e4ef4fad36c6328849"},{"author":{"_account_id":7582,"name":"Jan Provaznik","email":"jan.provaznik@gmail.com","username":"jprovazn"},"change_message_id":"2132bc01dc45b1e5c0031ddd0104bd49d1b09e29","unresolved":false,"context_lines":[{"line_number":39,"context_line":"        \u0027messages\u0027,"},{"line_number":40,"context_line":"        meta,"},{"line_number":41,"context_line":"        Column(\u0027id\u0027, String(36), primary_key\u003dTrue, nullable\u003dFalse),"},{"line_number":42,"context_line":"        Column(\u0027project_id\u0027, String(36), nullable\u003dFalse),"},{"line_number":43,"context_line":"        Column(\u0027request_id\u0027, String(255), nullable\u003dTrue),"},{"line_number":44,"context_line":"        Column(\u0027resource_type\u0027, String(255)),"},{"line_number":45,"context_line":"        Column(\u0027resource_id\u0027, String(36), nullable\u003dTrue),"}],"source_content_type":"text/x-python","patch_set":53,"id":"3f1d235d_7bc45340","line":42,"range":{"start_line":42,"start_character":0,"end_line":42,"end_character":57},"in_reply_to":"3f1d235d_4b11d003","updated":"2017-07-06 06:24:10.000000000","message":"Done","commit_id":"7dd7ad67382709649717f4e4ef4fad36c6328849"}],"manila/db/sqlalchemy/api.py":[{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"57318532c41d52e03b2e1e385bc62ae9cbe2ab69","unresolved":false,"context_lines":[{"line_number":3813,"context_line":"        \u0027event_id\u0027: message[\u0027event_id\u0027],"},{"line_number":3814,"context_line":"        \u0027message_level\u0027: message[\u0027message_level\u0027],"},{"line_number":3815,"context_line":"        \u0027created_at\u0027: message[\u0027created_at\u0027],"},{"line_number":3816,"context_line":"        \u0027expires_at\u0027: message.get(\u0027expires_at\u0027),"},{"line_number":3817,"context_line":"    }"},{"line_number":3818,"context_line":""},{"line_number":3819,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"bab6814e_5eb71286","line":3816,"range":{"start_line":3816,"start_character":47,"end_line":3816,"end_character":48},"updated":"2016-05-19 08:47:26.000000000","message":"Does we need \u0027updated_at\u0027?","commit_id":"ec3ab15d86728128b41df67c14753d8bd04c8101"},{"author":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"change_message_id":"be9008d430494f24994de8406574f50c43a9a5b0","unresolved":false,"context_lines":[{"line_number":3813,"context_line":"        \u0027event_id\u0027: message[\u0027event_id\u0027],"},{"line_number":3814,"context_line":"        \u0027message_level\u0027: message[\u0027message_level\u0027],"},{"line_number":3815,"context_line":"        \u0027created_at\u0027: message[\u0027created_at\u0027],"},{"line_number":3816,"context_line":"        \u0027expires_at\u0027: message.get(\u0027expires_at\u0027),"},{"line_number":3817,"context_line":"    }"},{"line_number":3818,"context_line":""},{"line_number":3819,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"bab6814e_38e2a62f","line":3816,"range":{"start_line":3816,"start_character":47,"end_line":3816,"end_character":48},"in_reply_to":"bab6814e_5eb71286","updated":"2016-05-22 15:52:18.000000000","message":"Would probably be a good idea to at least return it from this layer.","commit_id":"ec3ab15d86728128b41df67c14753d8bd04c8101"},{"author":{"_account_id":7872,"name":"Marc Koderer","email":"marc@koderer.com","username":"mkoderer"},"change_message_id":"f09b5da6462854da4e6898a70df60938a946acb3","unresolved":false,"context_lines":[{"line_number":3855,"context_line":""},{"line_number":3856,"context_line":""},{"line_number":3857,"context_line":"@require_admin_context"},{"line_number":3858,"context_line":"def message_destroy(context, message):"},{"line_number":3859,"context_line":"    session \u003d get_session()"},{"line_number":3860,"context_line":"    with session.begin():"},{"line_number":3861,"context_line":"        (model_query(context, models.Message, session\u003dsession)."},{"line_number":3862,"context_line":"            filter_by(id\u003dmessage.get(\u0027id\u0027)).soft_delete())"}],"source_content_type":"text/x-python","patch_set":7,"id":"dab17558_676129d3","line":3862,"range":{"start_line":3858,"start_character":0,"end_line":3862,"end_character":58},"updated":"2016-05-17 09:22:44.000000000","message":"Not covered by unit tests","commit_id":"ec3ab15d86728128b41df67c14753d8bd04c8101"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"3f801def41fdafe0034bb7e1a89c1e52575ed791","unresolved":false,"context_lines":[{"line_number":3855,"context_line":""},{"line_number":3856,"context_line":""},{"line_number":3857,"context_line":"@require_admin_context"},{"line_number":3858,"context_line":"def message_destroy(context, message):"},{"line_number":3859,"context_line":"    session \u003d get_session()"},{"line_number":3860,"context_line":"    with session.begin():"},{"line_number":3861,"context_line":"        (model_query(context, models.Message, session\u003dsession)."},{"line_number":3862,"context_line":"            filter_by(id\u003dmessage.get(\u0027id\u0027)).soft_delete())"}],"source_content_type":"text/x-python","patch_set":7,"id":"bab6814e_6db3a44d","line":3862,"range":{"start_line":3858,"start_character":0,"end_line":3862,"end_character":58},"in_reply_to":"bab6814e_381586e4","updated":"2016-05-23 16:45:02.000000000","message":"Do exactly the same things that are done in existing checks - write/read data to change DB parts.","commit_id":"ec3ab15d86728128b41df67c14753d8bd04c8101"},{"author":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"change_message_id":"be9008d430494f24994de8406574f50c43a9a5b0","unresolved":false,"context_lines":[{"line_number":3855,"context_line":""},{"line_number":3856,"context_line":""},{"line_number":3857,"context_line":"@require_admin_context"},{"line_number":3858,"context_line":"def message_destroy(context, message):"},{"line_number":3859,"context_line":"    session \u003d get_session()"},{"line_number":3860,"context_line":"    with session.begin():"},{"line_number":3861,"context_line":"        (model_query(context, models.Message, session\u003dsession)."},{"line_number":3862,"context_line":"            filter_by(id\u003dmessage.get(\u0027id\u0027)).soft_delete())"}],"source_content_type":"text/x-python","patch_set":7,"id":"bab6814e_381586e4","line":3862,"range":{"start_line":3858,"start_character":0,"end_line":3862,"end_character":58},"in_reply_to":"bab6814e_58359844","updated":"2016-05-22 15:52:18.000000000","message":"Added a test for this function. Valeriy, I\u0027m not sure what to test in the data_checks. I\u0027m just adding a table, the other tested migrations have data changes involved. I could check that the table exists after upgrade and doesnt after downgrade but that doesnt seem valuable.","commit_id":"ec3ab15d86728128b41df67c14753d8bd04c8101"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"31419aedb8310d31cc1304a1a57f56aa6a1b3ece","unresolved":false,"context_lines":[{"line_number":3855,"context_line":""},{"line_number":3856,"context_line":""},{"line_number":3857,"context_line":"@require_admin_context"},{"line_number":3858,"context_line":"def message_destroy(context, message):"},{"line_number":3859,"context_line":"    session \u003d get_session()"},{"line_number":3860,"context_line":"    with session.begin():"},{"line_number":3861,"context_line":"        (model_query(context, models.Message, session\u003dsession)."},{"line_number":3862,"context_line":"            filter_by(id\u003dmessage.get(\u0027id\u0027)).soft_delete())"}],"source_content_type":"text/x-python","patch_set":7,"id":"bab6814e_58359844","line":3862,"range":{"start_line":3858,"start_character":0,"end_line":3862,"end_character":58},"in_reply_to":"dab17558_676129d3","updated":"2016-05-18 12:49:13.000000000","message":"+1, it should be covered by migration tests as for lots of other DB migrations, see https://github.com/openstack/manila/blob/master/manila/tests/db/migrations/alembic/migrations_data_checks.py","commit_id":"ec3ab15d86728128b41df67c14753d8bd04c8101"},{"author":{"_account_id":17780,"name":"Dustin Schoenbrun","email":"dschoenb@redhat.com","username":"dschoenb"},"change_message_id":"7b7d0ff825108c1caa0a97a0cc30addee1770a14","unresolved":false,"context_lines":[{"line_number":3832,"context_line":""},{"line_number":3833,"context_line":"@require_context"},{"line_number":3834,"context_line":"def message_get_all(context):"},{"line_number":3835,"context_line":"    \"\"\"Fetch all messages for the contexts project.\"\"\""},{"line_number":3836,"context_line":"    messages \u003d models.Message"},{"line_number":3837,"context_line":"    query \u003d (model_query(context,"},{"line_number":3838,"context_line":"                         messages,"}],"source_content_type":"text/x-python","patch_set":10,"id":"bab6814e_dc915548","line":3835,"range":{"start_line":3835,"start_character":34,"end_line":3835,"end_character":42},"updated":"2016-05-25 16:19:23.000000000","message":"s/contents/content\u0027s","commit_id":"d49bb9f03590ae1c4a6f332efc3343094afff9bc"},{"author":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"change_message_id":"18bdcf92f76134c896a60543a5d6875c6589d9ad","unresolved":false,"context_lines":[{"line_number":3832,"context_line":""},{"line_number":3833,"context_line":"@require_context"},{"line_number":3834,"context_line":"def message_get_all(context):"},{"line_number":3835,"context_line":"    \"\"\"Fetch all messages for the contexts project.\"\"\""},{"line_number":3836,"context_line":"    messages \u003d models.Message"},{"line_number":3837,"context_line":"    query \u003d (model_query(context,"},{"line_number":3838,"context_line":"                         messages,"}],"source_content_type":"text/x-python","patch_set":10,"id":"5a9d85d2_f8508160","line":3835,"range":{"start_line":3835,"start_character":34,"end_line":3835,"end_character":42},"in_reply_to":"bab6814e_dc915548","updated":"2016-06-21 17:01:36.000000000","message":"Done","commit_id":"d49bb9f03590ae1c4a6f332efc3343094afff9bc"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"7d23b405bd2056450f6f2893f5ca195c3272ea93","unresolved":false,"context_lines":[{"line_number":3851,"context_line":"    session \u003d get_session()"},{"line_number":3852,"context_line":"    with session.begin():"},{"line_number":3853,"context_line":"        session.add(message_ref)"},{"line_number":3854,"context_line":"    return message_ref"},{"line_number":3855,"context_line":""},{"line_number":3856,"context_line":""},{"line_number":3857,"context_line":"@require_admin_context"}],"source_content_type":"text/x-python","patch_set":14,"id":"3aaa91ec_426cbf07","line":3854,"range":{"start_line":3854,"start_character":11,"end_line":3854,"end_character":22},"updated":"2016-06-26 20:22:38.000000000","message":"Why not translate this?","commit_id":"022317f9a877fdad3c08a654d4b6fd141d580213"},{"author":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"change_message_id":"f548678655af899e043ccc0ed3faa13a6ec43a1d","unresolved":false,"context_lines":[{"line_number":3851,"context_line":"    session \u003d get_session()"},{"line_number":3852,"context_line":"    with session.begin():"},{"line_number":3853,"context_line":"        session.add(message_ref)"},{"line_number":3854,"context_line":"    return message_ref"},{"line_number":3855,"context_line":""},{"line_number":3856,"context_line":""},{"line_number":3857,"context_line":"@require_admin_context"}],"source_content_type":"text/x-python","patch_set":14,"id":"3aaa91ec_eaf27905","line":3854,"range":{"start_line":3854,"start_character":11,"end_line":3854,"end_character":22},"in_reply_to":"3aaa91ec_426cbf07","updated":"2016-06-28 16:46:02.000000000","message":"Done","commit_id":"022317f9a877fdad3c08a654d4b6fd141d580213"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"8948513a53eef2607e4ac29039d5c18fef4d01c1","unresolved":false,"context_lines":[{"line_number":3755,"context_line":"def message_create(context, values):"},{"line_number":3756,"context_line":"    message_ref \u003d models.Message()"},{"line_number":3757,"context_line":"    if not values.get(\u0027id\u0027):"},{"line_number":3758,"context_line":"        values[\u0027id\u0027] \u003d str(uuid.uuid4())"},{"line_number":3759,"context_line":"    message_ref.update(values)"},{"line_number":3760,"context_line":""},{"line_number":3761,"context_line":"    session \u003d get_session()"}],"source_content_type":"text/x-python","patch_set":19,"id":"9ad45d7e_a336cc4f","line":3758,"range":{"start_line":3758,"start_character":8,"end_line":3758,"end_character":40},"updated":"2016-08-10 04:07:52.000000000","message":"copy.deep_copy values at the beginning of the method..","commit_id":"b29a4c56d0dae045e2a56f15a859c8f33588c30d"},{"author":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"change_message_id":"c29590d196255d47b777c260442417288ece9794","unresolved":false,"context_lines":[{"line_number":3755,"context_line":"def message_create(context, values):"},{"line_number":3756,"context_line":"    message_ref \u003d models.Message()"},{"line_number":3757,"context_line":"    if not values.get(\u0027id\u0027):"},{"line_number":3758,"context_line":"        values[\u0027id\u0027] \u003d str(uuid.uuid4())"},{"line_number":3759,"context_line":"    message_ref.update(values)"},{"line_number":3760,"context_line":""},{"line_number":3761,"context_line":"    session \u003d get_session()"}],"source_content_type":"text/x-python","patch_set":19,"id":"9ad45d7e_306c6007","line":3758,"range":{"start_line":3758,"start_character":8,"end_line":3758,"end_character":40},"in_reply_to":"9ad45d7e_a336cc4f","updated":"2016-08-12 01:06:12.000000000","message":"+1","commit_id":"b29a4c56d0dae045e2a56f15a859c8f33588c30d"},{"author":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"change_message_id":"c29590d196255d47b777c260442417288ece9794","unresolved":false,"context_lines":[{"line_number":3755,"context_line":"def message_create(context, values):"},{"line_number":3756,"context_line":"    message_ref \u003d models.Message()"},{"line_number":3757,"context_line":"    if not values.get(\u0027id\u0027):"},{"line_number":3758,"context_line":"        values[\u0027id\u0027] \u003d str(uuid.uuid4())"},{"line_number":3759,"context_line":"    message_ref.update(values)"},{"line_number":3760,"context_line":""},{"line_number":3761,"context_line":"    session \u003d get_session()"}],"source_content_type":"text/x-python","patch_set":19,"id":"9ad45d7e_f065a81d","line":3758,"range":{"start_line":3758,"start_character":8,"end_line":3758,"end_character":40},"in_reply_to":"9ad45d7e_a336cc4f","updated":"2016-08-12 01:06:12.000000000","message":"+1","commit_id":"b29a4c56d0dae045e2a56f15a859c8f33588c30d"},{"author":{"_account_id":7582,"name":"Jan Provaznik","email":"jan.provaznik@gmail.com","username":"jprovazn"},"change_message_id":"2cc96846145f7643d65204a8679fdb01fa3dfb65","unresolved":false,"context_lines":[{"line_number":3755,"context_line":"def message_create(context, values):"},{"line_number":3756,"context_line":"    message_ref \u003d models.Message()"},{"line_number":3757,"context_line":"    if not values.get(\u0027id\u0027):"},{"line_number":3758,"context_line":"        values[\u0027id\u0027] \u003d str(uuid.uuid4())"},{"line_number":3759,"context_line":"    message_ref.update(values)"},{"line_number":3760,"context_line":""},{"line_number":3761,"context_line":"    session \u003d get_session()"}],"source_content_type":"text/x-python","patch_set":19,"id":"3a461143_a66713e9","line":3758,"range":{"start_line":3758,"start_character":8,"end_line":3758,"end_character":40},"in_reply_to":"9ad45d7e_a336cc4f","updated":"2017-02-06 09:52:00.000000000","message":"Done","commit_id":"b29a4c56d0dae045e2a56f15a859c8f33588c30d"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"71db9d25bfafc7e0eee30f888424c9bf80236f77","unresolved":false,"context_lines":[{"line_number":4556,"context_line":"    query \u003d (model_query(context,"},{"line_number":4557,"context_line":"                         messages,"},{"line_number":4558,"context_line":"                         read_deleted\u003d\"no\","},{"line_number":4559,"context_line":"                         project_only\u003d\"yes\"))"},{"line_number":4560,"context_line":"    results \u003d query.all()"},{"line_number":4561,"context_line":"    return _translate_messages(results)"},{"line_number":4562,"context_line":""}],"source_content_type":"text/x-python","patch_set":29,"id":"bff0334d_134493b6","line":4559,"range":{"start_line":4559,"start_character":44,"end_line":4559,"end_character":45},"updated":"2017-04-07 00:57:59.000000000","message":"redundant parenthesis","commit_id":"6f6adbef86fc54b788245ab35b5bb2a8ddf6b7f0"},{"author":{"_account_id":7582,"name":"Jan Provaznik","email":"jan.provaznik@gmail.com","username":"jprovazn"},"change_message_id":"4df792286a238b6cbb6cba901c4c4d7ad098e6bd","unresolved":false,"context_lines":[{"line_number":4556,"context_line":"    query \u003d (model_query(context,"},{"line_number":4557,"context_line":"                         messages,"},{"line_number":4558,"context_line":"                         read_deleted\u003d\"no\","},{"line_number":4559,"context_line":"                         project_only\u003d\"yes\"))"},{"line_number":4560,"context_line":"    results \u003d query.all()"},{"line_number":4561,"context_line":"    return _translate_messages(results)"},{"line_number":4562,"context_line":""}],"source_content_type":"text/x-python","patch_set":29,"id":"5ff73747_4ff8eb47","line":4559,"range":{"start_line":4559,"start_character":44,"end_line":4559,"end_character":45},"in_reply_to":"bff0334d_134493b6","updated":"2017-05-03 08:21:18.000000000","message":"Done","commit_id":"6f6adbef86fc54b788245ab35b5bb2a8ddf6b7f0"},{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"6028453d025f9a854c7c303c9ffb697777f52558","unresolved":false,"context_lines":[{"line_number":4538,"context_line":"        \u0027updated_at\u0027: message[\u0027updated_at\u0027],"},{"line_number":4539,"context_line":"        \u0027expires_at\u0027: message.get(\u0027expires_at\u0027),"},{"line_number":4540,"context_line":"        \u0027deleted\u0027: message.get(\u0027deleted\u0027),"},{"line_number":4541,"context_line":"        \u0027detail_id\u0027: message.get(\u0027detail_id\u0027)"},{"line_number":4542,"context_line":"    }"},{"line_number":4543,"context_line":""},{"line_number":4544,"context_line":""}],"source_content_type":"text/x-python","patch_set":34,"id":"ff0f0b1f_515a6482","line":4541,"range":{"start_line":4541,"start_character":44,"end_line":4541,"end_character":45},"updated":"2017-05-25 10:48:35.000000000","message":"Add \u0027,\u0027 in the end.","commit_id":"75506e75c318916ed4420bae49b414ef91809626"},{"author":{"_account_id":7582,"name":"Jan Provaznik","email":"jan.provaznik@gmail.com","username":"jprovazn"},"change_message_id":"9ea39493c5b55c6a657bed1a59601bd487c8c5f0","unresolved":false,"context_lines":[{"line_number":4538,"context_line":"        \u0027updated_at\u0027: message[\u0027updated_at\u0027],"},{"line_number":4539,"context_line":"        \u0027expires_at\u0027: message.get(\u0027expires_at\u0027),"},{"line_number":4540,"context_line":"        \u0027deleted\u0027: message.get(\u0027deleted\u0027),"},{"line_number":4541,"context_line":"        \u0027detail_id\u0027: message.get(\u0027detail_id\u0027)"},{"line_number":4542,"context_line":"    }"},{"line_number":4543,"context_line":""},{"line_number":4544,"context_line":""}],"source_content_type":"text/x-python","patch_set":34,"id":"df140735_b546d720","line":4541,"range":{"start_line":4541,"start_character":44,"end_line":4541,"end_character":45},"in_reply_to":"ff0f0b1f_515a6482","updated":"2017-06-01 08:18:38.000000000","message":"Done","commit_id":"75506e75c318916ed4420bae49b414ef91809626"}],"manila/db/sqlalchemy/models.py":[{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"57318532c41d52e03b2e1e385bc62ae9cbe2ab69","unresolved":false,"context_lines":[{"line_number":985,"context_line":"    # Info/Error/Warning."},{"line_number":986,"context_line":"    message_level \u003d Column(String(255), nullable\u003dFalse)"},{"line_number":987,"context_line":"    request_id \u003d Column(String(255), nullable\u003dTrue)"},{"line_number":988,"context_line":"    resource_type \u003d Column(String(255))"},{"line_number":989,"context_line":"    # The uuid of the related resource."},{"line_number":990,"context_line":"    resource_uuid \u003d Column(String(36), nullable\u003dTrue)"},{"line_number":991,"context_line":"    # Operation specific event ID."}],"source_content_type":"text/x-python","patch_set":7,"id":"bab6814e_b91618ef","line":988,"range":{"start_line":988,"start_character":4,"end_line":988,"end_character":39},"updated":"2016-05-19 08:47:26.000000000","message":"In code line 46: Column(\u0027resource_type\u0027, String(36), define the \u0027resource_type\u0027 string len is 36, not match current len 36.\n\nlink:\nhttps://review.openstack.org/#/c/313549/7/manila/db/migrations/alembic/versions/238720805ce1_add_messages_table.py","commit_id":"ec3ab15d86728128b41df67c14753d8bd04c8101"},{"author":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"change_message_id":"be9008d430494f24994de8406574f50c43a9a5b0","unresolved":false,"context_lines":[{"line_number":985,"context_line":"    # Info/Error/Warning."},{"line_number":986,"context_line":"    message_level \u003d Column(String(255), nullable\u003dFalse)"},{"line_number":987,"context_line":"    request_id \u003d Column(String(255), nullable\u003dTrue)"},{"line_number":988,"context_line":"    resource_type \u003d Column(String(255))"},{"line_number":989,"context_line":"    # The uuid of the related resource."},{"line_number":990,"context_line":"    resource_uuid \u003d Column(String(36), nullable\u003dTrue)"},{"line_number":991,"context_line":"    # Operation specific event ID."}],"source_content_type":"text/x-python","patch_set":7,"id":"bab6814e_78538e17","line":988,"range":{"start_line":988,"start_character":4,"end_line":988,"end_character":39},"in_reply_to":"bab6814e_b91618ef","updated":"2016-05-22 15:52:18.000000000","message":"thank you, i had them backwards","commit_id":"ec3ab15d86728128b41df67c14753d8bd04c8101"},{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"57318532c41d52e03b2e1e385bc62ae9cbe2ab69","unresolved":false,"context_lines":[{"line_number":987,"context_line":"    request_id \u003d Column(String(255), nullable\u003dTrue)"},{"line_number":988,"context_line":"    resource_type \u003d Column(String(255))"},{"line_number":989,"context_line":"    # The uuid of the related resource."},{"line_number":990,"context_line":"    resource_uuid \u003d Column(String(36), nullable\u003dTrue)"},{"line_number":991,"context_line":"    # Operation specific event ID."},{"line_number":992,"context_line":"    event_id \u003d Column(String(255), nullable\u003dFalse)"},{"line_number":993,"context_line":"    # After this time the message may no longer exist"}],"source_content_type":"text/x-python","patch_set":7,"id":"bab6814e_f908a0db","line":990,"range":{"start_line":990,"start_character":27,"end_line":990,"end_character":37},"updated":"2016-05-19 08:47:26.000000000","message":"In code line  47: Column(\u0027resource_uuid\u0027, String(255), nullable\u003dTrue), define the resource_uuid string len is 255, not match current len 36.\n\nlink:\nhttps://review.openstack.org/#/c/313549/7/manila/db/migrations/alembic/versions/238720805ce1_add_messages_table.py","commit_id":"ec3ab15d86728128b41df67c14753d8bd04c8101"},{"author":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"change_message_id":"be9008d430494f24994de8406574f50c43a9a5b0","unresolved":false,"context_lines":[{"line_number":987,"context_line":"    request_id \u003d Column(String(255), nullable\u003dTrue)"},{"line_number":988,"context_line":"    resource_type \u003d Column(String(255))"},{"line_number":989,"context_line":"    # The uuid of the related resource."},{"line_number":990,"context_line":"    resource_uuid \u003d Column(String(36), nullable\u003dTrue)"},{"line_number":991,"context_line":"    # Operation specific event ID."},{"line_number":992,"context_line":"    event_id \u003d Column(String(255), nullable\u003dFalse)"},{"line_number":993,"context_line":"    # After this time the message may no longer exist"}],"source_content_type":"text/x-python","patch_set":7,"id":"bab6814e_d856fa04","line":990,"range":{"start_line":990,"start_character":27,"end_line":990,"end_character":37},"in_reply_to":"bab6814e_f908a0db","updated":"2016-05-22 15:52:18.000000000","message":"Done","commit_id":"ec3ab15d86728128b41df67c14753d8bd04c8101"},{"author":{"_account_id":17780,"name":"Dustin Schoenbrun","email":"dschoenb@redhat.com","username":"dschoenb"},"change_message_id":"7b7d0ff825108c1caa0a97a0cc30addee1770a14","unresolved":false,"context_lines":[{"line_number":978,"context_line":""},{"line_number":979,"context_line":""},{"line_number":980,"context_line":"class Message(BASE, ManilaBase):"},{"line_number":981,"context_line":"    \"\"\"Represents a message\"\"\""},{"line_number":982,"context_line":"    __tablename__ \u003d \u0027messages\u0027"},{"line_number":983,"context_line":"    id \u003d Column(String(36), primary_key\u003dTrue, nullable\u003dFalse)"},{"line_number":984,"context_line":"    project_id \u003d Column(String(36), nullable\u003dFalse)"}],"source_content_type":"text/x-python","patch_set":10,"id":"bab6814e_7ccae950","line":981,"range":{"start_line":981,"start_character":0,"end_line":981,"end_character":30},"updated":"2016-05-25 16:19:23.000000000","message":"We should be a little more verbose here, at least mentioning at a high level what a user message is and does. Something like \"Represents a user message that is returned to an API end user providing additional information about an operation\"","commit_id":"d49bb9f03590ae1c4a6f332efc3343094afff9bc"},{"author":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"change_message_id":"18bdcf92f76134c896a60543a5d6875c6589d9ad","unresolved":false,"context_lines":[{"line_number":978,"context_line":""},{"line_number":979,"context_line":""},{"line_number":980,"context_line":"class Message(BASE, ManilaBase):"},{"line_number":981,"context_line":"    \"\"\"Represents a message\"\"\""},{"line_number":982,"context_line":"    __tablename__ \u003d \u0027messages\u0027"},{"line_number":983,"context_line":"    id \u003d Column(String(36), primary_key\u003dTrue, nullable\u003dFalse)"},{"line_number":984,"context_line":"    project_id \u003d Column(String(36), nullable\u003dFalse)"}],"source_content_type":"text/x-python","patch_set":10,"id":"5a9d85d2_387e89ae","line":981,"range":{"start_line":981,"start_character":0,"end_line":981,"end_character":30},"in_reply_to":"bab6814e_7ccae950","updated":"2016-06-21 17:01:36.000000000","message":"Done","commit_id":"d49bb9f03590ae1c4a6f332efc3343094afff9bc"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"8948513a53eef2607e4ac29039d5c18fef4d01c1","unresolved":false,"context_lines":[{"line_number":989,"context_line":"    project_id \u003d Column(String(36), nullable\u003dFalse)"},{"line_number":990,"context_line":"    # Info/Error/Warning."},{"line_number":991,"context_line":"    message_level \u003d Column(String(255), nullable\u003dFalse)"},{"line_number":992,"context_line":"    request_id \u003d Column(String(255), nullable\u003dTrue)"},{"line_number":993,"context_line":"    resource_type \u003d Column(String(255))"},{"line_number":994,"context_line":"    # The uuid of the related resource."},{"line_number":995,"context_line":"    resource_uuid \u003d Column(String(36), nullable\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":19,"id":"9ad45d7e_838748d6","line":992,"range":{"start_line":992,"start_character":37,"end_line":992,"end_character":51},"updated":"2016-08-10 04:07:52.000000000","message":"question: I see that you\u0027re creating the message with context.request_id as your request_id.. so, this should always exist, so why is it nullable?","commit_id":"b29a4c56d0dae045e2a56f15a859c8f33588c30d"},{"author":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"change_message_id":"c29590d196255d47b777c260442417288ece9794","unresolved":false,"context_lines":[{"line_number":989,"context_line":"    project_id \u003d Column(String(36), nullable\u003dFalse)"},{"line_number":990,"context_line":"    # Info/Error/Warning."},{"line_number":991,"context_line":"    message_level \u003d Column(String(255), nullable\u003dFalse)"},{"line_number":992,"context_line":"    request_id \u003d Column(String(255), nullable\u003dTrue)"},{"line_number":993,"context_line":"    resource_type \u003d Column(String(255))"},{"line_number":994,"context_line":"    # The uuid of the related resource."},{"line_number":995,"context_line":"    resource_uuid \u003d Column(String(36), nullable\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":19,"id":"9ad45d7e_704258af","line":992,"range":{"start_line":992,"start_character":37,"end_line":992,"end_character":51},"in_reply_to":"9ad45d7e_838748d6","updated":"2016-08-12 01:06:12.000000000","message":"It\u0027s possible that a message has nothing to do with a request in the future. Consider the case of reaping shares or something.","commit_id":"b29a4c56d0dae045e2a56f15a859c8f33588c30d"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"78e6d35c4b91a5c505b1843e83eaf935944acad1","unresolved":false,"context_lines":[{"line_number":1185,"context_line":"    \"\"\""},{"line_number":1186,"context_line":"    __tablename__ \u003d \u0027messages\u0027"},{"line_number":1187,"context_line":"    id \u003d Column(String(36), primary_key\u003dTrue, nullable\u003dFalse)"},{"line_number":1188,"context_line":"    project_id \u003d Column(String(36), nullable\u003dFalse)"},{"line_number":1189,"context_line":"    # Info/Error/Warning."},{"line_number":1190,"context_line":"    message_level \u003d Column(String(255), nullable\u003dFalse)"},{"line_number":1191,"context_line":"    request_id \u003d Column(String(255), nullable\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":46,"id":"3f1d235d_01e234d6","line":1188,"range":{"start_line":1188,"start_character":0,"end_line":1188,"end_character":51},"updated":"2017-06-30 01:05:59.000000000","message":"the default length of project_id is 255 in other models","commit_id":"5e7569362eda31222f3623e9a4d8da5d8721846c"},{"author":{"_account_id":7582,"name":"Jan Provaznik","email":"jan.provaznik@gmail.com","username":"jprovazn"},"change_message_id":"a36256dbd72967fd87ed4f7ff9217d3cadaa805b","unresolved":false,"context_lines":[{"line_number":1185,"context_line":"    \"\"\""},{"line_number":1186,"context_line":"    __tablename__ \u003d \u0027messages\u0027"},{"line_number":1187,"context_line":"    id \u003d Column(String(36), primary_key\u003dTrue, nullable\u003dFalse)"},{"line_number":1188,"context_line":"    project_id \u003d Column(String(36), nullable\u003dFalse)"},{"line_number":1189,"context_line":"    # Info/Error/Warning."},{"line_number":1190,"context_line":"    message_level \u003d Column(String(255), nullable\u003dFalse)"},{"line_number":1191,"context_line":"    request_id \u003d Column(String(255), nullable\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":46,"id":"3f1d235d_1305dfc2","line":1188,"range":{"start_line":1188,"start_character":0,"end_line":1188,"end_character":51},"in_reply_to":"3f1d235d_01e234d6","updated":"2017-06-30 09:42:59.000000000","message":"Done","commit_id":"5e7569362eda31222f3623e9a4d8da5d8721846c"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"fd72f41ba3e21d666c48179990c2fbce8b2517ab","unresolved":false,"context_lines":[{"line_number":1193,"context_line":"    # The uuid of the related resource."},{"line_number":1194,"context_line":"    resource_id \u003d Column(String(36), nullable\u003dTrue)"},{"line_number":1195,"context_line":"    # Operation specific action."},{"line_number":1196,"context_line":"    action_id \u003d Column(String(10), nullable\u003dFalse)"},{"line_number":1197,"context_line":"    # After this time the message may no longer exist."},{"line_number":1198,"context_line":"    expires_at \u003d Column(DateTime, nullable\u003dTrue)"},{"line_number":1199,"context_line":"    # Message detail."}],"source_content_type":"text/x-python","patch_set":56,"id":"3f1d235d_0b67bc53","line":1196,"range":{"start_line":1196,"start_character":4,"end_line":1196,"end_character":50},"updated":"2017-07-11 13:27:28.000000000","message":"Contradicts spec: https://specs.openstack.org/openstack/manila-specs/specs/pike/user-messages.html#rest-api-impact","commit_id":"11c9aa60b0752318ce4ddaf0bd3edbd3a30048e6"},{"author":{"_account_id":7582,"name":"Jan Provaznik","email":"jan.provaznik@gmail.com","username":"jprovazn"},"change_message_id":"c970381c1860f5b2f9df3dc2110866efa88bcadc","unresolved":false,"context_lines":[{"line_number":1193,"context_line":"    # The uuid of the related resource."},{"line_number":1194,"context_line":"    resource_id \u003d Column(String(36), nullable\u003dTrue)"},{"line_number":1195,"context_line":"    # Operation specific action."},{"line_number":1196,"context_line":"    action_id \u003d Column(String(10), nullable\u003dFalse)"},{"line_number":1197,"context_line":"    # After this time the message may no longer exist."},{"line_number":1198,"context_line":"    expires_at \u003d Column(DateTime, nullable\u003dTrue)"},{"line_number":1199,"context_line":"    # Message detail."}],"source_content_type":"text/x-python","patch_set":56,"id":"3f1d235d_cc80a149","line":1196,"range":{"start_line":1196,"start_character":4,"end_line":1196,"end_character":50},"in_reply_to":"3f1d235d_0b67bc53","updated":"2017-07-12 07:27:30.000000000","message":"Added a comment where this id is mapped to message.","commit_id":"11c9aa60b0752318ce4ddaf0bd3edbd3a30048e6"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"fd72f41ba3e21d666c48179990c2fbce8b2517ab","unresolved":false,"context_lines":[{"line_number":1197,"context_line":"    # After this time the message may no longer exist."},{"line_number":1198,"context_line":"    expires_at \u003d Column(DateTime, nullable\u003dTrue)"},{"line_number":1199,"context_line":"    # Message detail."},{"line_number":1200,"context_line":"    detail_id \u003d Column(String(10), nullable\u003dTrue)"},{"line_number":1201,"context_line":"    deleted \u003d Column(String(36), default\u003d\u0027False\u0027)"},{"line_number":1202,"context_line":""},{"line_number":1203,"context_line":""}],"source_content_type":"text/x-python","patch_set":56,"id":"3f1d235d_4b85b4ce","line":1200,"range":{"start_line":1200,"start_character":4,"end_line":1200,"end_character":49},"updated":"2017-07-11 13:27:28.000000000","message":"Contradicts spec: https://specs.openstack.org/openstack/manila-specs/specs/pike/user-messages.html#rest-api-impact","commit_id":"11c9aa60b0752318ce4ddaf0bd3edbd3a30048e6"},{"author":{"_account_id":7582,"name":"Jan Provaznik","email":"jan.provaznik@gmail.com","username":"jprovazn"},"change_message_id":"c970381c1860f5b2f9df3dc2110866efa88bcadc","unresolved":false,"context_lines":[{"line_number":1197,"context_line":"    # After this time the message may no longer exist."},{"line_number":1198,"context_line":"    expires_at \u003d Column(DateTime, nullable\u003dTrue)"},{"line_number":1199,"context_line":"    # Message detail."},{"line_number":1200,"context_line":"    detail_id \u003d Column(String(10), nullable\u003dTrue)"},{"line_number":1201,"context_line":"    deleted \u003d Column(String(36), default\u003d\u0027False\u0027)"},{"line_number":1202,"context_line":""},{"line_number":1203,"context_line":""}],"source_content_type":"text/x-python","patch_set":56,"id":"3f1d235d_8cd74950","line":1200,"range":{"start_line":1200,"start_character":4,"end_line":1200,"end_character":49},"in_reply_to":"3f1d235d_4b85b4ce","updated":"2017-07-12 07:27:30.000000000","message":"Added a comment where this id is mapped to message.","commit_id":"11c9aa60b0752318ce4ddaf0bd3edbd3a30048e6"}],"manila/message/api.py":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"8f4a99466c01596446177d3edc94eebce8092d03","unresolved":false,"context_lines":[{"line_number":25,"context_line":""},{"line_number":26,"context_line":"messages_opts \u003d ["},{"line_number":27,"context_line":"    cfg.IntOpt(\u0027message_ttl\u0027, default\u003d2592000,"},{"line_number":28,"context_line":"               help\u003d\u0027message minimum life in seconds.\u0027)]"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"CONF \u003d cfg.CONF"},{"line_number":31,"context_line":"CONF.register_opts(messages_opts)"}],"source_content_type":"text/x-python","patch_set":5,"id":"dab17558_7fe11bd0","line":28,"range":{"start_line":28,"start_character":21,"end_line":28,"end_character":22},"updated":"2016-05-09 15:42:57.000000000","message":"M","commit_id":"3826f5bfa3c48cf760e8067df7dcfe708815bbf7"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"31419aedb8310d31cc1304a1a57f56aa6a1b3ece","unresolved":false,"context_lines":[{"line_number":37,"context_line":"    \"\"\"API for handling user messages.\"\"\""},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"    def create(self, context, event_id, project_id, resource_type\u003dNone,"},{"line_number":40,"context_line":"               resource_uuid\u003dNone, level\u003d\"ERROR\"):"},{"line_number":41,"context_line":"        \"\"\"Create a message with the specified information.\"\"\""},{"line_number":42,"context_line":"        LOG.info(_LI(\"Creating message record for request_id \u003d %s\"),"},{"line_number":43,"context_line":"                 context.request_id)"}],"source_content_type":"text/x-python","patch_set":7,"id":"bab6814e_78c17c80","line":40,"range":{"start_line":40,"start_character":41,"end_line":40,"end_character":48},"updated":"2016-05-18 12:49:13.000000000","message":"I suggest to use single point of definition for message levels and use it from there.","commit_id":"ec3ab15d86728128b41df67c14753d8bd04c8101"},{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"57318532c41d52e03b2e1e385bc62ae9cbe2ab69","unresolved":false,"context_lines":[{"line_number":37,"context_line":"    \"\"\"API for handling user messages.\"\"\""},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"    def create(self, context, event_id, project_id, resource_type\u003dNone,"},{"line_number":40,"context_line":"               resource_uuid\u003dNone, level\u003d\"ERROR\"):"},{"line_number":41,"context_line":"        \"\"\"Create a message with the specified information.\"\"\""},{"line_number":42,"context_line":"        LOG.info(_LI(\"Creating message record for request_id \u003d %s\"),"},{"line_number":43,"context_line":"                 context.request_id)"}],"source_content_type":"text/x-python","patch_set":7,"id":"bab6814e_d9c5dc3c","line":40,"range":{"start_line":40,"start_character":41,"end_line":40,"end_character":48},"in_reply_to":"bab6814e_78c17c80","updated":"2016-05-19 08:47:26.000000000","message":"+1 It will be easy to add a level or change a level.","commit_id":"ec3ab15d86728128b41df67c14753d8bd04c8101"},{"author":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"change_message_id":"be9008d430494f24994de8406574f50c43a9a5b0","unresolved":false,"context_lines":[{"line_number":37,"context_line":"    \"\"\"API for handling user messages.\"\"\""},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"    def create(self, context, event_id, project_id, resource_type\u003dNone,"},{"line_number":40,"context_line":"               resource_uuid\u003dNone, level\u003d\"ERROR\"):"},{"line_number":41,"context_line":"        \"\"\"Create a message with the specified information.\"\"\""},{"line_number":42,"context_line":"        LOG.info(_LI(\"Creating message record for request_id \u003d %s\"),"},{"line_number":43,"context_line":"                 context.request_id)"}],"source_content_type":"text/x-python","patch_set":7,"id":"bab6814e_58f16acc","line":40,"range":{"start_line":40,"start_character":41,"end_line":40,"end_character":48},"in_reply_to":"bab6814e_78c17c80","updated":"2016-05-22 15:52:18.000000000","message":"Done","commit_id":"ec3ab15d86728128b41df67c14753d8bd04c8101"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"31419aedb8310d31cc1304a1a57f56aa6a1b3ece","unresolved":false,"context_lines":[{"line_number":47,"context_line":"        expires_at \u003d (timeutils.utcnow() + datetime.timedelta("},{"line_number":48,"context_line":"                      seconds\u003dCONF.message_ttl))"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"        message_record \u003d {\u0027project_id\u0027: project_id,"},{"line_number":51,"context_line":"                          \u0027request_id\u0027: context.request_id,"},{"line_number":52,"context_line":"                          \u0027resource_type\u0027: resource_type,"},{"line_number":53,"context_line":"                          \u0027resource_uuid\u0027: resource_uuid,"},{"line_number":54,"context_line":"                          \u0027event_id\u0027: event_id,"},{"line_number":55,"context_line":"                          \u0027message_level\u0027: level,"},{"line_number":56,"context_line":"                          \u0027expires_at\u0027: expires_at}"},{"line_number":57,"context_line":"        try:"},{"line_number":58,"context_line":"            self.db.message_create(context, message_record)"},{"line_number":59,"context_line":"        except Exception:"}],"source_content_type":"text/x-python","patch_set":7,"id":"bab6814e_78485c2e","line":56,"range":{"start_line":50,"start_character":8,"end_line":56,"end_character":51},"updated":"2016-05-18 12:49:13.000000000","message":"http://docs.openstack.org/developer/hacking/#dictionaries-lists","commit_id":"ec3ab15d86728128b41df67c14753d8bd04c8101"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"31419aedb8310d31cc1304a1a57f56aa6a1b3ece","unresolved":false,"context_lines":[{"line_number":56,"context_line":"                          \u0027expires_at\u0027: expires_at}"},{"line_number":57,"context_line":"        try:"},{"line_number":58,"context_line":"            self.db.message_create(context, message_record)"},{"line_number":59,"context_line":"        except Exception:"},{"line_number":60,"context_line":"            LOG.exception(_LE(\"Failed to create message record \""},{"line_number":61,"context_line":"                              \"for request_id %s\"), context.request_id)"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"    def get(self, context, id):"},{"line_number":64,"context_line":"        \"\"\"Return message with the specified id.\"\"\""}],"source_content_type":"text/x-python","patch_set":7,"id":"bab6814e_d80348b7","line":61,"range":{"start_line":59,"start_character":8,"end_line":61,"end_character":71},"updated":"2016-05-18 12:49:13.000000000","message":"Why exception is suppressed? And, even not logged? Moreover, you suppress all the exceptions!","commit_id":"ec3ab15d86728128b41df67c14753d8bd04c8101"},{"author":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"change_message_id":"be9008d430494f24994de8406574f50c43a9a5b0","unresolved":false,"context_lines":[{"line_number":56,"context_line":"                          \u0027expires_at\u0027: expires_at}"},{"line_number":57,"context_line":"        try:"},{"line_number":58,"context_line":"            self.db.message_create(context, message_record)"},{"line_number":59,"context_line":"        except Exception:"},{"line_number":60,"context_line":"            LOG.exception(_LE(\"Failed to create message record \""},{"line_number":61,"context_line":"                              \"for request_id %s\"), context.request_id)"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"    def get(self, context, id):"},{"line_number":64,"context_line":"        \"\"\"Return message with the specified id.\"\"\""}],"source_content_type":"text/x-python","patch_set":7,"id":"bab6814e_98d63226","line":61,"range":{"start_line":59,"start_character":8,"end_line":61,"end_character":71},"in_reply_to":"bab6814e_d80348b7","updated":"2016-05-22 15:52:18.000000000","message":"It is logged, by log.exception which logs the traceback. We swallow the exceptions because we do not want message creation (or failure to create) to have any effect on the actual workflow.","commit_id":"ec3ab15d86728128b41df67c14753d8bd04c8101"},{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"346fdc95cc55945eea88abd9f21ff77de5e589c8","unresolved":false,"context_lines":[{"line_number":43,"context_line":"        LOG.info(_LI(\"Creating message record for request_id \u003d %s\"),"},{"line_number":44,"context_line":"                 context.request_id)"},{"line_number":45,"context_line":"        # Ensure valid event_id"},{"line_number":46,"context_line":"        defined_messages.get_message_text(event_id)"},{"line_number":47,"context_line":"        # Updates expiry time for message as per message_ttl config."},{"line_number":48,"context_line":"        expires_at \u003d (timeutils.utcnow() + datetime.timedelta("},{"line_number":49,"context_line":"                      seconds\u003dCONF.message_ttl))"}],"source_content_type":"text/x-python","patch_set":19,"id":"dada55a8_a2d5461c","line":46,"range":{"start_line":46,"start_character":8,"end_line":46,"end_character":51},"updated":"2016-07-25 09:09:32.000000000","message":"If the event_id is not exist in event_id_message_map, it will just return \"KeyError: \u0027test_event_id\u0027\". Does we need to add log description and make the error reason more clearly for user?","commit_id":"b29a4c56d0dae045e2a56f15a859c8f33588c30d"},{"author":{"_account_id":7582,"name":"Jan Provaznik","email":"jan.provaznik@gmail.com","username":"jprovazn"},"change_message_id":"2cc96846145f7643d65204a8679fdb01fa3dfb65","unresolved":false,"context_lines":[{"line_number":43,"context_line":"        LOG.info(_LI(\"Creating message record for request_id \u003d %s\"),"},{"line_number":44,"context_line":"                 context.request_id)"},{"line_number":45,"context_line":"        # Ensure valid event_id"},{"line_number":46,"context_line":"        defined_messages.get_message_text(event_id)"},{"line_number":47,"context_line":"        # Updates expiry time for message as per message_ttl config."},{"line_number":48,"context_line":"        expires_at \u003d (timeutils.utcnow() + datetime.timedelta("},{"line_number":49,"context_line":"                      seconds\u003dCONF.message_ttl))"}],"source_content_type":"text/x-python","patch_set":19,"id":"1a430d35_359fa651","line":46,"range":{"start_line":46,"start_character":8,"end_line":46,"end_character":51},"in_reply_to":"3ac371cc_7f4688c0","updated":"2017-02-06 09:52:00.000000000","message":"Done","commit_id":"b29a4c56d0dae045e2a56f15a859c8f33588c30d"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"a7c0b423906cfbd0c2e89923c2a4514409e65eae","unresolved":false,"context_lines":[{"line_number":43,"context_line":"        LOG.info(_LI(\"Creating message record for request_id \u003d %s\"),"},{"line_number":44,"context_line":"                 context.request_id)"},{"line_number":45,"context_line":"        # Ensure valid event_id"},{"line_number":46,"context_line":"        defined_messages.get_message_text(event_id)"},{"line_number":47,"context_line":"        # Updates expiry time for message as per message_ttl config."},{"line_number":48,"context_line":"        expires_at \u003d (timeutils.utcnow() + datetime.timedelta("},{"line_number":49,"context_line":"                      seconds\u003dCONF.message_ttl))"}],"source_content_type":"text/x-python","patch_set":19,"id":"3ac371cc_7f4688c0","line":46,"range":{"start_line":46,"start_character":8,"end_line":46,"end_character":51},"in_reply_to":"9ad45d7e_3043c06d","updated":"2016-08-14 21:50:22.000000000","message":"Will handle the KeyError","commit_id":"b29a4c56d0dae045e2a56f15a859c8f33588c30d"},{"author":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"change_message_id":"c29590d196255d47b777c260442417288ece9794","unresolved":false,"context_lines":[{"line_number":43,"context_line":"        LOG.info(_LI(\"Creating message record for request_id \u003d %s\"),"},{"line_number":44,"context_line":"                 context.request_id)"},{"line_number":45,"context_line":"        # Ensure valid event_id"},{"line_number":46,"context_line":"        defined_messages.get_message_text(event_id)"},{"line_number":47,"context_line":"        # Updates expiry time for message as per message_ttl config."},{"line_number":48,"context_line":"        expires_at \u003d (timeutils.utcnow() + datetime.timedelta("},{"line_number":49,"context_line":"                      seconds\u003dCONF.message_ttl))"}],"source_content_type":"text/x-python","patch_set":19,"id":"9ad45d7e_3043c06d","line":46,"range":{"start_line":46,"start_character":8,"end_line":46,"end_character":51},"in_reply_to":"dada55a8_a2d5461c","updated":"2016-08-12 01:06:12.000000000","message":"It should return the default user message","commit_id":"b29a4c56d0dae045e2a56f15a859c8f33588c30d"},{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"346fdc95cc55945eea88abd9f21ff77de5e589c8","unresolved":false,"context_lines":[{"line_number":64,"context_line":"                              \"for request_id %s\"), context.request_id)"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"    def get(self, context, id):"},{"line_number":67,"context_line":"        \"\"\"Return message with the specified id.\"\"\""},{"line_number":68,"context_line":"        return self.db.message_get(context, id)"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"    def get_all(self, context):"}],"source_content_type":"text/x-python","patch_set":19,"id":"dada55a8_3f0cd141","line":67,"range":{"start_line":67,"start_character":44,"end_line":67,"end_character":47},"updated":"2016-07-25 09:09:32.000000000","message":"s/id/message id","commit_id":"b29a4c56d0dae045e2a56f15a859c8f33588c30d"},{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"346fdc95cc55945eea88abd9f21ff77de5e589c8","unresolved":false,"context_lines":[{"line_number":73,"context_line":"        return messages"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"    def delete(self, context, id):"},{"line_number":76,"context_line":"        \"\"\"Delete message with the specified id.\"\"\""},{"line_number":77,"context_line":"        ctx \u003d context.elevated()"},{"line_number":78,"context_line":"        return self.db.message_destroy(ctx, id)"}],"source_content_type":"text/x-python","patch_set":19,"id":"dada55a8_1f074d1e","line":76,"range":{"start_line":76,"start_character":45,"end_line":76,"end_character":47},"updated":"2016-07-25 09:09:32.000000000","message":"s/id/message id","commit_id":"b29a4c56d0dae045e2a56f15a859c8f33588c30d"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"71db9d25bfafc7e0eee30f888424c9bf80236f77","unresolved":false,"context_lines":[{"line_number":27,"context_line":""},{"line_number":28,"context_line":"messages_opts \u003d ["},{"line_number":29,"context_line":"    cfg.IntOpt(\u0027message_ttl\u0027, default\u003d2592000,"},{"line_number":30,"context_line":"               help\u003d\u0027Message minimum life in seconds.\u0027)]"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"CONF \u003d cfg.CONF"},{"line_number":33,"context_line":"CONF.register_opts(messages_opts)"}],"source_content_type":"text/x-python","patch_set":29,"id":"bff0334d_b3d167d0","line":30,"range":{"start_line":30,"start_character":55,"end_line":30,"end_character":56},"updated":"2017-04-07 00:57:59.000000000","message":"add trailing comma, close ] in the next line.","commit_id":"6f6adbef86fc54b788245ab35b5bb2a8ddf6b7f0"},{"author":{"_account_id":7582,"name":"Jan Provaznik","email":"jan.provaznik@gmail.com","username":"jprovazn"},"change_message_id":"4df792286a238b6cbb6cba901c4c4d7ad098e6bd","unresolved":false,"context_lines":[{"line_number":27,"context_line":""},{"line_number":28,"context_line":"messages_opts \u003d ["},{"line_number":29,"context_line":"    cfg.IntOpt(\u0027message_ttl\u0027, default\u003d2592000,"},{"line_number":30,"context_line":"               help\u003d\u0027Message minimum life in seconds.\u0027)]"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"CONF \u003d cfg.CONF"},{"line_number":33,"context_line":"CONF.register_opts(messages_opts)"}],"source_content_type":"text/x-python","patch_set":29,"id":"5ff73747_afb3ef97","line":30,"range":{"start_line":30,"start_character":55,"end_line":30,"end_character":56},"in_reply_to":"bff0334d_b3d167d0","updated":"2017-05-03 08:21:18.000000000","message":"Done","commit_id":"6f6adbef86fc54b788245ab35b5bb2a8ddf6b7f0"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"71db9d25bfafc7e0eee30f888424c9bf80236f77","unresolved":false,"context_lines":[{"line_number":78,"context_line":""},{"line_number":79,"context_line":"    def delete(self, context, id):"},{"line_number":80,"context_line":"        \"\"\"Delete message with the specified message id.\"\"\""},{"line_number":81,"context_line":"        ctx \u003d context.elevated()"},{"line_number":82,"context_line":"        return self.db.message_destroy(ctx, id)"}],"source_content_type":"text/x-python","patch_set":29,"id":"bff0334d_33fe7737","line":81,"range":{"start_line":81,"start_character":8,"end_line":81,"end_character":32},"updated":"2017-04-07 00:57:59.000000000","message":"why use an elevated context?","commit_id":"6f6adbef86fc54b788245ab35b5bb2a8ddf6b7f0"},{"author":{"_account_id":7582,"name":"Jan Provaznik","email":"jan.provaznik@gmail.com","username":"jprovazn"},"change_message_id":"4df792286a238b6cbb6cba901c4c4d7ad098e6bd","unresolved":false,"context_lines":[{"line_number":78,"context_line":""},{"line_number":79,"context_line":"    def delete(self, context, id):"},{"line_number":80,"context_line":"        \"\"\"Delete message with the specified message id.\"\"\""},{"line_number":81,"context_line":"        ctx \u003d context.elevated()"},{"line_number":82,"context_line":"        return self.db.message_destroy(ctx, id)"}],"source_content_type":"text/x-python","patch_set":29,"id":"5ff73747_0f6ae3ec","line":81,"range":{"start_line":81,"start_character":8,"end_line":81,"end_character":32},"in_reply_to":"bff0334d_33fe7737","updated":"2017-05-03 08:21:18.000000000","message":"Done","commit_id":"6f6adbef86fc54b788245ab35b5bb2a8ddf6b7f0"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"967c182c6cd752cda3225b14b474d44fe61a2ebf","unresolved":false,"context_lines":[{"line_number":25,"context_line":""},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"messages_opts \u003d ["},{"line_number":28,"context_line":"    cfg.IntOpt(\u0027message_ttl\u0027, default\u003d2592000,"},{"line_number":29,"context_line":"               help\u003d\u0027Message minimum life in seconds.\u0027),"},{"line_number":30,"context_line":"]"},{"line_number":31,"context_line":""}],"source_content_type":"text/x-python","patch_set":53,"id":"3f1d235d_ebff7ca8","line":28,"range":{"start_line":28,"start_character":16,"end_line":28,"end_character":27},"updated":"2017-07-06 00:04:29.000000000","message":"please mention this in the reno...","commit_id":"7dd7ad67382709649717f4e4ef4fad36c6328849"},{"author":{"_account_id":7582,"name":"Jan Provaznik","email":"jan.provaznik@gmail.com","username":"jprovazn"},"change_message_id":"2132bc01dc45b1e5c0031ddd0104bd49d1b09e29","unresolved":false,"context_lines":[{"line_number":25,"context_line":""},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"messages_opts \u003d ["},{"line_number":28,"context_line":"    cfg.IntOpt(\u0027message_ttl\u0027, default\u003d2592000,"},{"line_number":29,"context_line":"               help\u003d\u0027Message minimum life in seconds.\u0027),"},{"line_number":30,"context_line":"]"},{"line_number":31,"context_line":""}],"source_content_type":"text/x-python","patch_set":53,"id":"3f1d235d_e67faa63","line":28,"range":{"start_line":28,"start_character":16,"end_line":28,"end_character":27},"in_reply_to":"3f1d235d_ebff7ca8","updated":"2017-07-06 06:24:10.000000000","message":"Done","commit_id":"7dd7ad67382709649717f4e4ef4fad36c6328849"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"ff2ea827f31f4aac9213b9c4129ddc9bf1e9b243","unresolved":false,"context_lines":[{"line_number":62,"context_line":"        }"},{"line_number":63,"context_line":"        try:"},{"line_number":64,"context_line":"            self.db.message_create(context, message_record)"},{"line_number":65,"context_line":"        except Exception:"},{"line_number":66,"context_line":"            LOG.exception(\"Failed to create message record \""},{"line_number":67,"context_line":"                          \"for request_id %s\" % context.request_id)"},{"line_number":68,"context_line":""}],"source_content_type":"text/x-python","patch_set":56,"id":"3f1d235d_ce2f9286","line":65,"range":{"start_line":65,"start_character":8,"end_line":65,"end_character":25},"updated":"2017-07-11 13:33:00.000000000","message":"1) Too broad exception catch. \n2) Error message is hidden.\n3) why error is not raised?","commit_id":"11c9aa60b0752318ce4ddaf0bd3edbd3a30048e6"},{"author":{"_account_id":7582,"name":"Jan Provaznik","email":"jan.provaznik@gmail.com","username":"jprovazn"},"change_message_id":"c130e577fd2d3e392fd120fab16f0e1ea90a9536","unresolved":false,"context_lines":[{"line_number":62,"context_line":"        }"},{"line_number":63,"context_line":"        try:"},{"line_number":64,"context_line":"            self.db.message_create(context, message_record)"},{"line_number":65,"context_line":"        except Exception:"},{"line_number":66,"context_line":"            LOG.exception(\"Failed to create message record \""},{"line_number":67,"context_line":"                          \"for request_id %s\" % context.request_id)"},{"line_number":68,"context_line":""}],"source_content_type":"text/x-python","patch_set":56,"id":"1f1a1f67_8cfaed3f","line":65,"range":{"start_line":65,"start_character":8,"end_line":65,"end_character":25},"in_reply_to":"1f1a1f67_e86f3790","updated":"2017-07-13 10:46:38.000000000","message":"LOG.exception logs the exception too, not only the \"Failed to create message record for request_id\" if you mean this.","commit_id":"11c9aa60b0752318ce4ddaf0bd3edbd3a30048e6"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"464aaf259c020297514862173dc3dfbbf26574bb","unresolved":false,"context_lines":[{"line_number":62,"context_line":"        }"},{"line_number":63,"context_line":"        try:"},{"line_number":64,"context_line":"            self.db.message_create(context, message_record)"},{"line_number":65,"context_line":"        except Exception:"},{"line_number":66,"context_line":"            LOG.exception(\"Failed to create message record \""},{"line_number":67,"context_line":"                          \"for request_id %s\" % context.request_id)"},{"line_number":68,"context_line":""}],"source_content_type":"text/x-python","patch_set":56,"id":"1f1a1f67_e86f3790","line":65,"range":{"start_line":65,"start_character":8,"end_line":65,"end_character":25},"in_reply_to":"3f1d235d_4ceb71db","updated":"2017-07-12 11:08:23.000000000","message":"Why then error message is hidden? It is easy to fail all the time just because of \"typo\" in code.","commit_id":"11c9aa60b0752318ce4ddaf0bd3edbd3a30048e6"},{"author":{"_account_id":7582,"name":"Jan Provaznik","email":"jan.provaznik@gmail.com","username":"jprovazn"},"change_message_id":"c970381c1860f5b2f9df3dc2110866efa88bcadc","unresolved":false,"context_lines":[{"line_number":62,"context_line":"        }"},{"line_number":63,"context_line":"        try:"},{"line_number":64,"context_line":"            self.db.message_create(context, message_record)"},{"line_number":65,"context_line":"        except Exception:"},{"line_number":66,"context_line":"            LOG.exception(\"Failed to create message record \""},{"line_number":67,"context_line":"                          \"for request_id %s\" % context.request_id)"},{"line_number":68,"context_line":""}],"source_content_type":"text/x-python","patch_set":56,"id":"3f1d235d_4ceb71db","line":65,"range":{"start_line":65,"start_character":8,"end_line":65,"end_character":25},"in_reply_to":"3f1d235d_bb123d57","updated":"2017-07-12 07:27:30.000000000","message":"Exactly, the message creation should be unobtrusive for the code flow, even if it fails for any reason.","commit_id":"11c9aa60b0752318ce4ddaf0bd3edbd3a30048e6"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"a641746097820baacdca29b68dd405b77772e6ed","unresolved":false,"context_lines":[{"line_number":62,"context_line":"        }"},{"line_number":63,"context_line":"        try:"},{"line_number":64,"context_line":"            self.db.message_create(context, message_record)"},{"line_number":65,"context_line":"        except Exception:"},{"line_number":66,"context_line":"            LOG.exception(\"Failed to create message record \""},{"line_number":67,"context_line":"                          \"for request_id %s\" % context.request_id)"},{"line_number":68,"context_line":""}],"source_content_type":"text/x-python","patch_set":56,"id":"3f1d235d_bb123d57","line":65,"range":{"start_line":65,"start_character":8,"end_line":65,"end_character":25},"in_reply_to":"3f1d235d_ce2f9286","updated":"2017-07-12 03:35:52.000000000","message":"i suppose its not critical to create a user message..","commit_id":"11c9aa60b0752318ce4ddaf0bd3edbd3a30048e6"}],"manila/message/defined_messages.py":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"8f4a99466c01596446177d3edc94eebce8092d03","unresolved":false,"context_lines":[{"line_number":31,"context_line":"    EventIds.UNKNOWN_ERROR: _(\"An unknown error occurred.\"),"},{"line_number":32,"context_line":"    EventIds.UNABLE_TO_ALLOCATE: _("},{"line_number":33,"context_line":"        \"No storage could be allocated for this share request. You may be able\""},{"line_number":34,"context_line":"        \" to try another size or volume type.\"),"},{"line_number":35,"context_line":"}"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"dab17558_3fef93b1","line":34,"range":{"start_line":34,"start_character":33,"end_line":34,"end_character":39},"updated":"2016-05-09 15:42:57.000000000","message":"share","commit_id":"3826f5bfa3c48cf760e8067df7dcfe708815bbf7"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"31419aedb8310d31cc1304a1a57f56aa6a1b3ece","unresolved":false,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"class EventIds(object):"},{"line_number":26,"context_line":"    UNKNOWN_ERROR \u003d \u0027SHARE_000001\u0027"},{"line_number":27,"context_line":"    UNABLE_TO_ALLOCATE \u003d \u0027SHARE_000002\u0027"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"event_id_message_map \u003d {"}],"source_content_type":"text/x-python","patch_set":7,"id":"bab6814e_58abd889","line":27,"range":{"start_line":26,"start_character":4,"end_line":27,"end_character":39},"updated":"2016-05-18 12:49:13.000000000","message":"better to make constants as \"properties\" to avoid possible redefinition.","commit_id":"ec3ab15d86728128b41df67c14753d8bd04c8101"},{"author":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"change_message_id":"be9008d430494f24994de8406574f50c43a9a5b0","unresolved":false,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"class EventIds(object):"},{"line_number":26,"context_line":"    UNKNOWN_ERROR \u003d \u0027SHARE_000001\u0027"},{"line_number":27,"context_line":"    UNABLE_TO_ALLOCATE \u003d \u0027SHARE_000002\u0027"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"event_id_message_map \u003d {"}],"source_content_type":"text/x-python","patch_set":7,"id":"bab6814e_b8adf69c","line":27,"range":{"start_line":26,"start_character":4,"end_line":27,"end_character":39},"in_reply_to":"bab6814e_58abd889","updated":"2016-05-22 15:52:18.000000000","message":"I think that would end up very verbose. Instead, I am going to override the __setattr__ function to not allow changing values.","commit_id":"ec3ab15d86728128b41df67c14753d8bd04c8101"},{"author":{"_account_id":11865,"name":"Clinton Knight","email":"cknight@netapp.com","username":"cknight"},"change_message_id":"d57030b92022ce3d295c8f09fe01f7bb70813a5c","unresolved":false,"context_lines":[{"line_number":36,"context_line":"event_id_message_map \u003d {"},{"line_number":37,"context_line":"    EventIds.UNKNOWN_ERROR: _(\"An unknown error occurred.\"),"},{"line_number":38,"context_line":"    EventIds.UNABLE_TO_ALLOCATE: _("},{"line_number":39,"context_line":"        \"No storage could be allocated for this share request. You may be able\""},{"line_number":40,"context_line":"        \" to try another size or share type.\"),"},{"line_number":41,"context_line":"}"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":""}],"source_content_type":"text/x-python","patch_set":19,"id":"9ad45d7e_d7a2e899","line":40,"range":{"start_line":39,"start_character":63,"end_line":40,"end_character":29},"updated":"2016-08-12 18:34:38.000000000","message":"This isn\u0027t strictly true.  You can *always* try another size.  The difference is that another request might work.  Perhaps a tweak like:\n\n\"No storage could be allocated for this share request.  Trying again with a different size or share type may succeed.\"","commit_id":"b29a4c56d0dae045e2a56f15a859c8f33588c30d"},{"author":{"_account_id":7582,"name":"Jan Provaznik","email":"jan.provaznik@gmail.com","username":"jprovazn"},"change_message_id":"2cc96846145f7643d65204a8679fdb01fa3dfb65","unresolved":false,"context_lines":[{"line_number":36,"context_line":"event_id_message_map \u003d {"},{"line_number":37,"context_line":"    EventIds.UNKNOWN_ERROR: _(\"An unknown error occurred.\"),"},{"line_number":38,"context_line":"    EventIds.UNABLE_TO_ALLOCATE: _("},{"line_number":39,"context_line":"        \"No storage could be allocated for this share request. You may be able\""},{"line_number":40,"context_line":"        \" to try another size or share type.\"),"},{"line_number":41,"context_line":"}"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":""}],"source_content_type":"text/x-python","patch_set":19,"id":"1a430d35_17574a03","line":40,"range":{"start_line":39,"start_character":63,"end_line":40,"end_character":29},"in_reply_to":"9ad45d7e_d7a2e899","updated":"2017-02-06 09:52:00.000000000","message":"Done","commit_id":"b29a4c56d0dae045e2a56f15a859c8f33588c30d"},{"author":{"_account_id":11865,"name":"Clinton Knight","email":"cknight@netapp.com","username":"cknight"},"change_message_id":"d57030b92022ce3d295c8f09fe01f7bb70813a5c","unresolved":false,"context_lines":[{"line_number":41,"context_line":"}"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"def get_message_text(event_id):"},{"line_number":45,"context_line":"    return event_id_message_map[event_id]"}],"source_content_type":"text/x-python","patch_set":19,"id":"9ad45d7e_3716e4a7","line":45,"range":{"start_line":44,"start_character":0,"end_line":45,"end_character":41},"updated":"2016-08-12 18:34:38.000000000","message":"Shouldn\u0027t you catch KeyError and return UNKNOWN_ERROR?","commit_id":"b29a4c56d0dae045e2a56f15a859c8f33588c30d"},{"author":{"_account_id":7582,"name":"Jan Provaznik","email":"jan.provaznik@gmail.com","username":"jprovazn"},"change_message_id":"2cc96846145f7643d65204a8679fdb01fa3dfb65","unresolved":false,"context_lines":[{"line_number":41,"context_line":"}"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"def get_message_text(event_id):"},{"line_number":45,"context_line":"    return event_id_message_map[event_id]"}],"source_content_type":"text/x-python","patch_set":19,"id":"1a430d35_f5b35ee7","line":45,"range":{"start_line":44,"start_character":0,"end_line":45,"end_character":41},"in_reply_to":"3ac371cc_a4675724","updated":"2017-02-06 09:52:00.000000000","message":"Done","commit_id":"b29a4c56d0dae045e2a56f15a859c8f33588c30d"},{"author":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"change_message_id":"81d04c8e1e2483cac276261b345ae692def54e16","unresolved":false,"context_lines":[{"line_number":41,"context_line":"}"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"def get_message_text(event_id):"},{"line_number":45,"context_line":"    return event_id_message_map[event_id]"}],"source_content_type":"text/x-python","patch_set":19,"id":"3ac371cc_a4675724","line":45,"range":{"start_line":44,"start_character":0,"end_line":45,"end_character":41},"in_reply_to":"9ad45d7e_3716e4a7","updated":"2016-08-14 19:51:18.000000000","message":"yes we should, did that in cinder.","commit_id":"b29a4c56d0dae045e2a56f15a859c8f33588c30d"}],"manila/message/message_field.py":[{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"6028453d025f9a854c7c303c9ffb697777f52558","unresolved":false,"context_lines":[{"line_number":39,"context_line":""},{"line_number":40,"context_line":"    # Exception and detail mappings"},{"line_number":41,"context_line":"    EXCEPTION_DETAIL_MAPPINGS \u003d {"},{"line_number":42,"context_line":"        NO_VALID_HOST: [\u0027NoValidHost\u0027]"},{"line_number":43,"context_line":"    }"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":""}],"source_content_type":"text/x-python","patch_set":34,"id":"ff0f0b1f_d1055415","line":42,"range":{"start_line":42,"start_character":37,"end_line":42,"end_character":38},"updated":"2017-05-25 10:48:35.000000000","message":"Add \u0027,\u0027 in the end.","commit_id":"75506e75c318916ed4420bae49b414ef91809626"},{"author":{"_account_id":7582,"name":"Jan Provaznik","email":"jan.provaznik@gmail.com","username":"jprovazn"},"change_message_id":"9ea39493c5b55c6a657bed1a59601bd487c8c5f0","unresolved":false,"context_lines":[{"line_number":39,"context_line":""},{"line_number":40,"context_line":"    # Exception and detail mappings"},{"line_number":41,"context_line":"    EXCEPTION_DETAIL_MAPPINGS \u003d {"},{"line_number":42,"context_line":"        NO_VALID_HOST: [\u0027NoValidHost\u0027]"},{"line_number":43,"context_line":"    }"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":""}],"source_content_type":"text/x-python","patch_set":34,"id":"df140735_75503fd5","line":42,"range":{"start_line":42,"start_character":37,"end_line":42,"end_character":38},"in_reply_to":"ff0f0b1f_d1055415","updated":"2017-06-01 08:18:38.000000000","message":"Done","commit_id":"75506e75c318916ed4420bae49b414ef91809626"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"dc45a404627a6971f095629590c470bbc799ee96","unresolved":false,"context_lines":[{"line_number":10,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":11,"context_line":"#    under the License."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"from oslo_versionedobjects import fields"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"from manila.i18n import _"},{"line_number":16,"context_line":""}],"source_content_type":"text/x-python","patch_set":46,"id":"3f1d235d_2163f01c","line":13,"range":{"start_line":13,"start_character":0,"end_line":13,"end_character":40},"updated":"2017-06-30 01:16:35.000000000","message":"What is the reasoning for using oslo_versionedobjects?","commit_id":"5e7569362eda31222f3623e9a4d8da5d8721846c"},{"author":{"_account_id":7582,"name":"Jan Provaznik","email":"jan.provaznik@gmail.com","username":"jprovazn"},"change_message_id":"a36256dbd72967fd87ed4f7ff9217d3cadaa805b","unresolved":false,"context_lines":[{"line_number":10,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":11,"context_line":"#    under the License."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"from oslo_versionedobjects import fields"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"from manila.i18n import _"},{"line_number":16,"context_line":""}],"source_content_type":"text/x-python","patch_set":46,"id":"3f1d235d_5348f7ca","line":13,"range":{"start_line":13,"start_character":0,"end_line":13,"end_character":40},"in_reply_to":"3f1d235d_2163f01c","updated":"2017-06-30 09:42:59.000000000","message":"I copied this from cinder \"mirror\" patch, but I think we don\u0027t need it (neither in manila nor in cinder).","commit_id":"5e7569362eda31222f3623e9a4d8da5d8721846c"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"b91f3e42b17ca3e8cd5babc7c86944a5f21c93c9","unresolved":false,"context_lines":[{"line_number":27,"context_line":""},{"line_number":28,"context_line":"class Detail(object):"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    UNKNOWN_ERROR \u003d (\u0027001\u0027, _(\u0027An unknown error occurred.\u0027))"},{"line_number":31,"context_line":"    NO_VALID_HOST \u003d (\u0027002\u0027, _(\"No storage could be allocated for this share \""},{"line_number":32,"context_line":"                              \"request. Trying again with a different size \""},{"line_number":33,"context_line":"                              \"or share type may succeed.\"))"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    ALL \u003d (UNKNOWN_ERROR,"},{"line_number":36,"context_line":"           NO_VALID_HOST)"}],"source_content_type":"text/x-python","patch_set":56,"id":"3f1d235d_4b16d457","line":33,"range":{"start_line":30,"start_character":4,"end_line":33,"end_character":60},"updated":"2017-07-11 13:30:32.000000000","message":"These are not expected to be redefined, better to make it read-only. Same for other such attrs.","commit_id":"11c9aa60b0752318ce4ddaf0bd3edbd3a30048e6"}],"manila/message/message_levels.py":[{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"06d244a64706745ede7b0f2649a4a0e742937ff4","unresolved":false,"context_lines":[{"line_number":12,"context_line":""},{"line_number":13,"context_line":"\"\"\"Message level constants.\"\"\""},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"ERROR \u003d \u0027ERROR\u0027"}],"source_content_type":"text/x-python","patch_set":52,"id":"3f1d235d_a8563c29","line":15,"updated":"2017-07-05 14:34:45.000000000","message":"What are other possible message levels?","commit_id":"b584c15b8735cb77cc7d8dd47ed6ce7e4d248396"},{"author":{"_account_id":7582,"name":"Jan Provaznik","email":"jan.provaznik@gmail.com","username":"jprovazn"},"change_message_id":"e2409158da0593053f12323da6329370ccd2f179","unresolved":false,"context_lines":[{"line_number":12,"context_line":""},{"line_number":13,"context_line":"\"\"\"Message level constants.\"\"\""},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"ERROR \u003d \u0027ERROR\u0027"}],"source_content_type":"text/x-python","patch_set":52,"id":"3f1d235d_9ab3bf0a","line":15,"in_reply_to":"3f1d235d_a8563c29","updated":"2017-07-05 17:23:47.000000000","message":"In this patch ERROR is used, other levels can be added in future.","commit_id":"b584c15b8735cb77cc7d8dd47ed6ce7e4d248396"}],"manila/message/resource_types.py":[{"author":{"_account_id":17780,"name":"Dustin Schoenbrun","email":"dschoenb@redhat.com","username":"dschoenb"},"change_message_id":"7b7d0ff825108c1caa0a97a0cc30addee1770a14","unresolved":false,"context_lines":[{"line_number":10,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":11,"context_line":"#    under the License."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"\"\"\"Resource type constants.\"\"\""},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"SHARE \u003d \u0027SHARE\u0027"}],"source_content_type":"text/x-python","patch_set":10,"id":"bab6814e_8b5ab381","line":13,"range":{"start_line":13,"start_character":0,"end_line":13,"end_character":30},"updated":"2016-05-25 16:19:23.000000000","message":"We should expand this so that the doc that is generated has some more information about what this is used for.","commit_id":"d49bb9f03590ae1c4a6f332efc3343094afff9bc"},{"author":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"change_message_id":"18bdcf92f76134c896a60543a5d6875c6589d9ad","unresolved":false,"context_lines":[{"line_number":10,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":11,"context_line":"#    under the License."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"\"\"\"Resource type constants.\"\"\""},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"SHARE \u003d \u0027SHARE\u0027"}],"source_content_type":"text/x-python","patch_set":10,"id":"5a9d85d2_832aae7c","line":13,"range":{"start_line":13,"start_character":0,"end_line":13,"end_character":30},"in_reply_to":"bab6814e_8b5ab381","updated":"2016-06-21 17:01:36.000000000","message":"Done","commit_id":"d49bb9f03590ae1c4a6f332efc3343094afff9bc"}],"manila/scheduler/manager.py":[{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"6028453d025f9a854c7c303c9ffb697777f52558","unresolved":false,"context_lines":[{"line_number":108,"context_line":"        try:"},{"line_number":109,"context_line":"            self.driver.schedule_create_share(context, request_spec,"},{"line_number":110,"context_line":"                                              filter_properties)"},{"line_number":111,"context_line":"        except exception.NoValidHost as ex:"},{"line_number":112,"context_line":"            self._set_share_state_and_notify("},{"line_number":113,"context_line":"                \u0027create_share\u0027, {\u0027status\u0027: constants.STATUS_ERROR},"},{"line_number":114,"context_line":"                context, ex, request_spec,"},{"line_number":115,"context_line":"                message_field.Action.ALLOCATE_HOST)"},{"line_number":116,"context_line":"        except Exception as ex:"},{"line_number":117,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":118,"context_line":"                self._set_share_state_and_notify("},{"line_number":119,"context_line":"                    \u0027create_share\u0027, {\u0027status\u0027: constants.STATUS_ERROR},"},{"line_number":120,"context_line":"                    context, ex, request_spec)"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"    def get_pools(self, context, filters\u003dNone):"},{"line_number":123,"context_line":"        \"\"\"Get active pools from the scheduler\u0027s cache.\"\"\""}],"source_content_type":"text/x-python","patch_set":34,"id":"ff0f0b1f_63c11b54","line":120,"range":{"start_line":111,"start_character":8,"end_line":120,"end_character":46},"updated":"2017-05-25 10:48:35.000000000","message":"Why don\u0027t you combine this code. It has the same action and we can translate detail id by exception.\n\nexcept Exception as ex:\n            with excutils.save_and_reraise_exception():\n                self._set_share_state_and_notify(\n                    \u0027create_share\u0027, {\u0027status\u0027: constants.STATUS_ERROR},\n                    context, ex, request_spec, message_field.Action.ALLOCATE_HOST)","commit_id":"75506e75c318916ed4420bae49b414ef91809626"},{"author":{"_account_id":7582,"name":"Jan Provaznik","email":"jan.provaznik@gmail.com","username":"jprovazn"},"change_message_id":"9ea39493c5b55c6a657bed1a59601bd487c8c5f0","unresolved":false,"context_lines":[{"line_number":108,"context_line":"        try:"},{"line_number":109,"context_line":"            self.driver.schedule_create_share(context, request_spec,"},{"line_number":110,"context_line":"                                              filter_properties)"},{"line_number":111,"context_line":"        except exception.NoValidHost as ex:"},{"line_number":112,"context_line":"            self._set_share_state_and_notify("},{"line_number":113,"context_line":"                \u0027create_share\u0027, {\u0027status\u0027: constants.STATUS_ERROR},"},{"line_number":114,"context_line":"                context, ex, request_spec,"},{"line_number":115,"context_line":"                message_field.Action.ALLOCATE_HOST)"},{"line_number":116,"context_line":"        except Exception as ex:"},{"line_number":117,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":118,"context_line":"                self._set_share_state_and_notify("},{"line_number":119,"context_line":"                    \u0027create_share\u0027, {\u0027status\u0027: constants.STATUS_ERROR},"},{"line_number":120,"context_line":"                    context, ex, request_spec)"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"    def get_pools(self, context, filters\u003dNone):"},{"line_number":123,"context_line":"        \"\"\"Get active pools from the scheduler\u0027s cache.\"\"\""}],"source_content_type":"text/x-python","patch_set":34,"id":"df140735_7a038c10","line":120,"range":{"start_line":111,"start_character":8,"end_line":120,"end_character":46},"in_reply_to":"ff0f0b1f_63c11b54","updated":"2017-06-01 08:18:38.000000000","message":"There are two reasons:\n1) the generic Exception is re-raised (save_and_reraise block), NoValidHost is not, squashing them together would cause the exception is raised always (which might or might not be a problem - but it\u0027s something which can be addressed separately)\n2) message is created only on NoValidHost exception, if action is not passed to _set_share_state_and_notify, then message is not created - the reason is that messages for other exceptions (or at least subset) are created directly by share service.","commit_id":"75506e75c318916ed4420bae49b414ef91809626"}],"manila/tests/api/v2/stubs.py":[{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"31419aedb8310d31cc1304a1a57f56aa6a1b3ece","unresolved":false,"context_lines":[{"line_number":23,"context_line":"def stub_message(id, **kwargs):"},{"line_number":24,"context_line":"    message \u003d {"},{"line_number":25,"context_line":"        \u0027id\u0027: id,"},{"line_number":26,"context_line":"        \u0027event_id\u0027: defined_messages.EventIds.UNABLE_TO_ALLOCATE,"},{"line_number":27,"context_line":"        \u0027message_level\u0027: \"ERROR\","},{"line_number":28,"context_line":"        \u0027request_id\u0027: FAKE_UUID,"},{"line_number":29,"context_line":"        \u0027updated_at\u0027: datetime.datetime(1900, 1, 1, 1, 1, 1,"},{"line_number":30,"context_line":"                                        tzinfo\u003diso8601.iso8601.Utc()),"},{"line_number":31,"context_line":"        \u0027created_at\u0027: datetime.datetime(1900, 1, 1, 1, 1, 1,"},{"line_number":32,"context_line":"                                        tzinfo\u003diso8601.iso8601.Utc()),"},{"line_number":33,"context_line":"        \u0027expires_at\u0027: datetime.datetime(1900, 1, 1, 1, 1, 1,"},{"line_number":34,"context_line":"                                        tzinfo\u003diso8601.iso8601.Utc()),"},{"line_number":35,"context_line":"    }"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    message.update(kwargs)"}],"source_content_type":"text/x-python","patch_set":7,"id":"bab6814e_58d118cd","line":34,"range":{"start_line":26,"start_character":9,"end_line":34,"end_character":70},"updated":"2016-05-18 12:49:13.000000000","message":"Why other attrs absent? Such as \"resource_type\" and \"resource_uuid\"?","commit_id":"ec3ab15d86728128b41df67c14753d8bd04c8101"},{"author":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"change_message_id":"be9008d430494f24994de8406574f50c43a9a5b0","unresolved":false,"context_lines":[{"line_number":23,"context_line":"def stub_message(id, **kwargs):"},{"line_number":24,"context_line":"    message \u003d {"},{"line_number":25,"context_line":"        \u0027id\u0027: id,"},{"line_number":26,"context_line":"        \u0027event_id\u0027: defined_messages.EventIds.UNABLE_TO_ALLOCATE,"},{"line_number":27,"context_line":"        \u0027message_level\u0027: \"ERROR\","},{"line_number":28,"context_line":"        \u0027request_id\u0027: FAKE_UUID,"},{"line_number":29,"context_line":"        \u0027updated_at\u0027: datetime.datetime(1900, 1, 1, 1, 1, 1,"},{"line_number":30,"context_line":"                                        tzinfo\u003diso8601.iso8601.Utc()),"},{"line_number":31,"context_line":"        \u0027created_at\u0027: datetime.datetime(1900, 1, 1, 1, 1, 1,"},{"line_number":32,"context_line":"                                        tzinfo\u003diso8601.iso8601.Utc()),"},{"line_number":33,"context_line":"        \u0027expires_at\u0027: datetime.datetime(1900, 1, 1, 1, 1, 1,"},{"line_number":34,"context_line":"                                        tzinfo\u003diso8601.iso8601.Utc()),"},{"line_number":35,"context_line":"    }"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    message.update(kwargs)"}],"source_content_type":"text/x-python","patch_set":7,"id":"bab6814e_78e38ed9","line":34,"range":{"start_line":26,"start_character":9,"end_line":34,"end_character":70},"in_reply_to":"bab6814e_58d118cd","updated":"2016-05-22 15:52:18.000000000","message":"They may not be there. Added a test for when those values exist, the kwargs will allow setting them.","commit_id":"ec3ab15d86728128b41df67c14753d8bd04c8101"},{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"346fdc95cc55945eea88abd9f21ff77de5e589c8","unresolved":false,"context_lines":[{"line_number":24,"context_line":"    message \u003d {"},{"line_number":25,"context_line":"        \u0027id\u0027: id,"},{"line_number":26,"context_line":"        \u0027event_id\u0027: defined_messages.EventIds.UNABLE_TO_ALLOCATE,"},{"line_number":27,"context_line":"        \u0027message_level\u0027: \"ERROR\","},{"line_number":28,"context_line":"        \u0027request_id\u0027: FAKE_UUID,"},{"line_number":29,"context_line":"        \u0027updated_at\u0027: datetime.datetime(1900, 1, 1, 1, 1, 1,"},{"line_number":30,"context_line":"                                        tzinfo\u003diso8601.iso8601.Utc()),"}],"source_content_type":"text/x-python","patch_set":19,"id":"dada55a8_423f2a25","line":27,"range":{"start_line":27,"start_character":25,"end_line":27,"end_character":32},"updated":"2016-07-25 09:09:32.000000000","message":"Use message_levels.ERROR instead of \"ERROR\"?","commit_id":"b29a4c56d0dae045e2a56f15a859c8f33588c30d"},{"author":{"_account_id":7582,"name":"Jan Provaznik","email":"jan.provaznik@gmail.com","username":"jprovazn"},"change_message_id":"2cc96846145f7643d65204a8679fdb01fa3dfb65","unresolved":false,"context_lines":[{"line_number":24,"context_line":"    message \u003d {"},{"line_number":25,"context_line":"        \u0027id\u0027: id,"},{"line_number":26,"context_line":"        \u0027event_id\u0027: defined_messages.EventIds.UNABLE_TO_ALLOCATE,"},{"line_number":27,"context_line":"        \u0027message_level\u0027: \"ERROR\","},{"line_number":28,"context_line":"        \u0027request_id\u0027: FAKE_UUID,"},{"line_number":29,"context_line":"        \u0027updated_at\u0027: datetime.datetime(1900, 1, 1, 1, 1, 1,"},{"line_number":30,"context_line":"                                        tzinfo\u003diso8601.iso8601.Utc()),"}],"source_content_type":"text/x-python","patch_set":19,"id":"1a430d35_77c7ae45","line":27,"range":{"start_line":27,"start_character":25,"end_line":27,"end_character":32},"in_reply_to":"9ad45d7e_e3dc44e6","updated":"2017-02-06 09:52:00.000000000","message":"Done","commit_id":"b29a4c56d0dae045e2a56f15a859c8f33588c30d"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"8948513a53eef2607e4ac29039d5c18fef4d01c1","unresolved":false,"context_lines":[{"line_number":24,"context_line":"    message \u003d {"},{"line_number":25,"context_line":"        \u0027id\u0027: id,"},{"line_number":26,"context_line":"        \u0027event_id\u0027: defined_messages.EventIds.UNABLE_TO_ALLOCATE,"},{"line_number":27,"context_line":"        \u0027message_level\u0027: \"ERROR\","},{"line_number":28,"context_line":"        \u0027request_id\u0027: FAKE_UUID,"},{"line_number":29,"context_line":"        \u0027updated_at\u0027: datetime.datetime(1900, 1, 1, 1, 1, 1,"},{"line_number":30,"context_line":"                                        tzinfo\u003diso8601.iso8601.Utc()),"}],"source_content_type":"text/x-python","patch_set":19,"id":"9ad45d7e_e3dc44e6","line":27,"range":{"start_line":27,"start_character":25,"end_line":27,"end_character":32},"in_reply_to":"dada55a8_423f2a25","updated":"2016-08-10 04:07:52.000000000","message":"+1","commit_id":"b29a4c56d0dae045e2a56f15a859c8f33588c30d"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"71db9d25bfafc7e0eee30f888424c9bf80236f77","unresolved":false,"context_lines":[{"line_number":36,"context_line":"                                        tzinfo\u003diso8601.iso8601.Utc()),"},{"line_number":37,"context_line":"        \u0027expires_at\u0027: datetime.datetime(1900, 1, 1, 1, 1, 1,"},{"line_number":38,"context_line":"                                        tzinfo\u003diso8601.iso8601.Utc()),"},{"line_number":39,"context_line":"        \u0027detail\u0027: \u0027error_detail\u0027"},{"line_number":40,"context_line":"    }"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"    message.update(kwargs)"}],"source_content_type":"text/x-python","patch_set":29,"id":"bff0334d_53845bb1","line":39,"range":{"start_line":39,"start_character":31,"end_line":39,"end_character":32},"updated":"2017-04-07 00:57:59.000000000","message":"trailing comma","commit_id":"6f6adbef86fc54b788245ab35b5bb2a8ddf6b7f0"},{"author":{"_account_id":7582,"name":"Jan Provaznik","email":"jan.provaznik@gmail.com","username":"jprovazn"},"change_message_id":"4df792286a238b6cbb6cba901c4c4d7ad098e6bd","unresolved":false,"context_lines":[{"line_number":36,"context_line":"                                        tzinfo\u003diso8601.iso8601.Utc()),"},{"line_number":37,"context_line":"        \u0027expires_at\u0027: datetime.datetime(1900, 1, 1, 1, 1, 1,"},{"line_number":38,"context_line":"                                        tzinfo\u003diso8601.iso8601.Utc()),"},{"line_number":39,"context_line":"        \u0027detail\u0027: \u0027error_detail\u0027"},{"line_number":40,"context_line":"    }"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"    message.update(kwargs)"}],"source_content_type":"text/x-python","patch_set":29,"id":"5ff73747_8f75d3cd","line":39,"range":{"start_line":39,"start_character":31,"end_line":39,"end_character":32},"in_reply_to":"bff0334d_53845bb1","updated":"2017-05-03 08:21:18.000000000","message":"Done","commit_id":"6f6adbef86fc54b788245ab35b5bb2a8ddf6b7f0"}],"manila/tests/api/v2/test_messages.py":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"8f4a99466c01596446177d3edc94eebce8092d03","unresolved":false,"context_lines":[{"line_number":25,"context_line":""},{"line_number":26,"context_line":"CONF \u003d cfg.CONF"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"NS \u003d \u0027{http://docs.openstack.org/api/openstack-block-storage/3.0/content}\u0027"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"class MessageApiTest(test.TestCase):"}],"source_content_type":"text/x-python","patch_set":5,"id":"dab17558_9f7affef","line":28,"range":{"start_line":28,"start_character":7,"end_line":28,"end_character":72},"updated":"2016-05-09 15:42:57.000000000","message":"? :P","commit_id":"3826f5bfa3c48cf760e8067df7dcfe708815bbf7"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"8f4a99466c01596446177d3edc94eebce8092d03","unresolved":false,"context_lines":[{"line_number":35,"context_line":""},{"line_number":36,"context_line":"        self.maxDiff \u003d None"},{"line_number":37,"context_line":"        self.ctxt \u003d context.RequestContext(\u0027admin\u0027, \u0027fake\u0027, True)"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"    def _expected_message_from_controller(self, id):"},{"line_number":40,"context_line":"        message \u003d stubs.stub_message(id)"},{"line_number":41,"context_line":"        links \u003d ["}],"source_content_type":"text/x-python","patch_set":5,"id":"dab17558_bf71c3e2","line":38,"range":{"start_line":38,"start_character":0,"end_line":38,"end_character":0},"updated":"2016-05-09 15:42:57.000000000","message":"You should fake the policy check so we don\u0027t do a file lookup..","commit_id":"3826f5bfa3c48cf760e8067df7dcfe708815bbf7"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"8f4a99466c01596446177d3edc94eebce8092d03","unresolved":false,"context_lines":[{"line_number":65,"context_line":"            \u0027/messages/%s\u0027 % fakes.FAKE_UUID,"},{"line_number":66,"context_line":"            version\u003dmessages.MESSAGES_BASE_MICRO_VERSION,"},{"line_number":67,"context_line":"            base_url\u003d\u0027http://localhost/v2\u0027)"},{"line_number":68,"context_line":"        req.environ[\u0027cinder.context\u0027] \u003d self.ctxt"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"        res_dict \u003d self.controller.show(req, fakes.FAKE_UUID)"},{"line_number":71,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"dab17558_1f6f2f2c","line":68,"range":{"start_line":68,"start_character":21,"end_line":68,"end_character":27},"updated":"2016-05-09 15:42:57.000000000","message":"manila","commit_id":"3826f5bfa3c48cf760e8067df7dcfe708815bbf7"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"8f4a99466c01596446177d3edc94eebce8092d03","unresolved":false,"context_lines":[{"line_number":81,"context_line":"            \u0027/messages/%s\u0027 % fakes.FAKE_UUID,"},{"line_number":82,"context_line":"            version\u003dmessages.MESSAGES_BASE_MICRO_VERSION,"},{"line_number":83,"context_line":"            base_url\u003d\u0027http://localhost/v2\u0027)"},{"line_number":84,"context_line":"        req.environ[\u0027cinder.context\u0027] \u003d self.ctxt"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"        self.assertRaises(webob.exc.HTTPNotFound, self.controller.show,"},{"line_number":87,"context_line":"                          req, fakes.FAKE_UUID)"}],"source_content_type":"text/x-python","patch_set":5,"id":"dab17558_9f615f3c","line":84,"range":{"start_line":84,"start_character":21,"end_line":84,"end_character":27},"updated":"2016-05-09 15:42:57.000000000","message":"manila","commit_id":"3826f5bfa3c48cf760e8067df7dcfe708815bbf7"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"8f4a99466c01596446177d3edc94eebce8092d03","unresolved":false,"context_lines":[{"line_number":92,"context_line":"        req \u003d fakes.HTTPRequest.blank(\u0027/messages/%s\u0027 % fakes.FAKE_UUID,"},{"line_number":93,"context_line":"                                      version\u003d\u00272.15\u0027,"},{"line_number":94,"context_line":"                                      base_url\u003d\u0027http://localhost/v2\u0027)"},{"line_number":95,"context_line":"        req.environ[\u0027cinder.context\u0027] \u003d self.ctxt"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"        self.assertRaises(exception.VersionNotFoundForAPIMethod,"},{"line_number":98,"context_line":"                          self.controller.show, req, fakes.FAKE_UUID)"}],"source_content_type":"text/x-python","patch_set":5,"id":"dab17558_bf5ee373","line":95,"range":{"start_line":95,"start_character":21,"end_line":95,"end_character":27},"updated":"2016-05-09 15:42:57.000000000","message":"manila","commit_id":"3826f5bfa3c48cf760e8067df7dcfe708815bbf7"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"8f4a99466c01596446177d3edc94eebce8092d03","unresolved":false,"context_lines":[{"line_number":104,"context_line":"        req \u003d fakes.HTTPRequest.blank("},{"line_number":105,"context_line":"            \u0027/messages/%s\u0027 % fakes.FAKE_UUID,"},{"line_number":106,"context_line":"            version\u003dmessages.MESSAGES_BASE_MICRO_VERSION)"},{"line_number":107,"context_line":"        req.environ[\u0027cinder.context\u0027] \u003d self.ctxt"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"        resp \u003d self.controller.delete(req, fakes.FAKE_UUID)"},{"line_number":110,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"dab17558_ff506b60","line":107,"range":{"start_line":107,"start_character":21,"end_line":107,"end_character":27},"updated":"2016-05-09 15:42:57.000000000","message":"manila","commit_id":"3826f5bfa3c48cf760e8067df7dcfe708815bbf7"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"8f4a99466c01596446177d3edc94eebce8092d03","unresolved":false,"context_lines":[{"line_number":130,"context_line":"            \u0027/messages/%s\u0027 % fakes.FAKE_UUID,"},{"line_number":131,"context_line":"            version\u003dmessages.MESSAGES_BASE_MICRO_VERSION,"},{"line_number":132,"context_line":"            base_url\u003d\u0027http://localhost/v2\u0027)"},{"line_number":133,"context_line":"        req.environ[\u0027cinder.context\u0027] \u003d self.ctxt"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"        res_dict \u003d self.controller.index(req)"},{"line_number":136,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"dab17558_1f8bafc4","line":133,"range":{"start_line":133,"start_character":21,"end_line":133,"end_character":27},"updated":"2016-05-09 15:42:57.000000000","message":"manila","commit_id":"3826f5bfa3c48cf760e8067df7dcfe708815bbf7"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"8948513a53eef2607e4ac29039d5c18fef4d01c1","unresolved":false,"context_lines":[{"line_number":165,"context_line":""},{"line_number":166,"context_line":"    def test_index_with_limit(self):"},{"line_number":167,"context_line":"        self.mock_object(message_api.API, \u0027get_all\u0027, mock.Mock("},{"line_number":168,"context_line":"                         return_value\u003d[stubs.stub_message(fakes.FAKE_UUID)]))"},{"line_number":169,"context_line":"        req \u003d fakes.HTTPRequest.blank("},{"line_number":170,"context_line":"            \u0027/messages/%s?limit\u003d1\u0027 % fakes.FAKE_UUID,"},{"line_number":171,"context_line":"            version\u003dmessages.MESSAGES_BASE_MICRO_VERSION,"}],"source_content_type":"text/x-python","patch_set":19,"id":"9ad45d7e_a3a08c44","line":168,"range":{"start_line":168,"start_character":38,"end_line":168,"end_character":75},"updated":"2016-08-10 04:07:52.000000000","message":":D more than one message please..","commit_id":"b29a4c56d0dae045e2a56f15a859c8f33588c30d"},{"author":{"_account_id":7582,"name":"Jan Provaznik","email":"jan.provaznik@gmail.com","username":"jprovazn"},"change_message_id":"2cc96846145f7643d65204a8679fdb01fa3dfb65","unresolved":false,"context_lines":[{"line_number":165,"context_line":""},{"line_number":166,"context_line":"    def test_index_with_limit(self):"},{"line_number":167,"context_line":"        self.mock_object(message_api.API, \u0027get_all\u0027, mock.Mock("},{"line_number":168,"context_line":"                         return_value\u003d[stubs.stub_message(fakes.FAKE_UUID)]))"},{"line_number":169,"context_line":"        req \u003d fakes.HTTPRequest.blank("},{"line_number":170,"context_line":"            \u0027/messages/%s?limit\u003d1\u0027 % fakes.FAKE_UUID,"},{"line_number":171,"context_line":"            version\u003dmessages.MESSAGES_BASE_MICRO_VERSION,"}],"source_content_type":"text/x-python","patch_set":19,"id":"1a430d35_5789d2c9","line":168,"range":{"start_line":168,"start_character":38,"end_line":168,"end_character":75},"in_reply_to":"9ad45d7e_a3a08c44","updated":"2017-02-06 09:52:00.000000000","message":"Done","commit_id":"b29a4c56d0dae045e2a56f15a859c8f33588c30d"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"8948513a53eef2607e4ac29039d5c18fef4d01c1","unresolved":false,"context_lines":[{"line_number":176,"context_line":""},{"line_number":177,"context_line":"        ex \u003d self._expected_message_from_controller(fakes.FAKE_UUID)"},{"line_number":178,"context_line":"        messages_links \u003d ["},{"line_number":179,"context_line":"            {\u0027href\u0027: \u0027http://localhost/v2/fake/messages\u0027"},{"line_number":180,"context_line":"                     \u0027?limit\u003d1\u0026marker\u003d%s\u0027 % fakes.FAKE_UUID,"},{"line_number":181,"context_line":"             \u0027rel\u0027: \u0027next\u0027},"},{"line_number":182,"context_line":"        ]"},{"line_number":183,"context_line":"        expected \u003d {"},{"line_number":184,"context_line":"            \u0027messages\u0027: [ex[\u0027message\u0027]],"}],"source_content_type":"text/x-python","patch_set":19,"id":"9ad45d7e_c3fe6037","line":181,"range":{"start_line":179,"start_character":11,"end_line":181,"end_character":28},"updated":"2016-08-10 04:07:52.000000000","message":"? you haven\u0027t added support for limits and markers yet..","commit_id":"b29a4c56d0dae045e2a56f15a859c8f33588c30d"},{"author":{"_account_id":7582,"name":"Jan Provaznik","email":"jan.provaznik@gmail.com","username":"jprovazn"},"change_message_id":"2cc96846145f7643d65204a8679fdb01fa3dfb65","unresolved":false,"context_lines":[{"line_number":176,"context_line":""},{"line_number":177,"context_line":"        ex \u003d self._expected_message_from_controller(fakes.FAKE_UUID)"},{"line_number":178,"context_line":"        messages_links \u003d ["},{"line_number":179,"context_line":"            {\u0027href\u0027: \u0027http://localhost/v2/fake/messages\u0027"},{"line_number":180,"context_line":"                     \u0027?limit\u003d1\u0026marker\u003d%s\u0027 % fakes.FAKE_UUID,"},{"line_number":181,"context_line":"             \u0027rel\u0027: \u0027next\u0027},"},{"line_number":182,"context_line":"        ]"},{"line_number":183,"context_line":"        expected \u003d {"},{"line_number":184,"context_line":"            \u0027messages\u0027: [ex[\u0027message\u0027]],"}],"source_content_type":"text/x-python","patch_set":19,"id":"1a430d35_179f4a04","line":181,"range":{"start_line":179,"start_character":11,"end_line":181,"end_character":28},"in_reply_to":"9ad45d7e_c3fe6037","updated":"2017-02-06 09:52:00.000000000","message":"removed test_index_with_limit until limits are added","commit_id":"b29a4c56d0dae045e2a56f15a859c8f33588c30d"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"967c182c6cd752cda3225b14b474d44fe61a2ebf","unresolved":false,"context_lines":[{"line_number":118,"context_line":"        self.mock_object(message_api.API, \u0027get\u0027, stubs.stub_message_get)"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"        req \u003d fakes.HTTPRequest.blank(\u0027/messages/%s\u0027 % fakes.FAKE_UUID,"},{"line_number":121,"context_line":"                                      version\u003d\u00272.15\u0027,"},{"line_number":122,"context_line":"                                      base_url\u003d\u0027http://localhost/v2\u0027)"},{"line_number":123,"context_line":"        req.environ[\u0027manila.context\u0027] \u003d self.ctxt"},{"line_number":124,"context_line":""}],"source_content_type":"text/x-python","patch_set":53,"id":"3f1d235d_abd4e420","line":121,"range":{"start_line":121,"start_character":46,"end_line":121,"end_character":52},"updated":"2017-07-06 00:04:29.000000000","message":"test at the border, i.e, microversion 2.35","commit_id":"7dd7ad67382709649717f4e4ef4fad36c6328849"},{"author":{"_account_id":7582,"name":"Jan Provaznik","email":"jan.provaznik@gmail.com","username":"jprovazn"},"change_message_id":"2132bc01dc45b1e5c0031ddd0104bd49d1b09e29","unresolved":false,"context_lines":[{"line_number":118,"context_line":"        self.mock_object(message_api.API, \u0027get\u0027, stubs.stub_message_get)"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"        req \u003d fakes.HTTPRequest.blank(\u0027/messages/%s\u0027 % fakes.FAKE_UUID,"},{"line_number":121,"context_line":"                                      version\u003d\u00272.15\u0027,"},{"line_number":122,"context_line":"                                      base_url\u003d\u0027http://localhost/v2\u0027)"},{"line_number":123,"context_line":"        req.environ[\u0027manila.context\u0027] \u003d self.ctxt"},{"line_number":124,"context_line":""}],"source_content_type":"text/x-python","patch_set":53,"id":"3f1d235d_fb0ce394","line":121,"range":{"start_line":121,"start_character":46,"end_line":121,"end_character":52},"in_reply_to":"3f1d235d_abd4e420","updated":"2017-07-06 06:24:10.000000000","message":"Done","commit_id":"7dd7ad67382709649717f4e4ef4fad36c6328849"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"967c182c6cd752cda3225b14b474d44fe61a2ebf","unresolved":false,"context_lines":[{"line_number":127,"context_line":""},{"line_number":128,"context_line":"    def test_delete(self):"},{"line_number":129,"context_line":"        self.mock_object(message_api.API, \u0027get\u0027, stubs.stub_message_get)"},{"line_number":130,"context_line":"        self.mock_object(message_api.API, \u0027delete\u0027, mock.Mock())"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"        req \u003d fakes.HTTPRequest.blank("},{"line_number":133,"context_line":"            \u0027/messages/%s\u0027 % fakes.FAKE_UUID,"}],"source_content_type":"text/x-python","patch_set":53,"id":"3f1d235d_4bdf9039","line":130,"range":{"start_line":130,"start_character":50,"end_line":130,"end_character":63},"updated":"2017-07-06 00:04:29.000000000","message":"not necessary","commit_id":"7dd7ad67382709649717f4e4ef4fad36c6328849"}],"manila/tests/db/sqlalchemy/test_api.py":[{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"346fdc95cc55945eea88abd9f21ff77de5e589c8","unresolved":false,"context_lines":[{"line_number":2137,"context_line":"            self.assertIn(na.label, (\u0027admin\u0027, \u0027user\u0027, None))"},{"line_number":2138,"context_line":""},{"line_number":2139,"context_line":""},{"line_number":2140,"context_line":"@ddt.ddt"},{"line_number":2141,"context_line":"class MessagesDatabaseAPITestCase(test.TestCase):"},{"line_number":2142,"context_line":""},{"line_number":2143,"context_line":"    def setUp(self):"}],"source_content_type":"text/x-python","patch_set":19,"id":"dada55a8_a2bee661","line":2140,"range":{"start_line":2140,"start_character":0,"end_line":2140,"end_character":8},"updated":"2016-07-25 09:09:32.000000000","message":"The ddt is not used.","commit_id":"b29a4c56d0dae045e2a56f15a859c8f33588c30d"},{"author":{"_account_id":11865,"name":"Clinton Knight","email":"cknight@netapp.com","username":"cknight"},"change_message_id":"d57030b92022ce3d295c8f09fe01f7bb70813a5c","unresolved":false,"context_lines":[{"line_number":2157,"context_line":"        result \u003d db_utils.create_message(project_id\u003dself.project_id)"},{"line_number":2158,"context_line":""},{"line_number":2159,"context_line":"        num_records \u003d len(db_api.message_get_all(self.ctxt))"},{"line_number":2160,"context_line":"        db_api.message_destroy(adm_context, result)"},{"line_number":2161,"context_line":"        self.assertEqual(num_records - 1,"},{"line_number":2162,"context_line":"                         len(db_api.message_get_all(self.ctxt)))"},{"line_number":2163,"context_line":""}],"source_content_type":"text/x-python","patch_set":19,"id":"9ad45d7e_f7a60c52","line":2160,"range":{"start_line":2160,"start_character":8,"end_line":2160,"end_character":51},"updated":"2016-08-12 18:34:38.000000000","message":"Don\u0027t forget whitespace around the test calls.","commit_id":"b29a4c56d0dae045e2a56f15a859c8f33588c30d"},{"author":{"_account_id":7582,"name":"Jan Provaznik","email":"jan.provaznik@gmail.com","username":"jprovazn"},"change_message_id":"2cc96846145f7643d65204a8679fdb01fa3dfb65","unresolved":false,"context_lines":[{"line_number":2157,"context_line":"        result \u003d db_utils.create_message(project_id\u003dself.project_id)"},{"line_number":2158,"context_line":""},{"line_number":2159,"context_line":"        num_records \u003d len(db_api.message_get_all(self.ctxt))"},{"line_number":2160,"context_line":"        db_api.message_destroy(adm_context, result)"},{"line_number":2161,"context_line":"        self.assertEqual(num_records - 1,"},{"line_number":2162,"context_line":"                         len(db_api.message_get_all(self.ctxt)))"},{"line_number":2163,"context_line":""}],"source_content_type":"text/x-python","patch_set":19,"id":"1a430d35_32aa94d5","line":2160,"range":{"start_line":2160,"start_character":8,"end_line":2160,"end_character":51},"in_reply_to":"9ad45d7e_f7a60c52","updated":"2017-02-06 09:52:00.000000000","message":"Done","commit_id":"b29a4c56d0dae045e2a56f15a859c8f33588c30d"},{"author":{"_account_id":11865,"name":"Clinton Knight","email":"cknight@netapp.com","username":"cknight"},"change_message_id":"d57030b92022ce3d295c8f09fe01f7bb70813a5c","unresolved":false,"context_lines":[{"line_number":2158,"context_line":""},{"line_number":2159,"context_line":"        num_records \u003d len(db_api.message_get_all(self.ctxt))"},{"line_number":2160,"context_line":"        db_api.message_destroy(adm_context, result)"},{"line_number":2161,"context_line":"        self.assertEqual(num_records - 1,"},{"line_number":2162,"context_line":"                         len(db_api.message_get_all(self.ctxt)))"},{"line_number":2163,"context_line":""},{"line_number":2164,"context_line":"    def test_message_get(self):"}],"source_content_type":"text/x-python","patch_set":19,"id":"9ad45d7e_b75ad44e","line":2161,"range":{"start_line":2161,"start_character":8,"end_line":2161,"end_character":41},"updated":"2016-08-12 18:34:38.000000000","message":"Do you anticipate unit tests in other classes creating messages, or should those always be mocked out?  Could this assertion lead to random failures in concurrent tests?","commit_id":"b29a4c56d0dae045e2a56f15a859c8f33588c30d"},{"author":{"_account_id":7582,"name":"Jan Provaznik","email":"jan.provaznik@gmail.com","username":"jprovazn"},"change_message_id":"2cc96846145f7643d65204a8679fdb01fa3dfb65","unresolved":false,"context_lines":[{"line_number":2158,"context_line":""},{"line_number":2159,"context_line":"        num_records \u003d len(db_api.message_get_all(self.ctxt))"},{"line_number":2160,"context_line":"        db_api.message_destroy(adm_context, result)"},{"line_number":2161,"context_line":"        self.assertEqual(num_records - 1,"},{"line_number":2162,"context_line":"                         len(db_api.message_get_all(self.ctxt)))"},{"line_number":2163,"context_line":""},{"line_number":2164,"context_line":"    def test_message_get(self):"}],"source_content_type":"text/x-python","patch_set":19,"id":"1a430d35_92f188d0","line":2161,"range":{"start_line":2161,"start_character":8,"end_line":2161,"end_character":41},"in_reply_to":"3ac371cc_df5fbc73","updated":"2017-02-06 09:52:00.000000000","message":"Done","commit_id":"b29a4c56d0dae045e2a56f15a859c8f33588c30d"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"a7c0b423906cfbd0c2e89923c2a4514409e65eae","unresolved":false,"context_lines":[{"line_number":2158,"context_line":""},{"line_number":2159,"context_line":"        num_records \u003d len(db_api.message_get_all(self.ctxt))"},{"line_number":2160,"context_line":"        db_api.message_destroy(adm_context, result)"},{"line_number":2161,"context_line":"        self.assertEqual(num_records - 1,"},{"line_number":2162,"context_line":"                         len(db_api.message_get_all(self.ctxt)))"},{"line_number":2163,"context_line":""},{"line_number":2164,"context_line":"    def test_message_get(self):"}],"source_content_type":"text/x-python","patch_set":19,"id":"3ac371cc_df5fbc73","line":2161,"range":{"start_line":2161,"start_character":8,"end_line":2161,"end_character":41},"in_reply_to":"9ad45d7e_b75ad44e","updated":"2016-08-14 21:50:22.000000000","message":"great point.. i\u0027ll update lines 2145 and 2146 to have real UUIDs..","commit_id":"b29a4c56d0dae045e2a56f15a859c8f33588c30d"},{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"346fdc95cc55945eea88abd9f21ff77de5e589c8","unresolved":false,"context_lines":[{"line_number":2166,"context_line":""},{"line_number":2167,"context_line":"        result \u003d db_api.message_get(self.ctxt, message[\u0027id\u0027])"},{"line_number":2168,"context_line":""},{"line_number":2169,"context_line":"        self.assertEqual(message[\u0027id\u0027], result[\u0027id\u0027])"},{"line_number":2170,"context_line":""},{"line_number":2171,"context_line":"    def test_message_get_not_found(self):"},{"line_number":2172,"context_line":"        self.assertRaises(exception.MessageNotFound, db_api.message_get,"}],"source_content_type":"text/x-python","patch_set":19,"id":"dada55a8_8206421e","line":2169,"range":{"start_line":2169,"start_character":8,"end_line":2169,"end_character":53},"updated":"2016-07-25 09:09:32.000000000","message":"How about other parameters? such as: self.assertEqual(project_id, ..) ...","commit_id":"b29a4c56d0dae045e2a56f15a859c8f33588c30d"},{"author":{"_account_id":7582,"name":"Jan Provaznik","email":"jan.provaznik@gmail.com","username":"jprovazn"},"change_message_id":"2cc96846145f7643d65204a8679fdb01fa3dfb65","unresolved":false,"context_lines":[{"line_number":2166,"context_line":""},{"line_number":2167,"context_line":"        result \u003d db_api.message_get(self.ctxt, message[\u0027id\u0027])"},{"line_number":2168,"context_line":""},{"line_number":2169,"context_line":"        self.assertEqual(message[\u0027id\u0027], result[\u0027id\u0027])"},{"line_number":2170,"context_line":""},{"line_number":2171,"context_line":"    def test_message_get_not_found(self):"},{"line_number":2172,"context_line":"        self.assertRaises(exception.MessageNotFound, db_api.message_get,"}],"source_content_type":"text/x-python","patch_set":19,"id":"1a430d35_32b534cd","line":2169,"range":{"start_line":2169,"start_character":8,"end_line":2169,"end_character":53},"in_reply_to":"dada55a8_8206421e","updated":"2017-02-06 09:52:00.000000000","message":"Added eevnt,project and message_level","commit_id":"b29a4c56d0dae045e2a56f15a859c8f33588c30d"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"967c182c6cd752cda3225b14b474d44fe61a2ebf","unresolved":false,"context_lines":[{"line_number":2740,"context_line":"        result \u003d db_utils.create_message(project_id\u003dself.project_id,"},{"line_number":2741,"context_line":"                                         action_id\u003d\u0027001\u0027)"},{"line_number":2742,"context_line":""},{"line_number":2743,"context_line":"        self.assertTrue(result[\u0027id\u0027])"},{"line_number":2744,"context_line":""},{"line_number":2745,"context_line":"    def test_message_delete(self):"},{"line_number":2746,"context_line":"        result \u003d db_utils.create_message(project_id\u003dself.project_id,"}],"source_content_type":"text/x-python","patch_set":53,"id":"3f1d235d_0b93d85c","line":2743,"range":{"start_line":2743,"start_character":19,"end_line":2743,"end_character":23},"updated":"2017-07-06 00:04:29.000000000","message":"IsNotNone","commit_id":"7dd7ad67382709649717f4e4ef4fad36c6328849"},{"author":{"_account_id":7582,"name":"Jan Provaznik","email":"jan.provaznik@gmail.com","username":"jprovazn"},"change_message_id":"2132bc01dc45b1e5c0031ddd0104bd49d1b09e29","unresolved":false,"context_lines":[{"line_number":2740,"context_line":"        result \u003d db_utils.create_message(project_id\u003dself.project_id,"},{"line_number":2741,"context_line":"                                         action_id\u003d\u0027001\u0027)"},{"line_number":2742,"context_line":""},{"line_number":2743,"context_line":"        self.assertTrue(result[\u0027id\u0027])"},{"line_number":2744,"context_line":""},{"line_number":2745,"context_line":"    def test_message_delete(self):"},{"line_number":2746,"context_line":"        result \u003d db_utils.create_message(project_id\u003dself.project_id,"}],"source_content_type":"text/x-python","patch_set":53,"id":"3f1d235d_bbdd4be1","line":2743,"range":{"start_line":2743,"start_character":19,"end_line":2743,"end_character":23},"in_reply_to":"3f1d235d_0b93d85c","updated":"2017-07-06 06:24:10.000000000","message":"Done","commit_id":"7dd7ad67382709649717f4e4ef4fad36c6328849"}],"manila/tests/db_utils.py":[{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"06d244a64706745ede7b0f2649a4a0e742937ff4","unresolved":false,"context_lines":[{"line_number":270,"context_line":"    message_dict \u003d {"},{"line_number":271,"context_line":"        \u0027action\u0027: \u0027fake_Action\u0027,"},{"line_number":272,"context_line":"        \u0027project_id\u0027: \u0027fake-project-id\u0027,"},{"line_number":273,"context_line":"        \u0027message_level\u0027: \u0027ERROR\u0027,"},{"line_number":274,"context_line":"    }"},{"line_number":275,"context_line":"    return _create_db_row(db.message_create, message_dict, kwargs)"}],"source_content_type":"text/x-python","patch_set":52,"id":"3f1d235d_430c29eb","line":273,"range":{"start_line":273,"start_character":26,"end_line":273,"end_character":32},"updated":"2017-07-05 14:34:45.000000000","message":"Use message_levels.ERROR","commit_id":"b584c15b8735cb77cc7d8dd47ed6ce7e4d248396"},{"author":{"_account_id":7582,"name":"Jan Provaznik","email":"jan.provaznik@gmail.com","username":"jprovazn"},"change_message_id":"e2409158da0593053f12323da6329370ccd2f179","unresolved":false,"context_lines":[{"line_number":270,"context_line":"    message_dict \u003d {"},{"line_number":271,"context_line":"        \u0027action\u0027: \u0027fake_Action\u0027,"},{"line_number":272,"context_line":"        \u0027project_id\u0027: \u0027fake-project-id\u0027,"},{"line_number":273,"context_line":"        \u0027message_level\u0027: \u0027ERROR\u0027,"},{"line_number":274,"context_line":"    }"},{"line_number":275,"context_line":"    return _create_db_row(db.message_create, message_dict, kwargs)"}],"source_content_type":"text/x-python","patch_set":52,"id":"3f1d235d_3aa14b95","line":273,"range":{"start_line":273,"start_character":26,"end_line":273,"end_character":32},"in_reply_to":"3f1d235d_430c29eb","updated":"2017-07-05 17:23:47.000000000","message":"Done","commit_id":"b584c15b8735cb77cc7d8dd47ed6ce7e4d248396"}],"manila/tests/message/test_api.py":[{"author":{"_account_id":7872,"name":"Marc Koderer","email":"marc@koderer.com","username":"mkoderer"},"change_message_id":"f09b5da6462854da4e6898a70df60938a946acb3","unresolved":false,"context_lines":[{"line_number":46,"context_line":"            \u0027message_level\u0027: \u0027ERROR\u0027,"},{"line_number":47,"context_line":"            \u0027expires_at\u0027: expected_expires_at,"},{"line_number":48,"context_line":"        }"},{"line_number":49,"context_line":"        self.message_api.create(self.ctxt,"},{"line_number":50,"context_line":"                                defined_messages.EventIds.UNABLE_TO_ALLOCATE,"},{"line_number":51,"context_line":"                                \"fakeproject\","},{"line_number":52,"context_line":"                                resource_type\u003d\"fake_resource_type\")"}],"source_content_type":"text/x-python","patch_set":7,"id":"dab17558_4ca7eaa6","line":49,"updated":"2016-05-17 09:22:44.000000000","message":"I would add a newline here.","commit_id":"ec3ab15d86728128b41df67c14753d8bd04c8101"},{"author":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"change_message_id":"be9008d430494f24994de8406574f50c43a9a5b0","unresolved":false,"context_lines":[{"line_number":46,"context_line":"            \u0027message_level\u0027: \u0027ERROR\u0027,"},{"line_number":47,"context_line":"            \u0027expires_at\u0027: expected_expires_at,"},{"line_number":48,"context_line":"        }"},{"line_number":49,"context_line":"        self.message_api.create(self.ctxt,"},{"line_number":50,"context_line":"                                defined_messages.EventIds.UNABLE_TO_ALLOCATE,"},{"line_number":51,"context_line":"                                \"fakeproject\","},{"line_number":52,"context_line":"                                resource_type\u003d\"fake_resource_type\")"}],"source_content_type":"text/x-python","patch_set":7,"id":"bab6814e_18d522e7","line":49,"in_reply_to":"dab17558_4ca7eaa6","updated":"2016-05-22 15:52:18.000000000","message":"agreed, this is usually something I harp on. Thanks for catching it.","commit_id":"ec3ab15d86728128b41df67c14753d8bd04c8101"},{"author":{"_account_id":7872,"name":"Marc Koderer","email":"marc@koderer.com","username":"mkoderer"},"change_message_id":"f09b5da6462854da4e6898a70df60938a946acb3","unresolved":false,"context_lines":[{"line_number":57,"context_line":"    def test_create_swallows_exception(self):"},{"line_number":58,"context_line":"        self.mock_object(self.message_api.db, \u0027create\u0027,"},{"line_number":59,"context_line":"                         mock.Mock(side_effect\u003dException()))"},{"line_number":60,"context_line":"        self.message_api.create(self.ctxt,"},{"line_number":61,"context_line":"                                defined_messages.EventIds.UNABLE_TO_ALLOCATE,"},{"line_number":62,"context_line":"                                \"fakeproject\","},{"line_number":63,"context_line":"                                \"fake_resource\")"}],"source_content_type":"text/x-python","patch_set":7,"id":"dab17558_ec97be37","line":60,"updated":"2016-05-17 09:22:44.000000000","message":"It always a good idea to have a empty line between mocking and the actual action","commit_id":"ec3ab15d86728128b41df67c14753d8bd04c8101"},{"author":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"change_message_id":"be9008d430494f24994de8406574f50c43a9a5b0","unresolved":false,"context_lines":[{"line_number":57,"context_line":"    def test_create_swallows_exception(self):"},{"line_number":58,"context_line":"        self.mock_object(self.message_api.db, \u0027create\u0027,"},{"line_number":59,"context_line":"                         mock.Mock(side_effect\u003dException()))"},{"line_number":60,"context_line":"        self.message_api.create(self.ctxt,"},{"line_number":61,"context_line":"                                defined_messages.EventIds.UNABLE_TO_ALLOCATE,"},{"line_number":62,"context_line":"                                \"fakeproject\","},{"line_number":63,"context_line":"                                \"fake_resource\")"}],"source_content_type":"text/x-python","patch_set":7,"id":"bab6814e_f8cf7e53","line":60,"in_reply_to":"dab17558_ec97be37","updated":"2016-05-22 15:52:18.000000000","message":"Done","commit_id":"ec3ab15d86728128b41df67c14753d8bd04c8101"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"71db9d25bfafc7e0eee30f888424c9bf80236f77","unresolved":false,"context_lines":[{"line_number":65,"context_line":"                                \"fake_resource\")"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"        self.message_api.db.message_create.assert_called_once_with("},{"line_number":68,"context_line":"            self.ctxt, mock.ANY)"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"    def test_get(self):"},{"line_number":71,"context_line":"        self.message_api.get(self.ctxt, \u0027fake_id\u0027)"}],"source_content_type":"text/x-python","patch_set":29,"id":"bff0334d_f3636f19","line":68,"range":{"start_line":68,"start_character":32,"end_line":68,"end_character":32},"updated":"2017-04-07 00:57:59.000000000","message":"you can assert that the exception log was invoked..","commit_id":"6f6adbef86fc54b788245ab35b5bb2a8ddf6b7f0"},{"author":{"_account_id":7582,"name":"Jan Provaznik","email":"jan.provaznik@gmail.com","username":"jprovazn"},"change_message_id":"4df792286a238b6cbb6cba901c4c4d7ad098e6bd","unresolved":false,"context_lines":[{"line_number":65,"context_line":"                                \"fake_resource\")"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"        self.message_api.db.message_create.assert_called_once_with("},{"line_number":68,"context_line":"            self.ctxt, mock.ANY)"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"    def test_get(self):"},{"line_number":71,"context_line":"        self.message_api.get(self.ctxt, \u0027fake_id\u0027)"}],"source_content_type":"text/x-python","patch_set":29,"id":"5ff73747_a4e4313d","line":68,"range":{"start_line":68,"start_character":32,"end_line":68,"end_character":32},"in_reply_to":"bff0334d_f3636f19","updated":"2017-05-03 08:21:18.000000000","message":"Done","commit_id":"6f6adbef86fc54b788245ab35b5bb2a8ddf6b7f0"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"06d244a64706745ede7b0f2649a4a0e742937ff4","unresolved":false,"context_lines":[{"line_number":45,"context_line":"            \u0027resource_id\u0027: None,"},{"line_number":46,"context_line":"            \u0027action_id\u0027: MsgAction.ALLOCATE_HOST[0],"},{"line_number":47,"context_line":"            \u0027detail_id\u0027: MsgDetail.NO_VALID_HOST[0],"},{"line_number":48,"context_line":"            \u0027message_level\u0027: \u0027ERROR\u0027,"},{"line_number":49,"context_line":"            \u0027expires_at\u0027: expected_expires_at,"},{"line_number":50,"context_line":"        }"},{"line_number":51,"context_line":""}],"source_content_type":"text/x-python","patch_set":52,"id":"3f1d235d_036bd1b6","line":48,"range":{"start_line":48,"start_character":29,"end_line":48,"end_character":36},"updated":"2017-07-05 14:34:45.000000000","message":"Please use message_levels.ERROR.","commit_id":"b584c15b8735cb77cc7d8dd47ed6ce7e4d248396"},{"author":{"_account_id":7582,"name":"Jan Provaznik","email":"jan.provaznik@gmail.com","username":"jprovazn"},"change_message_id":"e2409158da0593053f12323da6329370ccd2f179","unresolved":false,"context_lines":[{"line_number":45,"context_line":"            \u0027resource_id\u0027: None,"},{"line_number":46,"context_line":"            \u0027action_id\u0027: MsgAction.ALLOCATE_HOST[0],"},{"line_number":47,"context_line":"            \u0027detail_id\u0027: MsgDetail.NO_VALID_HOST[0],"},{"line_number":48,"context_line":"            \u0027message_level\u0027: \u0027ERROR\u0027,"},{"line_number":49,"context_line":"            \u0027expires_at\u0027: expected_expires_at,"},{"line_number":50,"context_line":"        }"},{"line_number":51,"context_line":""}],"source_content_type":"text/x-python","patch_set":52,"id":"3f1d235d_bae31bd9","line":48,"range":{"start_line":48,"start_character":29,"end_line":48,"end_character":36},"in_reply_to":"3f1d235d_036bd1b6","updated":"2017-07-05 17:23:47.000000000","message":"Done","commit_id":"b584c15b8735cb77cc7d8dd47ed6ce7e4d248396"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"8554fd426c1c18beacdd63eb92c4fbeb73a8115d","unresolved":false,"context_lines":[{"line_number":63,"context_line":"        self.mock_object(self.message_api.db, \u0027message_create\u0027,"},{"line_number":64,"context_line":"                         mock.Mock(side_effect\u003dException()))"},{"line_number":65,"context_line":"        exception_log \u003d self.mock_object(message_api.LOG, \u0027exception\u0027)"},{"line_number":66,"context_line":"        self.message_api.create(self.ctxt,"},{"line_number":67,"context_line":"                                MsgAction.ALLOCATE_HOST,"},{"line_number":68,"context_line":"                                \u0027fakeproject\u0027,"},{"line_number":69,"context_line":"                                \u0027fake_resource\u0027)"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"        self.message_api.db.message_create.assert_called_once_with("},{"line_number":72,"context_line":"            self.ctxt, mock.ANY)"}],"source_content_type":"text/x-python","patch_set":56,"id":"3f1d235d_2e4a8626","line":69,"range":{"start_line":66,"start_character":8,"end_line":69,"end_character":48},"updated":"2017-07-11 13:38:25.000000000","message":"It is expected to have error raised here.","commit_id":"11c9aa60b0752318ce4ddaf0bd3edbd3a30048e6"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"a641746097820baacdca29b68dd405b77772e6ed","unresolved":false,"context_lines":[{"line_number":63,"context_line":"        self.mock_object(self.message_api.db, \u0027message_create\u0027,"},{"line_number":64,"context_line":"                         mock.Mock(side_effect\u003dException()))"},{"line_number":65,"context_line":"        exception_log \u003d self.mock_object(message_api.LOG, \u0027exception\u0027)"},{"line_number":66,"context_line":"        self.message_api.create(self.ctxt,"},{"line_number":67,"context_line":"                                MsgAction.ALLOCATE_HOST,"},{"line_number":68,"context_line":"                                \u0027fakeproject\u0027,"},{"line_number":69,"context_line":"                                \u0027fake_resource\u0027)"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"        self.message_api.db.message_create.assert_called_once_with("},{"line_number":72,"context_line":"            self.ctxt, mock.ANY)"}],"source_content_type":"text/x-python","patch_set":56,"id":"3f1d235d_3b762da6","line":69,"range":{"start_line":66,"start_character":8,"end_line":69,"end_character":48},"in_reply_to":"3f1d235d_2e4a8626","updated":"2017-07-12 03:35:52.000000000","message":"No, that wouldn\u0027t be appropriate. If a message fails to create (just like how a telemetry notification can fail), the intended operation shouldn\u0027t fail. \n\nFor example:\n\n  - action: create_share\n  - exception raised: Network Information is invalid\n  - handling the above exception: set the share state to \u0027error\u0027, create a user message, and reraise the original failure\n\nIf we don\u0027t handle the user message creation failures in the create method, we\u0027ll be forced to handle it everywhere else.","commit_id":"11c9aa60b0752318ce4ddaf0bd3edbd3a30048e6"},{"author":{"_account_id":7582,"name":"Jan Provaznik","email":"jan.provaznik@gmail.com","username":"jprovazn"},"change_message_id":"c970381c1860f5b2f9df3dc2110866efa88bcadc","unresolved":false,"context_lines":[{"line_number":63,"context_line":"        self.mock_object(self.message_api.db, \u0027message_create\u0027,"},{"line_number":64,"context_line":"                         mock.Mock(side_effect\u003dException()))"},{"line_number":65,"context_line":"        exception_log \u003d self.mock_object(message_api.LOG, \u0027exception\u0027)"},{"line_number":66,"context_line":"        self.message_api.create(self.ctxt,"},{"line_number":67,"context_line":"                                MsgAction.ALLOCATE_HOST,"},{"line_number":68,"context_line":"                                \u0027fakeproject\u0027,"},{"line_number":69,"context_line":"                                \u0027fake_resource\u0027)"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"        self.message_api.db.message_create.assert_called_once_with("},{"line_number":72,"context_line":"            self.ctxt, mock.ANY)"}],"source_content_type":"text/x-python","patch_set":56,"id":"3f1d235d_ecaa3d83","line":69,"range":{"start_line":66,"start_character":8,"end_line":69,"end_character":48},"in_reply_to":"3f1d235d_3b762da6","updated":"2017-07-12 07:27:30.000000000","message":"+1 Goutham","commit_id":"11c9aa60b0752318ce4ddaf0bd3edbd3a30048e6"}],"manila/tests/message/test_defined_messages.py":[{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"31419aedb8310d31cc1304a1a57f56aa6a1b3ece","unresolved":false,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"class DefinedMessagesTest(test.TestCase):"},{"line_number":21,"context_line":"    def setUp(self):"},{"line_number":22,"context_line":"        super(DefinedMessagesTest, self).setUp()"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"    def test_event_id_formats(self):"},{"line_number":25,"context_line":"        \"\"\"Assert all cinder event ids start with VOLUME_.\"\"\""}],"source_content_type":"text/x-python","patch_set":7,"id":"bab6814e_58b6388b","line":22,"range":{"start_line":21,"start_character":4,"end_line":22,"end_character":48},"updated":"2016-05-18 12:49:13.000000000","message":"redundant.","commit_id":"ec3ab15d86728128b41df67c14753d8bd04c8101"},{"author":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"change_message_id":"be9008d430494f24994de8406574f50c43a9a5b0","unresolved":false,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"class DefinedMessagesTest(test.TestCase):"},{"line_number":21,"context_line":"    def setUp(self):"},{"line_number":22,"context_line":"        super(DefinedMessagesTest, self).setUp()"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"    def test_event_id_formats(self):"},{"line_number":25,"context_line":"        \"\"\"Assert all cinder event ids start with VOLUME_.\"\"\""}],"source_content_type":"text/x-python","patch_set":7,"id":"bab6814e_38d626f1","line":22,"range":{"start_line":21,"start_character":4,"end_line":22,"end_character":48},"in_reply_to":"bab6814e_58b6388b","updated":"2016-05-22 15:52:18.000000000","message":"Done","commit_id":"ec3ab15d86728128b41df67c14753d8bd04c8101"},{"author":{"_account_id":7872,"name":"Marc Koderer","email":"marc@koderer.com","username":"mkoderer"},"change_message_id":"f09b5da6462854da4e6898a70df60938a946acb3","unresolved":false,"context_lines":[{"line_number":22,"context_line":"        super(DefinedMessagesTest, self).setUp()"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"    def test_event_id_formats(self):"},{"line_number":25,"context_line":"        \"\"\"Assert all cinder event ids start with VOLUME_.\"\"\""},{"line_number":26,"context_line":"        for attr_name in dir(defined_messages.EventIds):"},{"line_number":27,"context_line":"            if not attr_name.startswith(\u0027_\u0027):"},{"line_number":28,"context_line":"                value \u003d getattr(defined_messages.EventIds, attr_name)"}],"source_content_type":"text/x-python","patch_set":7,"id":"dab17558_8ca6f2be","line":25,"range":{"start_line":25,"start_character":21,"end_line":25,"end_character":28},"updated":"2016-05-17 09:22:44.000000000","message":"s/cinder/manila/","commit_id":"ec3ab15d86728128b41df67c14753d8bd04c8101"},{"author":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"change_message_id":"be9008d430494f24994de8406574f50c43a9a5b0","unresolved":false,"context_lines":[{"line_number":22,"context_line":"        super(DefinedMessagesTest, self).setUp()"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"    def test_event_id_formats(self):"},{"line_number":25,"context_line":"        \"\"\"Assert all cinder event ids start with VOLUME_.\"\"\""},{"line_number":26,"context_line":"        for attr_name in dir(defined_messages.EventIds):"},{"line_number":27,"context_line":"            if not attr_name.startswith(\u0027_\u0027):"},{"line_number":28,"context_line":"                value \u003d getattr(defined_messages.EventIds, attr_name)"}],"source_content_type":"text/x-python","patch_set":7,"id":"bab6814e_58db2a1b","line":25,"range":{"start_line":25,"start_character":21,"end_line":25,"end_character":28},"in_reply_to":"dab17558_8ca6f2be","updated":"2016-05-22 15:52:18.000000000","message":"Done","commit_id":"ec3ab15d86728128b41df67c14753d8bd04c8101"}],"manila_tempest_tests/services/share/v2/json/shares_client.py":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"dc45a404627a6971f095629590c470bbc799ee96","unresolved":false,"context_lines":[{"line_number":22,"context_line":"from tempest.lib.common.utils import data_utils"},{"line_number":23,"context_line":"from tempest.lib import exceptions"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"from manila import exception as manila_exceptions"},{"line_number":26,"context_line":"from manila import utils as manila_utils"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"from manila_tempest_tests.common import constants"},{"line_number":29,"context_line":"from manila_tempest_tests.services.share.json import shares_client"}],"source_content_type":"text/x-python","patch_set":46,"id":"3f1d235d_c160bc35","line":26,"range":{"start_line":25,"start_character":0,"end_line":26,"end_character":40},"updated":"2017-06-30 01:16:35.000000000","message":"No packages from manila should be imported here. You\u0027re establishing a requirement that manila be present where manila_tempest_tests is installed... that should not be required unless there\u0027s a good reason.","commit_id":"5e7569362eda31222f3623e9a4d8da5d8721846c"},{"author":{"_account_id":7582,"name":"Jan Provaznik","email":"jan.provaznik@gmail.com","username":"jprovazn"},"change_message_id":"a36256dbd72967fd87ed4f7ff9217d3cadaa805b","unresolved":false,"context_lines":[{"line_number":22,"context_line":"from tempest.lib.common.utils import data_utils"},{"line_number":23,"context_line":"from tempest.lib import exceptions"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"from manila import exception as manila_exceptions"},{"line_number":26,"context_line":"from manila import utils as manila_utils"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"from manila_tempest_tests.common import constants"},{"line_number":29,"context_line":"from manila_tempest_tests.services.share.json import shares_client"}],"source_content_type":"text/x-python","patch_set":46,"id":"3f1d235d_d3e647e9","line":26,"range":{"start_line":25,"start_character":0,"end_line":26,"end_character":40},"in_reply_to":"3f1d235d_c160bc35","updated":"2017-06-30 09:42:59.000000000","message":"Done","commit_id":"5e7569362eda31222f3623e9a4d8da5d8721846c"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"dc45a404627a6971f095629590c470bbc799ee96","unresolved":false,"context_lines":[{"line_number":1702,"context_line":""},{"line_number":1703,"context_line":"    def wait_for_message(self, resource_uuid):"},{"line_number":1704,"context_line":"        \"\"\"Waits until a message for a resource with given uuid exists\"\"\""},{"line_number":1705,"context_line":"        @manila_utils.retry(exception\u003dmanila_exceptions.MessageNotFound,"},{"line_number":1706,"context_line":"                            interval\u003dself.build_interval,"},{"line_number":1707,"context_line":"                            retries\u003dself.build_timeout/self.build_interval,"},{"line_number":1708,"context_line":"                            backoff_rate\u003d1)"}],"source_content_type":"text/x-python","patch_set":46,"id":"3f1d235d_81d764c0","line":1705,"range":{"start_line":1705,"start_character":28,"end_line":1705,"end_character":72},"updated":"2017-06-30 01:16:35.000000000","message":"manila API will give you a 404 HTTPNotFound, you can use the exc from webob","commit_id":"5e7569362eda31222f3623e9a4d8da5d8721846c"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"dc45a404627a6971f095629590c470bbc799ee96","unresolved":false,"context_lines":[{"line_number":1702,"context_line":""},{"line_number":1703,"context_line":"    def wait_for_message(self, resource_uuid):"},{"line_number":1704,"context_line":"        \"\"\"Waits until a message for a resource with given uuid exists\"\"\""},{"line_number":1705,"context_line":"        @manila_utils.retry(exception\u003dmanila_exceptions.MessageNotFound,"},{"line_number":1706,"context_line":"                            interval\u003dself.build_interval,"},{"line_number":1707,"context_line":"                            retries\u003dself.build_timeout/self.build_interval,"},{"line_number":1708,"context_line":"                            backoff_rate\u003d1)"}],"source_content_type":"text/x-python","patch_set":46,"id":"3f1d235d_01f59457","line":1705,"range":{"start_line":1705,"start_character":9,"end_line":1705,"end_character":21},"updated":"2017-06-30 01:16:35.000000000","message":"perhaps you can just copy retry from manila_utils to manila_tempest_tests","commit_id":"5e7569362eda31222f3623e9a4d8da5d8721846c"}],"manila_tempest_tests/tests/api/admin/test_user_messages.py":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"8948513a53eef2607e4ac29039d5c18fef4d01c1","unresolved":false,"context_lines":[{"line_number":17,"context_line":"from oslo_utils import uuidutils"},{"line_number":18,"context_line":"import six"},{"line_number":19,"context_line":"from tempest.common.utils import data_utils"},{"line_number":20,"context_line":"from tempest import config  # noqa"},{"line_number":21,"context_line":"from tempest import test"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"from manila_tempest_tests.tests.api import base"}],"source_content_type":"text/x-python","patch_set":19,"id":"9ad45d7e_462a7e7f","line":20,"range":{"start_line":20,"start_character":28,"end_line":20,"end_character":34},"updated":"2016-08-10 04:07:52.000000000","message":"not necessary","commit_id":"b29a4c56d0dae045e2a56f15a859c8f33588c30d"},{"author":{"_account_id":7582,"name":"Jan Provaznik","email":"jan.provaznik@gmail.com","username":"jprovazn"},"change_message_id":"2cc96846145f7643d65204a8679fdb01fa3dfb65","unresolved":false,"context_lines":[{"line_number":17,"context_line":"from oslo_utils import uuidutils"},{"line_number":18,"context_line":"import six"},{"line_number":19,"context_line":"from tempest.common.utils import data_utils"},{"line_number":20,"context_line":"from tempest import config  # noqa"},{"line_number":21,"context_line":"from tempest import test"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"from manila_tempest_tests.tests.api import base"}],"source_content_type":"text/x-python","patch_set":19,"id":"1a430d35_f2080c94","line":20,"range":{"start_line":20,"start_character":28,"end_line":20,"end_character":34},"in_reply_to":"9ad45d7e_462a7e7f","updated":"2017-02-06 09:52:00.000000000","message":"Done","commit_id":"b29a4c56d0dae045e2a56f15a859c8f33588c30d"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"8948513a53eef2607e4ac29039d5c18fef4d01c1","unresolved":false,"context_lines":[{"line_number":40,"context_line":""},{"line_number":41,"context_line":"class UserMessagesTest(base.BaseSharesAdminTest):"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    @base.skip_if_microversion_lt(MICROVERSION)"},{"line_number":44,"context_line":"    def setUp(self):"},{"line_number":45,"context_line":"        super(UserMessagesTest, self).setUp()"},{"line_number":46,"context_line":"        self.message_id \u003d self._create_user_message()"}],"source_content_type":"text/x-python","patch_set":19,"id":"9ad45d7e_63321412","line":43,"range":{"start_line":43,"start_character":5,"end_line":43,"end_character":47},"updated":"2016-08-10 04:07:52.000000000","message":"can be a class decorator..","commit_id":"b29a4c56d0dae045e2a56f15a859c8f33588c30d"},{"author":{"_account_id":7582,"name":"Jan Provaznik","email":"jan.provaznik@gmail.com","username":"jprovazn"},"change_message_id":"2cc96846145f7643d65204a8679fdb01fa3dfb65","unresolved":false,"context_lines":[{"line_number":40,"context_line":""},{"line_number":41,"context_line":"class UserMessagesTest(base.BaseSharesAdminTest):"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    @base.skip_if_microversion_lt(MICROVERSION)"},{"line_number":44,"context_line":"    def setUp(self):"},{"line_number":45,"context_line":"        super(UserMessagesTest, self).setUp()"},{"line_number":46,"context_line":"        self.message_id \u003d self._create_user_message()"}],"source_content_type":"text/x-python","patch_set":19,"id":"1a430d35_bf5568c7","line":43,"range":{"start_line":43,"start_character":5,"end_line":43,"end_character":47},"in_reply_to":"9ad45d7e_63321412","updated":"2017-02-06 09:52:00.000000000","message":"Done","commit_id":"b29a4c56d0dae045e2a56f15a859c8f33588c30d"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"8948513a53eef2607e4ac29039d5c18fef4d01c1","unresolved":false,"context_lines":[{"line_number":82,"context_line":"        self.assertIsInstance(body, list)"},{"line_number":83,"context_line":"        self.assertTrue(self.message_id, [x[\u0027id\u0027] for x in body])"},{"line_number":84,"context_line":"        message \u003d body[0]"},{"line_number":85,"context_line":"        for key in MESSAGE_KEYS:"},{"line_number":86,"context_line":"            self.assertIn(key, set(message.keys()),"},{"line_number":87,"context_line":"                          \u0027Missing expected key %s\u0027 % key)"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"    @test.attr(type\u003d[base.TAG_POSITIVE, base.TAG_API])"},{"line_number":90,"context_line":"    def test_show_message(self):"}],"source_content_type":"text/x-python","patch_set":19,"id":"9ad45d7e_a60a5a1f","line":87,"range":{"start_line":85,"start_character":8,"end_line":87,"end_character":58},"updated":"2016-08-10 04:07:52.000000000","message":"strict key check required here.. \n\n   self.assertEqual(set(MESSAGE_KEYS), set(message.keys))","commit_id":"b29a4c56d0dae045e2a56f15a859c8f33588c30d"},{"author":{"_account_id":7582,"name":"Jan Provaznik","email":"jan.provaznik@gmail.com","username":"jprovazn"},"change_message_id":"2cc96846145f7643d65204a8679fdb01fa3dfb65","unresolved":false,"context_lines":[{"line_number":82,"context_line":"        self.assertIsInstance(body, list)"},{"line_number":83,"context_line":"        self.assertTrue(self.message_id, [x[\u0027id\u0027] for x in body])"},{"line_number":84,"context_line":"        message \u003d body[0]"},{"line_number":85,"context_line":"        for key in MESSAGE_KEYS:"},{"line_number":86,"context_line":"            self.assertIn(key, set(message.keys()),"},{"line_number":87,"context_line":"                          \u0027Missing expected key %s\u0027 % key)"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"    @test.attr(type\u003d[base.TAG_POSITIVE, base.TAG_API])"},{"line_number":90,"context_line":"    def test_show_message(self):"}],"source_content_type":"text/x-python","patch_set":19,"id":"1a430d35_bf03a8b7","line":87,"range":{"start_line":85,"start_character":8,"end_line":87,"end_character":58},"in_reply_to":"9ad45d7e_a60a5a1f","updated":"2017-02-06 09:52:00.000000000","message":"Done","commit_id":"b29a4c56d0dae045e2a56f15a859c8f33588c30d"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"8948513a53eef2607e4ac29039d5c18fef4d01c1","unresolved":false,"context_lines":[{"line_number":92,"context_line":""},{"line_number":93,"context_line":"        message \u003d self.shares_v2_client.get_message(self.message_id)"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"        for key in MESSAGE_KEYS:"},{"line_number":96,"context_line":"            self.assertIn(key, set(message.keys()),"},{"line_number":97,"context_line":"                          \u0027Missing expected key %s\u0027 % key)"},{"line_number":98,"context_line":"        self.assertTrue(uuidutils.is_uuid_like(message[\u0027id\u0027]))"},{"line_number":99,"context_line":"        self.assertEqual(\u0027SHARE_000002\u0027, message[\u0027event_id\u0027])"},{"line_number":100,"context_line":"        self.assertEqual(\u0027SHARE\u0027, message[\u0027resource_type\u0027])"}],"source_content_type":"text/x-python","patch_set":19,"id":"9ad45d7e_e6145245","line":97,"range":{"start_line":95,"start_character":8,"end_line":97,"end_character":58},"updated":"2016-08-10 04:07:52.000000000","message":"same..","commit_id":"b29a4c56d0dae045e2a56f15a859c8f33588c30d"},{"author":{"_account_id":7582,"name":"Jan Provaznik","email":"jan.provaznik@gmail.com","username":"jprovazn"},"change_message_id":"2cc96846145f7643d65204a8679fdb01fa3dfb65","unresolved":false,"context_lines":[{"line_number":92,"context_line":""},{"line_number":93,"context_line":"        message \u003d self.shares_v2_client.get_message(self.message_id)"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"        for key in MESSAGE_KEYS:"},{"line_number":96,"context_line":"            self.assertIn(key, set(message.keys()),"},{"line_number":97,"context_line":"                          \u0027Missing expected key %s\u0027 % key)"},{"line_number":98,"context_line":"        self.assertTrue(uuidutils.is_uuid_like(message[\u0027id\u0027]))"},{"line_number":99,"context_line":"        self.assertEqual(\u0027SHARE_000002\u0027, message[\u0027event_id\u0027])"},{"line_number":100,"context_line":"        self.assertEqual(\u0027SHARE\u0027, message[\u0027resource_type\u0027])"}],"source_content_type":"text/x-python","patch_set":19,"id":"1a430d35_7fcea084","line":97,"range":{"start_line":95,"start_character":8,"end_line":97,"end_character":58},"in_reply_to":"9ad45d7e_e6145245","updated":"2017-02-06 09:52:00.000000000","message":"Done","commit_id":"b29a4c56d0dae045e2a56f15a859c8f33588c30d"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"71db9d25bfafc7e0eee30f888424c9bf80236f77","unresolved":false,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":"CONF \u003d config.CONF"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"MICROVERSION \u003d \u00272.19\u0027"},{"line_number":27,"context_line":"MESSAGE_KEYS \u003d ("},{"line_number":28,"context_line":"    \u0027created_at\u0027,"},{"line_number":29,"context_line":"    \u0027action\u0027,"}],"source_content_type":"text/x-python","patch_set":29,"id":"bff0334d_f34c8f9f","line":26,"range":{"start_line":26,"start_character":15,"end_line":26,"end_character":21},"updated":"2017-04-07 00:57:59.000000000","message":"needs an update","commit_id":"6f6adbef86fc54b788245ab35b5bb2a8ddf6b7f0"},{"author":{"_account_id":7582,"name":"Jan Provaznik","email":"jan.provaznik@gmail.com","username":"jprovazn"},"change_message_id":"4df792286a238b6cbb6cba901c4c4d7ad098e6bd","unresolved":false,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":"CONF \u003d config.CONF"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"MICROVERSION \u003d \u00272.19\u0027"},{"line_number":27,"context_line":"MESSAGE_KEYS \u003d ("},{"line_number":28,"context_line":"    \u0027created_at\u0027,"},{"line_number":29,"context_line":"    \u0027action\u0027,"}],"source_content_type":"text/x-python","patch_set":29,"id":"5ff73747_6f2cc7ab","line":26,"range":{"start_line":26,"start_character":15,"end_line":26,"end_character":21},"in_reply_to":"bff0334d_f34c8f9f","updated":"2017-05-03 08:21:18.000000000","message":"Done","commit_id":"6f6adbef86fc54b788245ab35b5bb2a8ddf6b7f0"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"dc45a404627a6971f095629590c470bbc799ee96","unresolved":false,"context_lines":[{"line_number":13,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":14,"context_line":"#    under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"from manila.message import message_field"},{"line_number":17,"context_line":"from oslo_utils import timeutils"},{"line_number":18,"context_line":"from oslo_utils import uuidutils"},{"line_number":19,"context_line":"from tempest.common.utils import data_utils"}],"source_content_type":"text/x-python","patch_set":46,"id":"3f1d235d_21be5065","line":16,"range":{"start_line":16,"start_character":0,"end_line":16,"end_character":40},"updated":"2017-06-30 01:16:35.000000000","message":"same comment here. manila should not be a requirement to manila_tempest_tests. manila_tempest_tests are \"black-box\" api tests that can be run off anyplace else with configuration that point to keystone running someplace that has manila-api service/endpoint configured.","commit_id":"5e7569362eda31222f3623e9a4d8da5d8721846c"},{"author":{"_account_id":7582,"name":"Jan Provaznik","email":"jan.provaznik@gmail.com","username":"jprovazn"},"change_message_id":"a36256dbd72967fd87ed4f7ff9217d3cadaa805b","unresolved":false,"context_lines":[{"line_number":13,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":14,"context_line":"#    under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"from manila.message import message_field"},{"line_number":17,"context_line":"from oslo_utils import timeutils"},{"line_number":18,"context_line":"from oslo_utils import uuidutils"},{"line_number":19,"context_line":"from tempest.common.utils import data_utils"}],"source_content_type":"text/x-python","patch_set":46,"id":"3f1d235d_53f3579f","line":16,"range":{"start_line":16,"start_character":0,"end_line":16,"end_character":40},"in_reply_to":"3f1d235d_21be5065","updated":"2017-06-30 09:42:59.000000000","message":"Done","commit_id":"5e7569362eda31222f3623e9a4d8da5d8721846c"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"06d244a64706745ede7b0f2649a4a0e742937ff4","unresolved":false,"context_lines":[{"line_number":112,"context_line":"        self.assertEqual(\u0027002\u0027, message[\u0027detail_id\u0027])"},{"line_number":113,"context_line":"        self.assertEqual(\u0027SHARE\u0027, message[\u0027resource_type\u0027])"},{"line_number":114,"context_line":"        self.assertTrue(uuidutils.is_uuid_like(message[\u0027resource_id\u0027]))"},{"line_number":115,"context_line":"        self.assertEqual(\u0027ERROR\u0027, message[\u0027message_level\u0027])"},{"line_number":116,"context_line":"        created_at \u003d timeutils.parse_strtime(message[\u0027created_at\u0027])"},{"line_number":117,"context_line":"        expires_at \u003d timeutils.parse_strtime(message[\u0027expires_at\u0027])"},{"line_number":118,"context_line":"        self.assertTrue(created_at \u003c expires_at)"}],"source_content_type":"text/x-python","patch_set":52,"id":"3f1d235d_638a856a","line":115,"range":{"start_line":115,"start_character":25,"end_line":115,"end_character":32},"updated":"2017-07-05 14:34:45.000000000","message":"Use message_levels.ERROR","commit_id":"b584c15b8735cb77cc7d8dd47ed6ce7e4d248396"},{"author":{"_account_id":7582,"name":"Jan Provaznik","email":"jan.provaznik@gmail.com","username":"jprovazn"},"change_message_id":"e2409158da0593053f12323da6329370ccd2f179","unresolved":false,"context_lines":[{"line_number":112,"context_line":"        self.assertEqual(\u0027002\u0027, message[\u0027detail_id\u0027])"},{"line_number":113,"context_line":"        self.assertEqual(\u0027SHARE\u0027, message[\u0027resource_type\u0027])"},{"line_number":114,"context_line":"        self.assertTrue(uuidutils.is_uuid_like(message[\u0027resource_id\u0027]))"},{"line_number":115,"context_line":"        self.assertEqual(\u0027ERROR\u0027, message[\u0027message_level\u0027])"},{"line_number":116,"context_line":"        created_at \u003d timeutils.parse_strtime(message[\u0027created_at\u0027])"},{"line_number":117,"context_line":"        expires_at \u003d timeutils.parse_strtime(message[\u0027expires_at\u0027])"},{"line_number":118,"context_line":"        self.assertTrue(created_at \u003c expires_at)"}],"source_content_type":"text/x-python","patch_set":52,"id":"3f1d235d_9a329f5d","line":115,"range":{"start_line":115,"start_character":25,"end_line":115,"end_character":32},"in_reply_to":"3f1d235d_638a856a","updated":"2017-07-05 17:23:47.000000000","message":"Not really, see https://review.openstack.org/#/c/313549/46/manila_tempest_tests/services/share/v2/json/shares_client.py","commit_id":"b584c15b8735cb77cc7d8dd47ed6ce7e4d248396"},{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"c3167bfb7cc0cc5eeef65c41881dfc9b324fd35d","unresolved":false,"context_lines":[{"line_number":115,"context_line":"        self.assertEqual(\u0027ERROR\u0027, message[\u0027message_level\u0027])"},{"line_number":116,"context_line":"        created_at \u003d timeutils.parse_strtime(message[\u0027created_at\u0027])"},{"line_number":117,"context_line":"        expires_at \u003d timeutils.parse_strtime(message[\u0027expires_at\u0027])"},{"line_number":118,"context_line":"        self.assertTrue(created_at \u003c expires_at)"},{"line_number":119,"context_line":"        self.assertEqual(set(MESSAGE_KEYS), set(message.keys()))"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"    @test.attr(type\u003d[base.TAG_POSITIVE, base.TAG_API])"}],"source_content_type":"text/x-python","patch_set":52,"id":"3f1d235d_652ce2ab","line":118,"range":{"start_line":118,"start_character":8,"end_line":118,"end_character":48},"updated":"2017-07-05 02:58:39.000000000","message":"We could use self.assertGreater(expires_at, created_at)","commit_id":"b584c15b8735cb77cc7d8dd47ed6ce7e4d248396"},{"author":{"_account_id":7582,"name":"Jan Provaznik","email":"jan.provaznik@gmail.com","username":"jprovazn"},"change_message_id":"c970381c1860f5b2f9df3dc2110866efa88bcadc","unresolved":false,"context_lines":[{"line_number":81,"context_line":"        self._create_user_message()"},{"line_number":82,"context_line":"        params \u003d {\u0027sort_key\u0027: \u0027resource_id\u0027, \u0027sort_dir\u0027: \u0027asc\u0027, \u0027limit\u0027: 2}"},{"line_number":83,"context_line":"        body \u003d self.shares_v2_client.list_messages(params\u003dparams)"},{"line_number":84,"context_line":"        messages \u003d body[\u0027messages\u0027]"},{"line_number":85,"context_line":"        self.assertIsInstance(messages, list)"},{"line_number":86,"context_line":"        ids \u003d [x[\u0027resource_id\u0027] for x in messages]"},{"line_number":87,"context_line":"        self.assertEqual(2, len(ids))"}],"source_content_type":"text/x-python","patch_set":56,"id":"3f1d235d_07d67228","line":84,"updated":"2017-07-12 07:27:30.000000000","message":"@Valeriy: you asked why body[\u0027messages\u0027] vs body is used in test_list* methods to get messages list. I added a comment which explains it as any \"fix\" (it\u0027s in the lib intentionally, so it\u0027s probably feature) would require a change in tempest lib.","commit_id":"11c9aa60b0752318ce4ddaf0bd3edbd3a30048e6"}],"manila_tempest_tests/tests/api/admin/test_user_messages_negative.py":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"8948513a53eef2607e4ac29039d5c18fef4d01c1","unresolved":false,"context_lines":[{"line_number":16,"context_line":""},{"line_number":17,"context_line":"import six"},{"line_number":18,"context_line":"from tempest.common.utils import data_utils"},{"line_number":19,"context_line":"from tempest import config  # noqa"},{"line_number":20,"context_line":"from tempest.lib import exceptions as lib_exc  # noqa"},{"line_number":21,"context_line":"from tempest import test  # noqa"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"from manila_tempest_tests.tests.api import base"},{"line_number":24,"context_line":""}],"source_content_type":"text/x-python","patch_set":19,"id":"9ad45d7e_865bd62d","line":21,"range":{"start_line":19,"start_character":27,"end_line":21,"end_character":32},"updated":"2016-08-10 04:07:52.000000000","message":"noqa not necessary..","commit_id":"b29a4c56d0dae045e2a56f15a859c8f33588c30d"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"8948513a53eef2607e4ac29039d5c18fef4d01c1","unresolved":false,"context_lines":[{"line_number":29,"context_line":""},{"line_number":30,"context_line":"class UserMessagesTest(base.BaseSharesAdminTest):"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    @base.skip_if_microversion_lt(MICROVERSION)"},{"line_number":33,"context_line":"    def setUp(self):"},{"line_number":34,"context_line":"        super(UserMessagesTest, self).setUp()"},{"line_number":35,"context_line":"        self.message_id \u003d self._create_user_message()"}],"source_content_type":"text/x-python","patch_set":19,"id":"9ad45d7e_c6366ee6","line":32,"range":{"start_line":32,"start_character":4,"end_line":32,"end_character":47},"updated":"2016-08-10 04:07:52.000000000","message":"same..","commit_id":"b29a4c56d0dae045e2a56f15a859c8f33588c30d"},{"author":{"_account_id":7582,"name":"Jan Provaznik","email":"jan.provaznik@gmail.com","username":"jprovazn"},"change_message_id":"2cc96846145f7643d65204a8679fdb01fa3dfb65","unresolved":false,"context_lines":[{"line_number":29,"context_line":""},{"line_number":30,"context_line":"class UserMessagesTest(base.BaseSharesAdminTest):"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    @base.skip_if_microversion_lt(MICROVERSION)"},{"line_number":33,"context_line":"    def setUp(self):"},{"line_number":34,"context_line":"        super(UserMessagesTest, self).setUp()"},{"line_number":35,"context_line":"        self.message_id \u003d self._create_user_message()"}],"source_content_type":"text/x-python","patch_set":19,"id":"1a430d35_3f99786f","line":32,"range":{"start_line":32,"start_character":4,"end_line":32,"end_character":47},"in_reply_to":"9ad45d7e_c6366ee6","updated":"2017-02-06 09:52:00.000000000","message":"Done","commit_id":"b29a4c56d0dae045e2a56f15a859c8f33588c30d"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"71db9d25bfafc7e0eee30f888424c9bf80236f77","unresolved":false,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":"CONF \u003d config.CONF"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"MICROVERSION \u003d \u00272.19\u0027"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"@base.skip_if_microversion_lt(MICROVERSION)"}],"source_content_type":"text/x-python","patch_set":29,"id":"bff0334d_335af74e","line":26,"range":{"start_line":26,"start_character":15,"end_line":26,"end_character":20},"updated":"2017-04-07 00:57:59.000000000","message":"same","commit_id":"6f6adbef86fc54b788245ab35b5bb2a8ddf6b7f0"},{"author":{"_account_id":7582,"name":"Jan Provaznik","email":"jan.provaznik@gmail.com","username":"jprovazn"},"change_message_id":"4df792286a238b6cbb6cba901c4c4d7ad098e6bd","unresolved":false,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":"CONF \u003d config.CONF"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"MICROVERSION \u003d \u00272.19\u0027"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"@base.skip_if_microversion_lt(MICROVERSION)"}],"source_content_type":"text/x-python","patch_set":29,"id":"5ff73747_cf163b56","line":26,"range":{"start_line":26,"start_character":15,"end_line":26,"end_character":20},"in_reply_to":"bff0334d_335af74e","updated":"2017-05-03 08:21:18.000000000","message":"Done","commit_id":"6f6adbef86fc54b788245ab35b5bb2a8ddf6b7f0"},{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"c3167bfb7cc0cc5eeef65c41881dfc9b324fd35d","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2016 Andrew Kerr"},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":52,"id":"3f1d235d_a5d1da25","line":1,"range":{"start_line":1,"start_character":12,"end_line":1,"end_character":16},"updated":"2017-07-05 02:58:39.000000000","message":"2016?","commit_id":"b584c15b8735cb77cc7d8dd47ed6ce7e4d248396"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"ea14f1974f5ab48f3a003fecdb43d706130002d5","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2016 Andrew Kerr"},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":52,"id":"3f1d235d_a88f5ccb","line":1,"range":{"start_line":1,"start_character":12,"end_line":1,"end_character":16},"in_reply_to":"3f1d235d_a5d1da25","updated":"2017-07-05 14:39:49.000000000","message":"I think Andrew authored this file in 2016.\n\n@jan: You might want to add \u0027akerr@netapp.com\u0027 to the co-authors in the commit message.","commit_id":"b584c15b8735cb77cc7d8dd47ed6ce7e4d248396"},{"author":{"_account_id":7582,"name":"Jan Provaznik","email":"jan.provaznik@gmail.com","username":"jprovazn"},"change_message_id":"e2409158da0593053f12323da6329370ccd2f179","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2016 Andrew Kerr"},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":52,"id":"3f1d235d_bd3d5590","line":1,"range":{"start_line":1,"start_character":12,"end_line":1,"end_character":16},"in_reply_to":"3f1d235d_a5d1da25","updated":"2017-07-05 17:23:47.000000000","message":"Yep, this patch is old.","commit_id":"b584c15b8735cb77cc7d8dd47ed6ce7e4d248396"},{"author":{"_account_id":7582,"name":"Jan Provaznik","email":"jan.provaznik@gmail.com","username":"jprovazn"},"change_message_id":"e2409158da0593053f12323da6329370ccd2f179","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2016 Andrew Kerr"},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":52,"id":"3f1d235d_dd7a51ef","line":1,"range":{"start_line":1,"start_character":12,"end_line":1,"end_character":16},"in_reply_to":"3f1d235d_a88f5ccb","updated":"2017-07-05 17:23:47.000000000","message":"Well, I think that this is just copy\u0026pasted header. Because Alex didn\u0027t include akerr in co-authors in his original patch and I\u0027m not aware that he was involved in this patch, I think it\u0027s OK to remove this Copyright header from newly added file and leave just apache license bellow.","commit_id":"b584c15b8735cb77cc7d8dd47ed6ce7e4d248396"},{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"c3167bfb7cc0cc5eeef65c41881dfc9b324fd35d","unresolved":false,"context_lines":[{"line_number":26,"context_line":"MICROVERSION \u003d \u00272.36\u0027"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"@base.skip_if_microversion_lt(MICROVERSION)"},{"line_number":30,"context_line":"class UserMessagesTest(base.BaseSharesAdminTest):"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    def setUp(self):"}],"source_content_type":"text/x-python","patch_set":52,"id":"3f1d235d_059c0e0d","line":29,"range":{"start_line":29,"start_character":0,"end_line":29,"end_character":43},"updated":"2017-07-05 02:58:39.000000000","message":"How about test the version that we don\u0027t support the usermessage feature.","commit_id":"b584c15b8735cb77cc7d8dd47ed6ce7e4d248396"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"ea14f1974f5ab48f3a003fecdb43d706130002d5","unresolved":false,"context_lines":[{"line_number":26,"context_line":"MICROVERSION \u003d \u00272.36\u0027"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"@base.skip_if_microversion_lt(MICROVERSION)"},{"line_number":30,"context_line":"class UserMessagesTest(base.BaseSharesAdminTest):"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    def setUp(self):"}],"source_content_type":"text/x-python","patch_set":52,"id":"3f1d235d_a3153de7","line":29,"range":{"start_line":29,"start_character":0,"end_line":29,"end_character":43},"in_reply_to":"3f1d235d_059c0e0d","updated":"2017-07-05 14:39:49.000000000","message":"Hmm, I\u0027m not seeing negative tempest api tests for microversions less thatn the supported microversion.  Do you have an example you can point to that illustrates what you have in mind?","commit_id":"b584c15b8735cb77cc7d8dd47ed6ce7e4d248396"},{"author":{"_account_id":7582,"name":"Jan Provaznik","email":"jan.provaznik@gmail.com","username":"jprovazn"},"change_message_id":"e2409158da0593053f12323da6329370ccd2f179","unresolved":false,"context_lines":[{"line_number":26,"context_line":"MICROVERSION \u003d \u00272.36\u0027"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"@base.skip_if_microversion_lt(MICROVERSION)"},{"line_number":30,"context_line":"class UserMessagesTest(base.BaseSharesAdminTest):"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    def setUp(self):"}],"source_content_type":"text/x-python","patch_set":52,"id":"3f1d235d_03c06a29","line":29,"range":{"start_line":29,"start_character":0,"end_line":29,"end_character":43},"in_reply_to":"3f1d235d_a3153de7","updated":"2017-07-05 17:23:47.000000000","message":"I\u0027m not convinced that such test is necessary. I don\u0027t see much value in explicitly testing that we do not provide newly added API in older versions (specifically that we return an error when older version is used).\n\nIt would make sense to explicitly test older version if this would be a change in an existing API, to assure that behavior is still same in old version. But it\u0027s not this case.","commit_id":"b584c15b8735cb77cc7d8dd47ed6ce7e4d248396"},{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"c3167bfb7cc0cc5eeef65c41881dfc9b324fd35d","unresolved":false,"context_lines":[{"line_number":27,"context_line":""},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"@base.skip_if_microversion_lt(MICROVERSION)"},{"line_number":30,"context_line":"class UserMessagesTest(base.BaseSharesAdminTest):"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    def setUp(self):"},{"line_number":33,"context_line":"        super(UserMessagesTest, self).setUp()"}],"source_content_type":"text/x-python","patch_set":52,"id":"3f1d235d_85025e3c","line":30,"range":{"start_line":30,"start_character":6,"end_line":30,"end_character":21},"updated":"2017-07-05 02:58:39.000000000","message":"It should be UserMessageNegativeTest, The same of UserMessagesTest class has been defined in test_user_messages.py.\nhttps://review.openstack.org/#/c/313549/52/manila_tempest_tests/tests/api/admin/test_user_messages.py","commit_id":"b584c15b8735cb77cc7d8dd47ed6ce7e4d248396"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"ea14f1974f5ab48f3a003fecdb43d706130002d5","unresolved":false,"context_lines":[{"line_number":27,"context_line":""},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"@base.skip_if_microversion_lt(MICROVERSION)"},{"line_number":30,"context_line":"class UserMessagesTest(base.BaseSharesAdminTest):"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    def setUp(self):"},{"line_number":33,"context_line":"        super(UserMessagesTest, self).setUp()"}],"source_content_type":"text/x-python","patch_set":52,"id":"3f1d235d_83d48121","line":30,"range":{"start_line":30,"start_character":6,"end_line":30,"end_character":21},"in_reply_to":"3f1d235d_85025e3c","updated":"2017-07-05 14:39:49.000000000","message":"+1","commit_id":"b584c15b8735cb77cc7d8dd47ed6ce7e4d248396"},{"author":{"_account_id":7582,"name":"Jan Provaznik","email":"jan.provaznik@gmail.com","username":"jprovazn"},"change_message_id":"e2409158da0593053f12323da6329370ccd2f179","unresolved":false,"context_lines":[{"line_number":27,"context_line":""},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"@base.skip_if_microversion_lt(MICROVERSION)"},{"line_number":30,"context_line":"class UserMessagesTest(base.BaseSharesAdminTest):"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    def setUp(self):"},{"line_number":33,"context_line":"        super(UserMessagesTest, self).setUp()"}],"source_content_type":"text/x-python","patch_set":52,"id":"3f1d235d_fd53cd37","line":30,"range":{"start_line":30,"start_character":6,"end_line":30,"end_character":21},"in_reply_to":"3f1d235d_85025e3c","updated":"2017-07-05 17:23:47.000000000","message":"Done","commit_id":"b584c15b8735cb77cc7d8dd47ed6ce7e4d248396"},{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"c3167bfb7cc0cc5eeef65c41881dfc9b324fd35d","unresolved":false,"context_lines":[{"line_number":30,"context_line":"class UserMessagesTest(base.BaseSharesAdminTest):"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    def setUp(self):"},{"line_number":33,"context_line":"        super(UserMessagesTest, self).setUp()"},{"line_number":34,"context_line":"        self.message \u003d self._create_user_message()"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"    def _delete_share(self, share_id):"}],"source_content_type":"text/x-python","patch_set":52,"id":"3f1d235d_65fbc246","line":33,"range":{"start_line":33,"start_character":14,"end_line":33,"end_character":30},"updated":"2017-07-05 02:58:39.000000000","message":"UserMessageNegativeTest","commit_id":"b584c15b8735cb77cc7d8dd47ed6ce7e4d248396"},{"author":{"_account_id":7582,"name":"Jan Provaznik","email":"jan.provaznik@gmail.com","username":"jprovazn"},"change_message_id":"e2409158da0593053f12323da6329370ccd2f179","unresolved":false,"context_lines":[{"line_number":30,"context_line":"class UserMessagesTest(base.BaseSharesAdminTest):"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    def setUp(self):"},{"line_number":33,"context_line":"        super(UserMessagesTest, self).setUp()"},{"line_number":34,"context_line":"        self.message \u003d self._create_user_message()"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"    def _delete_share(self, share_id):"}],"source_content_type":"text/x-python","patch_set":52,"id":"3f1d235d_e3de8e0f","line":33,"range":{"start_line":33,"start_character":14,"end_line":33,"end_character":30},"in_reply_to":"3f1d235d_65fbc246","updated":"2017-07-05 17:23:47.000000000","message":"Done","commit_id":"b584c15b8735cb77cc7d8dd47ed6ce7e4d248396"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"25cf7a65f9630e7dba36d07ac51651bb220887a2","unresolved":false,"context_lines":[{"line_number":30,"context_line":"        super(UserMessageNegativeTest, self).setUp()"},{"line_number":31,"context_line":"        self.message \u003d self._create_user_message()"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    def _delete_share(self, share_id):"},{"line_number":34,"context_line":"        self.shares_v2_client.delete_share(share_id)"},{"line_number":35,"context_line":"        self.shares_v2_client.wait_for_resource_deletion(share_id\u003dshare_id)"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    def _create_user_message(self):"},{"line_number":38,"context_line":"        \"\"\"Trigger a \u0027no valid host\u0027 situation to generate a message.\"\"\""},{"line_number":39,"context_line":"        extra_specs \u003d {"},{"line_number":40,"context_line":"            \u0027vendor_name\u0027: \u0027foobar\u0027,"},{"line_number":41,"context_line":"            \u0027driver_handles_share_servers\u0027: CONF.share.multitenancy_enabled,"},{"line_number":42,"context_line":"        }"},{"line_number":43,"context_line":"        share_type_name \u003d data_utils.rand_name(\"share-type\")"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"        bogus_type \u003d self.create_share_type("},{"line_number":46,"context_line":"            name\u003dshare_type_name,"},{"line_number":47,"context_line":"            extra_specs\u003dextra_specs)[\u0027share_type\u0027]"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"        params \u003d {\u0027share_type_id\u0027: bogus_type[\u0027id\u0027],"},{"line_number":50,"context_line":"                  \u0027share_network_id\u0027: self.shares_v2_client.share_network_id}"},{"line_number":51,"context_line":"        share \u003d self.shares_v2_client.create_share(**params)"},{"line_number":52,"context_line":"        self.addCleanup(self.shares_v2_client.delete_share, share[\u0027id\u0027])"},{"line_number":53,"context_line":"        self.shares_v2_client.wait_for_share_status(share[\u0027id\u0027], \"error\")"},{"line_number":54,"context_line":"        return self.shares_v2_client.wait_for_message(share[\u0027id\u0027])"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"    @test.attr(type\u003d[base.TAG_NEGATIVE, base.TAG_API])"},{"line_number":57,"context_line":"    def test_show_message_of_other_tenants(self):"}],"source_content_type":"text/x-python","patch_set":56,"id":"3f1d235d_6e7d1e6d","line":54,"range":{"start_line":33,"start_character":0,"end_line":54,"end_character":66},"updated":"2017-07-11 13:36:15.000000000","message":"Duplicates code from second module. In such cases it is better to define this method in \"base.py\" module.","commit_id":"11c9aa60b0752318ce4ddaf0bd3edbd3a30048e6"},{"author":{"_account_id":7582,"name":"Jan Provaznik","email":"jan.provaznik@gmail.com","username":"jprovazn"},"change_message_id":"c970381c1860f5b2f9df3dc2110866efa88bcadc","unresolved":false,"context_lines":[{"line_number":30,"context_line":"        super(UserMessageNegativeTest, self).setUp()"},{"line_number":31,"context_line":"        self.message \u003d self._create_user_message()"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    def _delete_share(self, share_id):"},{"line_number":34,"context_line":"        self.shares_v2_client.delete_share(share_id)"},{"line_number":35,"context_line":"        self.shares_v2_client.wait_for_resource_deletion(share_id\u003dshare_id)"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    def _create_user_message(self):"},{"line_number":38,"context_line":"        \"\"\"Trigger a \u0027no valid host\u0027 situation to generate a message.\"\"\""},{"line_number":39,"context_line":"        extra_specs \u003d {"},{"line_number":40,"context_line":"            \u0027vendor_name\u0027: \u0027foobar\u0027,"},{"line_number":41,"context_line":"            \u0027driver_handles_share_servers\u0027: CONF.share.multitenancy_enabled,"},{"line_number":42,"context_line":"        }"},{"line_number":43,"context_line":"        share_type_name \u003d data_utils.rand_name(\"share-type\")"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"        bogus_type \u003d self.create_share_type("},{"line_number":46,"context_line":"            name\u003dshare_type_name,"},{"line_number":47,"context_line":"            extra_specs\u003dextra_specs)[\u0027share_type\u0027]"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"        params \u003d {\u0027share_type_id\u0027: bogus_type[\u0027id\u0027],"},{"line_number":50,"context_line":"                  \u0027share_network_id\u0027: self.shares_v2_client.share_network_id}"},{"line_number":51,"context_line":"        share \u003d self.shares_v2_client.create_share(**params)"},{"line_number":52,"context_line":"        self.addCleanup(self.shares_v2_client.delete_share, share[\u0027id\u0027])"},{"line_number":53,"context_line":"        self.shares_v2_client.wait_for_share_status(share[\u0027id\u0027], \"error\")"},{"line_number":54,"context_line":"        return self.shares_v2_client.wait_for_message(share[\u0027id\u0027])"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"    @test.attr(type\u003d[base.TAG_NEGATIVE, base.TAG_API])"},{"line_number":57,"context_line":"    def test_show_message_of_other_tenants(self):"}],"source_content_type":"text/x-python","patch_set":56,"id":"3f1d235d_6cfd0d39","line":54,"range":{"start_line":33,"start_character":0,"end_line":54,"end_character":66},"in_reply_to":"3f1d235d_3b9bcdc9","updated":"2017-07-12 07:27:30.000000000","message":"Done","commit_id":"11c9aa60b0752318ce4ddaf0bd3edbd3a30048e6"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"a641746097820baacdca29b68dd405b77772e6ed","unresolved":false,"context_lines":[{"line_number":30,"context_line":"        super(UserMessageNegativeTest, self).setUp()"},{"line_number":31,"context_line":"        self.message \u003d self._create_user_message()"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    def _delete_share(self, share_id):"},{"line_number":34,"context_line":"        self.shares_v2_client.delete_share(share_id)"},{"line_number":35,"context_line":"        self.shares_v2_client.wait_for_resource_deletion(share_id\u003dshare_id)"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    def _create_user_message(self):"},{"line_number":38,"context_line":"        \"\"\"Trigger a \u0027no valid host\u0027 situation to generate a message.\"\"\""},{"line_number":39,"context_line":"        extra_specs \u003d {"},{"line_number":40,"context_line":"            \u0027vendor_name\u0027: \u0027foobar\u0027,"},{"line_number":41,"context_line":"            \u0027driver_handles_share_servers\u0027: CONF.share.multitenancy_enabled,"},{"line_number":42,"context_line":"        }"},{"line_number":43,"context_line":"        share_type_name \u003d data_utils.rand_name(\"share-type\")"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"        bogus_type \u003d self.create_share_type("},{"line_number":46,"context_line":"            name\u003dshare_type_name,"},{"line_number":47,"context_line":"            extra_specs\u003dextra_specs)[\u0027share_type\u0027]"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"        params \u003d {\u0027share_type_id\u0027: bogus_type[\u0027id\u0027],"},{"line_number":50,"context_line":"                  \u0027share_network_id\u0027: self.shares_v2_client.share_network_id}"},{"line_number":51,"context_line":"        share \u003d self.shares_v2_client.create_share(**params)"},{"line_number":52,"context_line":"        self.addCleanup(self.shares_v2_client.delete_share, share[\u0027id\u0027])"},{"line_number":53,"context_line":"        self.shares_v2_client.wait_for_share_status(share[\u0027id\u0027], \"error\")"},{"line_number":54,"context_line":"        return self.shares_v2_client.wait_for_message(share[\u0027id\u0027])"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"    @test.attr(type\u003d[base.TAG_NEGATIVE, base.TAG_API])"},{"line_number":57,"context_line":"    def test_show_message_of_other_tenants(self):"}],"source_content_type":"text/x-python","patch_set":56,"id":"3f1d235d_3b9bcdc9","line":54,"range":{"start_line":33,"start_character":0,"end_line":54,"end_character":66},"in_reply_to":"3f1d235d_6e7d1e6d","updated":"2017-07-12 03:35:52.000000000","message":"+1\n\nPutting this in base.py allows for further reuse..","commit_id":"11c9aa60b0752318ce4ddaf0bd3edbd3a30048e6"}],"releasenotes/notes/user-messages-api-589ee7d68ccba70c.yaml":[{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"346fdc95cc55945eea88abd9f21ff77de5e589c8","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - User messages."}],"source_content_type":"text/x-yaml","patch_set":19,"id":"dada55a8_a5df100b","line":3,"range":{"start_line":3,"start_character":4,"end_line":3,"end_character":18},"updated":"2016-07-25 09:09:32.000000000","message":"please add more details, thanks. \nOnly implement these three APIs:\nGET /messages\nGET /messages/\u003cmessage_id\u003e\nDELETE /messages/\u003cmessage_id\u003e","commit_id":"b29a4c56d0dae045e2a56f15a859c8f33588c30d"},{"author":{"_account_id":7582,"name":"Jan Provaznik","email":"jan.provaznik@gmail.com","username":"jprovazn"},"change_message_id":"2cc96846145f7643d65204a8679fdb01fa3dfb65","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - User messages."}],"source_content_type":"text/x-yaml","patch_set":19,"id":"1a430d35_bfdba81a","line":3,"range":{"start_line":3,"start_character":4,"end_line":3,"end_character":18},"in_reply_to":"dada55a8_a5df100b","updated":"2017-02-06 09:52:00.000000000","message":"Done","commit_id":"b29a4c56d0dae045e2a56f15a859c8f33588c30d"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"deffcc4c485e2229e30bc6bea0b9dcb87d3966d2","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Added new user messages API: GET /messages, GET /messages/\u003cmessage_id\u003e and"},{"line_number":4,"context_line":"    DELETE /messages/\u003cmessage_id\u003e"}],"source_content_type":"text/x-yaml","patch_set":24,"id":"9a30ddce_d612d861","line":3,"range":{"start_line":3,"start_character":31,"end_line":3,"end_character":33},"updated":"2017-03-08 13:30:51.000000000","message":"I think this colon causes problems for the releasenotes build.  You can likely put quotes around the whole \"Added ...\" string to get around this.","commit_id":"02721ec661dab6be2fb6132fd27b0f3a175825fa"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"150737256d42a9c681181662a4f4d2aa9a172e91","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Added new user messages API: GET /messages, GET /messages/\u003cmessage_id\u003e and"},{"line_number":4,"context_line":"    DELETE /messages/\u003cmessage_id\u003e"}],"source_content_type":"text/x-yaml","patch_set":24,"id":"bff0334d_4e0ef432","line":3,"range":{"start_line":3,"start_character":31,"end_line":3,"end_character":33},"in_reply_to":"9a30ddce_d612d861","updated":"2017-04-07 00:58:33.000000000","message":"Or get rid of the colon...","commit_id":"02721ec661dab6be2fb6132fd27b0f3a175825fa"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"71db9d25bfafc7e0eee30f888424c9bf80236f77","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - \"Added new user messages API: GET /messages, GET /messages/\u003cmessage_id\u003e and"},{"line_number":4,"context_line":"    DELETE /messages/\u003cmessage_id\u003e\""}],"source_content_type":"text/x-yaml","patch_set":29,"id":"bff0334d_1355b31d","line":4,"range":{"start_line":3,"start_character":4,"end_line":4,"end_character":34},"updated":"2017-04-07 00:57:59.000000000","message":"you don\u0027t need the quotes..","commit_id":"6f6adbef86fc54b788245ab35b5bb2a8ddf6b7f0"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"be81d3d40d92140916782711c1733d4c0f998d19","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - \"Added new user messages API: GET /messages, GET /messages/\u003cmessage_id\u003e and"},{"line_number":4,"context_line":"    DELETE /messages/\u003cmessage_id\u003e\""}],"source_content_type":"text/x-yaml","patch_set":29,"id":"bff0334d_4e3cb4be","line":4,"range":{"start_line":3,"start_character":4,"end_line":4,"end_character":34},"in_reply_to":"bff0334d_1355b31d","updated":"2017-04-07 01:01:42.000000000","message":"You could get rid of the colon instead:\n\n - Added new user messages APIs - GET /messages,\n   GET /messages/\u003cmessage_id\u003e and DELETE /messages/\u003cmessage_id\u003e","commit_id":"6f6adbef86fc54b788245ab35b5bb2a8ddf6b7f0"},{"author":{"_account_id":7582,"name":"Jan Provaznik","email":"jan.provaznik@gmail.com","username":"jprovazn"},"change_message_id":"4df792286a238b6cbb6cba901c4c4d7ad098e6bd","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - \"Added new user messages API: GET /messages, GET /messages/\u003cmessage_id\u003e and"},{"line_number":4,"context_line":"    DELETE /messages/\u003cmessage_id\u003e\""}],"source_content_type":"text/x-yaml","patch_set":29,"id":"5ff73747_d988c023","line":4,"range":{"start_line":3,"start_character":4,"end_line":4,"end_character":34},"in_reply_to":"bff0334d_4e3cb4be","updated":"2017-05-03 08:21:18.000000000","message":"Done","commit_id":"6f6adbef86fc54b788245ab35b5bb2a8ddf6b7f0"},{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"c3167bfb7cc0cc5eeef65c41881dfc9b324fd35d","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"    - Added new user messages API - GET /messages, GET /messages/\u003cmessage_id\u003e and"},{"line_number":4,"context_line":"      DELETE /messages/\u003cmessage_id\u003e"}],"source_content_type":"text/x-yaml","patch_set":52,"id":"3f1d235d_e557d2c9","line":3,"range":{"start_line":3,"start_character":29,"end_line":3,"end_character":34},"updated":"2017-07-05 02:58:39.000000000","message":"APIs?","commit_id":"b584c15b8735cb77cc7d8dd47ed6ce7e4d248396"},{"author":{"_account_id":7582,"name":"Jan Provaznik","email":"jan.provaznik@gmail.com","username":"jprovazn"},"change_message_id":"e2409158da0593053f12323da6329370ccd2f179","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"    - Added new user messages API - GET /messages, GET /messages/\u003cmessage_id\u003e and"},{"line_number":4,"context_line":"      DELETE /messages/\u003cmessage_id\u003e"}],"source_content_type":"text/x-yaml","patch_set":52,"id":"3f1d235d_dd85b15b","line":3,"range":{"start_line":3,"start_character":29,"end_line":3,"end_character":34},"in_reply_to":"3f1d235d_e557d2c9","updated":"2017-07-05 17:23:47.000000000","message":"I think API is fine - this is user messages interface, not necessarily multiple interface*s* (in compare to multiple endpoints).","commit_id":"b584c15b8735cb77cc7d8dd47ed6ce7e4d248396"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"06d244a64706745ede7b0f2649a4a0e742937ff4","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"    - Added new user messages API - GET /messages, GET /messages/\u003cmessage_id\u003e and"},{"line_number":4,"context_line":"      DELETE /messages/\u003cmessage_id\u003e"}],"source_content_type":"text/x-yaml","patch_set":52,"id":"3f1d235d_c38ef977","line":4,"updated":"2017-07-05 14:34:45.000000000","message":"Add ending period.","commit_id":"b584c15b8735cb77cc7d8dd47ed6ce7e4d248396"}],"releasenotes/notes/user-messages-sorting-546e9a9b938e3677.yaml":[{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"c3167bfb7cc0cc5eeef65c41881dfc9b324fd35d","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"    - Added sorting, filtering and pagination to the user messages listing."}],"source_content_type":"text/x-yaml","patch_set":52,"id":"3f1d235d_e5b35209","line":3,"range":{"start_line":2,"start_character":0,"end_line":3,"end_character":75},"updated":"2017-07-05 02:58:39.000000000","message":"Why we need to add two releasenotes in one patch. It could be easy to combine to one releasenote.","commit_id":"b584c15b8735cb77cc7d8dd47ed6ce7e4d248396"},{"author":{"_account_id":7582,"name":"Jan Provaznik","email":"jan.provaznik@gmail.com","username":"jprovazn"},"change_message_id":"e2409158da0593053f12323da6329370ccd2f179","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"    - Added sorting, filtering and pagination to the user messages listing."}],"source_content_type":"text/x-yaml","patch_set":52,"id":"3f1d235d_fd162d49","line":3,"range":{"start_line":2,"start_character":0,"end_line":3,"end_character":75},"in_reply_to":"3f1d235d_e5b35209","updated":"2017-07-05 17:23:47.000000000","message":"sure, this resulted from squashing two logical separated patches into single massive patch - I didn\u0027t squash relnotes during squashing.","commit_id":"b584c15b8735cb77cc7d8dd47ed6ce7e4d248396"}],"requirements.txt":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"dc45a404627a6971f095629590c470bbc799ee96","unresolved":false,"context_lines":[{"line_number":25,"context_line":"oslo.service\u003e\u003d1.10.0 # Apache-2.0"},{"line_number":26,"context_line":"oslo.utils\u003e\u003d3.20.0 # Apache-2.0"},{"line_number":27,"context_line":"oslo.concurrency\u003e\u003d3.8.0 # Apache-2.0"},{"line_number":28,"context_line":"oslo.versionedobjects\u003e\u003d1.17.0 # Apache-2.0"},{"line_number":29,"context_line":"paramiko\u003e\u003d2.0 # LGPLv2.1+"},{"line_number":30,"context_line":"Paste # MIT"},{"line_number":31,"context_line":"PasteDeploy\u003e\u003d1.5.0 # MIT"}],"source_content_type":"text/plain","patch_set":46,"id":"3f1d235d_e1b73886","line":28,"range":{"start_line":28,"start_character":0,"end_line":28,"end_character":42},"updated":"2017-06-30 01:16:35.000000000","message":"??","commit_id":"5e7569362eda31222f3623e9a4d8da5d8721846c"},{"author":{"_account_id":7582,"name":"Jan Provaznik","email":"jan.provaznik@gmail.com","username":"jprovazn"},"change_message_id":"a36256dbd72967fd87ed4f7ff9217d3cadaa805b","unresolved":false,"context_lines":[{"line_number":25,"context_line":"oslo.service\u003e\u003d1.10.0 # Apache-2.0"},{"line_number":26,"context_line":"oslo.utils\u003e\u003d3.20.0 # Apache-2.0"},{"line_number":27,"context_line":"oslo.concurrency\u003e\u003d3.8.0 # Apache-2.0"},{"line_number":28,"context_line":"oslo.versionedobjects\u003e\u003d1.17.0 # Apache-2.0"},{"line_number":29,"context_line":"paramiko\u003e\u003d2.0 # LGPLv2.1+"},{"line_number":30,"context_line":"Paste # MIT"},{"line_number":31,"context_line":"PasteDeploy\u003e\u003d1.5.0 # MIT"}],"source_content_type":"text/plain","patch_set":46,"id":"3f1d235d_15e38735","line":28,"range":{"start_line":28,"start_character":0,"end_line":28,"end_character":42},"in_reply_to":"3f1d235d_e1b73886","updated":"2017-06-30 09:42:59.000000000","message":"used from:\nhttps://review.openstack.org/#/c/313549/46/manila/message/message_field.py","commit_id":"5e7569362eda31222f3623e9a4d8da5d8721846c"}]}
