)]}'
{"queue-producer.rst":[{"author":{"_account_id":10750,"name":"Jorge Miramontes","email":"jorge.miramontes@rackspace.com","username":"jorgem"},"change_message_id":"a7013537e72e799996c76f47e4a9a2da0b6a18b1","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":8,"context_line":"API Queue Producer"},{"line_number":9,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":10,"context_line":"Implement API handler to send operations to queue for Controller"},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Problem description"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a930d6b_3b1c4c13","line":9,"updated":"2015-01-23 17:24:59.000000000","message":"nit: Hacking rules usually state that the \u0027\u003d\u0027 separator is suppose to be lined up with the text. Brandon got on me for this in my spec.","commit_id":"1339aab6d1ce672e973591a39cf7f588f07d5e29"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"54fe3b740b8df9e3b3a015f77839c8b031f7eef8","unresolved":false,"context_lines":[{"line_number":10,"context_line":"Implement API handler to send operations to queue for Controller"},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Problem description"},{"line_number":13,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Proposed change"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a930d6b_efe06798","line":13,"updated":"2015-01-22 20:45:25.000000000","message":"It\u0027s kind of lame, I know, but you should probably put *something* in this section... Just generally describe what the goal is. Something like \"We need something to translate incoming API requests into queue messages to send to the controller\" would work.","commit_id":"1339aab6d1ce672e973591a39cf7f588f07d5e29"},{"author":{"_account_id":10750,"name":"Jorge Miramontes","email":"jorge.miramontes@rackspace.com","username":"jorgem"},"change_message_id":"a7013537e72e799996c76f47e4a9a2da0b6a18b1","unresolved":false,"context_lines":[{"line_number":10,"context_line":"Implement API handler to send operations to queue for Controller"},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Problem description"},{"line_number":13,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Proposed change"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a930d6b_fb456417","line":13,"in_reply_to":"1a930d6b_efe06798","updated":"2015-01-23 17:24:59.000000000","message":"I agree.","commit_id":"1339aab6d1ce672e973591a39cf7f588f07d5e29"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"54fe3b740b8df9e3b3a015f77839c8b031f7eef8","unresolved":false,"context_lines":[{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Proposed change"},{"line_number":17,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":18,"context_line":"use oslo.messaging to start a client that will send"},{"line_number":19,"context_line":"create update and delete instructions from the api to a remote \"Controller\""},{"line_number":20,"context_line":"process that may or may not be on a different host."},{"line_number":21,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a930d6b_cf2f2ba0","line":18,"updated":"2015-01-22 20:45:25.000000000","message":"Capitalize \"use\".","commit_id":"1339aab6d1ce672e973591a39cf7f588f07d5e29"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"54fe3b740b8df9e3b3a015f77839c8b031f7eef8","unresolved":false,"context_lines":[{"line_number":16,"context_line":"Proposed change"},{"line_number":17,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":18,"context_line":"use oslo.messaging to start a client that will send"},{"line_number":19,"context_line":"create update and delete instructions from the api to a remote \"Controller\""},{"line_number":20,"context_line":"process that may or may not be on a different host."},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"The developer of this blueprint should coordinate with the developer working on"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a930d6b_ef014707","line":19,"updated":"2015-01-22 20:45:25.000000000","message":"Add a comma after \"create\".\n\nCapitalize \"api\".","commit_id":"1339aab6d1ce672e973591a39cf7f588f07d5e29"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"54fe3b740b8df9e3b3a015f77839c8b031f7eef8","unresolved":false,"context_lines":[{"line_number":20,"context_line":"process that may or may not be on a different host."},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"The developer of this blueprint should coordinate with the developer working on"},{"line_number":23,"context_line":"the Queue Consumer implementation to agree on a"},{"line_number":24,"context_line":"oslo.messaging contract. as of right now the topic of the target will specify"},{"line_number":25,"context_line":"the class on the controller to issue Create Update, and Delete calls too."},{"line_number":26,"context_line":"Example the topic could be any of the following:"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a930d6b_ca1d5968","line":23,"updated":"2015-01-22 20:45:25.000000000","message":"\"a\" -\u003e \"an\"","commit_id":"1339aab6d1ce672e973591a39cf7f588f07d5e29"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"54fe3b740b8df9e3b3a015f77839c8b031f7eef8","unresolved":false,"context_lines":[{"line_number":21,"context_line":""},{"line_number":22,"context_line":"The developer of this blueprint should coordinate with the developer working on"},{"line_number":23,"context_line":"the Queue Consumer implementation to agree on a"},{"line_number":24,"context_line":"oslo.messaging contract. as of right now the topic of the target will specify"},{"line_number":25,"context_line":"the class on the controller to issue Create Update, and Delete calls too."},{"line_number":26,"context_line":"Example the topic could be any of the following:"},{"line_number":27,"context_line":"[LoadBalancer, Listener, Pool, HealthMonitor]. To create a loadbalancer you"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a930d6b_2a517d0e","line":24,"updated":"2015-01-22 20:45:25.000000000","message":"Capitalize \"as\" (or possibly remove \"as of right now\" and capitalize \"the\").","commit_id":"1339aab6d1ce672e973591a39cf7f588f07d5e29"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"54fe3b740b8df9e3b3a015f77839c8b031f7eef8","unresolved":false,"context_lines":[{"line_number":22,"context_line":"The developer of this blueprint should coordinate with the developer working on"},{"line_number":23,"context_line":"the Queue Consumer implementation to agree on a"},{"line_number":24,"context_line":"oslo.messaging contract. as of right now the topic of the target will specify"},{"line_number":25,"context_line":"the class on the controller to issue Create Update, and Delete calls too."},{"line_number":26,"context_line":"Example the topic could be any of the following:"},{"line_number":27,"context_line":"[LoadBalancer, Listener, Pool, HealthMonitor]. To create a loadbalancer you"},{"line_number":28,"context_line":"would set the topic to LoadBalacer and set the method to create. The id will be"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a930d6b_ea46954e","line":25,"updated":"2015-01-22 20:45:25.000000000","message":"Add a comma after \"Create\".\n\nRemove the word \"too\" from the end of the sentence.","commit_id":"1339aab6d1ce672e973591a39cf7f588f07d5e29"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"54fe3b740b8df9e3b3a015f77839c8b031f7eef8","unresolved":false,"context_lines":[{"line_number":23,"context_line":"the Queue Consumer implementation to agree on a"},{"line_number":24,"context_line":"oslo.messaging contract. as of right now the topic of the target will specify"},{"line_number":25,"context_line":"the class on the controller to issue Create Update, and Delete calls too."},{"line_number":26,"context_line":"Example the topic could be any of the following:"},{"line_number":27,"context_line":"[LoadBalancer, Listener, Pool, HealthMonitor]. To create a loadbalancer you"},{"line_number":28,"context_line":"would set the topic to LoadBalacer and set the method to create. The id will be"},{"line_number":29,"context_line":"passed as a keyword argument in the rpc call."}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a930d6b_4a6fa9c5","line":26,"updated":"2015-01-22 20:45:25.000000000","message":"\"For example, the topic\"","commit_id":"1339aab6d1ce672e973591a39cf7f588f07d5e29"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"54fe3b740b8df9e3b3a015f77839c8b031f7eef8","unresolved":false,"context_lines":[{"line_number":24,"context_line":"oslo.messaging contract. as of right now the topic of the target will specify"},{"line_number":25,"context_line":"the class on the controller to issue Create Update, and Delete calls too."},{"line_number":26,"context_line":"Example the topic could be any of the following:"},{"line_number":27,"context_line":"[LoadBalancer, Listener, Pool, HealthMonitor]. To create a loadbalancer you"},{"line_number":28,"context_line":"would set the topic to LoadBalacer and set the method to create. The id will be"},{"line_number":29,"context_line":"passed as a keyword argument in the rpc call."},{"line_number":30,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a930d6b_aaaacdcf","line":27,"updated":"2015-01-22 20:45:25.000000000","message":"You should probably do this with an RST formatted list:\n\n* LoadBalancer\n* Listener\n* Pool\n* HealthMonitor","commit_id":"1339aab6d1ce672e973591a39cf7f588f07d5e29"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"54fe3b740b8df9e3b3a015f77839c8b031f7eef8","unresolved":false,"context_lines":[{"line_number":25,"context_line":"the class on the controller to issue Create Update, and Delete calls too."},{"line_number":26,"context_line":"Example the topic could be any of the following:"},{"line_number":27,"context_line":"[LoadBalancer, Listener, Pool, HealthMonitor]. To create a loadbalancer you"},{"line_number":28,"context_line":"would set the topic to LoadBalacer and set the method to create. The id will be"},{"line_number":29,"context_line":"passed as a keyword argument in the rpc call."},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a930d6b_ea8bf565","line":28,"updated":"2015-01-22 20:45:25.000000000","message":"Typo: \"LoadBalacer\" -\u003e \"LoadBalancer\"","commit_id":"1339aab6d1ce672e973591a39cf7f588f07d5e29"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"54fe3b740b8df9e3b3a015f77839c8b031f7eef8","unresolved":false,"context_lines":[{"line_number":26,"context_line":"Example the topic could be any of the following:"},{"line_number":27,"context_line":"[LoadBalancer, Listener, Pool, HealthMonitor]. To create a loadbalancer you"},{"line_number":28,"context_line":"would set the topic to LoadBalacer and set the method to create. The id will be"},{"line_number":29,"context_line":"passed as a keyword argument in the rpc call."},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"Alternatives"},{"line_number":32,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a930d6b_0a5f61e6","line":29,"updated":"2015-01-22 20:45:25.000000000","message":"Capitalize RPC (it\u0027s an acronym), remove \"call\" (it is redundant).","commit_id":"1339aab6d1ce672e973591a39cf7f588f07d5e29"},{"author":{"_account_id":10750,"name":"Jorge Miramontes","email":"jorge.miramontes@rackspace.com","username":"jorgem"},"change_message_id":"a7013537e72e799996c76f47e4a9a2da0b6a18b1","unresolved":false,"context_lines":[{"line_number":27,"context_line":"[LoadBalancer, Listener, Pool, HealthMonitor]. To create a loadbalancer you"},{"line_number":28,"context_line":"would set the topic to LoadBalacer and set the method to create. The id will be"},{"line_number":29,"context_line":"passed as a keyword argument in the rpc call."},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"Alternatives"},{"line_number":32,"context_line":"------------"},{"line_number":33,"context_line":"None"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a930d6b_11977191","line":30,"updated":"2015-01-23 17:24:59.000000000","message":"Please specify \u0027OCTAVIA_PROV\u0027 as the topic you will be sending to based on the fact that the queue consumer is a dependency","commit_id":"1339aab6d1ce672e973591a39cf7f588f07d5e29"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"54fe3b740b8df9e3b3a015f77839c8b031f7eef8","unresolved":false,"context_lines":[{"line_number":42,"context_line":""},{"line_number":43,"context_line":"Security impact"},{"line_number":44,"context_line":"---------------"},{"line_number":45,"context_line":"None at the moment. But operators should consider configuering their"},{"line_number":46,"context_line":"backend Queue system to use SSL. As this is transparent to oslo.messaging"},{"line_number":47,"context_line":"it will be up to the operators to configure this."},{"line_number":48,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a930d6b_6ab8e5e5","line":45,"updated":"2015-01-22 20:45:25.000000000","message":"I would just say \"Operators should consider configuring their backend Queue system to use SSL.\" and remove \"None at the moment.\".\n\nTypo: \"configuering\" -\u003e \"configuring\"","commit_id":"1339aab6d1ce672e973591a39cf7f588f07d5e29"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"54fe3b740b8df9e3b3a015f77839c8b031f7eef8","unresolved":false,"context_lines":[{"line_number":88,"context_line":"For every Class [LoadBalancer, Listener, Pool, HealthMonitor] create"},{"line_number":89,"context_line":"a client class that has [create, update, delete ] methods that instances will"},{"line_number":90,"context_line":"use to communicate with the Queue. Create a QueueClient class that will use"},{"line_number":91,"context_line":"use class variables to hold instances of those Handler classes defined above."},{"line_number":92,"context_line":"Then the API can reference those instances via the class attributes."},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"Dependencies"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a930d6b_0aa201ae","line":91,"updated":"2015-01-22 20:45:25.000000000","message":"\"use\" is repeated here (both the end of the last line and the beginning of this one).","commit_id":"1339aab6d1ce672e973591a39cf7f588f07d5e29"},{"author":{"_account_id":10750,"name":"Jorge Miramontes","email":"jorge.miramontes@rackspace.com","username":"jorgem"},"change_message_id":"a7013537e72e799996c76f47e4a9a2da0b6a18b1","unresolved":false,"context_lines":[{"line_number":93,"context_line":""},{"line_number":94,"context_line":"Dependencies"},{"line_number":95,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":96,"context_line":"None"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"Testing"},{"line_number":99,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a930d6b_1bdeb06d","line":96,"updated":"2015-01-23 17:24:59.000000000","message":"I\u0027d put my spec as a dependency as you are dependent on the topic I choose.\n\nhttps://blueprints.launchpad.net/octavia/+spec/queue-consumer","commit_id":"1339aab6d1ce672e973591a39cf7f588f07d5e29"},{"author":{"_account_id":10750,"name":"Jorge Miramontes","email":"jorge.miramontes@rackspace.com","username":"jorgem"},"change_message_id":"a7013537e72e799996c76f47e4a9a2da0b6a18b1","unresolved":false,"context_lines":[{"line_number":96,"context_line":"None"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"Testing"},{"line_number":99,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"Documentation Impact"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a930d6b_bb9f5cb3","line":99,"updated":"2015-01-23 17:24:59.000000000","message":"No unit tests?","commit_id":"1339aab6d1ce672e973591a39cf7f588f07d5e29"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"54fe3b740b8df9e3b3a015f77839c8b031f7eef8","unresolved":false,"context_lines":[{"line_number":105,"context_line":""},{"line_number":106,"context_line":"References"},{"line_number":107,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":108,"context_line":"https://review.openstack.org/#/c/147699 (Queue Producer)"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a930d6b_4a832904","line":108,"updated":"2015-01-22 20:45:25.000000000","message":"This is a link to the Queue Consumer (not the Queue Producer).","commit_id":"1339aab6d1ce672e973591a39cf7f588f07d5e29"}],"specs/version0.5/api-to-oslo-messaging-handler.rst":[{"author":{"_account_id":6951,"name":"Brandon Logan","email":"brandon.logan@rackspace.com","username":"brandon-logan"},"change_message_id":"561f358b1d72d0bdd83943426e2cf43023f2527f","unresolved":false,"context_lines":[{"line_number":19,"context_line":"create update and delete instructions for api requests. get requests"},{"line_number":20,"context_line":"will not need to go through the Queue system. The Queue system should"},{"line_number":21,"context_line":"be able to throttle the number of active operations the controller is"},{"line_number":22,"context_line":"working on."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"Alternatives"},{"line_number":25,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a961159_caaa1619","line":22,"updated":"2015-01-19 05:08:09.000000000","message":"This sounds like you\u0027re creating the consumer end of the queue.  This spec should just be responsible for sending messages to the queue through oslo.messaging","commit_id":"137e7b0082fb3d4ae9b33d78c789225f4d55d497"},{"author":{"_account_id":6951,"name":"Brandon Logan","email":"brandon.logan@rackspace.com","username":"brandon-logan"},"change_message_id":"405cd41a2d4913e6351f5370fc5fcda4150ce36f","unresolved":false,"context_lines":[{"line_number":5,"context_line":" http://creativecommons.org/licenses/by/3.0/legalcode"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":8,"context_line":"Title of your blueprint"},{"line_number":9,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":10,"context_line":"Implement API handler to send operations to queue for Controller"},{"line_number":11,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a961159_c242bdaa","line":8,"updated":"2015-01-20 18:42:21.000000000","message":"Need a title here.","commit_id":"d464ffb2f0807a7ff51acdc9937e9e49d0ff25bb"},{"author":{"_account_id":6951,"name":"Brandon Logan","email":"brandon.logan@rackspace.com","username":"brandon-logan"},"change_message_id":"405cd41a2d4913e6351f5370fc5fcda4150ce36f","unresolved":false,"context_lines":[{"line_number":52,"context_line":""},{"line_number":53,"context_line":"Other deployer impact"},{"line_number":54,"context_line":"---------------------"},{"line_number":55,"context_line":"None"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"Developer impact"},{"line_number":58,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a961159_420b2d24","line":55,"updated":"2015-01-20 18:42:21.000000000","message":"This should list the config options that will be required for this to run.","commit_id":"d464ffb2f0807a7ff51acdc9937e9e49d0ff25bb"},{"author":{"_account_id":6951,"name":"Brandon Logan","email":"brandon.logan@rackspace.com","username":"brandon-logan"},"change_message_id":"405cd41a2d4913e6351f5370fc5fcda4150ce36f","unresolved":false,"context_lines":[{"line_number":63,"context_line":"Example the topic could be any of the following:"},{"line_number":64,"context_line":"[LoadBalancer, Listener, Pool, HealthMonitor]. To create a loadbalancer you"},{"line_number":65,"context_line":"would set the topic to LoadBalacer and set the method to create. The id will be"},{"line_number":66,"context_line":"passed as a keyword argument in the rpc call."},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"Implementation"},{"line_number":69,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a961159_2279c182","line":66,"updated":"2015-01-20 18:42:21.000000000","message":"Since the consumer side of this will define the contract, its probably best to just remove the contents of this section and say in the proposed change that you will follow the contract set forth by the API Manager, and then link the spec in the References in the bottom section.","commit_id":"d464ffb2f0807a7ff51acdc9937e9e49d0ff25bb"}],"specs/version0.5/queue-producer.rst":[{"author":{"_account_id":6951,"name":"Brandon Logan","email":"brandon.logan@rackspace.com","username":"brandon-logan"},"change_message_id":"9f81bf5499c76e095e0e9110e3757fdf48b5a769","unresolved":false,"context_lines":[{"line_number":13,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":14,"context_line":"The api will need a mechanism to communicate when it needs the controller"},{"line_number":15,"context_line":"to create, update or delete a resource. Ideally this would need to be done in"},{"line_number":16,"context_line":"a throttleable way over some queuing system."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Proposed change"},{"line_number":19,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":6,"id":"1a930d6b_a9e516dd","line":16,"updated":"2015-01-26 20:23:20.000000000","message":"Add another paragraph mentioning the change to the API on object updates that will require sending the desired user state of the object to the queue.","commit_id":"e46ef16fc3e3142e9c122a452f7cad4825fb83ac"},{"author":{"_account_id":6951,"name":"Brandon Logan","email":"brandon.logan@rackspace.com","username":"brandon-logan"},"change_message_id":"9f81bf5499c76e095e0e9110e3757fdf48b5a769","unresolved":false,"context_lines":[{"line_number":24,"context_line":"The developer of this blueprint should coordinate with the developer working on"},{"line_number":25,"context_line":"the Queue Consumer implementation to agree on a oslo.messaging contract. The"},{"line_number":26,"context_line":"agreed queue topic that both the producer and consumer will use is"},{"line_number":27,"context_line":"\"OCTAVIA_PROV\"."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"Alternatives"},{"line_number":30,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":6,"id":"1a930d6b_692deefd","line":27,"updated":"2015-01-26 20:23:20.000000000","message":"Add another prograph stating that API updates (PUTs) will cause the desired user state of objects to go through the queue instead of immediately being written to the database at the API level.","commit_id":"e46ef16fc3e3142e9c122a452f7cad4825fb83ac"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"f7795efdf762303485aea64dbe156e055de0af1c","unresolved":false,"context_lines":[{"line_number":29,"context_line":"the configuration will need to be in agreement on bother the producer(API) and"},{"line_number":30,"context_line":"consumer(controller) side."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"The api will not be persisting updates to the database. The controller when"},{"line_number":33,"context_line":"it is done with an update will store the new state to the database. To"},{"line_number":34,"context_line":"accomplish this rpc calls to  \\*_update will add a delta dictionary as"},{"line_number":35,"context_line":"parameter right before the resource_id parameter."}],"source_content_type":"text/x-rst","patch_set":11,"id":"1a930d6b_a8bd0704","line":32,"updated":"2015-01-27 01:12:00.000000000","message":"Shouldn\u0027t the API be able to update things like renames?  Do we need to send updates to the controller if they don\u0027t materially change the configuration of an Amphora?  I think the database will hold \"user\" strings that we will not push down to the Amphora.","commit_id":"e0a4893e73505ecc4d011a79ec7bf84f92b6c9f3"},{"author":{"_account_id":7398,"name":"Carlos Garza","email":"carlos.garza@rackspace.com","username":"crc32"},"change_message_id":"85f2a58cc58a4aa345bd67f1303b7fcc95d9aa21","unresolved":false,"context_lines":[{"line_number":29,"context_line":"the configuration will need to be in agreement on bother the producer(API) and"},{"line_number":30,"context_line":"consumer(controller) side."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"The api will not be persisting updates to the database. The controller when"},{"line_number":33,"context_line":"it is done with an update will store the new state to the database. To"},{"line_number":34,"context_line":"accomplish this rpc calls to  \\*_update will add a delta dictionary as"},{"line_number":35,"context_line":"parameter right before the resource_id parameter."}],"source_content_type":"text/x-rst","patch_set":11,"id":"1a930d6b_e808efdb","line":32,"in_reply_to":"1a930d6b_a8bd0704","updated":"2015-01-27 01:17:16.000000000","message":"I see where you coming from but now we end up splitting the logic such that some updates go to the api while others go to the controller. I do know that the bp https://review.openstack.org/#/c/147699 has already been merged to master so I\u0027m going with that. This was suggested by brandon as well.  I\u0027m guessing they want the controller to be authoritative for updates.","commit_id":"e0a4893e73505ecc4d011a79ec7bf84f92b6c9f3"},{"author":{"_account_id":6951,"name":"Brandon Logan","email":"brandon.logan@rackspace.com","username":"brandon-logan"},"change_message_id":"c5db5c2c3f5b40abfc5f7c4337f1b9510d5f3921","unresolved":false,"context_lines":[{"line_number":29,"context_line":"the configuration will need to be in agreement on bother the producer(API) and"},{"line_number":30,"context_line":"consumer(controller) side."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"The api will not be persisting updates to the database. The controller when"},{"line_number":33,"context_line":"it is done with an update will store the new state to the database. To"},{"line_number":34,"context_line":"accomplish this rpc calls to  \\*_update will add a delta dictionary as"},{"line_number":35,"context_line":"parameter right before the resource_id parameter."}],"source_content_type":"text/x-rst","patch_set":11,"id":"1a930d6b_d0acb58e","line":32,"in_reply_to":"1a930d6b_e808efdb","updated":"2015-01-27 05:14:10.000000000","message":"I\u0027ve thought about this too and if its something we want to do we can definitely optimize by doing this.  Though, I\u0027ve also had crazy reasons why every update should be passed down, including just simple renames.  Its possible (not recommended of course) a driver wants to store resources in their backend by name.  This will cause more pain in their ass than anything, but its leads to the bigger questions how much we want to protect drivers and what data do we deem useful and not useful to driver backends (compute, amphora, network, etc).\n\nEither way, in the interest of not holding this spec and bp up I\u0027d rather just send all updates down the queue and add a bug for optimizing.  It\u0027ll be a low hanging fruit bug (hehe) so itll be a relatively easy fix.","commit_id":"e0a4893e73505ecc4d011a79ec7bf84f92b6c9f3"},{"author":{"_account_id":6951,"name":"Brandon Logan","email":"brandon.logan@rackspace.com","username":"brandon-logan"},"change_message_id":"2f44f1717b3154b82e4c4e202915a13a318d80e7","unresolved":false,"context_lines":[{"line_number":29,"context_line":"the configuration will need to be in agreement on bother the producer(API) and"},{"line_number":30,"context_line":"consumer(controller) side."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"The api will not be persisting updates to the database. The controller when"},{"line_number":33,"context_line":"it is done with an update will store the new state to the database. To"},{"line_number":34,"context_line":"accomplish this rpc calls to  \\*_update will add a delta dictionary as"},{"line_number":35,"context_line":"parameter right before the resource_id parameter."}],"source_content_type":"text/x-rst","patch_set":12,"id":"1a930d6b_50b0c5dc","line":32,"updated":"2015-01-27 05:14:02.000000000","message":"added reply to Michael\u0027s comment in last PS.","commit_id":"0466e9d506c050e15b48824152ca3fc3cfc1cf10"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"3c89709152be15bfa50b9d46491eedadad75484d","unresolved":false,"context_lines":[{"line_number":29,"context_line":"the configuration will need to be in agreement on bother the producer(API) and"},{"line_number":30,"context_line":"consumer(controller) side."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"The api will not be persisting updates to the database. The controller when"},{"line_number":33,"context_line":"it is done with an update will store the new state to the database. To"},{"line_number":34,"context_line":"accomplish this rpc calls to  \\*_update will add a delta dictionary as"},{"line_number":35,"context_line":"parameter right before the resource_id parameter."}],"source_content_type":"text/x-rst","patch_set":15,"id":"9a80dd14_0e0ab825","line":32,"updated":"2015-03-13 17:51:06.000000000","message":"This isn\u0027t the way Brandon\u0027s merged operator API works:\nhttps://review.openstack.org/#/c/121233\n\nWe need to align the API implementations on this.\n\nI am ok doing this in the controller, but current implementation assumes that the API side is handling the updates per the above code.","commit_id":"7d0bada41f1732b2fd0522993991a6f88efd6baa"}]}
