)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"change_message_id":"9c8d8a8928048903c44d8636adc4693ebe8c8e5a","unresolved":false,"context_lines":[{"line_number":12,"context_line":"Left over areas are"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"1.API implementation"},{"line_number":15,"context_line":"2.Message generation code for all asynchronous operations"},{"line_number":16,"context_line":"3.Test cases"},{"line_number":17,"context_line":"4.Paging Implementation"},{"line_number":18,"context_line":"5.Periodic Task"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"da0c15f0_aeb521ef","line":15,"range":{"start_line":15,"start_character":10,"end_line":15,"end_character":20},"updated":"2016-03-28 14:55:22.000000000","message":"Probably never going to cover all the cases","commit_id":"60824d74fa741edc9b49a4c0f7d56ccbbd97aa28"},{"author":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"change_message_id":"9c8d8a8928048903c44d8636adc4693ebe8c8e5a","unresolved":false,"context_lines":[{"line_number":14,"context_line":"1.API implementation"},{"line_number":15,"context_line":"2.Message generation code for all asynchronous operations"},{"line_number":16,"context_line":"3.Test cases"},{"line_number":17,"context_line":"4.Paging Implementation"},{"line_number":18,"context_line":"5.Periodic Task"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Implements : blueprint summarymessage"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"da0c15f0_aeac01a1","line":17,"updated":"2016-03-28 14:55:22.000000000","message":"We should have 4 \u0026 5 in separate patches to keep them as small as possible","commit_id":"60824d74fa741edc9b49a4c0f7d56ccbbd97aa28"},{"author":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"change_message_id":"5e770c6889eed339a75e9bdf79010389b5845fa0","unresolved":false,"context_lines":[{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Implements : blueprint summarymessage"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Depends-On:Idd57014c1504eb4fc9ea0eabe894d2000ea9c364"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Co-Authored-By: Alex Meade \u003cmr.alex.meade@gmail.com\u003e"},{"line_number":21,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":11,"id":"ba0121b8_5dc31689","line":18,"range":{"start_line":18,"start_character":0,"end_line":18,"end_character":52},"updated":"2016-03-31 14:14:50.000000000","message":"I\u0027m removing this, it is not a dependency, whichever patch gets in last has to update it\u0027s microversion.","commit_id":"710be7cff6e145a31cfd4b961967e7fba48bba3b"},{"author":{"_account_id":16308,"name":"Sheel Rana","email":"ranasheel2000@gmail.com","username":"sheel.rana"},"change_message_id":"18d2933f110f239f9d3c4b7ad81cca5da91a87cb","unresolved":false,"context_lines":[{"line_number":1,"context_line":"Parent:     f1f9e2d1 (Merge \"Storwize: Set multiattach property per pool\")"},{"line_number":2,"context_line":"Author:     Alex Meade \u003cmr.alex.meade@gmail.com\u003e"},{"line_number":3,"context_line":"AuthorDate: 2016-03-29 20:49:38 +0530"},{"line_number":4,"context_line":"Commit:     Alex Meade \u003cmr.alex.meade@gmail.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2016-03-31 15:21:16 -0400"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":14,"id":"ba0121b8_6266152b","line":2,"range":{"start_line":2,"start_character":0,"end_line":2,"end_character":25},"updated":"2016-04-01 04:42:52.000000000","message":"This must be Sheel Rana\u003cranasheel2000@gmail.com\u003e\nIf someone is changing something in patch, may be commit id can be changed.","commit_id":"da1fd1807beaf0eb58135dc54d0e2d035df79e98"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"6ea1ce771908897d7fc7fdbb052240048696f18f","unresolved":false,"context_lines":[{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Implements : blueprint summarymessage"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Co-Authored-By: Alex Meade \u003cmr.alex.meade@gmail.com\u003e"},{"line_number":17,"context_line":"Co-Authored-By: Sheel Rana \u003cranasheel2000@gmail.com\u003e"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Change-Id: Id8a4a700c1159be24b15056f401a2ea77804d0a0"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":14,"id":"9a061dce_a390f8ed","line":16,"range":{"start_line":16,"start_character":0,"end_line":16,"end_character":52},"updated":"2016-04-04 15:05:46.000000000","message":"nit: you could remove this if you make another patch.","commit_id":"da1fd1807beaf0eb58135dc54d0e2d035df79e98"},{"author":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"change_message_id":"c302003c114f3326038c04a40d6a7b74a694c3ed","unresolved":false,"context_lines":[{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Implements : blueprint summarymessage"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Co-Authored-By: Alex Meade \u003cmr.alex.meade@gmail.com\u003e"},{"line_number":17,"context_line":"Co-Authored-By: Sheel Rana \u003cranasheel2000@gmail.com\u003e"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Change-Id: Id8a4a700c1159be24b15056f401a2ea77804d0a0"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":14,"id":"9a061dce_13300801","line":16,"range":{"start_line":16,"start_character":0,"end_line":16,"end_character":52},"in_reply_to":"9a061dce_a390f8ed","updated":"2016-04-04 17:29:20.000000000","message":"I prefer all the authors listed as co-authors. That\u0027s how we used to do it :)","commit_id":"da1fd1807beaf0eb58135dc54d0e2d035df79e98"}],"cinder/api/v3/messages.py":[{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"694cfe708de2b82df3457a332056f0f9790df98e","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2016 OpenStack Foundation"},{"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":7,"id":"ba0121b8_28657b1d","line":1,"updated":"2016-03-30 15:11:59.000000000","message":"Please remove, this is not the correct copyright statement.","commit_id":"4bc3f1e0463fa9286ec95e71598a1e6ce5761cd1"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"6ea1ce771908897d7fc7fdbb052240048696f18f","unresolved":false,"context_lines":[{"line_number":32,"context_line":""},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"class MessagesController(wsgi.Controller):"},{"line_number":35,"context_line":"    \"\"\"The Volumes API controller for the OpenStack API.\"\"\""},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    _view_builder_class \u003d messages_view.ViewBuilder"},{"line_number":38,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"9a061dce_034a8483","line":35,"range":{"start_line":35,"start_character":11,"end_line":35,"end_character":18},"updated":"2016-04-04 15:05:46.000000000","message":"User Messages?","commit_id":"da1fd1807beaf0eb58135dc54d0e2d035df79e98"},{"author":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"change_message_id":"c302003c114f3326038c04a40d6a7b74a694c3ed","unresolved":false,"context_lines":[{"line_number":32,"context_line":""},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"class MessagesController(wsgi.Controller):"},{"line_number":35,"context_line":"    \"\"\"The Volumes API controller for the OpenStack API.\"\"\""},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    _view_builder_class \u003d messages_view.ViewBuilder"},{"line_number":38,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"9a061dce_362b7a84","line":35,"range":{"start_line":35,"start_character":11,"end_line":35,"end_character":18},"in_reply_to":"9a061dce_034a8483","updated":"2016-04-04 17:29:20.000000000","message":"Done","commit_id":"da1fd1807beaf0eb58135dc54d0e2d035df79e98"},{"author":{"_account_id":9366,"name":"Andrew Kerr","email":"andrew.kerr@netapp.com","username":"andrew-kerr"},"change_message_id":"2c3a22d278ce126e2072e33aed310893dd4664d0","unresolved":false,"context_lines":[{"line_number":52,"context_line":"            raise exc.HTTPNotFound(explanation\u003derror.msg)"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"        # Fetches message text based on event id passed to it."},{"line_number":55,"context_line":"        user_message \u003d message_config.get_message_text(message[\u0027event_id\u0027])"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"        message[\u0027user_message\u0027] \u003d user_message"},{"line_number":58,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"9a061dce_b6514a65","line":55,"range":{"start_line":55,"start_character":23,"end_line":55,"end_character":37},"updated":"2016-04-04 18:01:30.000000000","message":"Can we change message_config to something a bit more descriptive?  Maybe \u0027permitted_messages\u0027 or similar","commit_id":"da1fd1807beaf0eb58135dc54d0e2d035df79e98"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"585f8dcd2420f3124dc0222745e717c907e2d0c9","unresolved":false,"context_lines":[{"line_number":52,"context_line":"            raise exc.HTTPNotFound(explanation\u003derror.msg)"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"        # Fetches message text based on event id passed to it."},{"line_number":55,"context_line":"        user_message \u003d message_config.get_message_text(message[\u0027event_id\u0027])"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"        message[\u0027user_message\u0027] \u003d user_message"},{"line_number":58,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"9a061dce_dc9cd86b","line":55,"range":{"start_line":55,"start_character":23,"end_line":55,"end_character":37},"in_reply_to":"9a061dce_b6514a65","updated":"2016-04-04 19:54:16.000000000","message":"message_registry?  Not sure, but I\u0027d also rather not call this \"config\".","commit_id":"da1fd1807beaf0eb58135dc54d0e2d035df79e98"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"6ea1ce771908897d7fc7fdbb052240048696f18f","unresolved":false,"context_lines":[{"line_number":89,"context_line":"            user_message \u003d message_config.get_message_text(message[\u0027event_id\u0027])"},{"line_number":90,"context_line":"            message[\u0027user_message\u0027] \u003d user_message"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"        messages \u003d self._view_builder.list(req, messages)"},{"line_number":93,"context_line":"        return messages"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"9a061dce_e31cb079","line":92,"range":{"start_line":92,"start_character":38,"end_line":92,"end_character":42},"updated":"2016-04-04 15:05:46.000000000","message":"list is a builtin","commit_id":"da1fd1807beaf0eb58135dc54d0e2d035df79e98"},{"author":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"change_message_id":"c302003c114f3326038c04a40d6a7b74a694c3ed","unresolved":false,"context_lines":[{"line_number":89,"context_line":"            user_message \u003d message_config.get_message_text(message[\u0027event_id\u0027])"},{"line_number":90,"context_line":"            message[\u0027user_message\u0027] \u003d user_message"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"        messages \u003d self._view_builder.list(req, messages)"},{"line_number":93,"context_line":"        return messages"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"9a061dce_f61aa26d","line":92,"range":{"start_line":92,"start_character":38,"end_line":92,"end_character":42},"in_reply_to":"9a061dce_e31cb079","updated":"2016-04-04 17:29:20.000000000","message":"Done","commit_id":"da1fd1807beaf0eb58135dc54d0e2d035df79e98"},{"author":{"_account_id":20105,"name":"Cao ShuFeng","email":"caosf.fnst@cn.fujitsu.com","username":"caosf.fnst"},"change_message_id":"c533fc7797b1eb8da9707fd10b6faec4ee66828b","unresolved":false,"context_lines":[{"line_number":28,"context_line":"CONF \u003d cfg.CONF"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":31,"context_line":"MESSAGES_BASE_MICRO_VERSION \u003d \u00273.2\u0027"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"def check_policy(context, action, target_obj\u003dNone):"}],"source_content_type":"text/x-python","patch_set":34,"id":"1a122d0e_0f1b5874","line":31,"range":{"start_line":31,"start_character":31,"end_line":31,"end_character":34},"updated":"2016-04-26 11:01:16.000000000","message":"3.3 Now.","commit_id":"e18030a2ea7c3cfa994d2a6f9f498751b3951291"},{"author":{"_account_id":16308,"name":"Sheel Rana","email":"ranasheel2000@gmail.com","username":"sheel.rana"},"change_message_id":"66e4b658929f78c381c29559e38ed53c5521d44b","unresolved":false,"context_lines":[{"line_number":28,"context_line":"CONF \u003d cfg.CONF"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":31,"context_line":"MESSAGES_BASE_MICRO_VERSION \u003d \u00273.2\u0027"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"def check_policy(context, action, target_obj\u003dNone):"}],"source_content_type":"text/x-python","patch_set":34,"id":"1a122d0e_e0799030","line":31,"range":{"start_line":31,"start_character":31,"end_line":31,"end_character":34},"in_reply_to":"1a122d0e_0f1b5874","updated":"2016-04-28 10:35:24.000000000","message":"Done","commit_id":"e18030a2ea7c3cfa994d2a6f9f498751b3951291"}],"cinder/api/v3/views/messages.py":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"6ea1ce771908897d7fc7fdbb052240048696f18f","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2016 OpenStack Foundation"},{"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":14,"id":"9a061dce_9eb6e73b","line":1,"range":{"start_line":1,"start_character":0,"end_line":1,"end_character":37},"updated":"2016-04-04 15:05:46.000000000","message":"OpenStack Foundation needs a copyright?","commit_id":"da1fd1807beaf0eb58135dc54d0e2d035df79e98"},{"author":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"change_message_id":"c302003c114f3326038c04a40d6a7b74a694c3ed","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2016 OpenStack Foundation"},{"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":14,"id":"9a061dce_36525a14","line":1,"range":{"start_line":1,"start_character":0,"end_line":1,"end_character":37},"in_reply_to":"9a061dce_9eb6e73b","updated":"2016-04-04 17:29:20.000000000","message":"Done","commit_id":"da1fd1807beaf0eb58135dc54d0e2d035df79e98"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"6ea1ce771908897d7fc7fdbb052240048696f18f","unresolved":false,"context_lines":[{"line_number":30,"context_line":"        \"\"\"Initialize view builder.\"\"\""},{"line_number":31,"context_line":"        super(ViewBuilder, self).__init__()"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    def list(self, request, messages, message_count\u003dNone):"},{"line_number":34,"context_line":"        \"\"\"Show a list of volumes without many details.\"\"\""},{"line_number":35,"context_line":"        return self._list_view(self.detail, request, messages, message_count)"},{"line_number":36,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"9a061dce_3e7cfb71","line":33,"range":{"start_line":33,"start_character":9,"end_line":33,"end_character":10},"updated":"2016-04-04 15:05:46.000000000","message":"list is a builtin.. please prefer another name","commit_id":"da1fd1807beaf0eb58135dc54d0e2d035df79e98"},{"author":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"change_message_id":"c302003c114f3326038c04a40d6a7b74a694c3ed","unresolved":false,"context_lines":[{"line_number":30,"context_line":"        \"\"\"Initialize view builder.\"\"\""},{"line_number":31,"context_line":"        super(ViewBuilder, self).__init__()"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    def list(self, request, messages, message_count\u003dNone):"},{"line_number":34,"context_line":"        \"\"\"Show a list of volumes without many details.\"\"\""},{"line_number":35,"context_line":"        return self._list_view(self.detail, request, messages, message_count)"},{"line_number":36,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"9a061dce_564d4e71","line":33,"range":{"start_line":33,"start_character":9,"end_line":33,"end_character":10},"in_reply_to":"9a061dce_3e7cfb71","updated":"2016-04-04 17:29:20.000000000","message":"Done","commit_id":"da1fd1807beaf0eb58135dc54d0e2d035df79e98"},{"author":{"_account_id":9366,"name":"Andrew Kerr","email":"andrew.kerr@netapp.com","username":"andrew-kerr"},"change_message_id":"2c3a22d278ce126e2072e33aed310893dd4664d0","unresolved":false,"context_lines":[{"line_number":31,"context_line":"        super(ViewBuilder, self).__init__()"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    def list(self, request, messages, message_count\u003dNone):"},{"line_number":34,"context_line":"        \"\"\"Show a list of volumes without many details.\"\"\""},{"line_number":35,"context_line":"        return self._list_view(self.detail, request, messages, message_count)"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    def detail(self, request, message):"}],"source_content_type":"text/x-python","patch_set":14,"id":"9a061dce_b9dadb76","line":34,"range":{"start_line":34,"start_character":26,"end_line":34,"end_character":33},"updated":"2016-04-04 18:01:30.000000000","message":"/s/volumes/messages","commit_id":"da1fd1807beaf0eb58135dc54d0e2d035df79e98"},{"author":{"_account_id":12825,"name":"Szymon Wróblewski","email":"szymon.wroblewski@ovhcloud.com","username":"bluex"},"change_message_id":"589c2e26f0f842cdee88a1f1a48becc7b78cbe51","unresolved":false,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":"    _collection_name \u003d \"messages\""},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    def __init__(self):"},{"line_number":27,"context_line":"        \"\"\"Initialize view builder.\"\"\""},{"line_number":28,"context_line":"        super(ViewBuilder, self).__init__()"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    def index(self, request, messages, message_count\u003dNone):"},{"line_number":31,"context_line":"        \"\"\"Show a list of messages.\"\"\""}],"source_content_type":"text/x-python","patch_set":16,"id":"9a061dce_07dd1de0","line":28,"range":{"start_line":26,"start_character":4,"end_line":28,"end_character":43},"updated":"2016-04-05 20:49:01.000000000","message":"Redundant code","commit_id":"0d284bac23a147068d942b1e119d38912727054a"},{"author":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"change_message_id":"d251a105b48d4477eb1e2649abdba99911c8a864","unresolved":false,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":"    _collection_name \u003d \"messages\""},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    def __init__(self):"},{"line_number":27,"context_line":"        \"\"\"Initialize view builder.\"\"\""},{"line_number":28,"context_line":"        super(ViewBuilder, self).__init__()"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    def index(self, request, messages, message_count\u003dNone):"},{"line_number":31,"context_line":"        \"\"\"Show a list of messages.\"\"\""}],"source_content_type":"text/x-python","patch_set":16,"id":"9a061dce_2a64fdb6","line":28,"range":{"start_line":26,"start_character":4,"end_line":28,"end_character":43},"in_reply_to":"9a061dce_07dd1de0","updated":"2016-04-07 13:44:37.000000000","message":"Done","commit_id":"0d284bac23a147068d942b1e119d38912727054a"},{"author":{"_account_id":12825,"name":"Szymon Wróblewski","email":"szymon.wroblewski@ovhcloud.com","username":"bluex"},"change_message_id":"589c2e26f0f842cdee88a1f1a48becc7b78cbe51","unresolved":false,"context_lines":[{"line_number":33,"context_line":""},{"line_number":34,"context_line":"    def detail(self, request, message):"},{"line_number":35,"context_line":"        \"\"\"Detailed view of a single message.\"\"\""},{"line_number":36,"context_line":"        message_ref \u003d {"},{"line_number":37,"context_line":"            \u0027id\u0027: message.get(\u0027id\u0027),"},{"line_number":38,"context_line":"            \u0027event_id\u0027: message.get(\u0027event_id\u0027),"},{"line_number":39,"context_line":"            \u0027user_message\u0027: message.get(\u0027user_message\u0027),"},{"line_number":40,"context_line":"            \u0027message_level\u0027: message.get(\u0027message_level\u0027),"},{"line_number":41,"context_line":"            \u0027created_at\u0027: message.get(\u0027created_at\u0027),"},{"line_number":42,"context_line":"            \u0027guaranteed_until\u0027: message.get(\u0027expires_at\u0027),"},{"line_number":43,"context_line":"            \u0027request_id\u0027: message.get(\u0027request_id\u0027),"},{"line_number":44,"context_line":"            \u0027links\u0027: self._get_links(request, message[\u0027id\u0027]),"},{"line_number":45,"context_line":"        }"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"        if message.get(\u0027host\u0027):"},{"line_number":48,"context_line":"            message_ref[\u0027host\u0027] \u003d message.get(\u0027host\u0027)"},{"line_number":49,"context_line":"        if message.get(\u0027resource_type\u0027):"},{"line_number":50,"context_line":"            message_ref[\u0027resource_type\u0027] \u003d message.get(\u0027resource_type\u0027)"},{"line_number":51,"context_line":"        if message.get(\u0027resource_uuid\u0027):"},{"line_number":52,"context_line":"            message_ref[\u0027resource_uuid\u0027] \u003d message.get(\u0027resource_uuid\u0027)"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"        return {\u0027message\u0027: message_ref}"},{"line_number":55,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"9a061dce_e46467e6","line":52,"range":{"start_line":36,"start_character":8,"end_line":52,"end_character":71},"updated":"2016-04-05 20:49:01.000000000","message":"Could be cleaned like this:\n\nfields \u003d (\u0027id\u0027, \u0027event_id\u0027, \u0027user_message\u0027, \u0027message_level\u0027, \n          \u0027created_at\u0027, \u0027request_id\u0027)\noptional_fields \u003d (\u0027host\u0027, \u0027resource_type\u0027, \u0027resource_uuid\u0027)\nmessage_ref \u003d {field: message.get(field) for field in fields}\nmessage_ref.update((field, message[field]) \n                   for field in optional_fields\n                   if field in message)\nmessage_ref.update(guaranteed_until\u003dmessage.get(\u0027expires_at\u0027),\n                   links\u003dself._get_links(request, message[\u0027id\u0027]))","commit_id":"0d284bac23a147068d942b1e119d38912727054a"},{"author":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"change_message_id":"d251a105b48d4477eb1e2649abdba99911c8a864","unresolved":false,"context_lines":[{"line_number":33,"context_line":""},{"line_number":34,"context_line":"    def detail(self, request, message):"},{"line_number":35,"context_line":"        \"\"\"Detailed view of a single message.\"\"\""},{"line_number":36,"context_line":"        message_ref \u003d {"},{"line_number":37,"context_line":"            \u0027id\u0027: message.get(\u0027id\u0027),"},{"line_number":38,"context_line":"            \u0027event_id\u0027: message.get(\u0027event_id\u0027),"},{"line_number":39,"context_line":"            \u0027user_message\u0027: message.get(\u0027user_message\u0027),"},{"line_number":40,"context_line":"            \u0027message_level\u0027: message.get(\u0027message_level\u0027),"},{"line_number":41,"context_line":"            \u0027created_at\u0027: message.get(\u0027created_at\u0027),"},{"line_number":42,"context_line":"            \u0027guaranteed_until\u0027: message.get(\u0027expires_at\u0027),"},{"line_number":43,"context_line":"            \u0027request_id\u0027: message.get(\u0027request_id\u0027),"},{"line_number":44,"context_line":"            \u0027links\u0027: self._get_links(request, message[\u0027id\u0027]),"},{"line_number":45,"context_line":"        }"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"        if message.get(\u0027host\u0027):"},{"line_number":48,"context_line":"            message_ref[\u0027host\u0027] \u003d message.get(\u0027host\u0027)"},{"line_number":49,"context_line":"        if message.get(\u0027resource_type\u0027):"},{"line_number":50,"context_line":"            message_ref[\u0027resource_type\u0027] \u003d message.get(\u0027resource_type\u0027)"},{"line_number":51,"context_line":"        if message.get(\u0027resource_uuid\u0027):"},{"line_number":52,"context_line":"            message_ref[\u0027resource_uuid\u0027] \u003d message.get(\u0027resource_uuid\u0027)"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"        return {\u0027message\u0027: message_ref}"},{"line_number":55,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"9a061dce_2ad99d57","line":52,"range":{"start_line":36,"start_character":8,"end_line":52,"end_character":71},"in_reply_to":"9a061dce_e46467e6","updated":"2016-04-07 13:44:37.000000000","message":"I dont think that\u0027s cleaner","commit_id":"0d284bac23a147068d942b1e119d38912727054a"},{"author":{"_account_id":20105,"name":"Cao ShuFeng","email":"caosf.fnst@cn.fujitsu.com","username":"caosf.fnst"},"change_message_id":"c533fc7797b1eb8da9707fd10b6faec4ee66828b","unresolved":false,"context_lines":[{"line_number":15,"context_line":"from cinder.api import common"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"class ViewBuilder(common.ViewBuilder):"}],"source_content_type":"text/x-python","patch_set":34,"id":"1a122d0e_ec7b8abc","line":18,"range":{"start_line":18,"start_character":0,"end_line":18,"end_character":3},"updated":"2016-04-26 11:01:16.000000000","message":"Where is this used?","commit_id":"e18030a2ea7c3cfa994d2a6f9f498751b3951291"},{"author":{"_account_id":16308,"name":"Sheel Rana","email":"ranasheel2000@gmail.com","username":"sheel.rana"},"change_message_id":"66e4b658929f78c381c29559e38ed53c5521d44b","unresolved":false,"context_lines":[{"line_number":15,"context_line":"from cinder.api import common"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"class ViewBuilder(common.ViewBuilder):"}],"source_content_type":"text/x-python","patch_set":34,"id":"1a122d0e_e0a07092","line":18,"range":{"start_line":18,"start_character":0,"end_line":18,"end_character":3},"in_reply_to":"1a122d0e_ec7b8abc","updated":"2016-04-28 10:35:24.000000000","message":"This seems extra here, removed...","commit_id":"e18030a2ea7c3cfa994d2a6f9f498751b3951291"}],"cinder/db/api.py":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"6ea1ce771908897d7fc7fdbb052240048696f18f","unresolved":false,"context_lines":[{"line_number":1129,"context_line":""},{"line_number":1130,"context_line":""},{"line_number":1131,"context_line":"def message_create(context, values):"},{"line_number":1132,"context_line":"    \"\"\"Create a new message with the specified values.\"\"\""},{"line_number":1133,"context_line":"    return IMPL.message_create(context, values)"},{"line_number":1134,"context_line":""},{"line_number":1135,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"9a061dce_9ee4273c","line":1132,"range":{"start_line":1132,"start_character":7,"end_line":1132,"end_character":13},"updated":"2016-04-04 15:05:46.000000000","message":"nit: Creates to be consistent with the Returns/Deletes above/below.","commit_id":"da1fd1807beaf0eb58135dc54d0e2d035df79e98"},{"author":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"change_message_id":"c302003c114f3326038c04a40d6a7b74a694c3ed","unresolved":false,"context_lines":[{"line_number":1129,"context_line":""},{"line_number":1130,"context_line":""},{"line_number":1131,"context_line":"def message_create(context, values):"},{"line_number":1132,"context_line":"    \"\"\"Create a new message with the specified values.\"\"\""},{"line_number":1133,"context_line":"    return IMPL.message_create(context, values)"},{"line_number":1134,"context_line":""},{"line_number":1135,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"9a061dce_765cd225","line":1132,"range":{"start_line":1132,"start_character":7,"end_line":1132,"end_character":13},"in_reply_to":"9a061dce_9ee4273c","updated":"2016-04-04 17:29:20.000000000","message":"Done","commit_id":"da1fd1807beaf0eb58135dc54d0e2d035df79e98"},{"author":{"_account_id":20105,"name":"Cao ShuFeng","email":"caosf.fnst@cn.fujitsu.com","username":"caosf.fnst"},"change_message_id":"c533fc7797b1eb8da9707fd10b6faec4ee66828b","unresolved":false,"context_lines":[{"line_number":1122,"context_line":""},{"line_number":1123,"context_line":""},{"line_number":1124,"context_line":"def message_get(context, message_id):"},{"line_number":1125,"context_line":"    \"\"\"Returns a messages with the specified ID.\"\"\""},{"line_number":1126,"context_line":"    return IMPL.message_get(context, message_id)"},{"line_number":1127,"context_line":""},{"line_number":1128,"context_line":""}],"source_content_type":"text/x-python","patch_set":34,"id":"1a122d0e_0c47e6bc","line":1125,"range":{"start_line":1125,"start_character":17,"end_line":1125,"end_character":25},"updated":"2016-04-26 11:01:16.000000000","message":"nit s/messages/message","commit_id":"e18030a2ea7c3cfa994d2a6f9f498751b3951291"},{"author":{"_account_id":20105,"name":"Cao ShuFeng","email":"caosf.fnst@cn.fujitsu.com","username":"caosf.fnst"},"change_message_id":"c533fc7797b1eb8da9707fd10b6faec4ee66828b","unresolved":false,"context_lines":[{"line_number":1122,"context_line":""},{"line_number":1123,"context_line":""},{"line_number":1124,"context_line":"def message_get(context, message_id):"},{"line_number":1125,"context_line":"    \"\"\"Returns a messages with the specified ID.\"\"\""},{"line_number":1126,"context_line":"    return IMPL.message_get(context, message_id)"},{"line_number":1127,"context_line":""},{"line_number":1128,"context_line":""}],"source_content_type":"text/x-python","patch_set":34,"id":"1a122d0e_8ce5b6a5","line":1125,"range":{"start_line":1125,"start_character":7,"end_line":1125,"end_character":14},"updated":"2016-04-26 11:01:16.000000000","message":"nit: Looks like people prefer \"Return\" rather than \"Returns\", just like 1100, 1105, 1112.","commit_id":"e18030a2ea7c3cfa994d2a6f9f498751b3951291"},{"author":{"_account_id":16308,"name":"Sheel Rana","email":"ranasheel2000@gmail.com","username":"sheel.rana"},"change_message_id":"66e4b658929f78c381c29559e38ed53c5521d44b","unresolved":false,"context_lines":[{"line_number":1122,"context_line":""},{"line_number":1123,"context_line":""},{"line_number":1124,"context_line":"def message_get(context, message_id):"},{"line_number":1125,"context_line":"    \"\"\"Returns a messages with the specified ID.\"\"\""},{"line_number":1126,"context_line":"    return IMPL.message_get(context, message_id)"},{"line_number":1127,"context_line":""},{"line_number":1128,"context_line":""}],"source_content_type":"text/x-python","patch_set":34,"id":"1a122d0e_c0e574dc","line":1125,"range":{"start_line":1125,"start_character":17,"end_line":1125,"end_character":25},"in_reply_to":"1a122d0e_0c47e6bc","updated":"2016-04-28 10:35:24.000000000","message":"Done","commit_id":"e18030a2ea7c3cfa994d2a6f9f498751b3951291"},{"author":{"_account_id":16308,"name":"Sheel Rana","email":"ranasheel2000@gmail.com","username":"sheel.rana"},"change_message_id":"66e4b658929f78c381c29559e38ed53c5521d44b","unresolved":false,"context_lines":[{"line_number":1122,"context_line":""},{"line_number":1123,"context_line":""},{"line_number":1124,"context_line":"def message_get(context, message_id):"},{"line_number":1125,"context_line":"    \"\"\"Returns a messages with the specified ID.\"\"\""},{"line_number":1126,"context_line":"    return IMPL.message_get(context, message_id)"},{"line_number":1127,"context_line":""},{"line_number":1128,"context_line":""}],"source_content_type":"text/x-python","patch_set":34,"id":"1a122d0e_6030e056","line":1125,"range":{"start_line":1125,"start_character":7,"end_line":1125,"end_character":14},"in_reply_to":"1a122d0e_8ce5b6a5","updated":"2016-04-28 10:35:24.000000000","message":"Done","commit_id":"e18030a2ea7c3cfa994d2a6f9f498751b3951291"}],"cinder/db/sqlalchemy/api.py":[{"author":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"change_message_id":"9adc87b6fcc900c223b858f58a6bb5bb7f35dabc","unresolved":false,"context_lines":[{"line_number":4319,"context_line":"    result \u003d query.filter_by(id\u003dmessage_id).first()"},{"line_number":4320,"context_line":"    if not result:"},{"line_number":4321,"context_line":"        raise exception.MessageNotFound(message_id\u003dmessage_id)"},{"line_number":4322,"context_line":"    return _translate_message(result)"},{"line_number":4323,"context_line":""},{"line_number":4324,"context_line":""},{"line_number":4325,"context_line":"@require_context"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba0121b8_b712c960","line":4322,"range":{"start_line":4322,"start_character":11,"end_line":4322,"end_character":29},"updated":"2016-03-29 16:28:55.000000000","message":"This wont work because you changed it to take a list.","commit_id":"4bc3f1e0463fa9286ec95e71598a1e6ce5761cd1"},{"author":{"_account_id":16308,"name":"Sheel Rana","email":"ranasheel2000@gmail.com","username":"sheel.rana"},"change_message_id":"496f71414715344ddc2507146ec293606413e21c","unresolved":false,"context_lines":[{"line_number":4319,"context_line":"    result \u003d query.filter_by(id\u003dmessage_id).first()"},{"line_number":4320,"context_line":"    if not result:"},{"line_number":4321,"context_line":"        raise exception.MessageNotFound(message_id\u003dmessage_id)"},{"line_number":4322,"context_line":"    return _translate_message(result)"},{"line_number":4323,"context_line":""},{"line_number":4324,"context_line":""},{"line_number":4325,"context_line":"@require_context"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba0121b8_ce8e87cf","line":4322,"range":{"start_line":4322,"start_character":11,"end_line":4322,"end_character":29},"in_reply_to":"ba0121b8_b712c960","updated":"2016-03-30 15:37:42.000000000","message":"I will change query first() to all() as there will be only 1 message for 1 id.\nAslo this will helpful in future to keep all when we will be introducing Info/Warning messages.","commit_id":"4bc3f1e0463fa9286ec95e71598a1e6ce5761cd1"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"6ea1ce771908897d7fc7fdbb052240048696f18f","unresolved":false,"context_lines":[{"line_number":4345,"context_line":"    session \u003d get_session()"},{"line_number":4346,"context_line":"    now \u003d timeutils.utcnow()"},{"line_number":4347,"context_line":"    with session.begin():"},{"line_number":4348,"context_line":"        model_query(context, models.Message, session\u003dsession).\\"},{"line_number":4349,"context_line":"            filter_by(id\u003dmessage.get(\u0027id\u0027)).\\"},{"line_number":4350,"context_line":"            update({\u0027deleted\u0027: True,"},{"line_number":4351,"context_line":"                    \u0027deleted_at\u0027: now})"}],"source_content_type":"text/x-python","patch_set":14,"id":"9a061dce_1e2bf731","line":4348,"range":{"start_line":4348,"start_character":62,"end_line":4348,"end_character":63},"updated":"2016-04-04 15:05:46.000000000","message":"please use parantheses","commit_id":"da1fd1807beaf0eb58135dc54d0e2d035df79e98"},{"author":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"change_message_id":"c302003c114f3326038c04a40d6a7b74a694c3ed","unresolved":false,"context_lines":[{"line_number":4345,"context_line":"    session \u003d get_session()"},{"line_number":4346,"context_line":"    now \u003d timeutils.utcnow()"},{"line_number":4347,"context_line":"    with session.begin():"},{"line_number":4348,"context_line":"        model_query(context, models.Message, session\u003dsession).\\"},{"line_number":4349,"context_line":"            filter_by(id\u003dmessage.get(\u0027id\u0027)).\\"},{"line_number":4350,"context_line":"            update({\u0027deleted\u0027: True,"},{"line_number":4351,"context_line":"                    \u0027deleted_at\u0027: now})"}],"source_content_type":"text/x-python","patch_set":14,"id":"9a061dce_967c0674","line":4348,"range":{"start_line":4348,"start_character":62,"end_line":4348,"end_character":63},"in_reply_to":"9a061dce_1e2bf731","updated":"2016-04-04 17:29:20.000000000","message":"Done","commit_id":"da1fd1807beaf0eb58135dc54d0e2d035df79e98"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"6ea1ce771908897d7fc7fdbb052240048696f18f","unresolved":false,"context_lines":[{"line_number":4347,"context_line":"    with session.begin():"},{"line_number":4348,"context_line":"        model_query(context, models.Message, session\u003dsession).\\"},{"line_number":4349,"context_line":"            filter_by(id\u003dmessage.get(\u0027id\u0027)).\\"},{"line_number":4350,"context_line":"            update({\u0027deleted\u0027: True,"},{"line_number":4351,"context_line":"                    \u0027deleted_at\u0027: now})"},{"line_number":4352,"context_line":""},{"line_number":4353,"context_line":""},{"line_number":4354,"context_line":"###############################"}],"source_content_type":"text/x-python","patch_set":14,"id":"9a061dce_7e7cb320","line":4351,"range":{"start_line":4350,"start_character":12,"end_line":4351,"end_character":39},"updated":"2016-04-04 15:05:46.000000000","message":"why not soft_delete?","commit_id":"da1fd1807beaf0eb58135dc54d0e2d035df79e98"},{"author":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"change_message_id":"c302003c114f3326038c04a40d6a7b74a694c3ed","unresolved":false,"context_lines":[{"line_number":4347,"context_line":"    with session.begin():"},{"line_number":4348,"context_line":"        model_query(context, models.Message, session\u003dsession).\\"},{"line_number":4349,"context_line":"            filter_by(id\u003dmessage.get(\u0027id\u0027)).\\"},{"line_number":4350,"context_line":"            update({\u0027deleted\u0027: True,"},{"line_number":4351,"context_line":"                    \u0027deleted_at\u0027: now})"},{"line_number":4352,"context_line":""},{"line_number":4353,"context_line":""},{"line_number":4354,"context_line":"###############################"}],"source_content_type":"text/x-python","patch_set":14,"id":"9a061dce_36a09af4","line":4351,"range":{"start_line":4350,"start_character":12,"end_line":4351,"end_character":39},"in_reply_to":"9a061dce_7e7cb320","updated":"2016-04-04 17:29:20.000000000","message":"soft delete depends on deleted being an Integer field in order to ensure uniqueness in the db. Everything except volume types does it this was with boolean. If we want to fix soft deletes in general that would be great for another patch but I want to be consistent.","commit_id":"da1fd1807beaf0eb58135dc54d0e2d035df79e98"},{"author":{"_account_id":12825,"name":"Szymon Wróblewski","email":"szymon.wroblewski@ovhcloud.com","username":"bluex"},"change_message_id":"589c2e26f0f842cdee88a1f1a48becc7b78cbe51","unresolved":false,"context_lines":[{"line_number":4272,"context_line":""},{"line_number":4273,"context_line":"def _translate_messages(messages):"},{"line_number":4274,"context_line":"    \"\"\"Translate the Message model to a dict.\"\"\""},{"line_number":4275,"context_line":"    results \u003d []"},{"line_number":4276,"context_line":"    for message in messages:"},{"line_number":4277,"context_line":"        r \u003d _translate_message(message)"},{"line_number":4278,"context_line":"        results.append(r)"},{"line_number":4279,"context_line":"    return results"},{"line_number":4280,"context_line":""},{"line_number":4281,"context_line":""},{"line_number":4282,"context_line":"def _translate_message(message):"}],"source_content_type":"text/x-python","patch_set":16,"id":"9a061dce_444b93c9","line":4279,"range":{"start_line":4275,"start_character":4,"end_line":4279,"end_character":18},"updated":"2016-04-05 20:49:01.000000000","message":"return [_translate_message(message) for message in messages]","commit_id":"0d284bac23a147068d942b1e119d38912727054a"},{"author":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"change_message_id":"d251a105b48d4477eb1e2649abdba99911c8a864","unresolved":false,"context_lines":[{"line_number":4272,"context_line":""},{"line_number":4273,"context_line":"def _translate_messages(messages):"},{"line_number":4274,"context_line":"    \"\"\"Translate the Message model to a dict.\"\"\""},{"line_number":4275,"context_line":"    results \u003d []"},{"line_number":4276,"context_line":"    for message in messages:"},{"line_number":4277,"context_line":"        r \u003d _translate_message(message)"},{"line_number":4278,"context_line":"        results.append(r)"},{"line_number":4279,"context_line":"    return results"},{"line_number":4280,"context_line":""},{"line_number":4281,"context_line":""},{"line_number":4282,"context_line":"def _translate_message(message):"}],"source_content_type":"text/x-python","patch_set":16,"id":"9a061dce_2a7a3d88","line":4279,"range":{"start_line":4275,"start_character":4,"end_line":4279,"end_character":18},"in_reply_to":"9a061dce_444b93c9","updated":"2016-04-07 13:44:37.000000000","message":"Done","commit_id":"0d284bac23a147068d942b1e119d38912727054a"},{"author":{"_account_id":9366,"name":"Andrew Kerr","email":"andrew.kerr@netapp.com","username":"andrew-kerr"},"change_message_id":"29ae21f39fcd9c51380ebf0ed155ebb2bd04a02d","unresolved":false,"context_lines":[{"line_number":4290,"context_line":"        \u0027event_id\u0027: message[\u0027event_id\u0027],"},{"line_number":4291,"context_line":"        \u0027message_level\u0027: message[\u0027message_level\u0027],"},{"line_number":4292,"context_line":"        \u0027created_at\u0027: message[\u0027created_at\u0027],"},{"line_number":4293,"context_line":"        \u0027updated_at\u0027: message.get(\u0027updated_at\u0027),"},{"line_number":4294,"context_line":"        \u0027expires_at\u0027: message.get(\u0027expires_at\u0027),"},{"line_number":4295,"context_line":"    }"},{"line_number":4296,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"9a061dce_0de2579f","line":4293,"range":{"start_line":4293,"start_character":8,"end_line":4293,"end_character":47},"updated":"2016-04-06 00:22:58.000000000","message":"Your database migration has no updated_at column and this field does not make sense for an immutable object such as a user message.\n\nYou can see failures here: http://logs.openstack.org/39/300639/5/check/gate-tempest-dsvm-full/e5864b7/logs/screen-c-api.txt.gz","commit_id":"0d284bac23a147068d942b1e119d38912727054a"},{"author":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"change_message_id":"d251a105b48d4477eb1e2649abdba99911c8a864","unresolved":false,"context_lines":[{"line_number":4290,"context_line":"        \u0027event_id\u0027: message[\u0027event_id\u0027],"},{"line_number":4291,"context_line":"        \u0027message_level\u0027: message[\u0027message_level\u0027],"},{"line_number":4292,"context_line":"        \u0027created_at\u0027: message[\u0027created_at\u0027],"},{"line_number":4293,"context_line":"        \u0027updated_at\u0027: message.get(\u0027updated_at\u0027),"},{"line_number":4294,"context_line":"        \u0027expires_at\u0027: message.get(\u0027expires_at\u0027),"},{"line_number":4295,"context_line":"    }"},{"line_number":4296,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"9a061dce_ea5cc51a","line":4293,"range":{"start_line":4293,"start_character":8,"end_line":4293,"end_character":47},"in_reply_to":"9a061dce_0de2579f","updated":"2016-04-07 13:44:37.000000000","message":"Done","commit_id":"0d284bac23a147068d942b1e119d38912727054a"},{"author":{"_account_id":12825,"name":"Szymon Wróblewski","email":"szymon.wroblewski@ovhcloud.com","username":"bluex"},"change_message_id":"589c2e26f0f842cdee88a1f1a48becc7b78cbe51","unresolved":false,"context_lines":[{"line_number":4280,"context_line":""},{"line_number":4281,"context_line":""},{"line_number":4282,"context_line":"def _translate_message(message):"},{"line_number":4283,"context_line":"    return {"},{"line_number":4284,"context_line":"        \u0027id\u0027: message[\u0027id\u0027],"},{"line_number":4285,"context_line":"        \u0027host\u0027: message[\u0027host\u0027],"},{"line_number":4286,"context_line":"        \u0027project_id\u0027: message[\u0027project_id\u0027],"},{"line_number":4287,"context_line":"        \u0027request_id\u0027: message[\u0027request_id\u0027],"},{"line_number":4288,"context_line":"        \u0027resource_type\u0027: message[\u0027resource_type\u0027],"},{"line_number":4289,"context_line":"        \u0027resource_uuid\u0027: message.get(\u0027resource_uuid\u0027),"},{"line_number":4290,"context_line":"        \u0027event_id\u0027: message[\u0027event_id\u0027],"},{"line_number":4291,"context_line":"        \u0027message_level\u0027: message[\u0027message_level\u0027],"},{"line_number":4292,"context_line":"        \u0027created_at\u0027: message[\u0027created_at\u0027],"},{"line_number":4293,"context_line":"        \u0027updated_at\u0027: message.get(\u0027updated_at\u0027),"},{"line_number":4294,"context_line":"        \u0027expires_at\u0027: message.get(\u0027expires_at\u0027),"},{"line_number":4295,"context_line":"    }"},{"line_number":4296,"context_line":""},{"line_number":4297,"context_line":""},{"line_number":4298,"context_line":"@require_context"}],"source_content_type":"text/x-python","patch_set":16,"id":"9a061dce_c4b7a384","line":4295,"range":{"start_line":4283,"start_character":4,"end_line":4295,"end_character":5},"updated":"2016-04-05 20:49:01.000000000","message":"fields \u003d (\u0027id\u0027, \u0027host\u0027, \u0027project_id\u0027, \u0027request_id\u0027, \u0027resource_type\u0027, \n          \u0027resource_uuid\u0027, \u0027event_id\u0027, \u0027message_level\u0027, \u0027created_at\u0027, \n          \u0027updated_at\u0027, \u0027expires_at\u0027)\nreturn {field: message.get(field) for field in fields}","commit_id":"0d284bac23a147068d942b1e119d38912727054a"},{"author":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"change_message_id":"d251a105b48d4477eb1e2649abdba99911c8a864","unresolved":false,"context_lines":[{"line_number":4280,"context_line":""},{"line_number":4281,"context_line":""},{"line_number":4282,"context_line":"def _translate_message(message):"},{"line_number":4283,"context_line":"    return {"},{"line_number":4284,"context_line":"        \u0027id\u0027: message[\u0027id\u0027],"},{"line_number":4285,"context_line":"        \u0027host\u0027: message[\u0027host\u0027],"},{"line_number":4286,"context_line":"        \u0027project_id\u0027: message[\u0027project_id\u0027],"},{"line_number":4287,"context_line":"        \u0027request_id\u0027: message[\u0027request_id\u0027],"},{"line_number":4288,"context_line":"        \u0027resource_type\u0027: message[\u0027resource_type\u0027],"},{"line_number":4289,"context_line":"        \u0027resource_uuid\u0027: message.get(\u0027resource_uuid\u0027),"},{"line_number":4290,"context_line":"        \u0027event_id\u0027: message[\u0027event_id\u0027],"},{"line_number":4291,"context_line":"        \u0027message_level\u0027: message[\u0027message_level\u0027],"},{"line_number":4292,"context_line":"        \u0027created_at\u0027: message[\u0027created_at\u0027],"},{"line_number":4293,"context_line":"        \u0027updated_at\u0027: message.get(\u0027updated_at\u0027),"},{"line_number":4294,"context_line":"        \u0027expires_at\u0027: message.get(\u0027expires_at\u0027),"},{"line_number":4295,"context_line":"    }"},{"line_number":4296,"context_line":""},{"line_number":4297,"context_line":""},{"line_number":4298,"context_line":"@require_context"}],"source_content_type":"text/x-python","patch_set":16,"id":"9a061dce_cac74194","line":4295,"range":{"start_line":4283,"start_character":4,"end_line":4295,"end_character":5},"in_reply_to":"9a061dce_c4b7a384","updated":"2016-04-07 13:44:37.000000000","message":"I think it\u0027s more readable this way. Also, i\u0027m not always doing .get","commit_id":"0d284bac23a147068d942b1e119d38912727054a"},{"author":{"_account_id":12825,"name":"Szymon Wróblewski","email":"szymon.wroblewski@ovhcloud.com","username":"bluex"},"change_message_id":"589c2e26f0f842cdee88a1f1a48becc7b78cbe51","unresolved":false,"context_lines":[{"line_number":4338,"context_line":"    with session.begin():"},{"line_number":4339,"context_line":"        (model_query(context, models.Message, session\u003dsession)."},{"line_number":4340,"context_line":"            filter_by(id\u003dmessage.get(\u0027id\u0027))."},{"line_number":4341,"context_line":"            update({\u0027deleted\u0027: True,"},{"line_number":4342,"context_line":"                    \u0027deleted_at\u0027: now}))"},{"line_number":4343,"context_line":""},{"line_number":4344,"context_line":""},{"line_number":4345,"context_line":"###############################"}],"source_content_type":"text/x-python","patch_set":16,"id":"9a061dce_64be97d5","line":4342,"range":{"start_line":4341,"start_character":12,"end_line":4342,"end_character":39},"updated":"2016-04-05 20:49:01.000000000","message":"Could be:\n\nupdate(deleted\u003dTrue,\n       deleted_at\u003dnow)","commit_id":"0d284bac23a147068d942b1e119d38912727054a"}],"cinder/db/sqlalchemy/migrate_repo/versions/073_add_messages.py":[{"author":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"change_message_id":"9adc87b6fcc900c223b858f58a6bb5bb7f35dabc","unresolved":false,"context_lines":[{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    try:"},{"line_number":47,"context_line":"        messages.create()"},{"line_number":48,"context_line":"    except Exception:"},{"line_number":49,"context_line":"        LOG.error(_(\"Table |%s| not created!\"), repr(messages))"},{"line_number":50,"context_line":"        raise"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba0121b8_d23e6bb7","line":48,"updated":"2016-03-29 16:28:55.000000000","message":"There is no point in this as it will blow up on the db sync command. By catching the exception it\u0027s going to have an unhelpful traceback.","commit_id":"4bc3f1e0463fa9286ec95e71598a1e6ce5761cd1"},{"author":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"change_message_id":"89b47a678379aca79b58199a690fa2809118b07a","unresolved":false,"context_lines":[{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    try:"},{"line_number":47,"context_line":"        messages.create()"},{"line_number":48,"context_line":"    except Exception:"},{"line_number":49,"context_line":"        LOG.error(_(\"Table |%s| not created!\"), repr(messages))"},{"line_number":50,"context_line":"        raise"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba0121b8_55b7add7","line":48,"in_reply_to":"ba0121b8_39105601","updated":"2016-03-30 13:41:37.000000000","message":"you are reraising the exception anyway so this wouldnt change behavior","commit_id":"4bc3f1e0463fa9286ec95e71598a1e6ce5761cd1"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"694cfe708de2b82df3457a332056f0f9790df98e","unresolved":false,"context_lines":[{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    try:"},{"line_number":47,"context_line":"        messages.create()"},{"line_number":48,"context_line":"    except Exception:"},{"line_number":49,"context_line":"        LOG.error(_(\"Table |%s| not created!\"), repr(messages))"},{"line_number":50,"context_line":"        raise"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba0121b8_68a93390","line":48,"in_reply_to":"ba0121b8_55b7add7","updated":"2016-03-30 15:11:59.000000000","message":"The caller of this code already handles these exceptions correctly, we do the same for all DB schema changes.  Please remove this.","commit_id":"4bc3f1e0463fa9286ec95e71598a1e6ce5761cd1"},{"author":{"_account_id":16308,"name":"Sheel Rana","email":"ranasheel2000@gmail.com","username":"sheel.rana"},"change_message_id":"496f71414715344ddc2507146ec293606413e21c","unresolved":false,"context_lines":[{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    try:"},{"line_number":47,"context_line":"        messages.create()"},{"line_number":48,"context_line":"    except Exception:"},{"line_number":49,"context_line":"        LOG.error(_(\"Table |%s| not created!\"), repr(messages))"},{"line_number":50,"context_line":"        raise"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba0121b8_ae56b359","line":48,"in_reply_to":"ba0121b8_68a93390","updated":"2016-03-30 15:37:42.000000000","message":"I have already updated this from patch(currently updating it)","commit_id":"4bc3f1e0463fa9286ec95e71598a1e6ce5761cd1"},{"author":{"_account_id":16308,"name":"Sheel Rana","email":"ranasheel2000@gmail.com","username":"sheel.rana"},"change_message_id":"f6f64cf1ef83e12494f70f289295b79bb66f107e","unresolved":false,"context_lines":[{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    try:"},{"line_number":47,"context_line":"        messages.create()"},{"line_number":48,"context_line":"    except Exception:"},{"line_number":49,"context_line":"        LOG.error(_(\"Table |%s| not created!\"), repr(messages))"},{"line_number":50,"context_line":"        raise"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba0121b8_39105601","line":48,"in_reply_to":"ba0121b8_d23e6bb7","updated":"2016-03-30 05:26:45.000000000","message":"I will remove this but I think its good to blow db sync if table is not created instead of going ahead... If we go ahead without creating problem, this would create big problem later on.","commit_id":"4bc3f1e0463fa9286ec95e71598a1e6ce5761cd1"}],"cinder/db/sqlalchemy/models.py":[{"author":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"change_message_id":"9c8d8a8928048903c44d8636adc4693ebe8c8e5a","unresolved":false,"context_lines":[{"line_number":604,"context_line":"class Messages(BASE, CinderBase):"},{"line_number":605,"context_line":"    \"\"\"Represents a message for operation status on a host\"\"\""},{"line_number":606,"context_line":"    __tablename__ \u003d \u0027messages\u0027"},{"line_number":607,"context_line":"    # primary key to identify messages."},{"line_number":608,"context_line":"    id \u003d Column(String(36), primary_key\u003dTrue, nullable\u003dFalse)"},{"line_number":609,"context_line":"    # ForeignKey(\u0027hosts.id\u0027))."},{"line_number":610,"context_line":"    host \u003d Column(String(255))"}],"source_content_type":"text/x-python","patch_set":1,"id":"da0c15f0_aecb61a4","line":607,"updated":"2016-03-28 14:55:22.000000000","message":"Not all of these columns need a comment :)","commit_id":"60824d74fa741edc9b49a4c0f7d56ccbbd97aa28"},{"author":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"change_message_id":"91394f3e90186121996903e87924d182d9d04b12","unresolved":false,"context_lines":[{"line_number":601,"context_line":"    value \u003d Column(String(255))"},{"line_number":602,"context_line":""},{"line_number":603,"context_line":""},{"line_number":604,"context_line":"class Message(BASE, CinderBase):"},{"line_number":605,"context_line":"    \"\"\"Represents a message\"\"\""},{"line_number":606,"context_line":"    __tablename__ \u003d \u0027messages\u0027"},{"line_number":607,"context_line":"    id \u003d Column(String(36), primary_key\u003dTrue, nullable\u003dFalse)"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba0121b8_c4c89477","line":604,"range":{"start_line":604,"start_character":6,"end_line":604,"end_character":13},"updated":"2016-03-29 01:02:24.000000000","message":"I went ahead and removed the comments that were self explanatory as I sure folks would -1 based on that. I also removed host and operation status as don\u0027t think they will apply to all the messages we want to send. Perhaps if we find things like that are needed we can add them as metadata to the message.","commit_id":"6abf3a1d428375dbd56eca15b445001e6ab972f9"},{"author":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"change_message_id":"f5ccb5c3f45dc3c2f86ef7308033ff650534152d","unresolved":false,"context_lines":[{"line_number":601,"context_line":"    value \u003d Column(String(255))"},{"line_number":602,"context_line":""},{"line_number":603,"context_line":""},{"line_number":604,"context_line":"class Message(BASE, CinderBase):"},{"line_number":605,"context_line":"    \"\"\"Represents a message\"\"\""},{"line_number":606,"context_line":"    __tablename__ \u003d \u0027messages\u0027"},{"line_number":607,"context_line":"    id \u003d Column(String(36), primary_key\u003dTrue, nullable\u003dFalse)"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba0121b8_db6df105","line":604,"range":{"start_line":604,"start_character":6,"end_line":604,"end_character":13},"in_reply_to":"ba0121b8_318ffb24","updated":"2016-03-29 14:38:30.000000000","message":"What do you mean exactly? being able to filter based on where the message originated? perhaps we could have host and make it only visible to admins, since we don\u0027t want to give that information to normal users.","commit_id":"6abf3a1d428375dbd56eca15b445001e6ab972f9"},{"author":{"_account_id":16308,"name":"Sheel Rana","email":"ranasheel2000@gmail.com","username":"sheel.rana"},"change_message_id":"b0e655aeb077d9903effab95c16814c900908e4b","unresolved":false,"context_lines":[{"line_number":601,"context_line":"    value \u003d Column(String(255))"},{"line_number":602,"context_line":""},{"line_number":603,"context_line":""},{"line_number":604,"context_line":"class Message(BASE, CinderBase):"},{"line_number":605,"context_line":"    \"\"\"Represents a message\"\"\""},{"line_number":606,"context_line":"    __tablename__ \u003d \u0027messages\u0027"},{"line_number":607,"context_line":"    id \u003d Column(String(36), primary_key\u003dTrue, nullable\u003dFalse)"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba0121b8_318ffb24","line":604,"range":{"start_line":604,"start_character":6,"end_line":604,"end_character":13},"in_reply_to":"ba0121b8_c4c89477","updated":"2016-03-29 11:08:56.000000000","message":"host is required for further filter based implementations...I have already added functions for same..\nWill update it accordingly and remove operation status.","commit_id":"6abf3a1d428375dbd56eca15b445001e6ab972f9"},{"author":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"change_message_id":"9adc87b6fcc900c223b858f58a6bb5bb7f35dabc","unresolved":false,"context_lines":[{"line_number":606,"context_line":"    __tablename__ \u003d \u0027messages\u0027"},{"line_number":607,"context_line":"    id \u003d Column(String(36), primary_key\u003dTrue, nullable\u003dFalse)"},{"line_number":608,"context_line":"    host \u003d Column(String(36))"},{"line_number":609,"context_line":"    user_id \u003d Column(String(36), nullable\u003dFalse)"},{"line_number":610,"context_line":"    project_id \u003d Column(String(36), nullable\u003dFalse)"},{"line_number":611,"context_line":"    user_message \u003d Column(String(255), nullable\u003dFalse)"},{"line_number":612,"context_line":"    # Info/Error/Warning."}],"source_content_type":"text/x-python","patch_set":7,"id":"ba0121b8_9281934d","line":609,"range":{"start_line":609,"start_character":4,"end_line":609,"end_character":11},"updated":"2016-03-29 16:28:55.000000000","message":"Why add user_id? there will be a number of situations where there wont be a user but it will be an action on a resource owned by a project.","commit_id":"4bc3f1e0463fa9286ec95e71598a1e6ce5761cd1"},{"author":{"_account_id":16308,"name":"Sheel Rana","email":"ranasheel2000@gmail.com","username":"sheel.rana"},"change_message_id":"496f71414715344ddc2507146ec293606413e21c","unresolved":false,"context_lines":[{"line_number":606,"context_line":"    __tablename__ \u003d \u0027messages\u0027"},{"line_number":607,"context_line":"    id \u003d Column(String(36), primary_key\u003dTrue, nullable\u003dFalse)"},{"line_number":608,"context_line":"    host \u003d Column(String(36))"},{"line_number":609,"context_line":"    user_id \u003d Column(String(36), nullable\u003dFalse)"},{"line_number":610,"context_line":"    project_id \u003d Column(String(36), nullable\u003dFalse)"},{"line_number":611,"context_line":"    user_message \u003d Column(String(255), nullable\u003dFalse)"},{"line_number":612,"context_line":"    # Info/Error/Warning."}],"source_content_type":"text/x-python","patch_set":7,"id":"ba0121b8_ce44c7b8","line":609,"range":{"start_line":609,"start_character":4,"end_line":609,"end_character":11},"in_reply_to":"ba0121b8_28b8dbc7","updated":"2016-03-30 15:37:42.000000000","message":"Ok sure, I will remove it.\nWe will require this further when filter based things will be introduced.\nI will add later.","commit_id":"4bc3f1e0463fa9286ec95e71598a1e6ce5761cd1"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"694cfe708de2b82df3457a332056f0f9790df98e","unresolved":false,"context_lines":[{"line_number":606,"context_line":"    __tablename__ \u003d \u0027messages\u0027"},{"line_number":607,"context_line":"    id \u003d Column(String(36), primary_key\u003dTrue, nullable\u003dFalse)"},{"line_number":608,"context_line":"    host \u003d Column(String(36))"},{"line_number":609,"context_line":"    user_id \u003d Column(String(36), nullable\u003dFalse)"},{"line_number":610,"context_line":"    project_id \u003d Column(String(36), nullable\u003dFalse)"},{"line_number":611,"context_line":"    user_message \u003d Column(String(255), nullable\u003dFalse)"},{"line_number":612,"context_line":"    # Info/Error/Warning."}],"source_content_type":"text/x-python","patch_set":7,"id":"ba0121b8_28b8dbc7","line":609,"range":{"start_line":609,"start_character":4,"end_line":609,"end_character":11},"in_reply_to":"ba0121b8_39833606","updated":"2016-03-30 15:11:59.000000000","message":"I\u0027m inclined to think we should skip user_id and add it later if we find it\u0027s really needed.  I suspect it isn\u0027t for the use cases we\u0027ve discussed so far.","commit_id":"4bc3f1e0463fa9286ec95e71598a1e6ce5761cd1"},{"author":{"_account_id":16308,"name":"Sheel Rana","email":"ranasheel2000@gmail.com","username":"sheel.rana"},"change_message_id":"f6f64cf1ef83e12494f70f289295b79bb66f107e","unresolved":false,"context_lines":[{"line_number":606,"context_line":"    __tablename__ \u003d \u0027messages\u0027"},{"line_number":607,"context_line":"    id \u003d Column(String(36), primary_key\u003dTrue, nullable\u003dFalse)"},{"line_number":608,"context_line":"    host \u003d Column(String(36))"},{"line_number":609,"context_line":"    user_id \u003d Column(String(36), nullable\u003dFalse)"},{"line_number":610,"context_line":"    project_id \u003d Column(String(36), nullable\u003dFalse)"},{"line_number":611,"context_line":"    user_message \u003d Column(String(255), nullable\u003dFalse)"},{"line_number":612,"context_line":"    # Info/Error/Warning."}],"source_content_type":"text/x-python","patch_set":7,"id":"ba0121b8_39833606","line":609,"range":{"start_line":609,"start_character":4,"end_line":609,"end_character":11},"in_reply_to":"ba0121b8_9281934d","updated":"2016-03-30 05:26:45.000000000","message":"I planned to keep \"system\" for those operations under user_id.","commit_id":"4bc3f1e0463fa9286ec95e71598a1e6ce5761cd1"},{"author":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"change_message_id":"9adc87b6fcc900c223b858f58a6bb5bb7f35dabc","unresolved":false,"context_lines":[{"line_number":619,"context_line":"    event_id \u003d Column(String(255), nullable\u003dFalse)"},{"line_number":620,"context_line":"    created_at \u003d Column(DateTime, default\u003dlambda: timeutils.utcnow())"},{"line_number":621,"context_line":"    # After this time the message may no longer exist"},{"line_number":622,"context_line":"    expires_at \u003d Column(DateTime, nullable\u003dFalse)"},{"line_number":623,"context_line":""},{"line_number":624,"context_line":""},{"line_number":625,"context_line":"class ImageVolumeCacheEntry(BASE, models.ModelBase):"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba0121b8_b241370e","line":622,"range":{"start_line":622,"start_character":43,"end_line":622,"end_character":48},"updated":"2016-03-29 16:28:55.000000000","message":"we probably want to allow for setting messages to never expire. I was thinking if the config value is -1 then the messages will not expire.","commit_id":"4bc3f1e0463fa9286ec95e71598a1e6ce5761cd1"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"694cfe708de2b82df3457a332056f0f9790df98e","unresolved":false,"context_lines":[{"line_number":619,"context_line":"    event_id \u003d Column(String(255), nullable\u003dFalse)"},{"line_number":620,"context_line":"    created_at \u003d Column(DateTime, default\u003dlambda: timeutils.utcnow())"},{"line_number":621,"context_line":"    # After this time the message may no longer exist"},{"line_number":622,"context_line":"    expires_at \u003d Column(DateTime, nullable\u003dFalse)"},{"line_number":623,"context_line":""},{"line_number":624,"context_line":""},{"line_number":625,"context_line":"class ImageVolumeCacheEntry(BASE, models.ModelBase):"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba0121b8_a8a50ba3","line":622,"range":{"start_line":622,"start_character":43,"end_line":622,"end_character":48},"in_reply_to":"ba0121b8_75391141","updated":"2016-03-30 15:11:59.000000000","message":"This should be nullable, that\u0027s the straightforward way to indicate \"never expire\" when you have a datetime.","commit_id":"4bc3f1e0463fa9286ec95e71598a1e6ce5761cd1"},{"author":{"_account_id":16308,"name":"Sheel Rana","email":"ranasheel2000@gmail.com","username":"sheel.rana"},"change_message_id":"496f71414715344ddc2507146ec293606413e21c","unresolved":false,"context_lines":[{"line_number":619,"context_line":"    event_id \u003d Column(String(255), nullable\u003dFalse)"},{"line_number":620,"context_line":"    created_at \u003d Column(DateTime, default\u003dlambda: timeutils.utcnow())"},{"line_number":621,"context_line":"    # After this time the message may no longer exist"},{"line_number":622,"context_line":"    expires_at \u003d Column(DateTime, nullable\u003dFalse)"},{"line_number":623,"context_line":""},{"line_number":624,"context_line":""},{"line_number":625,"context_line":"class ImageVolumeCacheEntry(BASE, models.ModelBase):"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba0121b8_8e25af0a","line":622,"range":{"start_line":622,"start_character":43,"end_line":622,"end_character":48},"in_reply_to":"ba0121b8_a8a50ba3","updated":"2016-03-30 15:37:42.000000000","message":"As you wish.. will update it..","commit_id":"4bc3f1e0463fa9286ec95e71598a1e6ce5761cd1"},{"author":{"_account_id":16308,"name":"Sheel Rana","email":"ranasheel2000@gmail.com","username":"sheel.rana"},"change_message_id":"f6f64cf1ef83e12494f70f289295b79bb66f107e","unresolved":false,"context_lines":[{"line_number":619,"context_line":"    event_id \u003d Column(String(255), nullable\u003dFalse)"},{"line_number":620,"context_line":"    created_at \u003d Column(DateTime, default\u003dlambda: timeutils.utcnow())"},{"line_number":621,"context_line":"    # After this time the message may no longer exist"},{"line_number":622,"context_line":"    expires_at \u003d Column(DateTime, nullable\u003dFalse)"},{"line_number":623,"context_line":""},{"line_number":624,"context_line":""},{"line_number":625,"context_line":"class ImageVolumeCacheEntry(BASE, models.ModelBase):"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba0121b8_ef4d7073","line":622,"range":{"start_line":622,"start_character":43,"end_line":622,"end_character":48},"in_reply_to":"ba0121b8_b241370e","updated":"2016-03-30 05:26:45.000000000","message":"Its ok to twist code than keeping it false.\n\nIf value is -1, we will keep some 99,999 years of time for message expiry.\nI saw this concept some years ago in PAM implementations which makes sense.","commit_id":"4bc3f1e0463fa9286ec95e71598a1e6ce5761cd1"},{"author":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"change_message_id":"89b47a678379aca79b58199a690fa2809118b07a","unresolved":false,"context_lines":[{"line_number":619,"context_line":"    event_id \u003d Column(String(255), nullable\u003dFalse)"},{"line_number":620,"context_line":"    created_at \u003d Column(DateTime, default\u003dlambda: timeutils.utcnow())"},{"line_number":621,"context_line":"    # After this time the message may no longer exist"},{"line_number":622,"context_line":"    expires_at \u003d Column(DateTime, nullable\u003dFalse)"},{"line_number":623,"context_line":""},{"line_number":624,"context_line":""},{"line_number":625,"context_line":"class ImageVolumeCacheEntry(BASE, models.ModelBase):"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba0121b8_75391141","line":622,"range":{"start_line":622,"start_character":43,"end_line":622,"end_character":48},"in_reply_to":"ba0121b8_ef4d7073","updated":"2016-03-30 13:41:37.000000000","message":"That\u0027s A solution but I think having it null in that case is better as it has more explicit meaning.","commit_id":"4bc3f1e0463fa9286ec95e71598a1e6ce5761cd1"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"6ea1ce771908897d7fc7fdbb052240048696f18f","unresolved":false,"context_lines":[{"line_number":611,"context_line":"    message_level \u003d Column(String(255), nullable\u003dFalse)"},{"line_number":612,"context_line":"    request_id \u003d Column(String(255), nullable\u003dTrue)"},{"line_number":613,"context_line":"    resource_type \u003d Column(String(255))"},{"line_number":614,"context_line":"    # The uuid of the offending resource."},{"line_number":615,"context_line":"    resource_uuid \u003d Column(String(36), nullable\u003dTrue)"},{"line_number":616,"context_line":"    # Operation specific event ID."},{"line_number":617,"context_line":"    event_id \u003d Column(String(255), nullable\u003dFalse)"}],"source_content_type":"text/x-python","patch_set":14,"id":"9a061dce_7ed153fb","line":614,"range":{"start_line":614,"start_character":22,"end_line":614,"end_character":31},"updated":"2016-04-04 15:05:46.000000000","message":"its not always offending :D","commit_id":"da1fd1807beaf0eb58135dc54d0e2d035df79e98"},{"author":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"change_message_id":"c302003c114f3326038c04a40d6a7b74a694c3ed","unresolved":false,"context_lines":[{"line_number":611,"context_line":"    message_level \u003d Column(String(255), nullable\u003dFalse)"},{"line_number":612,"context_line":"    request_id \u003d Column(String(255), nullable\u003dTrue)"},{"line_number":613,"context_line":"    resource_type \u003d Column(String(255))"},{"line_number":614,"context_line":"    # The uuid of the offending resource."},{"line_number":615,"context_line":"    resource_uuid \u003d Column(String(36), nullable\u003dTrue)"},{"line_number":616,"context_line":"    # Operation specific event ID."},{"line_number":617,"context_line":"    event_id \u003d Column(String(255), nullable\u003dFalse)"}],"source_content_type":"text/x-python","patch_set":14,"id":"9a061dce_96f3660a","line":614,"range":{"start_line":614,"start_character":22,"end_line":614,"end_character":31},"in_reply_to":"9a061dce_7ed153fb","updated":"2016-04-04 17:29:20.000000000","message":"Done","commit_id":"da1fd1807beaf0eb58135dc54d0e2d035df79e98"}],"cinder/exception.py":[{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"cdb7f50e927bb0baf226abb0982d191ef5867d5c","unresolved":false,"context_lines":[{"line_number":537,"context_line":""},{"line_number":538,"context_line":""},{"line_number":539,"context_line":"class ImageLimitExceeded(QuotaError):"},{"line_number":540,"context_line":"    message \u003d _(\"Image quota exceeded\")"},{"line_number":541,"context_line":""},{"line_number":542,"context_line":""},{"line_number":543,"context_line":"class DuplicateSfVolumeNames(Duplicate):"}],"source_content_type":"text/x-python","patch_set":29,"id":"1a122d0e_01e1e9fe","line":540,"updated":"2016-04-21 15:50:31.000000000","message":"I think we will want to store message information with the exception?\n\nI suspect a common pattern will be to raise an exception w/ the message information in it, and actually generate/store that message at a higher level than the raise.  (This would give nice things like volume-driver-generated exceptions without database access in the driver, for example.)\n\nIf that doesn\u0027t apply to this particular exception, that\u0027s ok, but I think it should be a demonstrated pattern in this patchset.","commit_id":"2491301c3e0c1fdb5267f519da21280cd71fc487"},{"author":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"change_message_id":"6a1af2d4c04f559ccb87e334b81849051eab86e1","unresolved":false,"context_lines":[{"line_number":537,"context_line":""},{"line_number":538,"context_line":""},{"line_number":539,"context_line":"class ImageLimitExceeded(QuotaError):"},{"line_number":540,"context_line":"    message \u003d _(\"Image quota exceeded\")"},{"line_number":541,"context_line":""},{"line_number":542,"context_line":""},{"line_number":543,"context_line":"class DuplicateSfVolumeNames(Duplicate):"}],"source_content_type":"text/x-python","patch_set":29,"id":"1a122d0e_91641de6","line":540,"in_reply_to":"1a122d0e_01e1e9fe","updated":"2016-04-21 19:26:38.000000000","message":"I see what you are saying, good idea. I can add something like \u0027user_message_event_id\u0027 in the exception class and if we catch one up top we generate a message. Not sure if it will buy us much to dynamically generate these since we need to know what the resource was and the context of the issue. It could be instead that at the top level we catch \u0027ImageLimitExceeded\u0027 and then make the message instead of catch Exception: if \u0027user_message_event_id\u0027 is an attr make message. \n\nIt would be nice to just update some of these exceptions and know the correct thing will occur when it\u0027s raised though. I\u0027m leaning towards not doing this atm, I think in the driver case you mentioned the manager should catch the correct exceptions and make the messages.","commit_id":"2491301c3e0c1fdb5267f519da21280cd71fc487"}],"cinder/message/api.py":[{"author":{"_account_id":12825,"name":"Szymon Wróblewski","email":"szymon.wroblewski@ovhcloud.com","username":"bluex"},"change_message_id":"589c2e26f0f842cdee88a1f1a48becc7b78cbe51","unresolved":false,"context_lines":[{"line_number":37,"context_line":"class API(base.Base):"},{"line_number":38,"context_line":"    \"\"\"API for handling user messages.\"\"\""},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"    def __init__(self, db_driver\u003dNone):"},{"line_number":41,"context_line":"        super(API, self).__init__(db_driver)"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    def create(self, context, event_id, project_id, resource_type\u003dNone,"},{"line_number":44,"context_line":"               host\u003dNone, resource_uuid\u003dNone, level\u003d\"ERROR\"):"}],"source_content_type":"text/x-python","patch_set":16,"id":"9a061dce_073cfdc6","line":41,"range":{"start_line":40,"start_character":4,"end_line":41,"end_character":44},"updated":"2016-04-05 20:49:01.000000000","message":"Redundant code","commit_id":"0d284bac23a147068d942b1e119d38912727054a"},{"author":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"change_message_id":"d251a105b48d4477eb1e2649abdba99911c8a864","unresolved":false,"context_lines":[{"line_number":37,"context_line":"class API(base.Base):"},{"line_number":38,"context_line":"    \"\"\"API for handling user messages.\"\"\""},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"    def __init__(self, db_driver\u003dNone):"},{"line_number":41,"context_line":"        super(API, self).__init__(db_driver)"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    def create(self, context, event_id, project_id, resource_type\u003dNone,"},{"line_number":44,"context_line":"               host\u003dNone, resource_uuid\u003dNone, level\u003d\"ERROR\"):"}],"source_content_type":"text/x-python","patch_set":16,"id":"9a061dce_8aaa6983","line":41,"range":{"start_line":40,"start_character":4,"end_line":41,"end_character":44},"in_reply_to":"9a061dce_073cfdc6","updated":"2016-04-07 13:44:37.000000000","message":"Done","commit_id":"0d284bac23a147068d942b1e119d38912727054a"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"cdb7f50e927bb0baf226abb0982d191ef5867d5c","unresolved":false,"context_lines":[{"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":"               \u0027Default message life is 30 days(2592000 seconds)\u0027)]"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"CONF \u003d cfg.CONF"},{"line_number":32,"context_line":"CONF.register_opts(messages_opts)"}],"source_content_type":"text/x-python","patch_set":29,"id":"1a122d0e_c1d3715e","line":29,"updated":"2016-04-21 15:50:31.000000000","message":"Don\u0027t list the default value in the help text, conf generation tools will do this for you.","commit_id":"2491301c3e0c1fdb5267f519da21280cd71fc487"},{"author":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"change_message_id":"6a1af2d4c04f559ccb87e334b81849051eab86e1","unresolved":false,"context_lines":[{"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":"               \u0027Default message life is 30 days(2592000 seconds)\u0027)]"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"CONF \u003d cfg.CONF"},{"line_number":32,"context_line":"CONF.register_opts(messages_opts)"}],"source_content_type":"text/x-python","patch_set":29,"id":"1a122d0e_71dce146","line":29,"in_reply_to":"1a122d0e_c1d3715e","updated":"2016-04-21 19:26:38.000000000","message":"Done","commit_id":"2491301c3e0c1fdb5267f519da21280cd71fc487"},{"author":{"_account_id":20105,"name":"Cao ShuFeng","email":"caosf.fnst@cn.fujitsu.com","username":"caosf.fnst"},"change_message_id":"c533fc7797b1eb8da9707fd10b6faec4ee66828b","unresolved":false,"context_lines":[{"line_number":65,"context_line":"        \"\"\"Return message with the specified id.\"\"\""},{"line_number":66,"context_line":"        return self.db.message_get(context, id)"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"    def get_all(self, context):"},{"line_number":69,"context_line":"        \"\"\"Return all messages for the given context.\"\"\""},{"line_number":70,"context_line":"        messages \u003d self.db.message_get_all(context)"},{"line_number":71,"context_line":"        return messages"}],"source_content_type":"text/x-python","patch_set":34,"id":"1a122d0e_4f5f10e5","line":68,"range":{"start_line":68,"start_character":22,"end_line":68,"end_character":29},"updated":"2016-04-26 11:01:16.000000000","message":"It would be better if we support a \"limit\" param here.\nBy the way, does this support \"osapi_max_limit\"?\n\nMay be this could be added in a further change.","commit_id":"e18030a2ea7c3cfa994d2a6f9f498751b3951291"},{"author":{"_account_id":16308,"name":"Sheel Rana","email":"ranasheel2000@gmail.com","username":"sheel.rana"},"change_message_id":"66e4b658929f78c381c29559e38ed53c5521d44b","unresolved":false,"context_lines":[{"line_number":65,"context_line":"        \"\"\"Return message with the specified id.\"\"\""},{"line_number":66,"context_line":"        return self.db.message_get(context, id)"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"    def get_all(self, context):"},{"line_number":69,"context_line":"        \"\"\"Return all messages for the given context.\"\"\""},{"line_number":70,"context_line":"        messages \u003d self.db.message_get_all(context)"},{"line_number":71,"context_line":"        return messages"}],"source_content_type":"text/x-python","patch_set":34,"id":"1a122d0e_6da75da7","line":68,"range":{"start_line":68,"start_character":22,"end_line":68,"end_character":29},"in_reply_to":"1a122d0e_4f5f10e5","updated":"2016-04-28 10:35:24.000000000","message":"Sure, I am working on pagination in parallel, will be submitting next patch for pagination support by end of this week..","commit_id":"e18030a2ea7c3cfa994d2a6f9f498751b3951291"}],"cinder/message/defined_messages.py":[{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"cdb7f50e927bb0baf226abb0982d191ef5867d5c","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":"\"\"\"Event ID and user safe message mapping."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Event IDs are used to look up the message to be displayed for an API Message"},{"line_number":16,"context_line":"object. All defined messages should be appropriate for any API user to see"}],"source_content_type":"text/x-python","patch_set":29,"id":"1a122d0e_665d5348","line":13,"updated":"2016-04-21 15:50:31.000000000","message":"I\u0027m not sure what \"user safe\" means here.","commit_id":"2491301c3e0c1fdb5267f519da21280cd71fc487"},{"author":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"change_message_id":"6a1af2d4c04f559ccb87e334b81849051eab86e1","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":"\"\"\"Event ID and user safe message mapping."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Event IDs are used to look up the message to be displayed for an API Message"},{"line_number":16,"context_line":"object. All defined messages should be appropriate for any API user to see"}],"source_content_type":"text/x-python","patch_set":29,"id":"1a122d0e_911c1d15","line":13,"in_reply_to":"1a122d0e_665d5348","updated":"2016-04-21 19:26:38.000000000","message":"Done","commit_id":"2491301c3e0c1fdb5267f519da21280cd71fc487"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"cdb7f50e927bb0baf226abb0982d191ef5867d5c","unresolved":false,"context_lines":[{"line_number":15,"context_line":"Event IDs are used to look up the message to be displayed for an API Message"},{"line_number":16,"context_line":"object. All defined messages should be appropriate for any API user to see"},{"line_number":17,"context_line":"and not contain any sensitive information. A good rule-of-thumb is to be very"},{"line_number":18,"context_line":"general in error messages unless is it do to a bad user action, then be"},{"line_number":19,"context_line":"specific."},{"line_number":20,"context_line":"\"\"\""},{"line_number":21,"context_line":""}],"source_content_type":"text/x-python","patch_set":29,"id":"1a122d0e_a6576b25","line":18,"updated":"2016-04-21 15:50:31.000000000","message":"\"Due to\"","commit_id":"2491301c3e0c1fdb5267f519da21280cd71fc487"},{"author":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"change_message_id":"6a1af2d4c04f559ccb87e334b81849051eab86e1","unresolved":false,"context_lines":[{"line_number":15,"context_line":"Event IDs are used to look up the message to be displayed for an API Message"},{"line_number":16,"context_line":"object. All defined messages should be appropriate for any API user to see"},{"line_number":17,"context_line":"and not contain any sensitive information. A good rule-of-thumb is to be very"},{"line_number":18,"context_line":"general in error messages unless is it do to a bad user action, then be"},{"line_number":19,"context_line":"specific."},{"line_number":20,"context_line":"\"\"\""},{"line_number":21,"context_line":""}],"source_content_type":"text/x-python","patch_set":29,"id":"1a122d0e_f1191124","line":18,"in_reply_to":"1a122d0e_a6576b25","updated":"2016-04-21 19:26:38.000000000","message":"Done","commit_id":"2491301c3e0c1fdb5267f519da21280cd71fc487"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"cdb7f50e927bb0baf226abb0982d191ef5867d5c","unresolved":false,"context_lines":[{"line_number":27,"context_line":"IMAGE_FROM_VOLUME_OVER_QUOTA \u003d \u0027000004\u0027"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"event_id_message_map \u003d {"},{"line_number":30,"context_line":"    \u0027000001\u0027: _(\"An unknown error occurred\"),"},{"line_number":31,"context_line":"    \u0027000002\u0027: _(\"No storage could be allocated for this volume request. You \""},{"line_number":32,"context_line":"                \"may be able to try another size or volume type.\"),"},{"line_number":33,"context_line":"    \u0027000003\u0027: _(\"A readonly volume must be attached as readonly\"),"}],"source_content_type":"text/x-python","patch_set":29,"id":"1a122d0e_8147b94a","line":30,"updated":"2016-04-21 15:50:31.000000000","message":"This map should be keyed using the names above rather than duplicating the numbers.","commit_id":"2491301c3e0c1fdb5267f519da21280cd71fc487"},{"author":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"change_message_id":"6a1af2d4c04f559ccb87e334b81849051eab86e1","unresolved":false,"context_lines":[{"line_number":27,"context_line":"IMAGE_FROM_VOLUME_OVER_QUOTA \u003d \u0027000004\u0027"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"event_id_message_map \u003d {"},{"line_number":30,"context_line":"    \u0027000001\u0027: _(\"An unknown error occurred\"),"},{"line_number":31,"context_line":"    \u0027000002\u0027: _(\"No storage could be allocated for this volume request. You \""},{"line_number":32,"context_line":"                \"may be able to try another size or volume type.\"),"},{"line_number":33,"context_line":"    \u0027000003\u0027: _(\"A readonly volume must be attached as readonly\"),"}],"source_content_type":"text/x-python","patch_set":29,"id":"1a122d0e_d11695f0","line":30,"in_reply_to":"1a122d0e_8147b94a","updated":"2016-04-21 19:26:38.000000000","message":"Done","commit_id":"2491301c3e0c1fdb5267f519da21280cd71fc487"},{"author":{"_account_id":1207,"name":"Duncan Thomas","email":"duncan.thomas@gmail.com","username":"duncan-thomas"},"change_message_id":"9247ed09432d0023cddcc22e6e96feadd7577433","unresolved":false,"context_lines":[{"line_number":22,"context_line":"from cinder.i18n import _"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"UNKNOWN_ERROR \u003d \u0027000001\u0027"},{"line_number":25,"context_line":"NO_VALID_HOST \u003d \u0027000002\u0027"},{"line_number":26,"context_line":"ATTACH_READONLY_VOLUME \u003d \u0027000003\u0027"},{"line_number":27,"context_line":"IMAGE_FROM_VOLUME_OVER_QUOTA \u003d \u0027000004\u0027"},{"line_number":28,"context_line":""}],"source_content_type":"text/x-python","patch_set":36,"id":"1a122d0e_a17f74a9","line":25,"range":{"start_line":25,"start_character":0,"end_line":25,"end_character":13},"updated":"2016-04-29 14:31:36.000000000","message":"UNABLE_TO_ALLOCATE please - tenants don\u0027t need to know of the concept of hosts","commit_id":"55d65dd53d4be84a607fd9d90ddae495c6e3fd64"},{"author":{"_account_id":16308,"name":"Sheel Rana","email":"ranasheel2000@gmail.com","username":"sheel.rana"},"change_message_id":"da580f0aefd43eeb0ad85f2a25940e12869e9361","unresolved":false,"context_lines":[{"line_number":22,"context_line":"from cinder.i18n import _"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"UNKNOWN_ERROR \u003d \u0027000001\u0027"},{"line_number":25,"context_line":"NO_VALID_HOST \u003d \u0027000002\u0027"},{"line_number":26,"context_line":"ATTACH_READONLY_VOLUME \u003d \u0027000003\u0027"},{"line_number":27,"context_line":"IMAGE_FROM_VOLUME_OVER_QUOTA \u003d \u0027000004\u0027"},{"line_number":28,"context_line":""}],"source_content_type":"text/x-python","patch_set":36,"id":"1a122d0e_8aa36d42","line":25,"range":{"start_line":25,"start_character":0,"end_line":25,"end_character":13},"in_reply_to":"1a122d0e_a17f74a9","updated":"2016-04-29 15:19:53.000000000","message":"Done","commit_id":"55d65dd53d4be84a607fd9d90ddae495c6e3fd64"}],"cinder/message/message_config.py":[{"author":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"change_message_id":"9adc87b6fcc900c223b858f58a6bb5bb7f35dabc","unresolved":false,"context_lines":[{"line_number":15,"context_line":""},{"line_number":16,"context_line":"messages \u003d {"},{"line_number":17,"context_line":"    \u0027GEN_ERR_001\u0027: \"An unknown error occured\","},{"line_number":18,"context_line":"    \u0027SCH_ERR_001\u0027: \"No valid backend to place resource\","},{"line_number":19,"context_line":"    \u0027VOL_ERR__001\u0027: \"Could not attach volume\","},{"line_number":20,"context_line":"    \u0027BAK_ERR_001\u0027: \"Backup Failed\","},{"line_number":21,"context_line":"    \u0027VOL_INF_001\u0027: \"\", "}],"source_content_type":"text/x-python","patch_set":7,"id":"ba0121b8_120103af","line":18,"range":{"start_line":18,"start_character":5,"end_line":18,"end_character":16},"updated":"2016-03-29 16:28:55.000000000","message":"why not just have a descriptive event id? we aren\u0027t very limited by the number of characters.","commit_id":"4bc3f1e0463fa9286ec95e71598a1e6ce5761cd1"},{"author":{"_account_id":16308,"name":"Sheel Rana","email":"ranasheel2000@gmail.com","username":"sheel.rana"},"change_message_id":"f6f64cf1ef83e12494f70f289295b79bb66f107e","unresolved":false,"context_lines":[{"line_number":15,"context_line":""},{"line_number":16,"context_line":"messages \u003d {"},{"line_number":17,"context_line":"    \u0027GEN_ERR_001\u0027: \"An unknown error occured\","},{"line_number":18,"context_line":"    \u0027SCH_ERR_001\u0027: \"No valid backend to place resource\","},{"line_number":19,"context_line":"    \u0027VOL_ERR__001\u0027: \"Could not attach volume\","},{"line_number":20,"context_line":"    \u0027BAK_ERR_001\u0027: \"Backup Failed\","},{"line_number":21,"context_line":"    \u0027VOL_INF_001\u0027: \"\", "}],"source_content_type":"text/x-python","patch_set":7,"id":"ba0121b8_19a912e0","line":18,"range":{"start_line":18,"start_character":5,"end_line":18,"end_character":16},"in_reply_to":"ba0121b8_120103af","updated":"2016-03-30 05:26:45.000000000","message":"Actually these are just IDs so better to keep as short as possible but as wide as we can easily add new events.\nAlso, we need to keep all of them in sync and well formed as these will be displayed at user end as well.\n\nSo, I have tried to devide these in 3 parts:\n1. First part denotes Type of error : \n   GENERAL -GEN\n   SCHEDULER - SCH\n   VOLUME - VOL\n   BACKUP - BAK\n2. Second part denotes type of message.\n   ERR - For Error.\n   INF - For Information type messages.\n   WAR - For warning messages.\n\n3. Third part denotes id for specific event type.\n   We will be able to have large set of ids by keeping\n   id length to 3 digits.","commit_id":"4bc3f1e0463fa9286ec95e71598a1e6ce5761cd1"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"694cfe708de2b82df3457a332056f0f9790df98e","unresolved":false,"context_lines":[{"line_number":15,"context_line":""},{"line_number":16,"context_line":"messages \u003d {"},{"line_number":17,"context_line":"    \u0027GEN_ERR_001\u0027: \"An unknown error occured\","},{"line_number":18,"context_line":"    \u0027SCH_ERR_001\u0027: \"No valid backend to place resource\","},{"line_number":19,"context_line":"    \u0027VOL_ERR__001\u0027: \"Could not attach volume\","},{"line_number":20,"context_line":"    \u0027BAK_ERR_001\u0027: \"Backup Failed\","},{"line_number":21,"context_line":"    \u0027VOL_INF_001\u0027: \"\", "}],"source_content_type":"text/x-python","patch_set":7,"id":"ba0121b8_4838af3d","line":18,"range":{"start_line":18,"start_character":5,"end_line":18,"end_character":16},"in_reply_to":"ba0121b8_19a912e0","updated":"2016-03-30 15:11:59.000000000","message":"I don\u0027t think using numeric IDs is reasonable here, it will just lead to confusion anywhere we are generating these messages.  Instead of SCH_ERR_001 you should just have something like SCH_ERR_NO_BACKEND_FOUND.","commit_id":"4bc3f1e0463fa9286ec95e71598a1e6ce5761cd1"},{"author":{"_account_id":16308,"name":"Sheel Rana","email":"ranasheel2000@gmail.com","username":"sheel.rana"},"change_message_id":"496f71414715344ddc2507146ec293606413e21c","unresolved":false,"context_lines":[{"line_number":15,"context_line":""},{"line_number":16,"context_line":"messages \u003d {"},{"line_number":17,"context_line":"    \u0027GEN_ERR_001\u0027: \"An unknown error occured\","},{"line_number":18,"context_line":"    \u0027SCH_ERR_001\u0027: \"No valid backend to place resource\","},{"line_number":19,"context_line":"    \u0027VOL_ERR__001\u0027: \"Could not attach volume\","},{"line_number":20,"context_line":"    \u0027BAK_ERR_001\u0027: \"Backup Failed\","},{"line_number":21,"context_line":"    \u0027VOL_INF_001\u0027: \"\", "}],"source_content_type":"text/x-python","patch_set":7,"id":"ba0121b8_8e712f79","line":18,"range":{"start_line":18,"start_character":5,"end_line":18,"end_character":16},"in_reply_to":"ba0121b8_4838af3d","updated":"2016-03-30 15:37:42.000000000","message":"I am ok to change it. But, let me explain why I proposed this way..\n\nActually when we will be going ahead with later phases if we donot have well formed IDs, this will be difficult to handle.\nIt will be very cumbersome to generate 100s of such IDs with text and will be very difficult to differentiate them.\n\nAlso, when we will start showing them through cli/horizon, we need some fixed lenght instead of variable length.\n\nMay be this need further thoughts.","commit_id":"4bc3f1e0463fa9286ec95e71598a1e6ce5761cd1"},{"author":{"_account_id":16308,"name":"Sheel Rana","email":"ranasheel2000@gmail.com","username":"sheel.rana"},"change_message_id":"18d2933f110f239f9d3c4b7ad81cca5da91a87cb","unresolved":false,"context_lines":[{"line_number":20,"context_line":"from cinder.i18n import _"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"messages \u003d {"},{"line_number":23,"context_line":"    \u0027UNKNOWN_ERROR\u0027: _(\"An unknown error occurred\"),"},{"line_number":24,"context_line":"    \u0027NO_VALID_HOST\u0027: _(\"No valid backend to place resource\"),"},{"line_number":25,"context_line":"}"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"ba0121b8_429b1118","line":24,"range":{"start_line":23,"start_character":0,"end_line":24,"end_character":61},"updated":"2016-04-01 04:42:52.000000000","message":"This must be something like \nGEN_ERR_001 and \nSCH_ERR_001 for better consistency.\n\nI am surprized why this is being changed..","commit_id":"da1fd1807beaf0eb58135dc54d0e2d035df79e98"},{"author":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"change_message_id":"6f36daa37bd6b094010f754558d547a38952a445","unresolved":false,"context_lines":[{"line_number":20,"context_line":"from cinder.i18n import _"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"messages \u003d {"},{"line_number":23,"context_line":"    \u0027UNKNOWN_ERROR\u0027: _(\"An unknown error occurred\"),"},{"line_number":24,"context_line":"    \u0027NO_VALID_HOST\u0027: _(\"No valid backend to place resource\"),"},{"line_number":25,"context_line":"}"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"ba0121b8_844fe032","line":24,"range":{"start_line":23,"start_character":0,"end_line":24,"end_character":61},"in_reply_to":"ba0121b8_429b1118","updated":"2016-04-01 14:42:58.000000000","message":"I mentioned that I don\u0027t know which is better and I want to think about it. You explained your reasoning but that doesn\u0027t make it the best way. As far as I\u0027m concerned there are two goals of the event id, to provide an immutable key to map to some text and not confuse the user.","commit_id":"da1fd1807beaf0eb58135dc54d0e2d035df79e98"}],"cinder/message/permitted_messages.py":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"8e7b0faee45815aceeb578cb98b2bcdf9dbc740d","unresolved":false,"context_lines":[{"line_number":24,"context_line":""},{"line_number":25,"context_line":"event_id_message_map \u003d {"},{"line_number":26,"context_line":"    \u0027UNKNOWN_ERROR\u0027: _(\"An unknown error occurred\"),"},{"line_number":27,"context_line":"    \u0027NO_VALID_HOST\u0027: _(\"No valid backend on which to provision resource\"),"},{"line_number":28,"context_line":"}"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":""}],"source_content_type":"text/x-python","patch_set":18,"id":"9a061dce_bbe05d2a","line":27,"range":{"start_line":27,"start_character":24,"end_line":27,"end_character":71},"updated":"2016-04-07 14:25:09.000000000","message":"Sounds different, even when i read it in different tones.. :)\n\nNo valid backend was found to provision the resource on.","commit_id":"0e5ce4a4f471ce6ded3d91f994ad21373def1559"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"3fb0028b5d8151b3c0502324dba73a3c04dc4895","unresolved":false,"context_lines":[{"line_number":16,"context_line":"object. All defined messages should be appropriate for any API user to see"},{"line_number":17,"context_line":"and not contain any sensitive information."},{"line_number":18,"context_line":"\"\"\""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"from cinder.i18n import _"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"UNKNOWN_ERROR \u003d \u0027UNKNOWN_ERROR\u0027"}],"source_content_type":"text/x-python","patch_set":21,"id":"9a061dce_6393a95b","line":19,"updated":"2016-04-07 20:16:22.000000000","message":"I would probably call this file \"defined_messages\" rather than \"permitted_messages\" since \"permitted\" could mean a lot of different things.","commit_id":"905aae7fbcff744aa771fc03e3aa22a35a999ccb"},{"author":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"change_message_id":"83eaf38205b8c9c57c735de39e1209cdce815c6b","unresolved":false,"context_lines":[{"line_number":16,"context_line":"object. All defined messages should be appropriate for any API user to see"},{"line_number":17,"context_line":"and not contain any sensitive information."},{"line_number":18,"context_line":"\"\"\""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"from cinder.i18n import _"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"UNKNOWN_ERROR \u003d \u0027UNKNOWN_ERROR\u0027"}],"source_content_type":"text/x-python","patch_set":21,"id":"9a061dce_a612c156","line":19,"in_reply_to":"9a061dce_6393a95b","updated":"2016-04-08 14:58:44.000000000","message":"sure that\u0027s fine, will push up soon","commit_id":"905aae7fbcff744aa771fc03e3aa22a35a999ccb"},{"author":{"_account_id":1207,"name":"Duncan Thomas","email":"duncan.thomas@gmail.com","username":"duncan-thomas"},"change_message_id":"52993941040bf66d1548f8056b703456a594e2ff","unresolved":false,"context_lines":[{"line_number":24,"context_line":""},{"line_number":25,"context_line":"event_id_message_map \u003d {"},{"line_number":26,"context_line":"    \u0027UNKNOWN_ERROR\u0027: _(\"An unknown error occurred\"),"},{"line_number":27,"context_line":"    \u0027NO_VALID_HOST\u0027: _(\"No valid backend was found to provision the resource\"),"},{"line_number":28,"context_line":"}"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":""}],"source_content_type":"text/x-python","patch_set":23,"id":"7a1b2928_6a37d1e3","line":27,"range":{"start_line":27,"start_character":45,"end_line":27,"end_character":50},"updated":"2016-04-11 09:57:15.000000000","message":"Is this message, on its own, actually useful to a tenant? It gives them no information at all that they can use to change anything about their request, and nothing informative to add to a fault report.","commit_id":"2097feee55b0096758dd25fcd2fac82db53f01e1"}],"cinder/message/resource_types.py":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"8e7b0faee45815aceeb578cb98b2bcdf9dbc740d","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":"VOLUME \u003d \u0027VOLUME\u0027"}],"source_content_type":"text/x-python","patch_set":18,"id":"9a061dce_bb4e9d38","line":13,"range":{"start_line":13,"start_character":3,"end_line":13,"end_character":4},"updated":"2016-04-07 14:25:09.000000000","message":"Nit: remove space","commit_id":"0e5ce4a4f471ce6ded3d91f994ad21373def1559"}],"cinder/scheduler/flows/create_volume.py":[{"author":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"change_message_id":"91394f3e90186121996903e87924d182d9d04b12","unresolved":false,"context_lines":[{"line_number":131,"context_line":"                if isinstance(e, exception.NoValidHost):"},{"line_number":132,"context_line":"                    messager \u003d message_api.API()"},{"line_number":133,"context_line":"                    messager.create(context,"},{"line_number":134,"context_line":"                                    \u0027NO_VALID_HOST\u0027,"},{"line_number":135,"context_line":"                                    context.project_id,"},{"line_number":136,"context_line":"                                    resource_type\u003d\u0027VOLUME\u0027,"},{"line_number":137,"context_line":"                                    resource_uuid\u003drequest_spec[\u0027volume_id\u0027])"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba0121b8_04ba8ce1","line":134,"range":{"start_line":134,"start_character":37,"end_line":134,"end_character":50},"updated":"2016-03-29 01:02:24.000000000","message":"I am trying to think of a way we can have constant instead of strings for this stuff. So it\u0027s less error prone","commit_id":"6abf3a1d428375dbd56eca15b445001e6ab972f9"},{"author":{"_account_id":16308,"name":"Sheel Rana","email":"ranasheel2000@gmail.com","username":"sheel.rana"},"change_message_id":"b0e655aeb077d9903effab95c16814c900908e4b","unresolved":false,"context_lines":[{"line_number":131,"context_line":"                if isinstance(e, exception.NoValidHost):"},{"line_number":132,"context_line":"                    messager \u003d message_api.API()"},{"line_number":133,"context_line":"                    messager.create(context,"},{"line_number":134,"context_line":"                                    \u0027NO_VALID_HOST\u0027,"},{"line_number":135,"context_line":"                                    context.project_id,"},{"line_number":136,"context_line":"                                    resource_type\u003d\u0027VOLUME\u0027,"},{"line_number":137,"context_line":"                                    resource_uuid\u003drequest_spec[\u0027volume_id\u0027])"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba0121b8_51b9cfe8","line":134,"range":{"start_line":134,"start_character":37,"end_line":134,"end_character":50},"in_reply_to":"ba0121b8_04ba8ce1","updated":"2016-03-29 11:08:56.000000000","message":"This is already done in cinder/message/message_config.py\nI will update this request in some time.","commit_id":"6abf3a1d428375dbd56eca15b445001e6ab972f9"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"6ea1ce771908897d7fc7fdbb052240048696f18f","unresolved":false,"context_lines":[{"line_number":131,"context_line":"                    reraise\u003dnot isinstance(e, exception.NoValidHost)):"},{"line_number":132,"context_line":"                if isinstance(e, exception.NoValidHost):"},{"line_number":133,"context_line":"                    self.message_api.create("},{"line_number":134,"context_line":"                        context, \u0027NO_VALID_HOST\u0027,"},{"line_number":135,"context_line":"                        context.project_id,"},{"line_number":136,"context_line":"                        resource_type\u003d\u0027VOLUME\u0027,"},{"line_number":137,"context_line":"                        resource_uuid\u003drequest_spec[\u0027volume_id\u0027])"}],"source_content_type":"text/x-python","patch_set":14,"id":"9a061dce_5ead6f30","line":134,"range":{"start_line":134,"start_character":33,"end_line":134,"end_character":48},"updated":"2016-04-04 15:05:46.000000000","message":"suggestion: we should have a common place for these constants.. and reuse them in message_config.py and everywhere else..\n\nunless you think the uses will be very limited..","commit_id":"da1fd1807beaf0eb58135dc54d0e2d035df79e98"},{"author":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"change_message_id":"c302003c114f3326038c04a40d6a7b74a694c3ed","unresolved":false,"context_lines":[{"line_number":131,"context_line":"                    reraise\u003dnot isinstance(e, exception.NoValidHost)):"},{"line_number":132,"context_line":"                if isinstance(e, exception.NoValidHost):"},{"line_number":133,"context_line":"                    self.message_api.create("},{"line_number":134,"context_line":"                        context, \u0027NO_VALID_HOST\u0027,"},{"line_number":135,"context_line":"                        context.project_id,"},{"line_number":136,"context_line":"                        resource_type\u003d\u0027VOLUME\u0027,"},{"line_number":137,"context_line":"                        resource_uuid\u003drequest_spec[\u0027volume_id\u0027])"}],"source_content_type":"text/x-python","patch_set":14,"id":"9a061dce_36d53a43","line":134,"range":{"start_line":134,"start_character":33,"end_line":134,"end_character":48},"in_reply_to":"9a061dce_5ead6f30","updated":"2016-04-04 17:29:20.000000000","message":"I think I have an idea on what to do. Will tweak how these are defined.","commit_id":"da1fd1807beaf0eb58135dc54d0e2d035df79e98"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"8e7b0faee45815aceeb578cb98b2bcdf9dbc740d","unresolved":false,"context_lines":[{"line_number":136,"context_line":"                        context,"},{"line_number":137,"context_line":"                        permitted_messages.NO_VALID_HOST,"},{"line_number":138,"context_line":"                        context.project_id,"},{"line_number":139,"context_line":"                        resource_type\u003dresource_types.VOLUME,"},{"line_number":140,"context_line":"                        resource_uuid\u003drequest_spec[\u0027volume_id\u0027])"},{"line_number":141,"context_line":"                try:"},{"line_number":142,"context_line":"                    self._handle_failure(context, request_spec, e)"}],"source_content_type":"text/x-python","patch_set":18,"id":"9a061dce_bb75fd64","line":139,"range":{"start_line":139,"start_character":38,"end_line":139,"end_character":59},"updated":"2016-04-07 14:25:09.000000000","message":"+1","commit_id":"0e5ce4a4f471ce6ded3d91f994ad21373def1559"}],"cinder/tests/unit/api/v3/stubs.py":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"6ea1ce771908897d7fc7fdbb052240048696f18f","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2010 OpenStack Foundation"},{"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":14,"id":"9a061dce_d2c17330","line":1,"range":{"start_line":1,"start_character":0,"end_line":1,"end_character":37},"updated":"2016-04-04 15:05:46.000000000","message":"2010? :)\n\nI don\u0027t think OpenStack Foundation expects this attribution.","commit_id":"da1fd1807beaf0eb58135dc54d0e2d035df79e98"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"585f8dcd2420f3124dc0222745e717c907e2d0c9","unresolved":false,"context_lines":[{"line_number":17,"context_line":"import iso8601"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"FAKE_UUID \u003d \u0027aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa\u0027"},{"line_number":21,"context_line":"FAKE_UUIDS \u003d {}"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"9a061dce_9ce4200e","line":20,"updated":"2016-04-04 19:54:16.000000000","message":"Use something from tests/fake_constants for this.","commit_id":"da1fd1807beaf0eb58135dc54d0e2d035df79e98"},{"author":{"_account_id":12825,"name":"Szymon Wróblewski","email":"szymon.wroblewski@ovhcloud.com","username":"bluex"},"change_message_id":"589c2e26f0f842cdee88a1f1a48becc7b78cbe51","unresolved":false,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"FAKE_UUID \u003d fake_constants.object_id"},{"line_number":21,"context_line":"FAKE_UUIDS \u003d {}"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"def stub_message(id, **kwargs):"}],"source_content_type":"text/x-python","patch_set":16,"id":"9a061dce_c7104504","line":21,"range":{"start_line":21,"start_character":0,"end_line":21,"end_character":15},"updated":"2016-04-05 20:49:01.000000000","message":"Is it used by something?","commit_id":"0d284bac23a147068d942b1e119d38912727054a"},{"author":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"change_message_id":"d251a105b48d4477eb1e2649abdba99911c8a864","unresolved":false,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"FAKE_UUID \u003d fake_constants.object_id"},{"line_number":21,"context_line":"FAKE_UUIDS \u003d {}"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"def stub_message(id, **kwargs):"}],"source_content_type":"text/x-python","patch_set":16,"id":"9a061dce_ea99657a","line":21,"range":{"start_line":21,"start_character":0,"end_line":21,"end_character":15},"in_reply_to":"9a061dce_c7104504","updated":"2016-04-07 13:44:37.000000000","message":"Done","commit_id":"0d284bac23a147068d942b1e119d38912727054a"}],"cinder/tests/unit/api/v3/test_messages.py":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"6ea1ce771908897d7fc7fdbb052240048696f18f","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2016 OpenStack Foundation"},{"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":14,"id":"9a061dce_5203a373","line":1,"range":{"start_line":1,"start_character":0,"end_line":1,"end_character":37},"updated":"2016-04-04 15:05:46.000000000","message":"same","commit_id":"da1fd1807beaf0eb58135dc54d0e2d035df79e98"},{"author":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"change_message_id":"c302003c114f3326038c04a40d6a7b74a694c3ed","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2016 OpenStack Foundation"},{"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":14,"id":"9a061dce_d64b1e2a","line":1,"range":{"start_line":1,"start_character":0,"end_line":1,"end_character":37},"in_reply_to":"9a061dce_5203a373","updated":"2016-04-04 17:29:20.000000000","message":"Done","commit_id":"da1fd1807beaf0eb58135dc54d0e2d035df79e98"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"6ea1ce771908897d7fc7fdbb052240048696f18f","unresolved":false,"context_lines":[{"line_number":28,"context_line":""},{"line_number":29,"context_line":"CONF \u003d cfg.CONF"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"NS \u003d \u0027{http://docs.openstack.org/api/openstack-block-storage/2.0/content}\u0027"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"DEFAULT_AZ \u003d \"zone1:host1\""},{"line_number":34,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"9a061dce_523a8337","line":31,"range":{"start_line":31,"start_character":61,"end_line":31,"end_character":65},"updated":"2016-04-04 15:05:46.000000000","message":"3.0?","commit_id":"da1fd1807beaf0eb58135dc54d0e2d035df79e98"},{"author":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"change_message_id":"c302003c114f3326038c04a40d6a7b74a694c3ed","unresolved":false,"context_lines":[{"line_number":28,"context_line":""},{"line_number":29,"context_line":"CONF \u003d cfg.CONF"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"NS \u003d \u0027{http://docs.openstack.org/api/openstack-block-storage/2.0/content}\u0027"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"DEFAULT_AZ \u003d \"zone1:host1\""},{"line_number":34,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"9a061dce_76469224","line":31,"range":{"start_line":31,"start_character":61,"end_line":31,"end_character":65},"in_reply_to":"9a061dce_523a8337","updated":"2016-04-04 17:29:20.000000000","message":"Done","commit_id":"da1fd1807beaf0eb58135dc54d0e2d035df79e98"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"6ea1ce771908897d7fc7fdbb052240048696f18f","unresolved":false,"context_lines":[{"line_number":56,"context_line":"                \u0027message_level\u0027: message.get(\u0027message_level\u0027),"},{"line_number":57,"context_line":"                \u0027guaranteed_until\u0027: message.get(\u0027expires_at\u0027),"},{"line_number":58,"context_line":"                \u0027links\u0027: ["},{"line_number":59,"context_line":"                    {\u0027href\u0027: ("},{"line_number":60,"context_line":"                        \u0027http://localhost/v2/fakeproject/messages/%s\u0027 % id),"},{"line_number":61,"context_line":"                     \u0027rel\u0027: \u0027self\u0027},"},{"line_number":62,"context_line":"                    {\u0027href\u0027: \u0027http://localhost/fakeproject/messages/%s\u0027 % id,"},{"line_number":63,"context_line":"                     \u0027rel\u0027: \u0027bookmark\u0027}],"},{"line_number":64,"context_line":"            }"}],"source_content_type":"text/x-python","patch_set":14,"id":"9a061dce_720ce794","line":61,"range":{"start_line":59,"start_character":20,"end_line":61,"end_character":35},"updated":"2016-04-04 15:05:46.000000000","message":"please wrap","commit_id":"da1fd1807beaf0eb58135dc54d0e2d035df79e98"},{"author":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"change_message_id":"c302003c114f3326038c04a40d6a7b74a694c3ed","unresolved":false,"context_lines":[{"line_number":56,"context_line":"                \u0027message_level\u0027: message.get(\u0027message_level\u0027),"},{"line_number":57,"context_line":"                \u0027guaranteed_until\u0027: message.get(\u0027expires_at\u0027),"},{"line_number":58,"context_line":"                \u0027links\u0027: ["},{"line_number":59,"context_line":"                    {\u0027href\u0027: ("},{"line_number":60,"context_line":"                        \u0027http://localhost/v2/fakeproject/messages/%s\u0027 % id),"},{"line_number":61,"context_line":"                     \u0027rel\u0027: \u0027self\u0027},"},{"line_number":62,"context_line":"                    {\u0027href\u0027: \u0027http://localhost/fakeproject/messages/%s\u0027 % id,"},{"line_number":63,"context_line":"                     \u0027rel\u0027: \u0027bookmark\u0027}],"},{"line_number":64,"context_line":"            }"}],"source_content_type":"text/x-python","patch_set":14,"id":"9a061dce_1677563b","line":61,"range":{"start_line":59,"start_character":20,"end_line":61,"end_character":35},"in_reply_to":"9a061dce_720ce794","updated":"2016-04-04 17:29:20.000000000","message":"Done","commit_id":"da1fd1807beaf0eb58135dc54d0e2d035df79e98"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"6ea1ce771908897d7fc7fdbb052240048696f18f","unresolved":false,"context_lines":[{"line_number":59,"context_line":"                    {\u0027href\u0027: ("},{"line_number":60,"context_line":"                        \u0027http://localhost/v2/fakeproject/messages/%s\u0027 % id),"},{"line_number":61,"context_line":"                     \u0027rel\u0027: \u0027self\u0027},"},{"line_number":62,"context_line":"                    {\u0027href\u0027: \u0027http://localhost/fakeproject/messages/%s\u0027 % id,"},{"line_number":63,"context_line":"                     \u0027rel\u0027: \u0027bookmark\u0027}],"},{"line_number":64,"context_line":"            }"},{"line_number":65,"context_line":"        }"},{"line_number":66,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"9a061dce_1265ab44","line":63,"range":{"start_line":62,"start_character":19,"end_line":63,"end_character":39},"updated":"2016-04-04 15:05:46.000000000","message":"please wrap","commit_id":"da1fd1807beaf0eb58135dc54d0e2d035df79e98"},{"author":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"change_message_id":"c302003c114f3326038c04a40d6a7b74a694c3ed","unresolved":false,"context_lines":[{"line_number":59,"context_line":"                    {\u0027href\u0027: ("},{"line_number":60,"context_line":"                        \u0027http://localhost/v2/fakeproject/messages/%s\u0027 % id),"},{"line_number":61,"context_line":"                     \u0027rel\u0027: \u0027self\u0027},"},{"line_number":62,"context_line":"                    {\u0027href\u0027: \u0027http://localhost/fakeproject/messages/%s\u0027 % id,"},{"line_number":63,"context_line":"                     \u0027rel\u0027: \u0027bookmark\u0027}],"},{"line_number":64,"context_line":"            }"},{"line_number":65,"context_line":"        }"},{"line_number":66,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"9a061dce_7687b20f","line":63,"range":{"start_line":62,"start_character":19,"end_line":63,"end_character":39},"in_reply_to":"9a061dce_1265ab44","updated":"2016-04-04 17:29:20.000000000","message":"Done","commit_id":"da1fd1807beaf0eb58135dc54d0e2d035df79e98"},{"author":{"_account_id":12825,"name":"Szymon Wróblewski","email":"szymon.wroblewski@ovhcloud.com","username":"bluex"},"change_message_id":"589c2e26f0f842cdee88a1f1a48becc7b78cbe51","unresolved":false,"context_lines":[{"line_number":26,"context_line":""},{"line_number":27,"context_line":"CONF \u003d cfg.CONF"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"NS \u003d \u0027{http://docs.openstack.org/api/openstack-block-storage/3.0/content}\u0027"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"DEFAULT_AZ \u003d \"zone1:host1\""},{"line_number":32,"context_line":""},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"class MessageApiTest(test.TestCase):"}],"source_content_type":"text/x-python","patch_set":16,"id":"9a061dce_fab07c45","line":31,"range":{"start_line":29,"start_character":0,"end_line":31,"end_character":26},"updated":"2016-04-05 20:49:01.000000000","message":"Is it used by something?","commit_id":"0d284bac23a147068d942b1e119d38912727054a"},{"author":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"change_message_id":"d251a105b48d4477eb1e2649abdba99911c8a864","unresolved":false,"context_lines":[{"line_number":26,"context_line":""},{"line_number":27,"context_line":"CONF \u003d cfg.CONF"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"NS \u003d \u0027{http://docs.openstack.org/api/openstack-block-storage/3.0/content}\u0027"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"DEFAULT_AZ \u003d \"zone1:host1\""},{"line_number":32,"context_line":""},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"class MessageApiTest(test.TestCase):"}],"source_content_type":"text/x-python","patch_set":16,"id":"9a061dce_caa621ad","line":31,"range":{"start_line":29,"start_character":0,"end_line":31,"end_character":26},"in_reply_to":"9a061dce_fab07c45","updated":"2016-04-07 13:44:37.000000000","message":"Done","commit_id":"0d284bac23a147068d942b1e119d38912727054a"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"8e7b0faee45815aceeb578cb98b2bcdf9dbc740d","unresolved":false,"context_lines":[{"line_number":45,"context_line":"            {\u0027href\u0027: \u0027http://localhost/v2/fakeproject/messages/%s\u0027 % id,"},{"line_number":46,"context_line":"             \u0027rel\u0027: \u0027self\u0027},"},{"line_number":47,"context_line":"            {\u0027href\u0027: \u0027http://localhost/fakeproject/messages/%s\u0027 % id,"},{"line_number":48,"context_line":"             \u0027rel\u0027: \u0027bookmark\u0027}"},{"line_number":49,"context_line":"        ]"},{"line_number":50,"context_line":"        return {"},{"line_number":51,"context_line":"            \u0027message\u0027: {"}],"source_content_type":"text/x-python","patch_set":18,"id":"9a061dce_9be5990a","line":48,"range":{"start_line":48,"start_character":29,"end_line":48,"end_character":31},"updated":"2016-04-07 14:25:09.000000000","message":"nit: trailing comma","commit_id":"0e5ce4a4f471ce6ded3d91f994ad21373def1559"},{"author":{"_account_id":4355,"name":"Avishay Traeger","email":"avishay@stratoscale.com","username":"avishay-il"},"change_message_id":"6d0e1bd583ea4951c86ebd0b5ef5c84fcccde601","unresolved":false,"context_lines":[{"line_number":42,"context_line":"    def _expected_message_from_controller(self, id):"},{"line_number":43,"context_line":"        message \u003d stubs.stub_message(id)"},{"line_number":44,"context_line":"        links \u003d ["},{"line_number":45,"context_line":"            {\u0027href\u0027: \u0027http://localhost/v2/fakeproject/messages/%s\u0027 % id,"},{"line_number":46,"context_line":"             \u0027rel\u0027: \u0027self\u0027},"},{"line_number":47,"context_line":"            {\u0027href\u0027: \u0027http://localhost/fakeproject/messages/%s\u0027 % id,"},{"line_number":48,"context_line":"             \u0027rel\u0027: \u0027bookmark\u0027},"}],"source_content_type":"text/x-python","patch_set":27,"id":"1a122d0e_b2dd6ee2","line":45,"updated":"2016-04-19 12:56:22.000000000","message":"Why v2 and not v3?","commit_id":"7a14a23b5b7979132f4530d705def10d3e983cad"},{"author":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"change_message_id":"f3899fde2775a00c58b82fdd983201e81a531821","unresolved":false,"context_lines":[{"line_number":42,"context_line":"    def _expected_message_from_controller(self, id):"},{"line_number":43,"context_line":"        message \u003d stubs.stub_message(id)"},{"line_number":44,"context_line":"        links \u003d ["},{"line_number":45,"context_line":"            {\u0027href\u0027: \u0027http://localhost/v2/fakeproject/messages/%s\u0027 % id,"},{"line_number":46,"context_line":"             \u0027rel\u0027: \u0027self\u0027},"},{"line_number":47,"context_line":"            {\u0027href\u0027: \u0027http://localhost/fakeproject/messages/%s\u0027 % id,"},{"line_number":48,"context_line":"             \u0027rel\u0027: \u0027bookmark\u0027},"}],"source_content_type":"text/x-python","patch_set":27,"id":"1a122d0e_cc27aec8","line":45,"in_reply_to":"1a122d0e_b2dd6ee2","updated":"2016-04-19 13:45:14.000000000","message":"good catch, fix incoming","commit_id":"7a14a23b5b7979132f4530d705def10d3e983cad"},{"author":{"_account_id":4355,"name":"Avishay Traeger","email":"avishay@stratoscale.com","username":"avishay-il"},"change_message_id":"6d0e1bd583ea4951c86ebd0b5ef5c84fcccde601","unresolved":false,"context_lines":[{"line_number":65,"context_line":"        self.stubs.Set(message_api.API, \u0027get\u0027, stubs.stub_message_get)"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"        req \u003d fakes.HTTPRequest.blank("},{"line_number":68,"context_line":"            \u0027/v2/messages/%s\u0027 % fakes.FAKE_UUID,"},{"line_number":69,"context_line":"            version\u003dmessages.MESSAGES_BASE_MICRO_VERSION)"},{"line_number":70,"context_line":"        req.environ[\u0027cinder.context\u0027] \u003d self.ctxt"},{"line_number":71,"context_line":""}],"source_content_type":"text/x-python","patch_set":27,"id":"1a122d0e_12c382ee","line":68,"updated":"2016-04-19 12:56:22.000000000","message":"Why v2 and not v3?  (for all)","commit_id":"7a14a23b5b7979132f4530d705def10d3e983cad"}],"cinder/tests/unit/message/test_api.py":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"6ea1ce771908897d7fc7fdbb052240048696f18f","unresolved":false,"context_lines":[{"line_number":45,"context_line":"            \u0027resource_uuid\u0027: None,"},{"line_number":46,"context_line":"            \u0027event_id\u0027: \"NO_VALID_HOST\","},{"line_number":47,"context_line":"            \u0027message_level\u0027: \u0027ERROR\u0027,"},{"line_number":48,"context_line":"            \u0027expires_at\u0027: expected_expires_at"},{"line_number":49,"context_line":"        }"},{"line_number":50,"context_line":"        self.message_api.create(self.ctxt,"},{"line_number":51,"context_line":"                                \"NO_VALID_HOST\","}],"source_content_type":"text/x-python","patch_set":14,"id":"9a061dce_12cc8b34","line":48,"range":{"start_line":48,"start_character":26,"end_line":48,"end_character":45},"updated":"2016-04-04 15:05:46.000000000","message":"nit: trailing comma","commit_id":"da1fd1807beaf0eb58135dc54d0e2d035df79e98"},{"author":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"change_message_id":"c302003c114f3326038c04a40d6a7b74a694c3ed","unresolved":false,"context_lines":[{"line_number":45,"context_line":"            \u0027resource_uuid\u0027: None,"},{"line_number":46,"context_line":"            \u0027event_id\u0027: \"NO_VALID_HOST\","},{"line_number":47,"context_line":"            \u0027message_level\u0027: \u0027ERROR\u0027,"},{"line_number":48,"context_line":"            \u0027expires_at\u0027: expected_expires_at"},{"line_number":49,"context_line":"        }"},{"line_number":50,"context_line":"        self.message_api.create(self.ctxt,"},{"line_number":51,"context_line":"                                \"NO_VALID_HOST\","}],"source_content_type":"text/x-python","patch_set":14,"id":"9a061dce_76b5f2cb","line":48,"range":{"start_line":48,"start_character":26,"end_line":48,"end_character":45},"in_reply_to":"9a061dce_12cc8b34","updated":"2016-04-04 17:29:20.000000000","message":"Done","commit_id":"da1fd1807beaf0eb58135dc54d0e2d035df79e98"}],"cinder/tests/unit/scheduler/test_scheduler.py":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"6ea1ce771908897d7fc7fdbb052240048696f18f","unresolved":false,"context_lines":[{"line_number":134,"context_line":"        _mock_sched_create.assert_called_once_with(self.context, request_spec,"},{"line_number":135,"context_line":"                                                   {})"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"        _mock_message_create(self.context, \u0027NO_VALID_HOST\u0027,"},{"line_number":138,"context_line":"                             self.context.project_id,"},{"line_number":139,"context_line":"                             resource_type\u003d\u0027VOLUME\u0027,"},{"line_number":140,"context_line":"                             resource_uuid\u003dvolume.id)"}],"source_content_type":"text/x-python","patch_set":14,"id":"9a061dce_f2fc7740","line":137,"range":{"start_line":137,"start_character":29,"end_line":137,"end_character":33},"updated":"2016-04-04 15:05:46.000000000","message":"assert_called_once_with?","commit_id":"da1fd1807beaf0eb58135dc54d0e2d035df79e98"},{"author":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"change_message_id":"c302003c114f3326038c04a40d6a7b74a694c3ed","unresolved":false,"context_lines":[{"line_number":134,"context_line":"        _mock_sched_create.assert_called_once_with(self.context, request_spec,"},{"line_number":135,"context_line":"                                                   {})"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"        _mock_message_create(self.context, \u0027NO_VALID_HOST\u0027,"},{"line_number":138,"context_line":"                             self.context.project_id,"},{"line_number":139,"context_line":"                             resource_type\u003d\u0027VOLUME\u0027,"},{"line_number":140,"context_line":"                             resource_uuid\u003dvolume.id)"}],"source_content_type":"text/x-python","patch_set":14,"id":"9a061dce_16dc7611","line":137,"range":{"start_line":137,"start_character":29,"end_line":137,"end_character":33},"in_reply_to":"9a061dce_f2fc7740","updated":"2016-04-04 17:29:20.000000000","message":"Done","commit_id":"da1fd1807beaf0eb58135dc54d0e2d035df79e98"}],"doc/source/devref/user_messages.rst":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"8e7b0faee45815aceeb578cb98b2bcdf9dbc740d","unresolved":false,"context_lines":[{"line_number":50,"context_line":"The Message API Module"},{"line_number":51,"context_line":"----------------------"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":".. automodule:: cinder.message.api"},{"line_number":54,"context_line":"    :noindex:"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"The Resource Types Module"}],"source_content_type":"text/x-rst","patch_set":18,"id":"9a061dce_9b3d992d","line":53,"range":{"start_line":53,"start_character":16,"end_line":53,"end_character":34},"updated":"2016-04-07 14:25:09.000000000","message":"Any docstrings you want to reference in this module?\n\nThe generated doc section is currently empty.. not sure you wanted it this way:\n\nhttp://docs-draft.openstack.org/52/298052/16/check/gate-cinder-docs/50b9527//doc/build/html/devref/user_messages.html","commit_id":"0e5ce4a4f471ce6ded3d91f994ad21373def1559"},{"author":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"change_message_id":"9b5c3722d551331c6a6503a6e1b594108b70d3a5","unresolved":false,"context_lines":[{"line_number":50,"context_line":"The Message API Module"},{"line_number":51,"context_line":"----------------------"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":".. automodule:: cinder.message.api"},{"line_number":54,"context_line":"    :noindex:"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"The Resource Types Module"}],"source_content_type":"text/x-rst","patch_set":18,"id":"9a061dce_b6d19425","line":53,"range":{"start_line":53,"start_character":16,"end_line":53,"end_character":34},"in_reply_to":"9a061dce_9b3d992d","updated":"2016-04-07 14:36:29.000000000","message":"Yeah I can add some docstrings to the class methods.","commit_id":"0e5ce4a4f471ce6ded3d91f994ad21373def1559"},{"author":{"_account_id":20105,"name":"Cao ShuFeng","email":"caosf.fnst@cn.fujitsu.com","username":"caosf.fnst"},"change_message_id":"c533fc7797b1eb8da9707fd10b6faec4ee66828b","unresolved":false,"context_lines":[{"line_number":31,"context_line":"Will produce the following::"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":" GET /v3/6c430ede-9476-4128-8838-8d3929ced223/messages"},{"line_number":34,"context_line":" {"},{"line_number":35,"context_line":"   \"messages\": ["},{"line_number":36,"context_line":"     {"},{"line_number":37,"context_line":"      \"id\": \"5429fffa-5c76-4d68-a671-37a8e24f37cf\","},{"line_number":38,"context_line":"      \"event_id\": \"NO_VALID_HOST\","},{"line_number":39,"context_line":"      \"user_message\": \"No valid backend on which to provision resource\","},{"line_number":40,"context_line":"      \"message_level\": \"ERROR\","},{"line_number":41,"context_line":"      \"created_at\": 2015-08-27T09:49:58-05:00,"},{"line_number":42,"context_line":"      \"guaranteed_until\": 2015-09-27T09:49:58-05:00,"},{"line_number":43,"context_line":"      \"request_id\": \"req-936666d2-4c8f-4e41-9ac9-237b43f8b848\","},{"line_number":44,"context_line":"     }"},{"line_number":45,"context_line":"   ]"},{"line_number":46,"context_line":" }"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":""},{"line_number":49,"context_line":""}],"source_content_type":"text/x-rst","patch_set":34,"id":"1a122d0e_4c4efe6f","line":46,"range":{"start_line":34,"start_character":0,"end_line":46,"end_character":2},"updated":"2016-04-26 11:01:16.000000000","message":"This does not consistent with the schema[1].\nIn the schema, there is a \"expires_at\" but no \"guaranteed_until\".\n\n[1]: https://review.openstack.org/#/c/273938/9/specs/newton/summarymessage.rst@202","commit_id":"e18030a2ea7c3cfa994d2a6f9f498751b3951291"},{"author":{"_account_id":16308,"name":"Sheel Rana","email":"ranasheel2000@gmail.com","username":"sheel.rana"},"change_message_id":"66e4b658929f78c381c29559e38ed53c5521d44b","unresolved":false,"context_lines":[{"line_number":31,"context_line":"Will produce the following::"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":" GET /v3/6c430ede-9476-4128-8838-8d3929ced223/messages"},{"line_number":34,"context_line":" {"},{"line_number":35,"context_line":"   \"messages\": ["},{"line_number":36,"context_line":"     {"},{"line_number":37,"context_line":"      \"id\": \"5429fffa-5c76-4d68-a671-37a8e24f37cf\","},{"line_number":38,"context_line":"      \"event_id\": \"NO_VALID_HOST\","},{"line_number":39,"context_line":"      \"user_message\": \"No valid backend on which to provision resource\","},{"line_number":40,"context_line":"      \"message_level\": \"ERROR\","},{"line_number":41,"context_line":"      \"created_at\": 2015-08-27T09:49:58-05:00,"},{"line_number":42,"context_line":"      \"guaranteed_until\": 2015-09-27T09:49:58-05:00,"},{"line_number":43,"context_line":"      \"request_id\": \"req-936666d2-4c8f-4e41-9ac9-237b43f8b848\","},{"line_number":44,"context_line":"     }"},{"line_number":45,"context_line":"   ]"},{"line_number":46,"context_line":" }"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":""},{"line_number":49,"context_line":""}],"source_content_type":"text/x-rst","patch_set":34,"id":"1a122d0e_c00a9478","line":46,"range":{"start_line":34,"start_character":0,"end_line":46,"end_character":2},"in_reply_to":"1a122d0e_4c4efe6f","updated":"2016-04-28 10:35:24.000000000","message":"guaranteed_untill is prefered here...","commit_id":"e18030a2ea7c3cfa994d2a6f9f498751b3951291"},{"author":{"_account_id":20105,"name":"Cao ShuFeng","email":"caosf.fnst@cn.fujitsu.com","username":"caosf.fnst"},"change_message_id":"13d5d3bfd8b03f924350235311b5560a401f1b1f","unresolved":false,"context_lines":[{"line_number":31,"context_line":"Will produce the following::"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":" GET /v3/6c430ede-9476-4128-8838-8d3929ced223/messages"},{"line_number":34,"context_line":" {"},{"line_number":35,"context_line":"   \"messages\": ["},{"line_number":36,"context_line":"     {"},{"line_number":37,"context_line":"      \"id\": \"5429fffa-5c76-4d68-a671-37a8e24f37cf\","},{"line_number":38,"context_line":"      \"event_id\": \"NO_VALID_HOST\","},{"line_number":39,"context_line":"      \"user_message\": \"No valid backend on which to provision resource\","},{"line_number":40,"context_line":"      \"message_level\": \"ERROR\","},{"line_number":41,"context_line":"      \"created_at\": 2015-08-27T09:49:58-05:00,"},{"line_number":42,"context_line":"      \"guaranteed_until\": 2015-09-27T09:49:58-05:00,"},{"line_number":43,"context_line":"      \"request_id\": \"req-936666d2-4c8f-4e41-9ac9-237b43f8b848\","},{"line_number":44,"context_line":"     }"},{"line_number":45,"context_line":"   ]"},{"line_number":46,"context_line":" }"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":""},{"line_number":49,"context_line":""}],"source_content_type":"text/x-rst","patch_set":34,"id":"1a122d0e_57b8072a","line":46,"range":{"start_line":34,"start_character":0,"end_line":46,"end_character":2},"in_reply_to":"1a122d0e_c00a9478","updated":"2016-04-28 11:28:39.000000000","message":"OK.","commit_id":"e18030a2ea7c3cfa994d2a6f9f498751b3951291"},{"author":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"change_message_id":"4f2c3783564c1b362a709bf72316accf57506bff","unresolved":false,"context_lines":[{"line_number":37,"context_line":"      \"id\": \"5429fffa-5c76-4d68-a671-37a8e24f37cf\","},{"line_number":38,"context_line":"      \"event_id\": \"000002\","},{"line_number":39,"context_line":"      \"user_message\": \"No valid backend on which to provision resource\","},{"line_number":40,"context_line":"      \"message_level\": \"ERROR\","},{"line_number":41,"context_line":"      \"created_at\": 2015-08-27T09:49:58-05:00,"},{"line_number":42,"context_line":"      \"guaranteed_until\": 2015-09-27T09:49:58-05:00,"},{"line_number":43,"context_line":"      \"request_id\": \"req-936666d2-4c8f-4e41-9ac9-237b43f8b848\","}],"source_content_type":"text/x-rst","patch_set":37,"id":"1a122d0e_c73ba09a","line":40,"range":{"start_line":40,"start_character":7,"end_line":40,"end_character":20},"updated":"2016-04-29 15:23:07.000000000","message":"add resource_type and resource_uuid in this example","commit_id":"3462e6680406ca6ba5a13f0e93d5c888fc4ee0a1"},{"author":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"change_message_id":"4f2c3783564c1b362a709bf72316accf57506bff","unresolved":false,"context_lines":[{"line_number":40,"context_line":"      \"message_level\": \"ERROR\","},{"line_number":41,"context_line":"      \"created_at\": 2015-08-27T09:49:58-05:00,"},{"line_number":42,"context_line":"      \"guaranteed_until\": 2015-09-27T09:49:58-05:00,"},{"line_number":43,"context_line":"      \"request_id\": \"req-936666d2-4c8f-4e41-9ac9-237b43f8b848\","},{"line_number":44,"context_line":"     }"},{"line_number":45,"context_line":"   ]"},{"line_number":46,"context_line":" }"}],"source_content_type":"text/x-rst","patch_set":37,"id":"1a122d0e_c730c0a0","line":43,"range":{"start_line":43,"start_character":7,"end_line":43,"end_character":17},"updated":"2016-04-29 15:23:07.000000000","message":"Lets see about adding an \u0027admin\u0027 only field that gives traceback information. Duncan is weary about adding admin information in here. Walt doesnt want to fill up the DB with stacktraces.","commit_id":"3462e6680406ca6ba5a13f0e93d5c888fc4ee0a1"},{"author":{"_account_id":12000,"name":"Ian Cordasco","email":"sigmavirus24@gmail.com","username":"sigmavirus24"},"change_message_id":"51fc9a8172fcc1e3d1929359b6078a2f61f3304e","unresolved":false,"context_lines":[{"line_number":15,"context_line":" from cinder.message import defined_messages"},{"line_number":16,"context_line":" from cinder.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":""},{"line_number":20,"context_line":" context \u003d context.RequestContext()"},{"line_number":21,"context_line":" project_id \u003d \u00276c430ede-9476-4128-8838-8d3929ced223\u0027"}],"source_content_type":"text/x-rst","patch_set":40,"id":"1a122d0e_59e00826","line":18,"updated":"2016-04-29 20:08:51.000000000","message":"Should probably eliminate the usage of `self` here and on L24. It will force you to pick a better name than \"message_api\" for your client.","commit_id":"53cfde43b88b169c0cf6c908fd8e792e7ea78701"}]}
