)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"5c4c7a5e04eb8bfc17e9746fb4d5203f1555411b","unresolved":false,"context_lines":[{"line_number":5,"context_line":"CommitDate: 2017-04-03 12:34:32 +0200"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add spec for user messages"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: I704e6d4d3387f047056f0b21c3506d2e9c7cd1ca"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"dfeb2761_8c3cddbf","line":8,"updated":"2017-04-04 03:58:39.000000000","message":"Please add a brief description and also reference the blueprint here.","commit_id":"0ebff999668dbdfaec540018f36e6edae0538b74"}],"specs/pike/user-messages.rst":[{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"835b00a5c0d28447f8d59ce044a222e1d1114c91","unresolved":false,"context_lines":[{"line_number":1,"context_line":".."},{"line_number":2,"context_line":" This work is licensed under a Creative Commons Attribution 3.0 Unported"},{"line_number":3,"context_line":" License."},{"line_number":4,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a1ced50_05ed698b","line":1,"updated":"2017-03-16 21:16:48.000000000","message":"A comment in general, make sure that OpenStack are services are not capitalized (that is, it should be manila instead of Manila). This is a requirement of OpenStack docs.","commit_id":"fd6bd2d4a9c1fe73711fe7c2834846002127e0cd"},{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"6638e0f948ef448957256d9a7d5eb068184b6d88","unresolved":false,"context_lines":[{"line_number":10,"context_line":""},{"line_number":11,"context_line":"https://blueprints.launchpad.net/manila/+spec/user-messages"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"For quite some time, OpenStack services have wanted to be able to send messages"},{"line_number":14,"context_line":"to API end users (by user I do not mean the Operator, but the User that is"},{"line_number":15,"context_line":"interacting with the client)."},{"line_number":16,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a1ced50_cff2906f","line":13,"updated":"2017-03-16 21:16:01.000000000","message":"NIT s/have wanted/have been wanting/g","commit_id":"fd6bd2d4a9c1fe73711fe7c2834846002127e0cd"},{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"6638e0f948ef448957256d9a7d5eb068184b6d88","unresolved":false,"context_lines":[{"line_number":15,"context_line":"interacting with the client)."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"At the Mitaka Cinder mid-cycle"},{"line_number":18,"context_line":"(https://etherpad.openstack.org/p/mitaka-cinder-midcycle-user-notifications),"},{"line_number":19,"context_line":"we decided to begin solving this problem by adding a /messages resource to the"},{"line_number":20,"context_line":"api in order for end-users to query for more information about errors. We"},{"line_number":21,"context_line":"should follow suite in Manila."}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a1ced50_4fc14080","line":18,"updated":"2017-03-16 21:16:01.000000000","message":"Add the reference at the bottom.","commit_id":"fd6bd2d4a9c1fe73711fe7c2834846002127e0cd"},{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"6638e0f948ef448957256d9a7d5eb068184b6d88","unresolved":false,"context_lines":[{"line_number":17,"context_line":"At the Mitaka Cinder mid-cycle"},{"line_number":18,"context_line":"(https://etherpad.openstack.org/p/mitaka-cinder-midcycle-user-notifications),"},{"line_number":19,"context_line":"we decided to begin solving this problem by adding a /messages resource to the"},{"line_number":20,"context_line":"api in order for end-users to query for more information about errors. We"},{"line_number":21,"context_line":"should follow suite in Manila."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a1ced50_ef82ecc7","line":20,"updated":"2017-03-16 21:16:01.000000000","message":"NIT s/api/API/g","commit_id":"fd6bd2d4a9c1fe73711fe7c2834846002127e0cd"},{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"6638e0f948ef448957256d9a7d5eb068184b6d88","unresolved":false,"context_lines":[{"line_number":19,"context_line":"we decided to begin solving this problem by adding a /messages resource to the"},{"line_number":20,"context_line":"api in order for end-users to query for more information about errors. We"},{"line_number":21,"context_line":"should follow suite in Manila."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"Problem description"},{"line_number":25,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a1ced50_8f4b38b0","line":22,"updated":"2017-03-16 21:16:01.000000000","message":"NIT s/suite/suit/g","commit_id":"fd6bd2d4a9c1fe73711fe7c2834846002127e0cd"},{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"6638e0f948ef448957256d9a7d5eb068184b6d88","unresolved":false,"context_lines":[{"line_number":24,"context_line":"Problem description"},{"line_number":25,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"If operations like create share, create share group etc fail, user gets no"},{"line_number":28,"context_line":"detailed information in case operation fails. Only operation status is updated"},{"line_number":29,"context_line":"to error, failed etc without any update to user."},{"line_number":30,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a1ced50_8ff97850","line":27,"updated":"2017-03-16 21:16:01.000000000","message":"Replace for sentence for \"If manila operations fail, e.g. create share or create share group, user gets no detailed information whatsoever.\"","commit_id":"fd6bd2d4a9c1fe73711fe7c2834846002127e0cd"},{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"6638e0f948ef448957256d9a7d5eb068184b6d88","unresolved":false,"context_lines":[{"line_number":25,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"If operations like create share, create share group etc fail, user gets no"},{"line_number":28,"context_line":"detailed information in case operation fails. Only operation status is updated"},{"line_number":29,"context_line":"to error, failed etc without any update to user."},{"line_number":30,"context_line":""},{"line_number":31,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a1ced50_6f819c8f","line":28,"updated":"2017-03-16 21:16:01.000000000","message":"Replace sentence for \"Only the operation status is updated, e.g. error or failed, without any update to user.\"","commit_id":"fd6bd2d4a9c1fe73711fe7c2834846002127e0cd"},{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"6638e0f948ef448957256d9a7d5eb068184b6d88","unresolved":false,"context_lines":[{"line_number":33,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"Provide more information to user about failed async operations in following"},{"line_number":36,"context_line":"situations. Bellow is a list of reasons/messages we could create when"},{"line_number":37,"context_line":"a resource (e.g. a share) goes to error state:"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"* Shares:"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a1ced50_0f49088c","line":36,"updated":"2017-03-16 21:16:01.000000000","message":"NIT s/Bellow/Below/g","commit_id":"fd6bd2d4a9c1fe73711fe7c2834846002127e0cd"},{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"6638e0f948ef448957256d9a7d5eb068184b6d88","unresolved":false,"context_lines":[{"line_number":61,"context_line":"    * Deletion fails for an unknown reason."},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"* Share replica:"},{"line_number":64,"context_line":"    * Creation fails because an \u0027active\u0027 replica must exist in \u0027available\u0027"},{"line_number":65,"context_line":"      state to create a new replica for share."},{"line_number":66,"context_line":"    * Creation fails because driver does not expect share-network to be"},{"line_number":67,"context_line":"      provided  with current configuration."}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a1ced50_a2fe4b03","line":64,"updated":"2017-03-16 21:16:01.000000000","message":"NIT s/\u0027active\u0027/ACTIVE/g and s/\u0027available\u0027/AVAILABLE/g","commit_id":"fd6bd2d4a9c1fe73711fe7c2834846002127e0cd"},{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"6638e0f948ef448957256d9a7d5eb068184b6d88","unresolved":false,"context_lines":[{"line_number":83,"context_line":"    * Update fails because replica snapshot was not found on the backend."},{"line_number":84,"context_line":"    * Update fails because of a driver error."},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"The above list is reflects a subset of situations when error state is set for a"},{"line_number":87,"context_line":"resource in share service [3]. [4] shows creation of scheduling error messages."},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"Proposed change"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a1ced50_82b6af3b","line":86,"updated":"2017-03-16 21:16:01.000000000","message":"NIT s/is/ /g\nNIT s/when/where/g","commit_id":"fd6bd2d4a9c1fe73711fe7c2834846002127e0cd"},{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"6638e0f948ef448957256d9a7d5eb068184b6d88","unresolved":false,"context_lines":[{"line_number":94,"context_line":"message is not exposed to user), project ID, request ID, resource type, message"},{"line_number":95,"context_line":"level and expiration time."},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"User can get messages either directly through a new /messages API or through"},{"line_number":98,"context_line":"manila CLI which allows showing a message, listing all messages and deleting"},{"line_number":99,"context_line":"existing messages."},{"line_number":100,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a1ced50_42daf779","line":97,"updated":"2017-03-16 21:16:01.000000000","message":"NIT s/a/the/g","commit_id":"fd6bd2d4a9c1fe73711fe7c2834846002127e0cd"},{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"6638e0f948ef448957256d9a7d5eb068184b6d88","unresolved":false,"context_lines":[{"line_number":109,"context_line":"  display the current information in notifications to the user and it will"},{"line_number":110,"context_line":"  require many more services as dependencies."},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"* Exposing user messages via a separate service (such as Zaqar) This approach"},{"line_number":113,"context_line":"  suggests storing user messages in another service that the user could query"},{"line_number":114,"context_line":"  for messages or the service could utilize webhooks to notify the user. One"},{"line_number":115,"context_line":"  major drawback to this approach is the complexity in writing bindings for the"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a1ced50_c2a507b6","line":112,"updated":"2017-03-16 21:16:01.000000000","message":"This would be... \"retrieving user messages through a separate service (such as Zaqar).\".\n\nZaqar doesn\u0027t expose messages, it only acts as a storage for them.","commit_id":"fd6bd2d4a9c1fe73711fe7c2834846002127e0cd"},{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"6638e0f948ef448957256d9a7d5eb068184b6d88","unresolved":false,"context_lines":[{"line_number":111,"context_line":""},{"line_number":112,"context_line":"* Exposing user messages via a separate service (such as Zaqar) This approach"},{"line_number":113,"context_line":"  suggests storing user messages in another service that the user could query"},{"line_number":114,"context_line":"  for messages or the service could utilize webhooks to notify the user. One"},{"line_number":115,"context_line":"  major drawback to this approach is the complexity in writing bindings for the"},{"line_number":116,"context_line":"  separate service(s) and the need for a separate service as a dependency."},{"line_number":117,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a1ced50_2295fb3f","line":114,"updated":"2017-03-16 21:16:01.000000000","message":"\"for messages\" here sounds redundant.","commit_id":"fd6bd2d4a9c1fe73711fe7c2834846002127e0cd"},{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"6638e0f948ef448957256d9a7d5eb068184b6d88","unresolved":false,"context_lines":[{"line_number":120,"context_line":""},{"line_number":121,"context_line":"* State change notifications. This solution does not intend to solve the"},{"line_number":122,"context_line":"  use-case of alerting users when a share or any other resource changes state."},{"line_number":123,"context_line":"  For example, when a share changes from creating to available."},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"Data model impact"},{"line_number":126,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a1ced50_029e3f56","line":123,"updated":"2017-03-16 21:16:01.000000000","message":"Replace this sentence with \"For example, when a share changes its status from CREATING to AVAILABLE.\"","commit_id":"fd6bd2d4a9c1fe73711fe7c2834846002127e0cd"},{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"6638e0f948ef448957256d9a7d5eb068184b6d88","unresolved":false,"context_lines":[{"line_number":127,"context_line":""},{"line_number":128,"context_line":"New messages table in database to store all messages. This table may prove to"},{"line_number":129,"context_line":"grow large in a cloud with lots of errors. The admin will be able to utilize"},{"line_number":130,"context_line":"the expires_at column to reap messages."},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"REST API impact"},{"line_number":133,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a1ced50_02ec7fc6","line":130,"updated":"2017-03-16 21:16:01.000000000","message":"Not sure about the meaning of \"reap\".","commit_id":"fd6bd2d4a9c1fe73711fe7c2834846002127e0cd"},{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"304bc26cecfecc40bcc1b3940296cd8c8b6eb7c3","unresolved":false,"context_lines":[{"line_number":127,"context_line":""},{"line_number":128,"context_line":"New messages table in database to store all messages. This table may prove to"},{"line_number":129,"context_line":"grow large in a cloud with lots of errors. The admin will be able to utilize"},{"line_number":130,"context_line":"the expires_at column to reap messages."},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"REST API impact"},{"line_number":133,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a1ced50_258985cb","line":130,"in_reply_to":"1a1ced50_02ec7fc6","updated":"2017-03-16 21:17:53.000000000","message":"Forget this comment.","commit_id":"fd6bd2d4a9c1fe73711fe7c2834846002127e0cd"},{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"6638e0f948ef448957256d9a7d5eb068184b6d88","unresolved":false,"context_lines":[{"line_number":136,"context_line":""},{"line_number":137,"context_line":"* List messages"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"  * URL: /v2/\u003ctenant\u003e/messages"},{"line_number":140,"context_line":"  * Method: GET"},{"line_number":141,"context_line":"  * URL args:"},{"line_number":142,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a1ced50_851799ec","line":139,"updated":"2017-03-16 21:16:01.000000000","message":"What are the possible responses when performing a request to this endpoint?","commit_id":"fd6bd2d4a9c1fe73711fe7c2834846002127e0cd"},{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"6638e0f948ef448957256d9a7d5eb068184b6d88","unresolved":false,"context_lines":[{"line_number":170,"context_line":""},{"line_number":171,"context_line":"* Show message"},{"line_number":172,"context_line":""},{"line_number":173,"context_line":"  * URL: /v2/\u003ctenant\u003e/messages/\u003cmessage_id\u003e"},{"line_number":174,"context_line":"  * Method: GET"},{"line_number":175,"context_line":"  * JSON body:"},{"line_number":176,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a1ced50_e5dccd48","line":173,"updated":"2017-03-16 21:16:01.000000000","message":"Same here.","commit_id":"fd6bd2d4a9c1fe73711fe7c2834846002127e0cd"},{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"6638e0f948ef448957256d9a7d5eb068184b6d88","unresolved":false,"context_lines":[{"line_number":264,"context_line":"* Extend CLI with message commands [2]."},{"line_number":265,"context_line":"* Add \"message create\" calls on proper places in scheduler and share"},{"line_number":266,"context_line":"  services [3] and [4]."},{"line_number":267,"context_line":"* Add a new \"manila-manage message delete-expired\" command for deleting expired"},{"line_number":268,"context_line":"  messages from database."},{"line_number":269,"context_line":""},{"line_number":270,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a1ced50_45ce815b","line":267,"updated":"2017-03-16 21:16:01.000000000","message":"Is this the client implementation for the above mentioned API? If so, this should be included in a different spec for the python-manilaclient.","commit_id":"fd6bd2d4a9c1fe73711fe7c2834846002127e0cd"},{"author":{"_account_id":7582,"name":"Jan Provaznik","email":"jan.provaznik@gmail.com","username":"jprovazn"},"change_message_id":"923f42526a4c7060d9a8f0eacb7b0091b0f08ac6","unresolved":false,"context_lines":[{"line_number":264,"context_line":"* Extend CLI with message commands [2]."},{"line_number":265,"context_line":"* Add \"message create\" calls on proper places in scheduler and share"},{"line_number":266,"context_line":"  services [3] and [4]."},{"line_number":267,"context_line":"* Add a new \"manila-manage message delete-expired\" command for deleting expired"},{"line_number":268,"context_line":"  messages from database."},{"line_number":269,"context_line":""},{"line_number":270,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a1ced50_1ca9c47b","line":267,"in_reply_to":"1a1ced50_45ce815b","updated":"2017-03-21 10:18:25.000000000","message":"Yes, this spec addresses also CLI commands for user messages API. I think it makes sense to keep it as a single spec as it\u0027s closely related (multiple specs would bring more complexity and confusion). Also it seems that existing specs use the same approach.","commit_id":"fd6bd2d4a9c1fe73711fe7c2834846002127e0cd"},{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"6638e0f948ef448957256d9a7d5eb068184b6d88","unresolved":false,"context_lines":[{"line_number":295,"context_line":"References"},{"line_number":296,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":297,"context_line":""},{"line_number":298,"context_line":"* [1] Alex Meade\u0027s existing patch: https://review.openstack.org/#/c/313549/"},{"line_number":299,"context_line":"* [2] CLI message commands: https://review.openstack.org/#/c/429614/"},{"line_number":300,"context_line":"* [3] messages added into share service:"},{"line_number":301,"context_line":"  https://review.openstack.org/#/c/443101/"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a1ced50_efc90cae","line":298,"updated":"2017-03-16 21:16:01.000000000","message":"Use rst syntax for links. Refer to http://docutils.sourceforge.net/docs/user/rst/quickref.html#external-hyperlink-targets.","commit_id":"fd6bd2d4a9c1fe73711fe7c2834846002127e0cd"},{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"035097c6f9cff775f92ca715ab495f9e9278e734","unresolved":false,"context_lines":[{"line_number":126,"context_line":""},{"line_number":127,"context_line":"New messages table in database to store all messages. This table may prove to"},{"line_number":128,"context_line":"grow large in a cloud with lots of errors. The admin will be able to utilize"},{"line_number":129,"context_line":"the expires_at column to reap messages."},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"REST API impact"},{"line_number":132,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":6,"id":"ffe62b97_344e1a97","line":129,"range":{"start_line":129,"start_character":25,"end_line":129,"end_character":38},"updated":"2017-03-28 08:38:53.000000000","message":"How to reap messages? Use mysql commands, manila cli commands, or a automate task in manila service?","commit_id":"585520b6f6511f383a45c13b5748ca014e92a29b"},{"author":{"_account_id":7582,"name":"Jan Provaznik","email":"jan.provaznik@gmail.com","username":"jprovazn"},"change_message_id":"35c65a94d36daa4715cd72e776e729522e7a5830","unresolved":false,"context_lines":[{"line_number":126,"context_line":""},{"line_number":127,"context_line":"New messages table in database to store all messages. This table may prove to"},{"line_number":128,"context_line":"grow large in a cloud with lots of errors. The admin will be able to utilize"},{"line_number":129,"context_line":"the expires_at column to reap messages."},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"REST API impact"},{"line_number":132,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":6,"id":"ffe62b97_3a4e0397","line":129,"range":{"start_line":129,"start_character":25,"end_line":129,"end_character":38},"in_reply_to":"ffe62b97_344e1a97","updated":"2017-03-28 08:54:50.000000000","message":"Done, added a note that it will be a manila-manage command (it\u0027s in the list of work items too).","commit_id":"585520b6f6511f383a45c13b5748ca014e92a29b"},{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"035097c6f9cff775f92ca715ab495f9e9278e734","unresolved":false,"context_lines":[{"line_number":139,"context_line":"  * Method: GET (200, 400)"},{"line_number":140,"context_line":"  * URL args:"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"    * offset - integer, 0 or bigger"},{"line_number":143,"context_line":"    * limit - integer, 1 or bigger"},{"line_number":144,"context_line":"    * sort_key - string, key to be sorted (i.e. \u0027created_at\u0027 or"},{"line_number":145,"context_line":"      \u0027resource_type\u0027)"}],"source_content_type":"text/x-rst","patch_set":6,"id":"ffe62b97_cfecf790","line":142,"range":{"start_line":142,"start_character":22,"end_line":142,"end_character":24},"updated":"2017-03-28 08:38:53.000000000","message":"Set offset to define start point of share listing.","commit_id":"585520b6f6511f383a45c13b5748ca014e92a29b"},{"author":{"_account_id":7582,"name":"Jan Provaznik","email":"jan.provaznik@gmail.com","username":"jprovazn"},"change_message_id":"35c65a94d36daa4715cd72e776e729522e7a5830","unresolved":false,"context_lines":[{"line_number":139,"context_line":"  * Method: GET (200, 400)"},{"line_number":140,"context_line":"  * URL args:"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"    * offset - integer, 0 or bigger"},{"line_number":143,"context_line":"    * limit - integer, 1 or bigger"},{"line_number":144,"context_line":"    * sort_key - string, key to be sorted (i.e. \u0027created_at\u0027 or"},{"line_number":145,"context_line":"      \u0027resource_type\u0027)"}],"source_content_type":"text/x-rst","patch_set":6,"id":"ffe62b97_3a1cc376","line":142,"range":{"start_line":142,"start_character":22,"end_line":142,"end_character":24},"in_reply_to":"ffe62b97_cfecf790","updated":"2017-03-28 08:54:50.000000000","message":"Done","commit_id":"585520b6f6511f383a45c13b5748ca014e92a29b"},{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"035097c6f9cff775f92ca715ab495f9e9278e734","unresolved":false,"context_lines":[{"line_number":140,"context_line":"  * URL args:"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"    * offset - integer, 0 or bigger"},{"line_number":143,"context_line":"    * limit - integer, 1 or bigger"},{"line_number":144,"context_line":"    * sort_key - string, key to be sorted (i.e. \u0027created_at\u0027 or"},{"line_number":145,"context_line":"      \u0027resource_type\u0027)"},{"line_number":146,"context_line":"    * sort_dir - string, sort direction, should be either \u0027asc\u0027 or \u0027desc\u0027."}],"source_content_type":"text/x-rst","patch_set":6,"id":"ffe62b97_6ffbab46","line":143,"range":{"start_line":143,"start_character":21,"end_line":143,"end_character":23},"updated":"2017-03-28 08:38:53.000000000","message":"Maximum number of shares to return","commit_id":"585520b6f6511f383a45c13b5748ca014e92a29b"},{"author":{"_account_id":7582,"name":"Jan Provaznik","email":"jan.provaznik@gmail.com","username":"jprovazn"},"change_message_id":"35c65a94d36daa4715cd72e776e729522e7a5830","unresolved":false,"context_lines":[{"line_number":140,"context_line":"  * URL args:"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"    * offset - integer, 0 or bigger"},{"line_number":143,"context_line":"    * limit - integer, 1 or bigger"},{"line_number":144,"context_line":"    * sort_key - string, key to be sorted (i.e. \u0027created_at\u0027 or"},{"line_number":145,"context_line":"      \u0027resource_type\u0027)"},{"line_number":146,"context_line":"    * sort_dir - string, sort direction, should be either \u0027asc\u0027 or \u0027desc\u0027."}],"source_content_type":"text/x-rst","patch_set":6,"id":"ffe62b97_da16f755","line":143,"range":{"start_line":143,"start_character":21,"end_line":143,"end_character":23},"in_reply_to":"ffe62b97_6ffbab46","updated":"2017-03-28 08:54:50.000000000","message":"Done","commit_id":"585520b6f6511f383a45c13b5748ca014e92a29b"},{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"035097c6f9cff775f92ca715ab495f9e9278e734","unresolved":false,"context_lines":[{"line_number":219,"context_line":"Other end user impact"},{"line_number":220,"context_line":"---------------------"},{"line_number":221,"context_line":""},{"line_number":222,"context_line":"None"},{"line_number":223,"context_line":""},{"line_number":224,"context_line":"Performance Impact"},{"line_number":225,"context_line":"------------------"}],"source_content_type":"text/x-rst","patch_set":6,"id":"ffe62b97_7474a2fe","line":222,"range":{"start_line":222,"start_character":0,"end_line":222,"end_character":4},"updated":"2017-03-28 08:38:53.000000000","message":"Why None? Users are affected when you extend new CLI with message commands.","commit_id":"585520b6f6511f383a45c13b5748ca014e92a29b"},{"author":{"_account_id":7582,"name":"Jan Provaznik","email":"jan.provaznik@gmail.com","username":"jprovazn"},"change_message_id":"35c65a94d36daa4715cd72e776e729522e7a5830","unresolved":false,"context_lines":[{"line_number":219,"context_line":"Other end user impact"},{"line_number":220,"context_line":"---------------------"},{"line_number":221,"context_line":""},{"line_number":222,"context_line":"None"},{"line_number":223,"context_line":""},{"line_number":224,"context_line":"Performance Impact"},{"line_number":225,"context_line":"------------------"}],"source_content_type":"text/x-rst","patch_set":6,"id":"ffe62b97_f5a2ecfb","line":222,"range":{"start_line":222,"start_character":0,"end_line":222,"end_character":4},"in_reply_to":"ffe62b97_7474a2fe","updated":"2017-03-28 08:54:50.000000000","message":"Done","commit_id":"585520b6f6511f383a45c13b5748ca014e92a29b"},{"author":{"_account_id":8056,"name":"Ramana Raja","email":"rraja@redhat.com","username":"Ram_Raja"},"change_message_id":"b7415af01134bb84912caee9f84716e8cec699aa","unresolved":false,"context_lines":[{"line_number":89,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"When an error occurs during an async operation, following details about the"},{"line_number":92,"context_line":"error are stored in database: type of error - for security reason specific"},{"line_number":93,"context_line":"error message is not exposed to user, project ID, request ID,"},{"line_number":94,"context_line":"resource type, message level and expiration time."},{"line_number":95,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"dfeb2761_3176a508","line":92,"updated":"2017-03-31 10:31:05.000000000","message":"\u0027action\u0027 in the JSON message example refers to the type of error?","commit_id":"d87a9fb41c9fd9d73e5de8e4b259f2cea0649929"},{"author":{"_account_id":8056,"name":"Ramana Raja","email":"rraja@redhat.com","username":"Ram_Raja"},"change_message_id":"b7415af01134bb84912caee9f84716e8cec699aa","unresolved":false,"context_lines":[{"line_number":91,"context_line":"When an error occurs during an async operation, following details about the"},{"line_number":92,"context_line":"error are stored in database: type of error - for security reason specific"},{"line_number":93,"context_line":"error message is not exposed to user, project ID, request ID,"},{"line_number":94,"context_line":"resource type, message level and expiration time."},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"User can get messages either directly through the new /messages API or through"},{"line_number":97,"context_line":"manila CLI which allows showing a message, listing all messages and deleting"}],"source_content_type":"text/x-rst","patch_set":7,"id":"dfeb2761_4c3d0cba","line":94,"updated":"2017-03-31 10:31:05.000000000","message":"and resource ID","commit_id":"d87a9fb41c9fd9d73e5de8e4b259f2cea0649929"},{"author":{"_account_id":8056,"name":"Ramana Raja","email":"rraja@redhat.com","username":"Ram_Raja"},"change_message_id":"b7415af01134bb84912caee9f84716e8cec699aa","unresolved":false,"context_lines":[{"line_number":139,"context_line":"  * Method: GET (200, 400)"},{"line_number":140,"context_line":"  * URL args:"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"    * offset - integer, set offset to define start point of share listing, 0 or"},{"line_number":143,"context_line":"      bigger"},{"line_number":144,"context_line":"    * limit - integer, maximum number of shares to return, 1 or bigger"},{"line_number":145,"context_line":"    * sort_key - string, key to be sorted (i.e. \u0027created_at\u0027 or"}],"source_content_type":"text/x-rst","patch_set":7,"id":"dfeb2761_2c02c8b5","line":142,"updated":"2017-03-31 10:31:05.000000000","message":"share listing or message listing?","commit_id":"d87a9fb41c9fd9d73e5de8e4b259f2cea0649929"},{"author":{"_account_id":8056,"name":"Ramana Raja","email":"rraja@redhat.com","username":"Ram_Raja"},"change_message_id":"b7415af01134bb84912caee9f84716e8cec699aa","unresolved":false,"context_lines":[{"line_number":141,"context_line":""},{"line_number":142,"context_line":"    * offset - integer, set offset to define start point of share listing, 0 or"},{"line_number":143,"context_line":"      bigger"},{"line_number":144,"context_line":"    * limit - integer, maximum number of shares to return, 1 or bigger"},{"line_number":145,"context_line":"    * sort_key - string, key to be sorted (i.e. \u0027created_at\u0027 or"},{"line_number":146,"context_line":"      \u0027resource_type\u0027)"},{"line_number":147,"context_line":"    * sort_dir - string, sort direction, should be either \u0027asc\u0027 or \u0027desc\u0027."}],"source_content_type":"text/x-rst","patch_set":7,"id":"dfeb2761_ccd7dc23","line":144,"updated":"2017-03-31 10:31:05.000000000","message":"number of shares or number of messages?","commit_id":"d87a9fb41c9fd9d73e5de8e4b259f2cea0649929"},{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"149fe65958198518ecfb062c7113dfb5d1b3eb24","unresolved":false,"context_lines":[{"line_number":153,"context_line":"      {"},{"line_number":154,"context_line":"        \"messages\": ["},{"line_number":155,"context_line":"          {"},{"line_number":156,"context_line":"           \"id\": \"5429fffa-5c76-4d68-a671-37a8e24f37cf\","},{"line_number":157,"context_line":"           \"action\": \"SHARE_ALLOCATE\","},{"line_number":158,"context_line":"           \"user_message\": \"SHARE_ALLOCATE[ERROR]: No storage could"},{"line_number":159,"context_line":"                           be allocated for this share"},{"line_number":160,"context_line":"                           request. Trying again with a different size or"},{"line_number":161,"context_line":"                           share type may succeed.\","},{"line_number":162,"context_line":"           \"message_level\": \"ERROR\","},{"line_number":163,"context_line":"           \"resource_type\": \"SHARE\","},{"line_number":164,"context_line":"           \"resource_uuid\": \"f292cc0c-54a7-4b3b-8174-d2ff82d87008\","},{"line_number":165,"context_line":"           \"created_at\": 2015-08-27T09:49:58-05:00,"},{"line_number":166,"context_line":"           \"guaranteed_until\": 2015-09-27T09:49:58-05:00,"},{"line_number":167,"context_line":"           \"request_id\": \"req-936666d2-4c8f-4e41-9ac9-237b43f8b848\","},{"line_number":168,"context_line":"          }"},{"line_number":169,"context_line":"        ]"},{"line_number":170,"context_line":"      }"}],"source_content_type":"text/x-rst","patch_set":7,"id":"ffe62b97_afc38c37","line":167,"range":{"start_line":156,"start_character":10,"end_line":167,"end_character":68},"updated":"2017-03-30 06:34:28.000000000","message":"How about Event ID that you already added in code?","commit_id":"d87a9fb41c9fd9d73e5de8e4b259f2cea0649929"},{"author":{"_account_id":7582,"name":"Jan Provaznik","email":"jan.provaznik@gmail.com","username":"jprovazn"},"change_message_id":"5326dbb115d00d9b88c2d03da5d26f24b1633f20","unresolved":false,"context_lines":[{"line_number":153,"context_line":"      {"},{"line_number":154,"context_line":"        \"messages\": ["},{"line_number":155,"context_line":"          {"},{"line_number":156,"context_line":"           \"id\": \"5429fffa-5c76-4d68-a671-37a8e24f37cf\","},{"line_number":157,"context_line":"           \"action\": \"SHARE_ALLOCATE\","},{"line_number":158,"context_line":"           \"user_message\": \"SHARE_ALLOCATE[ERROR]: No storage could"},{"line_number":159,"context_line":"                           be allocated for this share"},{"line_number":160,"context_line":"                           request. Trying again with a different size or"},{"line_number":161,"context_line":"                           share type may succeed.\","},{"line_number":162,"context_line":"           \"message_level\": \"ERROR\","},{"line_number":163,"context_line":"           \"resource_type\": \"SHARE\","},{"line_number":164,"context_line":"           \"resource_uuid\": \"f292cc0c-54a7-4b3b-8174-d2ff82d87008\","},{"line_number":165,"context_line":"           \"created_at\": 2015-08-27T09:49:58-05:00,"},{"line_number":166,"context_line":"           \"guaranteed_until\": 2015-09-27T09:49:58-05:00,"},{"line_number":167,"context_line":"           \"request_id\": \"req-936666d2-4c8f-4e41-9ac9-237b43f8b848\","},{"line_number":168,"context_line":"          }"},{"line_number":169,"context_line":"        ]"},{"line_number":170,"context_line":"      }"}],"source_content_type":"text/x-rst","patch_set":7,"id":"dfeb2761_18bce603","line":167,"range":{"start_line":156,"start_character":10,"end_line":167,"end_character":68},"in_reply_to":"ffe62b97_afc38c37","updated":"2017-03-31 08:42:10.000000000","message":"Good point. This spec was newer than the patch which was outdated for few days (and it didn\u0027t reflect changes in this spec). The plan is to use action instead of event_id.","commit_id":"d87a9fb41c9fd9d73e5de8e4b259f2cea0649929"},{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"149fe65958198518ecfb062c7113dfb5d1b3eb24","unresolved":false,"context_lines":[{"line_number":180,"context_line":"      {"},{"line_number":181,"context_line":"        \"message\": {"},{"line_number":182,"context_line":"          \"id\": \"5429fffa-5c76-4d68-a671-37a8e24f37cf\","},{"line_number":183,"context_line":"          \"action\": \"SHARE_ALLOCATE\","},{"line_number":184,"context_line":"          \"user_message\": \"SHARE_ALLOCATE[ERROR]: No storage could"},{"line_number":185,"context_line":"                          be allocated for this share"},{"line_number":186,"context_line":"                          request. Trying again with a different size or"}],"source_content_type":"text/x-rst","patch_set":7,"id":"ffe62b97_6f64644a","line":183,"range":{"start_line":183,"start_character":10,"end_line":183,"end_character":37},"updated":"2017-03-30 06:34:28.000000000","message":"I didn\u0027t see \"action\" in code(https://review.openstack.org/#/c/443101/5/manila/scheduler/manager.py)\nhttps://review.openstack.org/#/c/313549/28/manila/db/sqlalchemy/models.py","commit_id":"d87a9fb41c9fd9d73e5de8e4b259f2cea0649929"},{"author":{"_account_id":7582,"name":"Jan Provaznik","email":"jan.provaznik@gmail.com","username":"jprovazn"},"change_message_id":"5326dbb115d00d9b88c2d03da5d26f24b1633f20","unresolved":false,"context_lines":[{"line_number":180,"context_line":"      {"},{"line_number":181,"context_line":"        \"message\": {"},{"line_number":182,"context_line":"          \"id\": \"5429fffa-5c76-4d68-a671-37a8e24f37cf\","},{"line_number":183,"context_line":"          \"action\": \"SHARE_ALLOCATE\","},{"line_number":184,"context_line":"          \"user_message\": \"SHARE_ALLOCATE[ERROR]: No storage could"},{"line_number":185,"context_line":"                          be allocated for this share"},{"line_number":186,"context_line":"                          request. Trying again with a different size or"}],"source_content_type":"text/x-rst","patch_set":7,"id":"dfeb2761_9845961a","line":183,"range":{"start_line":183,"start_character":10,"end_line":183,"end_character":37},"in_reply_to":"ffe62b97_6f64644a","updated":"2017-03-31 08:42:10.000000000","message":"ditto","commit_id":"d87a9fb41c9fd9d73e5de8e4b259f2cea0649929"},{"author":{"_account_id":8056,"name":"Ramana Raja","email":"rraja@redhat.com","username":"Ram_Raja"},"change_message_id":"b7415af01134bb84912caee9f84716e8cec699aa","unresolved":false,"context_lines":[{"line_number":181,"context_line":"        \"message\": {"},{"line_number":182,"context_line":"          \"id\": \"5429fffa-5c76-4d68-a671-37a8e24f37cf\","},{"line_number":183,"context_line":"          \"action\": \"SHARE_ALLOCATE\","},{"line_number":184,"context_line":"          \"user_message\": \"SHARE_ALLOCATE[ERROR]: No storage could"},{"line_number":185,"context_line":"                          be allocated for this share"},{"line_number":186,"context_line":"                          request. Trying again with a different size or"},{"line_number":187,"context_line":"                          share type may succeed.\","}],"source_content_type":"text/x-rst","patch_set":7,"id":"dfeb2761_5147e91e","line":184,"updated":"2017-03-31 10:31:05.000000000","message":"So this is the standard \u0027user_message\u0027 corresponding to the action \u0027SHARE_ALLOCATE\u0027?","commit_id":"d87a9fb41c9fd9d73e5de8e4b259f2cea0649929"},{"author":{"_account_id":8056,"name":"Ramana Raja","email":"rraja@redhat.com","username":"Ram_Raja"},"change_message_id":"b7415af01134bb84912caee9f84716e8cec699aa","unresolved":false,"context_lines":[{"line_number":201,"context_line":""},{"line_number":202,"context_line":"Driver impact"},{"line_number":203,"context_line":"-------------"},{"line_number":204,"context_line":""},{"line_number":205,"context_line":"None"},{"line_number":206,"context_line":""},{"line_number":207,"context_line":"Security impact"}],"source_content_type":"text/x-rst","patch_set":7,"id":"dfeb2761_f1d15d59","line":204,"updated":"2017-03-31 10:31:05.000000000","message":"Drivers can raise error messages, right? e.g., invalid access type.","commit_id":"d87a9fb41c9fd9d73e5de8e4b259f2cea0649929"},{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"ae0cd3b98db0d6080b1eee4e0e12690be18dbad6","unresolved":false,"context_lines":[{"line_number":268,"context_line":"* Extend CLI with message commands `[2]`_."},{"line_number":269,"context_line":"* Add \"message create\" calls on proper places in scheduler and share"},{"line_number":270,"context_line":"  services `[3]`_ and `[4]`_."},{"line_number":271,"context_line":"* Add a new \"manila-manage message delete-expired\" command for deleting expired"},{"line_number":272,"context_line":"  messages from database."},{"line_number":273,"context_line":""},{"line_number":274,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"ffe62b97_3b90104a","line":271,"range":{"start_line":271,"start_character":13,"end_line":271,"end_character":50},"updated":"2017-03-29 09:29:22.000000000","message":"Do we support delete message by age or any other parameters.\nIt denoting the age of expired records in number of days.\nsuch as:\nmanila-manage db purge [-h] [age_in_days]","commit_id":"d87a9fb41c9fd9d73e5de8e4b259f2cea0649929"},{"author":{"_account_id":7582,"name":"Jan Provaznik","email":"jan.provaznik@gmail.com","username":"jprovazn"},"change_message_id":"5326dbb115d00d9b88c2d03da5d26f24b1633f20","unresolved":false,"context_lines":[{"line_number":268,"context_line":"* Extend CLI with message commands `[2]`_."},{"line_number":269,"context_line":"* Add \"message create\" calls on proper places in scheduler and share"},{"line_number":270,"context_line":"  services `[3]`_ and `[4]`_."},{"line_number":271,"context_line":"* Add a new \"manila-manage message delete-expired\" command for deleting expired"},{"line_number":272,"context_line":"  messages from database."},{"line_number":273,"context_line":""},{"line_number":274,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"dfeb2761_c430da0a","line":271,"range":{"start_line":271,"start_character":13,"end_line":271,"end_character":50},"in_reply_to":"ffe62b97_3b90104a","updated":"2017-03-31 08:42:10.000000000","message":"Use of message_ttl config option does quite a similar job. So I didn\u0027t plan to add this param to the purge command. From end-user perspective it\u0027s fair guarantee that the message is present untile message_ttl expires (and the rest of messages can be deleted anyway).","commit_id":"d87a9fb41c9fd9d73e5de8e4b259f2cea0649929"},{"author":{"_account_id":8056,"name":"Ramana Raja","email":"rraja@redhat.com","username":"Ram_Raja"},"change_message_id":"a0b8ed26ced81cb42fe552b1a5877f2d6ae85113","unresolved":false,"context_lines":[{"line_number":89,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"When an error occurs during an async operation, following details about the"},{"line_number":92,"context_line":"error are stored in database: type of error - for security reason specific"},{"line_number":93,"context_line":"error message is not exposed to user, project ID, request ID,"},{"line_number":94,"context_line":"resource type, message level and expiration time."},{"line_number":95,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"dfeb2761_ac98186a","line":92,"updated":"2017-03-31 10:35:17.000000000","message":"\u0027action\u0027 in the JSON message example refers to the type of error?","commit_id":"871179ccd1179049e836514c7fca2070402beaad"},{"author":{"_account_id":8056,"name":"Ramana Raja","email":"rraja@redhat.com","username":"Ram_Raja"},"change_message_id":"a0b8ed26ced81cb42fe552b1a5877f2d6ae85113","unresolved":false,"context_lines":[{"line_number":91,"context_line":"When an error occurs during an async operation, following details about the"},{"line_number":92,"context_line":"error are stored in database: type of error - for security reason specific"},{"line_number":93,"context_line":"error message is not exposed to user, project ID, request ID,"},{"line_number":94,"context_line":"resource type, message level and expiration time."},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"User can get messages either directly through the new /messages API or through"},{"line_number":97,"context_line":"manila CLI which allows showing a message, listing all messages and deleting"}],"source_content_type":"text/x-rst","patch_set":8,"id":"dfeb2761_ec8e2026","line":94,"updated":"2017-03-31 10:35:17.000000000","message":"and resource ID","commit_id":"871179ccd1179049e836514c7fca2070402beaad"},{"author":{"_account_id":7582,"name":"Jan Provaznik","email":"jan.provaznik@gmail.com","username":"jprovazn"},"change_message_id":"8dece4c21e431dc02137ade586a999cf9507f884","unresolved":false,"context_lines":[{"line_number":91,"context_line":"When an error occurs during an async operation, following details about the"},{"line_number":92,"context_line":"error are stored in database: type of error - for security reason specific"},{"line_number":93,"context_line":"error message is not exposed to user, project ID, request ID,"},{"line_number":94,"context_line":"resource type, message level and expiration time."},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"User can get messages either directly through the new /messages API or through"},{"line_number":97,"context_line":"manila CLI which allows showing a message, listing all messages and deleting"}],"source_content_type":"text/x-rst","patch_set":8,"id":"dfeb2761_7063d0b2","line":94,"in_reply_to":"dfeb2761_9f5e8ae4","updated":"2017-04-03 10:34:28.000000000","message":"I\u0027ve reworded this paragraph in the new version.","commit_id":"871179ccd1179049e836514c7fca2070402beaad"},{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"a44c69b4f5c042954b3061d9707ed32a3215a82a","unresolved":false,"context_lines":[{"line_number":91,"context_line":"When an error occurs during an async operation, following details about the"},{"line_number":92,"context_line":"error are stored in database: type of error - for security reason specific"},{"line_number":93,"context_line":"error message is not exposed to user, project ID, request ID,"},{"line_number":94,"context_line":"resource type, message level and expiration time."},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"User can get messages either directly through the new /messages API or through"},{"line_number":97,"context_line":"manila CLI which allows showing a message, listing all messages and deleting"}],"source_content_type":"text/x-rst","patch_set":8,"id":"dfeb2761_9f5e8ae4","line":94,"in_reply_to":"dfeb2761_ec8e2026","updated":"2017-03-31 17:44:28.000000000","message":"This could use some rephrasing... AFAIU, here we are trying to list all the sensitive details that are stored in the control DB, not the params of the JSON message example we use when querying the messages endpoint. Right? Which params are sensitive and we don\u0027t want to expose to users?","commit_id":"871179ccd1179049e836514c7fca2070402beaad"},{"author":{"_account_id":8056,"name":"Ramana Raja","email":"rraja@redhat.com","username":"Ram_Raja"},"change_message_id":"a0b8ed26ced81cb42fe552b1a5877f2d6ae85113","unresolved":false,"context_lines":[{"line_number":139,"context_line":"  * Method: GET (200, 400)"},{"line_number":140,"context_line":"  * URL args:"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"    * offset - integer, set offset to define start point of share listing, 0 or"},{"line_number":143,"context_line":"      bigger"},{"line_number":144,"context_line":"    * limit - integer, maximum number of shares to return, 1 or bigger"},{"line_number":145,"context_line":"    * sort_key - string, key to be sorted (i.e. \u0027created_at\u0027 or"}],"source_content_type":"text/x-rst","patch_set":8,"id":"dfeb2761_ccbc7cbd","line":142,"updated":"2017-03-31 10:35:17.000000000","message":"share listing or message listing?","commit_id":"871179ccd1179049e836514c7fca2070402beaad"},{"author":{"_account_id":7582,"name":"Jan Provaznik","email":"jan.provaznik@gmail.com","username":"jprovazn"},"change_message_id":"8dece4c21e431dc02137ade586a999cf9507f884","unresolved":false,"context_lines":[{"line_number":139,"context_line":"  * Method: GET (200, 400)"},{"line_number":140,"context_line":"  * URL args:"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"    * offset - integer, set offset to define start point of share listing, 0 or"},{"line_number":143,"context_line":"      bigger"},{"line_number":144,"context_line":"    * limit - integer, maximum number of shares to return, 1 or bigger"},{"line_number":145,"context_line":"    * sort_key - string, key to be sorted (i.e. \u0027created_at\u0027 or"}],"source_content_type":"text/x-rst","patch_set":8,"id":"dfeb2761_b66dd905","line":142,"in_reply_to":"dfeb2761_7fae26e8","updated":"2017-04-03 10:34:28.000000000","message":"Done","commit_id":"871179ccd1179049e836514c7fca2070402beaad"},{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"a44c69b4f5c042954b3061d9707ed32a3215a82a","unresolved":false,"context_lines":[{"line_number":139,"context_line":"  * Method: GET (200, 400)"},{"line_number":140,"context_line":"  * URL args:"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"    * offset - integer, set offset to define start point of share listing, 0 or"},{"line_number":143,"context_line":"      bigger"},{"line_number":144,"context_line":"    * limit - integer, maximum number of shares to return, 1 or bigger"},{"line_number":145,"context_line":"    * sort_key - string, key to be sorted (i.e. \u0027created_at\u0027 or"}],"source_content_type":"text/x-rst","patch_set":8,"id":"dfeb2761_7fae26e8","line":142,"in_reply_to":"dfeb2761_ccbc7cbd","updated":"2017-03-31 17:44:28.000000000","message":"Should be message listing","commit_id":"871179ccd1179049e836514c7fca2070402beaad"},{"author":{"_account_id":8056,"name":"Ramana Raja","email":"rraja@redhat.com","username":"Ram_Raja"},"change_message_id":"a0b8ed26ced81cb42fe552b1a5877f2d6ae85113","unresolved":false,"context_lines":[{"line_number":141,"context_line":""},{"line_number":142,"context_line":"    * offset - integer, set offset to define start point of share listing, 0 or"},{"line_number":143,"context_line":"      bigger"},{"line_number":144,"context_line":"    * limit - integer, maximum number of shares to return, 1 or bigger"},{"line_number":145,"context_line":"    * sort_key - string, key to be sorted (i.e. \u0027created_at\u0027 or"},{"line_number":146,"context_line":"      \u0027resource_type\u0027)"},{"line_number":147,"context_line":"    * sort_dir - string, sort direction, should be either \u0027asc\u0027 or \u0027desc\u0027."}],"source_content_type":"text/x-rst","patch_set":8,"id":"dfeb2761_6ccb3053","line":144,"updated":"2017-03-31 10:35:17.000000000","message":"number of shares or number of messages?","commit_id":"871179ccd1179049e836514c7fca2070402beaad"},{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"a44c69b4f5c042954b3061d9707ed32a3215a82a","unresolved":false,"context_lines":[{"line_number":141,"context_line":""},{"line_number":142,"context_line":"    * offset - integer, set offset to define start point of share listing, 0 or"},{"line_number":143,"context_line":"      bigger"},{"line_number":144,"context_line":"    * limit - integer, maximum number of shares to return, 1 or bigger"},{"line_number":145,"context_line":"    * sort_key - string, key to be sorted (i.e. \u0027created_at\u0027 or"},{"line_number":146,"context_line":"      \u0027resource_type\u0027)"},{"line_number":147,"context_line":"    * sort_dir - string, sort direction, should be either \u0027asc\u0027 or \u0027desc\u0027."}],"source_content_type":"text/x-rst","patch_set":8,"id":"dfeb2761_bfa4ae09","line":144,"in_reply_to":"dfeb2761_6ccb3053","updated":"2017-03-31 17:44:28.000000000","message":"Should be number of messages","commit_id":"871179ccd1179049e836514c7fca2070402beaad"},{"author":{"_account_id":7582,"name":"Jan Provaznik","email":"jan.provaznik@gmail.com","username":"jprovazn"},"change_message_id":"8dece4c21e431dc02137ade586a999cf9507f884","unresolved":false,"context_lines":[{"line_number":141,"context_line":""},{"line_number":142,"context_line":"    * offset - integer, set offset to define start point of share listing, 0 or"},{"line_number":143,"context_line":"      bigger"},{"line_number":144,"context_line":"    * limit - integer, maximum number of shares to return, 1 or bigger"},{"line_number":145,"context_line":"    * sort_key - string, key to be sorted (i.e. \u0027created_at\u0027 or"},{"line_number":146,"context_line":"      \u0027resource_type\u0027)"},{"line_number":147,"context_line":"    * sort_dir - string, sort direction, should be either \u0027asc\u0027 or \u0027desc\u0027."}],"source_content_type":"text/x-rst","patch_set":8,"id":"dfeb2761_d6661d2a","line":144,"in_reply_to":"dfeb2761_bfa4ae09","updated":"2017-04-03 10:34:28.000000000","message":"Done","commit_id":"871179ccd1179049e836514c7fca2070402beaad"},{"author":{"_account_id":8056,"name":"Ramana Raja","email":"rraja@redhat.com","username":"Ram_Raja"},"change_message_id":"a0b8ed26ced81cb42fe552b1a5877f2d6ae85113","unresolved":false,"context_lines":[{"line_number":181,"context_line":"        \"message\": {"},{"line_number":182,"context_line":"          \"id\": \"5429fffa-5c76-4d68-a671-37a8e24f37cf\","},{"line_number":183,"context_line":"          \"action\": \"ALLOCATE_HOST\","},{"line_number":184,"context_line":"          \"user_message\": \"ALLOCATE_HOST[ERROR]: No storage could"},{"line_number":185,"context_line":"                          be allocated for this share"},{"line_number":186,"context_line":"                          request. Trying again with a different size or"},{"line_number":187,"context_line":"                          share type may succeed.\","}],"source_content_type":"text/x-rst","patch_set":8,"id":"dfeb2761_ecdce019","line":184,"updated":"2017-03-31 10:35:17.000000000","message":"So this is the standard \u0027user_message\u0027 corresponding to the action \u0027ALLOCATE_HOST\u0027?","commit_id":"871179ccd1179049e836514c7fca2070402beaad"},{"author":{"_account_id":7582,"name":"Jan Provaznik","email":"jan.provaznik@gmail.com","username":"jprovazn"},"change_message_id":"8dece4c21e431dc02137ade586a999cf9507f884","unresolved":false,"context_lines":[{"line_number":181,"context_line":"        \"message\": {"},{"line_number":182,"context_line":"          \"id\": \"5429fffa-5c76-4d68-a671-37a8e24f37cf\","},{"line_number":183,"context_line":"          \"action\": \"ALLOCATE_HOST\","},{"line_number":184,"context_line":"          \"user_message\": \"ALLOCATE_HOST[ERROR]: No storage could"},{"line_number":185,"context_line":"                          be allocated for this share"},{"line_number":186,"context_line":"                          request. Trying again with a different size or"},{"line_number":187,"context_line":"                          share type may succeed.\","}],"source_content_type":"text/x-rst","patch_set":8,"id":"dfeb2761_d19e27b7","line":184,"in_reply_to":"dfeb2761_ecdce019","updated":"2017-04-03 10:34:28.000000000","message":"Updated in the new patch (removed the action and level which are redundant), user_message should contain a user readable message.","commit_id":"871179ccd1179049e836514c7fca2070402beaad"},{"author":{"_account_id":8056,"name":"Ramana Raja","email":"rraja@redhat.com","username":"Ram_Raja"},"change_message_id":"a0b8ed26ced81cb42fe552b1a5877f2d6ae85113","unresolved":false,"context_lines":[{"line_number":201,"context_line":""},{"line_number":202,"context_line":"Driver impact"},{"line_number":203,"context_line":"-------------"},{"line_number":204,"context_line":""},{"line_number":205,"context_line":"None"},{"line_number":206,"context_line":""},{"line_number":207,"context_line":"Security impact"}],"source_content_type":"text/x-rst","patch_set":8,"id":"dfeb2761_6cd0d0f8","line":204,"updated":"2017-03-31 10:35:17.000000000","message":"Drivers can raise error messages, right? e.g., invalid access type.","commit_id":"871179ccd1179049e836514c7fca2070402beaad"},{"author":{"_account_id":8056,"name":"Ramana Raja","email":"rraja@redhat.com","username":"Ram_Raja"},"change_message_id":"285c0d71f4abc0a567a8177345f5a9c04dccb6f7","unresolved":false,"context_lines":[{"line_number":201,"context_line":""},{"line_number":202,"context_line":"Driver impact"},{"line_number":203,"context_line":"-------------"},{"line_number":204,"context_line":""},{"line_number":205,"context_line":"None"},{"line_number":206,"context_line":""},{"line_number":207,"context_line":"Security impact"}],"source_content_type":"text/x-rst","patch_set":8,"id":"dfeb2761_5b17cda4","line":204,"in_reply_to":"dfeb2761_513c57be","updated":"2017-04-03 11:08:48.000000000","message":"OK. So you don\u0027t want the drivers to directly update the DB (since DB updates by a driver is usually frowned upon) with driver specific user error message?","commit_id":"871179ccd1179049e836514c7fca2070402beaad"},{"author":{"_account_id":7582,"name":"Jan Provaznik","email":"jan.provaznik@gmail.com","username":"jprovazn"},"change_message_id":"8dece4c21e431dc02137ade586a999cf9507f884","unresolved":false,"context_lines":[{"line_number":201,"context_line":""},{"line_number":202,"context_line":"Driver impact"},{"line_number":203,"context_line":"-------------"},{"line_number":204,"context_line":""},{"line_number":205,"context_line":"None"},{"line_number":206,"context_line":""},{"line_number":207,"context_line":"Security impact"}],"source_content_type":"text/x-rst","patch_set":8,"id":"dfeb2761_513c57be","line":204,"in_reply_to":"dfeb2761_6cd0d0f8","updated":"2017-04-03 10:34:28.000000000","message":"There is no change in the way drivers raise errors. There is no change which would be required/expected from drivers for handling these exceptions. It will begreat if we manage to better categorize exceptions thrown by drivers when creating a user message, but I don\u0027t see a driver impact here.","commit_id":"871179ccd1179049e836514c7fca2070402beaad"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"5c4c7a5e04eb8bfc17e9746fb4d5203f1555411b","unresolved":false,"context_lines":[{"line_number":52,"context_line":"      server."},{"line_number":53,"context_line":"    * Creation fails for an unknown reason."},{"line_number":54,"context_line":"    * Creation fails because driver does not expect share-network to be"},{"line_number":55,"context_line":"      provided  with current configuration."},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"* Share group snapshot:"},{"line_number":58,"context_line":"    * Creation fails for an unknown reason."}],"source_content_type":"text/x-rst","patch_set":9,"id":"dfeb2761_eca5a905","line":55,"range":{"start_line":55,"start_character":14,"end_line":55,"end_character":16},"updated":"2017-04-04 03:58:39.000000000","message":"double spaces","commit_id":"0ebff999668dbdfaec540018f36e6edae0538b74"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"5c4c7a5e04eb8bfc17e9746fb4d5203f1555411b","unresolved":false,"context_lines":[{"line_number":62,"context_line":"    * Creation fails because an \u0027ACTIVE\u0027 replica must exist in \u0027AVAILABLE\u0027"},{"line_number":63,"context_line":"      state to create a new replica for share."},{"line_number":64,"context_line":"    * Creation fails because driver does not expect share-network to be"},{"line_number":65,"context_line":"      provided  with current configuration."},{"line_number":66,"context_line":"    * Creation fails because failed to get share server for share replica"},{"line_number":67,"context_line":"      creation."},{"line_number":68,"context_line":"    * Creation fails for an unknown reason."}],"source_content_type":"text/x-rst","patch_set":9,"id":"dfeb2761_acafa1e1","line":65,"range":{"start_line":65,"start_character":14,"end_line":65,"end_character":16},"updated":"2017-04-04 03:58:39.000000000","message":"Double spaces","commit_id":"0ebff999668dbdfaec540018f36e6edae0538b74"},{"author":{"_account_id":8056,"name":"Ramana Raja","email":"rraja@redhat.com","username":"Ram_Raja"},"change_message_id":"ce0f90eb65cea619f329db6c281f59f35796a035","unresolved":false,"context_lines":[{"line_number":92,"context_line":"error are stored in database:"},{"line_number":93,"context_line":"* resource type and ID for the resource on which the error occurred"},{"line_number":94,"context_line":"* action during which the error occurred"},{"line_number":95,"context_line":"* error detail (user friendlier error explanation)"},{"line_number":96,"context_line":"* error level"},{"line_number":97,"context_line":"* expiration time"},{"line_number":98,"context_line":"* request ID"}],"source_content_type":"text/x-rst","patch_set":9,"id":"dfeb2761_5bbfcdcf","line":95,"range":{"start_line":95,"start_character":1,"end_line":95,"end_character":14},"updated":"2017-04-03 11:08:31.000000000","message":"OK. So you need to guesstimate the fixed/max size you want to allocate for it in the DB.","commit_id":"0ebff999668dbdfaec540018f36e6edae0538b74"},{"author":{"_account_id":8056,"name":"Ramana Raja","email":"rraja@redhat.com","username":"Ram_Raja"},"change_message_id":"ce0f90eb65cea619f329db6c281f59f35796a035","unresolved":false,"context_lines":[{"line_number":92,"context_line":"error are stored in database:"},{"line_number":93,"context_line":"* resource type and ID for the resource on which the error occurred"},{"line_number":94,"context_line":"* action during which the error occurred"},{"line_number":95,"context_line":"* error detail (user friendlier error explanation)"},{"line_number":96,"context_line":"* error level"},{"line_number":97,"context_line":"* expiration time"},{"line_number":98,"context_line":"* request ID"}],"source_content_type":"text/x-rst","patch_set":9,"id":"dfeb2761_bbc93979","line":95,"range":{"start_line":95,"start_character":16,"end_line":95,"end_character":31},"updated":"2017-04-03 11:08:31.000000000","message":"user-friendly","commit_id":"0ebff999668dbdfaec540018f36e6edae0538b74"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"5c4c7a5e04eb8bfc17e9746fb4d5203f1555411b","unresolved":false,"context_lines":[{"line_number":99,"context_line":"* project ID"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"Because exceptions raised by drivers or manila services may contain sensitive"},{"line_number":102,"context_line":"information (e.g. about backend ifrastructure, host names...), this exception"},{"line_number":103,"context_line":"is not exposed to user, instead only sanitized error detail is exposed."},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"User can get messages either directly through the new /messages API or through"}],"source_content_type":"text/x-rst","patch_set":9,"id":"dfeb2761_ec7ec969","line":102,"range":{"start_line":102,"start_character":32,"end_line":102,"end_character":45},"updated":"2017-04-04 03:58:39.000000000","message":"s/ifrastructure/infrastructure","commit_id":"0ebff999668dbdfaec540018f36e6edae0538b74"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"5c4c7a5e04eb8bfc17e9746fb4d5203f1555411b","unresolved":false,"context_lines":[{"line_number":105,"context_line":"User can get messages either directly through the new /messages API or through"},{"line_number":106,"context_line":"manila CLI which allows showing a message, listing all messages and deleting"},{"line_number":107,"context_line":"existing messages."},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"The same approach is already implemented in cinder."},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":9,"id":"dfeb2761_4c8db579","line":108,"updated":"2017-04-04 03:58:39.000000000","message":"Do you plan to integrate this into Horizon?","commit_id":"0ebff999668dbdfaec540018f36e6edae0538b74"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"5c4c7a5e04eb8bfc17e9746fb4d5203f1555411b","unresolved":false,"context_lines":[{"line_number":135,"context_line":""},{"line_number":136,"context_line":"New messages table in database to store all messages. This table may prove to"},{"line_number":137,"context_line":"grow large in a cloud with lots of errors. The admin will be able to utilize"},{"line_number":138,"context_line":"the expires_at column to delete old messages by a manila-manage CLI command."},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"REST API impact"},{"line_number":141,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":9,"id":"dfeb2761_2cea710e","line":138,"updated":"2017-04-04 03:58:39.000000000","message":"Please provide details of the data schema change.","commit_id":"0ebff999668dbdfaec540018f36e6edae0538b74"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"5c4c7a5e04eb8bfc17e9746fb4d5203f1555411b","unresolved":false,"context_lines":[{"line_number":238,"context_line":"Other deployer impact"},{"line_number":239,"context_line":"---------------------"},{"line_number":240,"context_line":""},{"line_number":241,"context_line":"* New configuration option message_ttl that will dictate the number of seconds"},{"line_number":242,"context_line":"  after the messages creation time to set the ‘guaranteed_until’ attribute on"},{"line_number":243,"context_line":"  generated messages."},{"line_number":244,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"dfeb2761_4ce25531","line":241,"range":{"start_line":241,"start_character":49,"end_line":241,"end_character":56},"updated":"2017-04-04 03:58:39.000000000","message":"indicate","commit_id":"0ebff999668dbdfaec540018f36e6edae0538b74"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"73a1e6e797c2ba4bb16b6c11c4bfd98ee8432a80","unresolved":false,"context_lines":[{"line_number":128,"context_line":""},{"line_number":129,"context_line":"* State change notifications. This solution does not intend to solve the"},{"line_number":130,"context_line":"  use-case of alerting users when a share or any other resource changes state."},{"line_number":131,"context_line":"  For example, when a share changes its status from CREATING to AVAILABLE.\""},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"Data model impact"},{"line_number":134,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":10,"id":"bff0334d_ce98c41c","line":131,"range":{"start_line":131,"start_character":74,"end_line":131,"end_character":75},"updated":"2017-04-07 01:33:08.000000000","message":"nit: remove","commit_id":"3a360cd74e1ab9deea0846886b73f98568908797"},{"author":{"_account_id":7582,"name":"Jan Provaznik","email":"jan.provaznik@gmail.com","username":"jprovazn"},"change_message_id":"d780500fe8a2e4e9171559b21573cf398f212058","unresolved":false,"context_lines":[{"line_number":128,"context_line":""},{"line_number":129,"context_line":"* State change notifications. This solution does not intend to solve the"},{"line_number":130,"context_line":"  use-case of alerting users when a share or any other resource changes state."},{"line_number":131,"context_line":"  For example, when a share changes its status from CREATING to AVAILABLE.\""},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"Data model impact"},{"line_number":134,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":10,"id":"bff0334d_ff37664c","line":131,"range":{"start_line":131,"start_character":74,"end_line":131,"end_character":75},"in_reply_to":"bff0334d_ce98c41c","updated":"2017-04-10 14:05:46.000000000","message":"Done","commit_id":"3a360cd74e1ab9deea0846886b73f98568908797"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"d27f2d2aead94d8f5d7f88b37cd70c50fc842000","unresolved":false,"context_lines":[{"line_number":139,"context_line":""},{"line_number":140,"context_line":"* id \u003d Column(String(36), primary_key\u003dTrue, nullable\u003dFalse)"},{"line_number":141,"context_line":"* project_id \u003d Column(String(36), nullable\u003dFalse)"},{"line_number":142,"context_line":"* message_level \u003d Column(String(255), nullable\u003dFalse)"},{"line_number":143,"context_line":"* request_id \u003d Column(String(255), nullable\u003dTrue)"},{"line_number":144,"context_line":"* resource_type \u003d Column(String(255))"},{"line_number":145,"context_line":"* resource_uuid \u003d Column(String(36), nullable\u003dTrue)"}],"source_content_type":"text/x-rst","patch_set":10,"id":"bff0334d_d65ed274","line":142,"range":{"start_line":142,"start_character":32,"end_line":142,"end_character":35},"updated":"2017-04-10 11:37:28.000000000","message":"Isn\u0027t it too big field?","commit_id":"3a360cd74e1ab9deea0846886b73f98568908797"},{"author":{"_account_id":7582,"name":"Jan Provaznik","email":"jan.provaznik@gmail.com","username":"jprovazn"},"change_message_id":"d780500fe8a2e4e9171559b21573cf398f212058","unresolved":false,"context_lines":[{"line_number":139,"context_line":""},{"line_number":140,"context_line":"* id \u003d Column(String(36), primary_key\u003dTrue, nullable\u003dFalse)"},{"line_number":141,"context_line":"* project_id \u003d Column(String(36), nullable\u003dFalse)"},{"line_number":142,"context_line":"* message_level \u003d Column(String(255), nullable\u003dFalse)"},{"line_number":143,"context_line":"* request_id \u003d Column(String(255), nullable\u003dTrue)"},{"line_number":144,"context_line":"* resource_type \u003d Column(String(255))"},{"line_number":145,"context_line":"* resource_uuid \u003d Column(String(36), nullable\u003dTrue)"}],"source_content_type":"text/x-rst","patch_set":10,"id":"bff0334d_1f332a64","line":142,"range":{"start_line":142,"start_character":32,"end_line":142,"end_character":35},"in_reply_to":"bff0334d_d65ed274","updated":"2017-04-10 14:05:46.000000000","message":"Done","commit_id":"3a360cd74e1ab9deea0846886b73f98568908797"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"d27f2d2aead94d8f5d7f88b37cd70c50fc842000","unresolved":false,"context_lines":[{"line_number":145,"context_line":"* resource_uuid \u003d Column(String(36), nullable\u003dTrue)"},{"line_number":146,"context_line":"* action \u003d Column(String(255), nullable\u003dFalse)"},{"line_number":147,"context_line":"* expires_at \u003d Column(DateTime, nullable\u003dTrue)"},{"line_number":148,"context_line":"* detail \u003d Column(String(255), nullable\u003dTrue)"},{"line_number":149,"context_line":"* deleted \u003d Column(String(36), default\u003d\u0027False\u0027)"},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"REST API impact"}],"source_content_type":"text/x-rst","patch_set":10,"id":"bff0334d_7674a6fe","line":148,"range":{"start_line":148,"start_character":25,"end_line":148,"end_character":28},"updated":"2017-04-10 11:37:28.000000000","message":"Isn\u0027t it too short field?","commit_id":"3a360cd74e1ab9deea0846886b73f98568908797"},{"author":{"_account_id":7582,"name":"Jan Provaznik","email":"jan.provaznik@gmail.com","username":"jprovazn"},"change_message_id":"d780500fe8a2e4e9171559b21573cf398f212058","unresolved":false,"context_lines":[{"line_number":145,"context_line":"* resource_uuid \u003d Column(String(36), nullable\u003dTrue)"},{"line_number":146,"context_line":"* action \u003d Column(String(255), nullable\u003dFalse)"},{"line_number":147,"context_line":"* expires_at \u003d Column(DateTime, nullable\u003dTrue)"},{"line_number":148,"context_line":"* detail \u003d Column(String(255), nullable\u003dTrue)"},{"line_number":149,"context_line":"* deleted \u003d Column(String(36), default\u003d\u0027False\u0027)"},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"REST API impact"}],"source_content_type":"text/x-rst","patch_set":10,"id":"bff0334d_7feeb6b4","line":148,"range":{"start_line":148,"start_character":25,"end_line":148,"end_character":28},"in_reply_to":"bff0334d_7674a6fe","updated":"2017-04-10 14:05:46.000000000","message":"Only a predefined constant will be stored in DB and there will be mapping from these constants to user friendly messages in a file. I\u0027ve updated the spec (the existing patch doesn\u0027t reflect this change).","commit_id":"3a360cd74e1ab9deea0846886b73f98568908797"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"d27f2d2aead94d8f5d7f88b37cd70c50fc842000","unresolved":false,"context_lines":[{"line_number":191,"context_line":"* Show message"},{"line_number":192,"context_line":""},{"line_number":193,"context_line":"  * URL: /v2/\u003ctenant\u003e/messages/\u003cmessage_id\u003e"},{"line_number":194,"context_line":"  * Method: GET (200, 403)"},{"line_number":195,"context_line":"  * JSON body:"},{"line_number":196,"context_line":""},{"line_number":197,"context_line":"    .. code-block:: json"}],"source_content_type":"text/x-rst","patch_set":10,"id":"bff0334d_76e266a2","line":194,"updated":"2017-04-10 11:37:28.000000000","message":"+404?","commit_id":"3a360cd74e1ab9deea0846886b73f98568908797"},{"author":{"_account_id":7582,"name":"Jan Provaznik","email":"jan.provaznik@gmail.com","username":"jprovazn"},"change_message_id":"d780500fe8a2e4e9171559b21573cf398f212058","unresolved":false,"context_lines":[{"line_number":191,"context_line":"* Show message"},{"line_number":192,"context_line":""},{"line_number":193,"context_line":"  * URL: /v2/\u003ctenant\u003e/messages/\u003cmessage_id\u003e"},{"line_number":194,"context_line":"  * Method: GET (200, 403)"},{"line_number":195,"context_line":"  * JSON body:"},{"line_number":196,"context_line":""},{"line_number":197,"context_line":"    .. code-block:: json"}],"source_content_type":"text/x-rst","patch_set":10,"id":"bff0334d_7fa7d6a8","line":194,"in_reply_to":"bff0334d_76e266a2","updated":"2017-04-10 14:05:46.000000000","message":"Done","commit_id":"3a360cd74e1ab9deea0846886b73f98568908797"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"d27f2d2aead94d8f5d7f88b37cd70c50fc842000","unresolved":false,"context_lines":[{"line_number":215,"context_line":"* Delete message"},{"line_number":216,"context_line":""},{"line_number":217,"context_line":"  * URL: /v2/\u003ctenant\u003e/messages/\u003cmessage_id\u003e"},{"line_number":218,"context_line":"  * Method: DELETE (204, 404)"},{"line_number":219,"context_line":""},{"line_number":220,"context_line":"Driver impact"},{"line_number":221,"context_line":"-------------"}],"source_content_type":"text/x-rst","patch_set":10,"id":"bff0334d_16f79a61","line":218,"updated":"2017-04-10 11:37:28.000000000","message":"+403?","commit_id":"3a360cd74e1ab9deea0846886b73f98568908797"},{"author":{"_account_id":7582,"name":"Jan Provaznik","email":"jan.provaznik@gmail.com","username":"jprovazn"},"change_message_id":"d780500fe8a2e4e9171559b21573cf398f212058","unresolved":false,"context_lines":[{"line_number":215,"context_line":"* Delete message"},{"line_number":216,"context_line":""},{"line_number":217,"context_line":"  * URL: /v2/\u003ctenant\u003e/messages/\u003cmessage_id\u003e"},{"line_number":218,"context_line":"  * Method: DELETE (204, 404)"},{"line_number":219,"context_line":""},{"line_number":220,"context_line":"Driver impact"},{"line_number":221,"context_line":"-------------"}],"source_content_type":"text/x-rst","patch_set":10,"id":"bff0334d_3fbf0eb1","line":218,"in_reply_to":"bff0334d_16f79a61","updated":"2017-04-10 14:05:46.000000000","message":"Done","commit_id":"3a360cd74e1ab9deea0846886b73f98568908797"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"a27b5270a7ac938de600a414237afc5ebd59c911","unresolved":false,"context_lines":[{"line_number":97,"context_line":"* expiration time"},{"line_number":98,"context_line":"* request ID"},{"line_number":99,"context_line":"* project ID"},{"line_number":100,"context_line":"* event ID (auto-generated unique ID which classifies errors based on resource"},{"line_number":101,"context_line":"  type, action and detail message)"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"Because exceptions raised by drivers or manila services may contain sensitive"},{"line_number":104,"context_line":"information (e.g. about backend infrastructure, host names...), this exception"}],"source_content_type":"text/x-rst","patch_set":11,"id":"bff0334d_d8dcb8e5","line":101,"range":{"start_line":100,"start_character":2,"end_line":101,"end_character":34},"updated":"2017-04-10 15:20:04.000000000","message":"If this is inferred from the rest of the details, why is this necessary?","commit_id":"f5763a61db3007595f6d72e19b40aed2256211d9"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"a27b5270a7ac938de600a414237afc5ebd59c911","unresolved":false,"context_lines":[{"line_number":149,"context_line":"* expires_at \u003d Column(DateTime, nullable\u003dTrue)"},{"line_number":150,"context_line":"* detail \u003d Column(String(255), nullable\u003dTrue)"},{"line_number":151,"context_line":"* deleted \u003d Column(String(36), default\u003d\u0027False\u0027)"},{"line_number":152,"context_line":"* event_id \u003d Column(String(600), default\u003d\u0027False\u0027)"},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"Only a constant will be stored in \u0027detail\u0027 column and there will be a mapping"},{"line_number":155,"context_line":" (in a file) from these constants to user friendly messages:"}],"source_content_type":"text/x-rst","patch_set":11,"id":"bff0334d_188100c4","line":152,"range":{"start_line":152,"start_character":2,"end_line":152,"end_character":31},"updated":"2017-04-10 15:20:04.000000000","message":"Can you provide an example of what this can be?","commit_id":"f5763a61db3007595f6d72e19b40aed2256211d9"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"a27b5270a7ac938de600a414237afc5ebd59c911","unresolved":false,"context_lines":[{"line_number":155,"context_line":" (in a file) from these constants to user friendly messages:"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"message_map \u003d {"},{"line_number":158,"context_line":"    MessageIds.UNEXPECTED_NETWORK: _(\"Driver does not expect share-network \""},{"line_number":159,"context_line":"                                     \"to be provided with current \""},{"line_number":160,"context_line":"                                     \"configuration.),"},{"line_number":161,"context_line":"    MessageIds.NO_SHARE_SERVER: _(\"Failed to get share server.\")"}],"source_content_type":"text/x-rst","patch_set":11,"id":"bff0334d_78436cb0","line":158,"range":{"start_line":158,"start_character":38,"end_line":158,"end_character":44},"updated":"2017-04-10 15:20:04.000000000","message":"Drivers are meant to be abstracted.. \n\nPerhaps:\n\n\"Current back end configuration does not support creating shares within\n project defined share-networks.\"","commit_id":"f5763a61db3007595f6d72e19b40aed2256211d9"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"a27b5270a7ac938de600a414237afc5ebd59c911","unresolved":false,"context_lines":[{"line_number":158,"context_line":"    MessageIds.UNEXPECTED_NETWORK: _(\"Driver does not expect share-network \""},{"line_number":159,"context_line":"                                     \"to be provided with current \""},{"line_number":160,"context_line":"                                     \"configuration.),"},{"line_number":161,"context_line":"    MessageIds.NO_SHARE_SERVER: _(\"Failed to get share server.\")"},{"line_number":162,"context_line":"}"},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"\u0027event_id\u0027 will be automatically generated from \u0027resource_type\u0027, \u0027action\u0027"}],"source_content_type":"text/x-rst","patch_set":11,"id":"bff0334d_18b0e0dc","line":161,"range":{"start_line":161,"start_character":4,"end_line":161,"end_character":64},"updated":"2017-04-10 15:20:04.000000000","message":"This message is not appropriate for users.. The share network abstraction is meant to hide the concept of share servers..","commit_id":"f5763a61db3007595f6d72e19b40aed2256211d9"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"a27b5270a7ac938de600a414237afc5ebd59c911","unresolved":false,"context_lines":[{"line_number":163,"context_line":""},{"line_number":164,"context_line":"\u0027event_id\u0027 will be automatically generated from \u0027resource_type\u0027, \u0027action\u0027"},{"line_number":165,"context_line":"and \u0027detail\u0027 values: \u0027{RESOURCE_TYPE}_{ACTION}_{DETAIL}\u0027, e.g."},{"line_number":166,"context_line":"\u0027SHARE_CREATE_NO_SHARE_SERVER\u0027. User message will useful for displaying a user"},{"line_number":167,"context_line":"friendly error to a user, \u0027event_id\u0027 will be useful for programmatic"},{"line_number":168,"context_line":"classification and processing of error messages."},{"line_number":169,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"bff0334d_f8109caa","line":166,"range":{"start_line":166,"start_character":49,"end_line":166,"end_character":50},"updated":"2017-04-10 15:20:04.000000000","message":"be","commit_id":"f5763a61db3007595f6d72e19b40aed2256211d9"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"905cadc4ce479ce2c14bcdb301df4b7f21502c95","unresolved":false,"context_lines":[{"line_number":97,"context_line":"* expiration time"},{"line_number":98,"context_line":"* request ID"},{"line_number":99,"context_line":"* project ID"},{"line_number":100,"context_line":"* event ID (auto-generated unique ID which classifies errors based on resource"},{"line_number":101,"context_line":"  type, action and detail message)"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"Because exceptions raised by drivers or manila services may contain sensitive"}],"source_content_type":"text/x-rst","patch_set":12,"id":"bff0334d_02dcdfe1","line":100,"range":{"start_line":100,"start_character":12,"end_line":100,"end_character":36},"updated":"2017-04-11 00:16:15.000000000","message":"This is the part i don\u0027t understand. When is this ID generated? and if it relies on other attributes of the message, why is it needed?","commit_id":"a64c2d4b7636ed25f5b28f3e855cd53b731f6abf"},{"author":{"_account_id":23083,"name":"TommyLike","email":"tommylikehu@gmail.com","username":"TommyLike"},"change_message_id":"2c0ea530ee57cac4586758e871372327adbeb73b","unresolved":false,"context_lines":[{"line_number":97,"context_line":"* expiration time"},{"line_number":98,"context_line":"* request ID"},{"line_number":99,"context_line":"* project ID"},{"line_number":100,"context_line":"* event ID (auto-generated unique ID which classifies errors based on resource"},{"line_number":101,"context_line":"  type, action and detail message)"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"Because exceptions raised by drivers or manila services may contain sensitive"}],"source_content_type":"text/x-rst","patch_set":12,"id":"bff0334d_7877daa1","line":100,"range":{"start_line":100,"start_character":12,"end_line":100,"end_character":36},"in_reply_to":"bff0334d_02dcdfe1","updated":"2017-04-11 02:15:11.000000000","message":"In cinder\u0027s first code version, we have ``event_id`` to indicate what is happening. uppper end user is easy to detect the error and translate it into any other messages they like (I guess)","commit_id":"a64c2d4b7636ed25f5b28f3e855cd53b731f6abf"},{"author":{"_account_id":7582,"name":"Jan Provaznik","email":"jan.provaznik@gmail.com","username":"jprovazn"},"change_message_id":"aeaf883b71e9aed207e7d8c55a42d42a00a9703c","unresolved":false,"context_lines":[{"line_number":97,"context_line":"* expiration time"},{"line_number":98,"context_line":"* request ID"},{"line_number":99,"context_line":"* project ID"},{"line_number":100,"context_line":"* event ID (auto-generated unique ID which classifies errors based on resource"},{"line_number":101,"context_line":"  type, action and detail message)"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"Because exceptions raised by drivers or manila services may contain sensitive"}],"source_content_type":"text/x-rst","patch_set":12,"id":"bff0334d_f8e08328","line":100,"range":{"start_line":100,"start_character":12,"end_line":100,"end_character":36},"in_reply_to":"bff0334d_7877daa1","updated":"2017-04-11 07:47:35.000000000","message":"After discussing this with TommyLike I removed event_id from the spec, if it turns out it\u0027s really wanted it will be added in future.","commit_id":"a64c2d4b7636ed25f5b28f3e855cd53b731f6abf"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"905cadc4ce479ce2c14bcdb301df4b7f21502c95","unresolved":false,"context_lines":[{"line_number":161,"context_line":"    MessageIds.QUOTA_UPDATE: _(\"Failed to update quota.\")"},{"line_number":162,"context_line":"}"},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"\u0027event_id\u0027 will be automatically generated from \u0027resource_type\u0027, \u0027action\u0027"},{"line_number":165,"context_line":"and \u0027detail\u0027 values: \u0027{RESOURCE_TYPE}_{ACTION}_{DETAIL}\u0027, e.g."},{"line_number":166,"context_line":"\u0027SHARE_SHRINK_QUOTA_UPDATE\u0027. User message will be useful for displaying a"},{"line_number":167,"context_line":"user friendly error to a user, \u0027event_id\u0027 will be useful for programmatic"},{"line_number":168,"context_line":"classification and processing of error messages."},{"line_number":169,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"bff0334d_22024370","line":166,"range":{"start_line":164,"start_character":0,"end_line":166,"end_character":29},"updated":"2017-04-11 00:16:15.000000000","message":"How is this expected to be unique?\nTwo parallel share creation requests can generate the same sort of error message.","commit_id":"a64c2d4b7636ed25f5b28f3e855cd53b731f6abf"},{"author":{"_account_id":23083,"name":"TommyLike","email":"tommylikehu@gmail.com","username":"TommyLike"},"change_message_id":"2c0ea530ee57cac4586758e871372327adbeb73b","unresolved":false,"context_lines":[{"line_number":161,"context_line":"    MessageIds.QUOTA_UPDATE: _(\"Failed to update quota.\")"},{"line_number":162,"context_line":"}"},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"\u0027event_id\u0027 will be automatically generated from \u0027resource_type\u0027, \u0027action\u0027"},{"line_number":165,"context_line":"and \u0027detail\u0027 values: \u0027{RESOURCE_TYPE}_{ACTION}_{DETAIL}\u0027, e.g."},{"line_number":166,"context_line":"\u0027SHARE_SHRINK_QUOTA_UPDATE\u0027. User message will be useful for displaying a"},{"line_number":167,"context_line":"user friendly error to a user, \u0027event_id\u0027 will be useful for programmatic"},{"line_number":168,"context_line":"classification and processing of error messages."},{"line_number":169,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"bff0334d_d86706e9","line":166,"range":{"start_line":164,"start_character":0,"end_line":166,"end_character":29},"in_reply_to":"bff0334d_22024370","updated":"2017-04-11 02:15:11.000000000","message":"This could not be unique, maybe unique in all the error messages?","commit_id":"a64c2d4b7636ed25f5b28f3e855cd53b731f6abf"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"905cadc4ce479ce2c14bcdb301df4b7f21502c95","unresolved":false,"context_lines":[{"line_number":164,"context_line":"\u0027event_id\u0027 will be automatically generated from \u0027resource_type\u0027, \u0027action\u0027"},{"line_number":165,"context_line":"and \u0027detail\u0027 values: \u0027{RESOURCE_TYPE}_{ACTION}_{DETAIL}\u0027, e.g."},{"line_number":166,"context_line":"\u0027SHARE_SHRINK_QUOTA_UPDATE\u0027. User message will be useful for displaying a"},{"line_number":167,"context_line":"user friendly error to a user, \u0027event_id\u0027 will be useful for programmatic"},{"line_number":168,"context_line":"classification and processing of error messages."},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"REST API impact"}],"source_content_type":"text/x-rst","patch_set":12,"id":"bff0334d_822c6f02","line":167,"range":{"start_line":167,"start_character":31,"end_line":167,"end_character":41},"updated":"2017-04-11 00:16:15.000000000","message":"I don\u0027t see how a derived attribute will be helpful. Am I missing something?","commit_id":"a64c2d4b7636ed25f5b28f3e855cd53b731f6abf"},{"author":{"_account_id":7582,"name":"Jan Provaznik","email":"jan.provaznik@gmail.com","username":"jprovazn"},"change_message_id":"aeaf883b71e9aed207e7d8c55a42d42a00a9703c","unresolved":false,"context_lines":[{"line_number":164,"context_line":"\u0027event_id\u0027 will be automatically generated from \u0027resource_type\u0027, \u0027action\u0027"},{"line_number":165,"context_line":"and \u0027detail\u0027 values: \u0027{RESOURCE_TYPE}_{ACTION}_{DETAIL}\u0027, e.g."},{"line_number":166,"context_line":"\u0027SHARE_SHRINK_QUOTA_UPDATE\u0027. User message will be useful for displaying a"},{"line_number":167,"context_line":"user friendly error to a user, \u0027event_id\u0027 will be useful for programmatic"},{"line_number":168,"context_line":"classification and processing of error messages."},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"REST API impact"}],"source_content_type":"text/x-rst","patch_set":12,"id":"bff0334d_d8613fab","line":167,"range":{"start_line":167,"start_character":31,"end_line":167,"end_character":41},"in_reply_to":"bff0334d_58be56b4","updated":"2017-04-11 07:47:35.000000000","message":"event_id won\u0027t be used after all.","commit_id":"a64c2d4b7636ed25f5b28f3e855cd53b731f6abf"},{"author":{"_account_id":23083,"name":"TommyLike","email":"tommylikehu@gmail.com","username":"TommyLike"},"change_message_id":"2c0ea530ee57cac4586758e871372327adbeb73b","unresolved":false,"context_lines":[{"line_number":164,"context_line":"\u0027event_id\u0027 will be automatically generated from \u0027resource_type\u0027, \u0027action\u0027"},{"line_number":165,"context_line":"and \u0027detail\u0027 values: \u0027{RESOURCE_TYPE}_{ACTION}_{DETAIL}\u0027, e.g."},{"line_number":166,"context_line":"\u0027SHARE_SHRINK_QUOTA_UPDATE\u0027. User message will be useful for displaying a"},{"line_number":167,"context_line":"user friendly error to a user, \u0027event_id\u0027 will be useful for programmatic"},{"line_number":168,"context_line":"classification and processing of error messages."},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"REST API impact"}],"source_content_type":"text/x-rst","patch_set":12,"id":"bff0334d_58be56b4","line":167,"range":{"start_line":167,"start_character":31,"end_line":167,"end_character":41},"in_reply_to":"bff0334d_822c6f02","updated":"2017-04-11 02:15:11.000000000","message":"This event_id is always here since the mirror spec merged in cinder.","commit_id":"a64c2d4b7636ed25f5b28f3e855cd53b731f6abf"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"905cadc4ce479ce2c14bcdb301df4b7f21502c95","unresolved":false,"context_lines":[{"line_number":228,"context_line":"          \"event_id\": \"SHARE_ALLOCATE_HOST_CAPACITY_FILTER\","},{"line_number":229,"context_line":"          \"resource_uuid\": \"f292cc0c-54a7-4b3b-8174-d2ff82d87008\","},{"line_number":230,"context_line":"          \"created_at\": 2015-08-27T09:49:58-05:00,"},{"line_number":231,"context_line":"          \"expires_at\": 2015-09-27T09:49:58-05:00,"},{"line_number":232,"context_line":"          \"request_id\": \"req-936666d2-4c8f-4e41-9ac9-237b43f8b848\","},{"line_number":233,"context_line":"        }"},{"line_number":234,"context_line":"      }"}],"source_content_type":"text/x-rst","patch_set":12,"id":"bff0334d_026e1f2e","line":231,"range":{"start_line":231,"start_character":12,"end_line":231,"end_character":20},"updated":"2017-04-11 00:16:15.000000000","message":"this is guaranteed_until in code.","commit_id":"a64c2d4b7636ed25f5b28f3e855cd53b731f6abf"},{"author":{"_account_id":7582,"name":"Jan Provaznik","email":"jan.provaznik@gmail.com","username":"jprovazn"},"change_message_id":"aeaf883b71e9aed207e7d8c55a42d42a00a9703c","unresolved":false,"context_lines":[{"line_number":228,"context_line":"          \"event_id\": \"SHARE_ALLOCATE_HOST_CAPACITY_FILTER\","},{"line_number":229,"context_line":"          \"resource_uuid\": \"f292cc0c-54a7-4b3b-8174-d2ff82d87008\","},{"line_number":230,"context_line":"          \"created_at\": 2015-08-27T09:49:58-05:00,"},{"line_number":231,"context_line":"          \"expires_at\": 2015-09-27T09:49:58-05:00,"},{"line_number":232,"context_line":"          \"request_id\": \"req-936666d2-4c8f-4e41-9ac9-237b43f8b848\","},{"line_number":233,"context_line":"        }"},{"line_number":234,"context_line":"      }"}],"source_content_type":"text/x-rst","patch_set":12,"id":"bff0334d_b20b3ad4","line":231,"range":{"start_line":231,"start_character":12,"end_line":231,"end_character":20},"in_reply_to":"bff0334d_026e1f2e","updated":"2017-04-11 07:47:35.000000000","message":"The patch is not up-to-date (I\u0027ll remove it from references or add a note to it), I prefer to stick with expires_at for 2 reasons:\n1) the same name is used in cinder messages API\n2) I think expires_at is \"good enough\" for description of the field. if it would be \"guaranteed_until\" in API and \"expires_at\" in DB, it would bring more confusion for developers trying to track down the field in the code.","commit_id":"a64c2d4b7636ed25f5b28f3e855cd53b731f6abf"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"62d09d4ae5f7472ae322aab8cbf68e4c42b6fdcc","unresolved":false,"context_lines":[{"line_number":228,"context_line":"          \"event_id\": \"SHARE_ALLOCATE_HOST_CAPACITY_FILTER\","},{"line_number":229,"context_line":"          \"resource_uuid\": \"f292cc0c-54a7-4b3b-8174-d2ff82d87008\","},{"line_number":230,"context_line":"          \"created_at\": 2015-08-27T09:49:58-05:00,"},{"line_number":231,"context_line":"          \"expires_at\": 2015-09-27T09:49:58-05:00,"},{"line_number":232,"context_line":"          \"request_id\": \"req-936666d2-4c8f-4e41-9ac9-237b43f8b848\","},{"line_number":233,"context_line":"        }"},{"line_number":234,"context_line":"      }"}],"source_content_type":"text/x-rst","patch_set":12,"id":"bff0334d_8ac476f6","line":231,"range":{"start_line":231,"start_character":12,"end_line":231,"end_character":20},"in_reply_to":"bff0334d_b20b3ad4","updated":"2017-04-11 12:20:11.000000000","message":"I agree with you. I wasn\u0027t able to convince Alex during code review.","commit_id":"a64c2d4b7636ed25f5b28f3e855cd53b731f6abf"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"905cadc4ce479ce2c14bcdb301df4b7f21502c95","unresolved":false,"context_lines":[{"line_number":304,"context_line":""},{"line_number":305,"context_line":"* Add new database table and migration for storing messages."},{"line_number":306,"context_line":"* Add /messages API `[1]`_."},{"line_number":307,"context_line":"* Extend CLI with message commands `[2]`_."},{"line_number":308,"context_line":"* Add \"message create\" calls on proper places in scheduler and share"},{"line_number":309,"context_line":"  services `[3]`_ and `[4]`_."},{"line_number":310,"context_line":"* Add a new \"manila-manage message delete-expired\" command for deleting expired"}],"source_content_type":"text/x-rst","patch_set":12,"id":"bff0334d_02573f5a","line":307,"range":{"start_line":307,"start_character":0,"end_line":307,"end_character":42},"updated":"2017-04-11 00:16:15.000000000","message":"Is Horizon (manila-ui) support planned?","commit_id":"a64c2d4b7636ed25f5b28f3e855cd53b731f6abf"},{"author":{"_account_id":23083,"name":"TommyLike","email":"tommylikehu@gmail.com","username":"TommyLike"},"change_message_id":"2c0ea530ee57cac4586758e871372327adbeb73b","unresolved":false,"context_lines":[{"line_number":304,"context_line":""},{"line_number":305,"context_line":"* Add new database table and migration for storing messages."},{"line_number":306,"context_line":"* Add /messages API `[1]`_."},{"line_number":307,"context_line":"* Extend CLI with message commands `[2]`_."},{"line_number":308,"context_line":"* Add \"message create\" calls on proper places in scheduler and share"},{"line_number":309,"context_line":"  services `[3]`_ and `[4]`_."},{"line_number":310,"context_line":"* Add a new \"manila-manage message delete-expired\" command for deleting expired"}],"source_content_type":"text/x-rst","patch_set":12,"id":"bff0334d_b860c2d0","line":307,"range":{"start_line":307,"start_character":0,"end_line":307,"end_character":42},"in_reply_to":"bff0334d_02573f5a","updated":"2017-04-11 02:15:11.000000000","message":"+1","commit_id":"a64c2d4b7636ed25f5b28f3e855cd53b731f6abf"},{"author":{"_account_id":7582,"name":"Jan Provaznik","email":"jan.provaznik@gmail.com","username":"jprovazn"},"change_message_id":"aeaf883b71e9aed207e7d8c55a42d42a00a9703c","unresolved":false,"context_lines":[{"line_number":304,"context_line":""},{"line_number":305,"context_line":"* Add new database table and migration for storing messages."},{"line_number":306,"context_line":"* Add /messages API `[1]`_."},{"line_number":307,"context_line":"* Extend CLI with message commands `[2]`_."},{"line_number":308,"context_line":"* Add \"message create\" calls on proper places in scheduler and share"},{"line_number":309,"context_line":"  services `[3]`_ and `[4]`_."},{"line_number":310,"context_line":"* Add a new \"manila-manage message delete-expired\" command for deleting expired"}],"source_content_type":"text/x-rst","patch_set":12,"id":"bff0334d_920cb6ec","line":307,"range":{"start_line":307,"start_character":0,"end_line":307,"end_character":42},"in_reply_to":"bff0334d_b860c2d0","updated":"2017-04-11 07:47:35.000000000","message":"Well, I didn\u0027t plan to include horizon in this spec, but you are right that for sake of completeness it should be here. Added.","commit_id":"a64c2d4b7636ed25f5b28f3e855cd53b731f6abf"}]}
