)]}'
{"specs/mitaka/user_messages.rst":[{"author":{"_account_id":11865,"name":"Clinton Knight","email":"cknight@netapp.com","username":"cknight"},"change_message_id":"0fba635f9c39a7b33d3740ed3bbf29da9e638f61","unresolved":false,"context_lines":[{"line_number":40,"context_line":""},{"line_number":41,"context_line":"The proposed change is to add a new experimental /v3/\u003ctenant\u003e/messages API"},{"line_number":42,"context_line":"resource backed by a messages table in the Cinder DB. This endpoint will"},{"line_number":43,"context_line":"return a list error messages that are intended for the end-user regarding"},{"line_number":44,"context_line":"failed asynchronous operations."},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"In short:"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7a5de9d1_231cd276","line":43,"range":{"start_line":43,"start_character":14,"end_line":43,"end_character":19},"updated":"2016-02-02 15:24:39.000000000","message":"\"list of error messages\"","commit_id":"f8ab0e382144111802fd720e4de2b4d62e0a8c61"},{"author":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"change_message_id":"a763005dd25d71c438f4bc289aac2e109303c978","unresolved":false,"context_lines":[{"line_number":40,"context_line":""},{"line_number":41,"context_line":"The proposed change is to add a new experimental /v3/\u003ctenant\u003e/messages API"},{"line_number":42,"context_line":"resource backed by a messages table in the Cinder DB. This endpoint will"},{"line_number":43,"context_line":"return a list error messages that are intended for the end-user regarding"},{"line_number":44,"context_line":"failed asynchronous operations."},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"In short:"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7a5de9d1_1b9d7e59","line":43,"range":{"start_line":43,"start_character":14,"end_line":43,"end_character":19},"in_reply_to":"7a5de9d1_231cd276","updated":"2016-02-02 15:45:56.000000000","message":"Done","commit_id":"f8ab0e382144111802fd720e4de2b4d62e0a8c61"},{"author":{"_account_id":11865,"name":"Clinton Knight","email":"cknight@netapp.com","username":"cknight"},"change_message_id":"0fba635f9c39a7b33d3740ed3bbf29da9e638f61","unresolved":false,"context_lines":[{"line_number":52,"context_line":"------------"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"* User facing notifications"},{"line_number":55,"context_line":"  Use the existing notification framework in combination with an amqp"},{"line_number":56,"context_line":"  consumer to pull messages off and provide and endpoint for the user."},{"line_number":57,"context_line":"  Faults with this approach are that we do not want to display the current"},{"line_number":58,"context_line":"  information in notifications to the user and it will require many more"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7a5de9d1_ce55e5fa","line":55,"range":{"start_line":55,"start_character":65,"end_line":55,"end_character":69},"updated":"2016-02-02 15:24:39.000000000","message":"s/amqp/AMQP/","commit_id":"f8ab0e382144111802fd720e4de2b4d62e0a8c61"},{"author":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"change_message_id":"a763005dd25d71c438f4bc289aac2e109303c978","unresolved":false,"context_lines":[{"line_number":52,"context_line":"------------"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"* User facing notifications"},{"line_number":55,"context_line":"  Use the existing notification framework in combination with an amqp"},{"line_number":56,"context_line":"  consumer to pull messages off and provide and endpoint for the user."},{"line_number":57,"context_line":"  Faults with this approach are that we do not want to display the current"},{"line_number":58,"context_line":"  information in notifications to the user and it will require many more"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7a5de9d1_5bba16c2","line":55,"range":{"start_line":55,"start_character":65,"end_line":55,"end_character":69},"in_reply_to":"7a5de9d1_ce55e5fa","updated":"2016-02-02 15:45:56.000000000","message":"Done","commit_id":"f8ab0e382144111802fd720e4de2b4d62e0a8c61"},{"author":{"_account_id":11865,"name":"Clinton Knight","email":"cknight@netapp.com","username":"cknight"},"change_message_id":"0fba635f9c39a7b33d3740ed3bbf29da9e638f61","unresolved":false,"context_lines":[{"line_number":53,"context_line":""},{"line_number":54,"context_line":"* User facing notifications"},{"line_number":55,"context_line":"  Use the existing notification framework in combination with an amqp"},{"line_number":56,"context_line":"  consumer to pull messages off and provide and endpoint for the user."},{"line_number":57,"context_line":"  Faults with this approach are that we do not want to display the current"},{"line_number":58,"context_line":"  information in notifications to the user and it will require many more"},{"line_number":59,"context_line":"  services as dependencies."}],"source_content_type":"text/x-rst","patch_set":1,"id":"7a5de9d1_ae6429e5","line":56,"range":{"start_line":56,"start_character":44,"end_line":56,"end_character":47},"updated":"2016-02-02 15:24:39.000000000","message":"an endpoint","commit_id":"f8ab0e382144111802fd720e4de2b4d62e0a8c61"},{"author":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"change_message_id":"a763005dd25d71c438f4bc289aac2e109303c978","unresolved":false,"context_lines":[{"line_number":53,"context_line":""},{"line_number":54,"context_line":"* User facing notifications"},{"line_number":55,"context_line":"  Use the existing notification framework in combination with an amqp"},{"line_number":56,"context_line":"  consumer to pull messages off and provide and endpoint for the user."},{"line_number":57,"context_line":"  Faults with this approach are that we do not want to display the current"},{"line_number":58,"context_line":"  information in notifications to the user and it will require many more"},{"line_number":59,"context_line":"  services as dependencies."}],"source_content_type":"text/x-rst","patch_set":1,"id":"7a5de9d1_fbae6280","line":56,"range":{"start_line":56,"start_character":44,"end_line":56,"end_character":47},"in_reply_to":"7a5de9d1_ae6429e5","updated":"2016-02-02 15:45:56.000000000","message":"Done","commit_id":"f8ab0e382144111802fd720e4de2b4d62e0a8c61"},{"author":{"_account_id":11865,"name":"Clinton Knight","email":"cknight@netapp.com","username":"cknight"},"change_message_id":"0fba635f9c39a7b33d3740ed3bbf29da9e638f61","unresolved":false,"context_lines":[{"line_number":66,"context_line":"  every resource must add /faults in order to support messages."},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"* Exposing user messages via a separate service (such as Zaqar)"},{"line_number":69,"context_line":"  This approach suggest storing user messages in another service that the"},{"line_number":70,"context_line":"  user could query for messages or the service could utilize webhooks to"},{"line_number":71,"context_line":"  notify the user. One major drawback to this approach is the complexity"},{"line_number":72,"context_line":"  in writing bindings for the separate service(s) and the need for a"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7a5de9d1_0ee8dd15","line":69,"range":{"start_line":69,"start_character":16,"end_line":69,"end_character":23},"updated":"2016-02-02 15:24:39.000000000","message":"suggests","commit_id":"f8ab0e382144111802fd720e4de2b4d62e0a8c61"},{"author":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"change_message_id":"a763005dd25d71c438f4bc289aac2e109303c978","unresolved":false,"context_lines":[{"line_number":66,"context_line":"  every resource must add /faults in order to support messages."},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"* Exposing user messages via a separate service (such as Zaqar)"},{"line_number":69,"context_line":"  This approach suggest storing user messages in another service that the"},{"line_number":70,"context_line":"  user could query for messages or the service could utilize webhooks to"},{"line_number":71,"context_line":"  notify the user. One major drawback to this approach is the complexity"},{"line_number":72,"context_line":"  in writing bindings for the separate service(s) and the need for a"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7a5de9d1_3bdcfa17","line":69,"range":{"start_line":69,"start_character":16,"end_line":69,"end_character":23},"in_reply_to":"7a5de9d1_0ee8dd15","updated":"2016-02-02 15:45:56.000000000","message":"Done","commit_id":"f8ab0e382144111802fd720e4de2b4d62e0a8c61"},{"author":{"_account_id":11865,"name":"Clinton Knight","email":"cknight@netapp.com","username":"cknight"},"change_message_id":"0fba635f9c39a7b33d3740ed3bbf29da9e638f61","unresolved":false,"context_lines":[{"line_number":83,"context_line":"REST API impact"},{"line_number":84,"context_line":"---------------"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"New experimental apis:"},{"line_number":87,"context_line":"* GET /v3/\u003ctenant\u003e/messages"},{"line_number":88,"context_line":"  With filters by attribute. Ex: GET /v3/\u003ctenant\u003e/messages?resource_type\u003dvolume"},{"line_number":89,"context_line":"* GET /v3/\u003ctenant\u003e/messages/\u003cmessage-id\u003e"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7a5de9d1_8e4a8d26","line":86,"range":{"start_line":86,"start_character":17,"end_line":86,"end_character":21},"updated":"2016-02-02 15:24:39.000000000","message":"s/apis/APIs/","commit_id":"f8ab0e382144111802fd720e4de2b4d62e0a8c61"},{"author":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"change_message_id":"a763005dd25d71c438f4bc289aac2e109303c978","unresolved":false,"context_lines":[{"line_number":83,"context_line":"REST API impact"},{"line_number":84,"context_line":"---------------"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"New experimental apis:"},{"line_number":87,"context_line":"* GET /v3/\u003ctenant\u003e/messages"},{"line_number":88,"context_line":"  With filters by attribute. Ex: GET /v3/\u003ctenant\u003e/messages?resource_type\u003dvolume"},{"line_number":89,"context_line":"* GET /v3/\u003ctenant\u003e/messages/\u003cmessage-id\u003e"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7a5de9d1_1beb3eb2","line":86,"range":{"start_line":86,"start_character":17,"end_line":86,"end_character":21},"in_reply_to":"7a5de9d1_8e4a8d26","updated":"2016-02-02 15:45:56.000000000","message":"Done","commit_id":"f8ab0e382144111802fd720e4de2b4d62e0a8c61"},{"author":{"_account_id":11865,"name":"Clinton Knight","email":"cknight@netapp.com","username":"cknight"},"change_message_id":"0fba635f9c39a7b33d3740ed3bbf29da9e638f61","unresolved":false,"context_lines":[{"line_number":89,"context_line":"* GET /v3/\u003ctenant\u003e/messages/\u003cmessage-id\u003e"},{"line_number":90,"context_line":"* DELETE /v3/\u003ctenant\u003e/messages/\u003cmessage-id\u003e"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"Message schema ::"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"  Message:"},{"line_number":95,"context_line":"    type: object"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7a5de9d1_c9c87fab","line":92,"range":{"start_line":92,"start_character":0,"end_line":92,"end_character":7},"updated":"2016-02-02 15:24:39.000000000","message":"Is there no notion of severity?  I realize you\u0027re starting with only error conditions, but since you\u0027ve called it \u0027Cinder user messages\u0027 and not \u0027Cinder user error messages\u0027, it might be good to be a tad more flexible.  If you do add a severity field, that would be a useful filter attribute.","commit_id":"f8ab0e382144111802fd720e4de2b4d62e0a8c61"},{"author":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"change_message_id":"a763005dd25d71c438f4bc289aac2e109303c978","unresolved":false,"context_lines":[{"line_number":89,"context_line":"* GET /v3/\u003ctenant\u003e/messages/\u003cmessage-id\u003e"},{"line_number":90,"context_line":"* DELETE /v3/\u003ctenant\u003e/messages/\u003cmessage-id\u003e"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"Message schema ::"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"  Message:"},{"line_number":95,"context_line":"    type: object"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7a5de9d1_3b04fac4","line":92,"range":{"start_line":92,"start_character":0,"end_line":92,"end_character":7},"in_reply_to":"7a5de9d1_c9c87fab","updated":"2016-02-02 15:45:56.000000000","message":"Actually had a similar thought on the drive in this morning. We can always add one later, but may be good to just add one now. Maybe we should be consistent with notifications and call it \u0027priority\u0027. like INFO, ERROR, etc.","commit_id":"f8ab0e382144111802fd720e4de2b4d62e0a8c61"},{"author":{"_account_id":11865,"name":"Clinton Knight","email":"cknight@netapp.com","username":"cknight"},"change_message_id":"0fba635f9c39a7b33d3740ed3bbf29da9e638f61","unresolved":false,"context_lines":[{"line_number":129,"context_line":""},{"line_number":130,"context_line":"Messages must be highly scrutinized before becoming visible to the user in"},{"line_number":131,"context_line":"order to avoid any sensitive data from being shown. This will be mitigated by"},{"line_number":132,"context_line":"having all user visible messages defined in a single module."},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"Notifications impact"},{"line_number":135,"context_line":"--------------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7a5de9d1_4ec7b564","line":132,"range":{"start_line":132,"start_character":59,"end_line":132,"end_character":60},"updated":"2016-02-02 15:24:39.000000000","message":"I would mention your idea that the messages mechanism will refuse to use any message that isn\u0027t in the one sanctioned location.","commit_id":"f8ab0e382144111802fd720e4de2b4d62e0a8c61"},{"author":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"change_message_id":"a763005dd25d71c438f4bc289aac2e109303c978","unresolved":false,"context_lines":[{"line_number":129,"context_line":""},{"line_number":130,"context_line":"Messages must be highly scrutinized before becoming visible to the user in"},{"line_number":131,"context_line":"order to avoid any sensitive data from being shown. This will be mitigated by"},{"line_number":132,"context_line":"having all user visible messages defined in a single module."},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"Notifications impact"},{"line_number":135,"context_line":"--------------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7a5de9d1_9b9bae72","line":132,"range":{"start_line":132,"start_character":59,"end_line":132,"end_character":60},"in_reply_to":"7a5de9d1_4ec7b564","updated":"2016-02-02 15:45:56.000000000","message":"Done","commit_id":"f8ab0e382144111802fd720e4de2b4d62e0a8c61"},{"author":{"_account_id":11865,"name":"Clinton Knight","email":"cknight@netapp.com","username":"cknight"},"change_message_id":"0fba635f9c39a7b33d3740ed3bbf29da9e638f61","unresolved":false,"context_lines":[{"line_number":213,"context_line":""},{"line_number":214,"context_line":"* REST API documentation"},{"line_number":215,"context_line":"* New config option, ``message_ttl`` (time to live)"},{"line_number":216,"context_line":"* New api policies for messages"},{"line_number":217,"context_line":""},{"line_number":218,"context_line":"References"},{"line_number":219,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7a5de9d1_6eff11ab","line":216,"range":{"start_line":216,"start_character":6,"end_line":216,"end_character":9},"updated":"2016-02-02 15:24:39.000000000","message":"s/api/API/","commit_id":"f8ab0e382144111802fd720e4de2b4d62e0a8c61"},{"author":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"change_message_id":"a763005dd25d71c438f4bc289aac2e109303c978","unresolved":false,"context_lines":[{"line_number":213,"context_line":""},{"line_number":214,"context_line":"* REST API documentation"},{"line_number":215,"context_line":"* New config option, ``message_ttl`` (time to live)"},{"line_number":216,"context_line":"* New api policies for messages"},{"line_number":217,"context_line":""},{"line_number":218,"context_line":"References"},{"line_number":219,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7a5de9d1_fbfc2274","line":216,"range":{"start_line":216,"start_character":6,"end_line":216,"end_character":9},"in_reply_to":"7a5de9d1_6eff11ab","updated":"2016-02-02 15:45:56.000000000","message":"Done","commit_id":"f8ab0e382144111802fd720e4de2b4d62e0a8c61"},{"author":{"_account_id":1207,"name":"Duncan Thomas","email":"duncan.thomas@gmail.com","username":"duncan-thomas"},"change_message_id":"3af5f139b603c775028301012aad28a21898019c","unresolved":false,"context_lines":[{"line_number":165,"context_line":"* The messages table will be potentially large and may be reaped based on"},{"line_number":166,"context_line":"  the \u0027guaranteed_until\u0027 column. Where all messages with a"},{"line_number":167,"context_line":"  ``guaranteed_until`` date earlier than the current time can be safely"},{"line_number":168,"context_line":"  deleted."},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"Developer impact"},{"line_number":171,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"5a5ae5dd_72c125e4","line":168,"range":{"start_line":168,"start_character":9,"end_line":168,"end_character":10},"updated":"2016-02-03 15:53:54.000000000","message":"We should provide a script for this - deletion should be batched so that the DB is not locked for too long - basically repeatedly call \u0027delete * from messages where guarenteed_until \u003e NOW() count 100\u0027 repeatedly until it returns less than 100.","commit_id":"e6531658217ed4ff512b464cf03b24945dbf8a42"},{"author":{"_account_id":1207,"name":"Duncan Thomas","email":"duncan.thomas@gmail.com","username":"duncan-thomas"},"change_message_id":"c8932b740e07bdbe5aeeba5b9770631541f5f988","unresolved":false,"context_lines":[{"line_number":165,"context_line":"* The messages table will be potentially large and may be reaped based on"},{"line_number":166,"context_line":"  the \u0027guaranteed_until\u0027 column. Where all messages with a"},{"line_number":167,"context_line":"  ``guaranteed_until`` date earlier than the current time can be safely"},{"line_number":168,"context_line":"  deleted."},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"Developer impact"},{"line_number":171,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"5a5ae5dd_c6528e13","line":168,"range":{"start_line":168,"start_character":9,"end_line":168,"end_character":10},"in_reply_to":"5a5ae5dd_0bef4fe9","updated":"2016-02-03 19:55:12.000000000","message":"I can\u0027 think of an obvious one, except that you don\u0027t want too many entities doing it all the time due to db load.","commit_id":"e6531658217ed4ff512b464cf03b24945dbf8a42"},{"author":{"_account_id":11865,"name":"Clinton Knight","email":"cknight@netapp.com","username":"cknight"},"change_message_id":"bc6430103f6cee59feb7450f236a7de5174977b1","unresolved":false,"context_lines":[{"line_number":165,"context_line":"* The messages table will be potentially large and may be reaped based on"},{"line_number":166,"context_line":"  the \u0027guaranteed_until\u0027 column. Where all messages with a"},{"line_number":167,"context_line":"  ``guaranteed_until`` date earlier than the current time can be safely"},{"line_number":168,"context_line":"  deleted."},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"Developer impact"},{"line_number":171,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"5a5ae5dd_75eeef23","line":168,"range":{"start_line":168,"start_character":9,"end_line":168,"end_character":10},"in_reply_to":"5a5ae5dd_72c125e4","updated":"2016-02-03 15:58:07.000000000","message":"@Duncan:  It seems this is just one more thing for the admin to do.  Should this be done on a configurable frequency within one of the Cinder services?  Or if it\u0027s a script, shouldn\u0027t it go into \u0027cinder-manage\u0027?","commit_id":"e6531658217ed4ff512b464cf03b24945dbf8a42"},{"author":{"_account_id":1207,"name":"Duncan Thomas","email":"duncan.thomas@gmail.com","username":"duncan-thomas"},"change_message_id":"51dfa2935dfc1b7c8354d908c4fe2ad6cd7c5df9","unresolved":false,"context_lines":[{"line_number":165,"context_line":"* The messages table will be potentially large and may be reaped based on"},{"line_number":166,"context_line":"  the \u0027guaranteed_until\u0027 column. Where all messages with a"},{"line_number":167,"context_line":"  ``guaranteed_until`` date earlier than the current time can be safely"},{"line_number":168,"context_line":"  deleted."},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"Developer impact"},{"line_number":171,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"5a5ae5dd_b500e7ab","line":168,"range":{"start_line":168,"start_character":9,"end_line":168,"end_character":10},"in_reply_to":"5a5ae5dd_75eeef23","updated":"2016-02-03 16:00:25.000000000","message":"Yes, one or the other, or perhaps both. It should certainly not be left for the admin to write their own and discover all of the pain of locked dbs themselves.","commit_id":"e6531658217ed4ff512b464cf03b24945dbf8a42"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"fb4972ae68fc730d454890e61c89f1a2ddb7718f","unresolved":false,"context_lines":[{"line_number":165,"context_line":"* The messages table will be potentially large and may be reaped based on"},{"line_number":166,"context_line":"  the \u0027guaranteed_until\u0027 column. Where all messages with a"},{"line_number":167,"context_line":"  ``guaranteed_until`` date earlier than the current time can be safely"},{"line_number":168,"context_line":"  deleted."},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"Developer impact"},{"line_number":171,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"5a5ae5dd_0bef4fe9","line":168,"range":{"start_line":168,"start_character":9,"end_line":168,"end_character":10},"in_reply_to":"5a5ae5dd_b500e7ab","updated":"2016-02-03 19:35:06.000000000","message":"I was under the impression this would be done via a scheduled task every now and then from within Cinder itself that we turn on by default and that has a knob or two for time interval, etc.\n\nIs there any reason not to do that?","commit_id":"e6531658217ed4ff512b464cf03b24945dbf8a42"},{"author":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"change_message_id":"8c6ddf44111e60e8e6e0b07685fd406b27709225","unresolved":false,"context_lines":[{"line_number":165,"context_line":"* The messages table will be potentially large and may be reaped based on"},{"line_number":166,"context_line":"  the \u0027guaranteed_until\u0027 column. Where all messages with a"},{"line_number":167,"context_line":"  ``guaranteed_until`` date earlier than the current time can be safely"},{"line_number":168,"context_line":"  deleted."},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"Developer impact"},{"line_number":171,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"5a5ae5dd_40d0941f","line":168,"range":{"start_line":168,"start_character":9,"end_line":168,"end_character":10},"in_reply_to":"5a5ae5dd_c6528e13","updated":"2016-02-04 15:00:13.000000000","message":"We can certainly add this mechanism. I would want a way to turn it off completely in case I want to reap my own DB at opportune moments. I consider this icing on the cake but I\u0027ll add it to the plan.","commit_id":"e6531658217ed4ff512b464cf03b24945dbf8a42"},{"author":{"_account_id":1207,"name":"Duncan Thomas","email":"duncan.thomas@gmail.com","username":"duncan-thomas"},"change_message_id":"3af5f139b603c775028301012aad28a21898019c","unresolved":false,"context_lines":[{"line_number":196,"context_line":"API Microversions"},{"line_number":197,"context_line":"  https://blueprints.launchpad.net/cinder/+spec/cinder-api-microversions"},{"line_number":198,"context_line":"Experimental API"},{"line_number":199,"context_line":"  https://review.openstack.org/#/c/273086"},{"line_number":200,"context_line":""},{"line_number":201,"context_line":""},{"line_number":202,"context_line":"Testing"}],"source_content_type":"text/x-rst","patch_set":3,"id":"5a5ae5dd_724fe592","line":199,"range":{"start_line":199,"start_character":35,"end_line":199,"end_character":41},"updated":"2016-02-03 15:53:54.000000000","message":"I wouldn\u0027t gate this on experimental APIs. It was pretty unanimous that we want this at the meetup.","commit_id":"e6531658217ed4ff512b464cf03b24945dbf8a42"},{"author":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"change_message_id":"8c6ddf44111e60e8e6e0b07685fd406b27709225","unresolved":false,"context_lines":[{"line_number":196,"context_line":"API Microversions"},{"line_number":197,"context_line":"  https://blueprints.launchpad.net/cinder/+spec/cinder-api-microversions"},{"line_number":198,"context_line":"Experimental API"},{"line_number":199,"context_line":"  https://review.openstack.org/#/c/273086"},{"line_number":200,"context_line":""},{"line_number":201,"context_line":""},{"line_number":202,"context_line":"Testing"}],"source_content_type":"text/x-rst","patch_set":3,"id":"5a5ae5dd_00affc81","line":199,"range":{"start_line":199,"start_character":35,"end_line":199,"end_character":41},"in_reply_to":"5a5ae5dd_724fe592","updated":"2016-02-04 15:00:13.000000000","message":"I\u0027m fine with either. I thought we left off the discussion saying we would do experimental. I think the main benefit of experimental in this case is not whether we want the feature or not but being able to change the format of messages, the endpoint, etc. Without too much mess around microversions. If we are confident it won\u0027t change then we can carry on as a normal API.","commit_id":"e6531658217ed4ff512b464cf03b24945dbf8a42"},{"author":{"_account_id":1207,"name":"Duncan Thomas","email":"duncan.thomas@gmail.com","username":"duncan-thomas"},"change_message_id":"0195e2625f9fc5bd005b51b2fcaff4981bd954ce","unresolved":false,"context_lines":[{"line_number":164,"context_line":""},{"line_number":165,"context_line":"* New configuration option ``message_reap_interval`` that will dictate the"},{"line_number":166,"context_line":"  number of seconds between calls to delete old messages. A value of -1"},{"line_number":167,"context_line":"  will never run."},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"* The messages table will be potentially large and may be reaped based on"},{"line_number":170,"context_line":"  the \u0027guaranteed_until\u0027 column. Where all messages with a"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3a57f1b5_a66982c0","line":167,"range":{"start_line":167,"start_character":16,"end_line":167,"end_character":17},"updated":"2016-02-10 19:32:41.000000000","message":"DocImpact: Deployers should not set this on a large number of nodes, since too many nodes trying this delete at the same time will cause transaction bouncing and degraded DB performance. The batch size for deletes should be configurable too, picking a default of a few hundred.","commit_id":"e57e7930f9a2dde0278954b04ba3cec3469606bb"},{"author":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"change_message_id":"15f7792dd6c43c68ecb39d7f8f69074889196605","unresolved":false,"context_lines":[{"line_number":164,"context_line":""},{"line_number":165,"context_line":"* New configuration option ``message_reap_interval`` that will dictate the"},{"line_number":166,"context_line":"  number of seconds between calls to delete old messages. A value of -1"},{"line_number":167,"context_line":"  will never run."},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"* The messages table will be potentially large and may be reaped based on"},{"line_number":170,"context_line":"  the \u0027guaranteed_until\u0027 column. Where all messages with a"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3a57f1b5_92a59205","line":167,"range":{"start_line":167,"start_character":16,"end_line":167,"end_character":17},"in_reply_to":"3a57f1b5_a66982c0","updated":"2016-02-11 00:11:23.000000000","message":"agreed, i\u0027ll update. Thanks for the review","commit_id":"e57e7930f9a2dde0278954b04ba3cec3469606bb"},{"author":{"_account_id":1207,"name":"Duncan Thomas","email":"duncan.thomas@gmail.com","username":"duncan-thomas"},"change_message_id":"0195e2625f9fc5bd005b51b2fcaff4981bd954ce","unresolved":false,"context_lines":[{"line_number":194,"context_line":"* Tempest tests"},{"line_number":195,"context_line":"* Update API documentation"},{"line_number":196,"context_line":"* Add pagination to messages"},{"line_number":197,"context_line":"* Add mechanism to automatically reap expired messages in the db"},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"Dependencies"},{"line_number":200,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3a57f1b5_269cb2bf","line":197,"range":{"start_line":197,"start_character":62,"end_line":197,"end_character":64},"updated":"2016-02-10 19:32:41.000000000","message":"Add a command to cinder-manage to reap messages too","commit_id":"e57e7930f9a2dde0278954b04ba3cec3469606bb"},{"author":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"change_message_id":"15f7792dd6c43c68ecb39d7f8f69074889196605","unresolved":false,"context_lines":[{"line_number":194,"context_line":"* Tempest tests"},{"line_number":195,"context_line":"* Update API documentation"},{"line_number":196,"context_line":"* Add pagination to messages"},{"line_number":197,"context_line":"* Add mechanism to automatically reap expired messages in the db"},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"Dependencies"},{"line_number":200,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3a57f1b5_d29b0ac8","line":197,"range":{"start_line":197,"start_character":62,"end_line":197,"end_character":64},"in_reply_to":"3a57f1b5_269cb2bf","updated":"2016-02-11 00:11:23.000000000","message":"sounds good","commit_id":"e57e7930f9a2dde0278954b04ba3cec3469606bb"}],"specs/newton/user_messages.rst":[{"author":{"_account_id":11303,"name":"Markus Zoeller (markus_z)","email":"mzoeller@linux.vnet.ibm.com","username":"mzoeller"},"change_message_id":"01c6a3240c72765df574ec5a1495ecbbb6d78d61","unresolved":false,"context_lines":[{"line_number":85,"context_line":""},{"line_number":86,"context_line":"New experimental APIs:"},{"line_number":87,"context_line":"* GET /v3/\u003ctenant\u003e/messages"},{"line_number":88,"context_line":"  With filters by attribute. Ex: GET /v3/\u003ctenant\u003e/messages?resource_type\u003dvolume"},{"line_number":89,"context_line":"* GET /v3/\u003ctenant\u003e/messages/\u003cmessage-id\u003e"},{"line_number":90,"context_line":"* DELETE /v3/\u003ctenant\u003e/messages/\u003cmessage-id\u003e"},{"line_number":91,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"1a122d0e_ae07d41b","line":88,"updated":"2016-04-25 18:13:25.000000000","message":"You probably also want to consider:\n* an upper limit of messages to list and \n* maybe also a paging mechanism if the list is too long\nOtherwise it could happen that the API times out when the list of items is too long.","commit_id":"db9d6bc159f8915f136d3a01ad6cd181246efe0e"}]}
