)]}'
{"specs/liberty/redis-cluster.rst":[{"author":{"_account_id":4240,"name":"Craig Vyvial","email":"cp16net@gmail.com","username":"cp16net"},"change_message_id":"d6531e838ce7b4f483cb93643231bd46c9df2b66","unresolved":false,"context_lines":[{"line_number":190,"context_line":""},{"line_number":191,"context_line":"------------"},{"line_number":192,"context_line":"Grow Cluster"},{"line_number":193,"context_line":"------------"},{"line_number":194,"context_line":""},{"line_number":195,"context_line":"Adds nodes to a cluster.  The added nodes will be master nodes empty"},{"line_number":196,"context_line":"of data and will have no slots assigned to them."}],"source_content_type":"text/x-rst","patch_set":2,"id":"fa32b979_1d2484b0","line":193,"updated":"2015-06-26 00:03:39.000000000","message":"I think we should separate these grow/shrink calls out like we did for mysql.","commit_id":"ac432765657b5110a8db9962ded1d5e84367f4f7"},{"author":{"_account_id":9782,"name":"Morgan Jones","email":"morgan@tesora.com","username":"vgnbkr"},"change_message_id":"f3a38c9f924ecec81aa6cd078992c9306cf7da0c","unresolved":false,"context_lines":[{"line_number":190,"context_line":""},{"line_number":191,"context_line":"------------"},{"line_number":192,"context_line":"Grow Cluster"},{"line_number":193,"context_line":"------------"},{"line_number":194,"context_line":""},{"line_number":195,"context_line":"Adds nodes to a cluster.  The added nodes will be master nodes empty"},{"line_number":196,"context_line":"of data and will have no slots assigned to them."}],"source_content_type":"text/x-rst","patch_set":2,"id":"ba3cc151_a229fa8b","line":193,"in_reply_to":"ba3cc151_3bba5e24","updated":"2015-07-02 14:27:59.000000000","message":"I disagree.  There is a separate bp to define the grow/shrink APIs, but from there on out implementation of grow/shrink should be part of the standard datastore implementation.","commit_id":"ac432765657b5110a8db9962ded1d5e84367f4f7"},{"author":{"_account_id":4240,"name":"Craig Vyvial","email":"cp16net@gmail.com","username":"cp16net"},"change_message_id":"a37785ab5f178436cf2b65cc7325e0c3c1eb1283","unresolved":false,"context_lines":[{"line_number":190,"context_line":""},{"line_number":191,"context_line":"------------"},{"line_number":192,"context_line":"Grow Cluster"},{"line_number":193,"context_line":"------------"},{"line_number":194,"context_line":""},{"line_number":195,"context_line":"Adds nodes to a cluster.  The added nodes will be master nodes empty"},{"line_number":196,"context_line":"of data and will have no slots assigned to them."}],"source_content_type":"text/x-rst","patch_set":2,"id":"ba3cc151_3bba5e24","line":193,"in_reply_to":"fa32b979_1d2484b0","updated":"2015-06-30 19:04:41.000000000","message":"by separate i mean in a separate bp because we already have the cluster scaling bp.","commit_id":"ac432765657b5110a8db9962ded1d5e84367f4f7"},{"author":{"_account_id":4240,"name":"Craig Vyvial","email":"cp16net@gmail.com","username":"cp16net"},"change_message_id":"d6531e838ce7b4f483cb93643231bd46c9df2b66","unresolved":false,"context_lines":[{"line_number":521,"context_line":"HTTP codes::"},{"line_number":522,"context_line":""},{"line_number":523,"context_line":"    202 - Accepted."},{"line_number":524,"context_line":"    404 - Not found"},{"line_number":525,"context_line":""},{"line_number":526,"context_line":"Public API"},{"line_number":527,"context_line":"----------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"fa32b979_dd54dcff","line":524,"updated":"2015-06-26 00:03:39.000000000","message":"cluster \u003cid\u003e not found.","commit_id":"ac432765657b5110a8db9962ded1d5e84367f4f7"},{"author":{"_account_id":4240,"name":"Craig Vyvial","email":"cp16net@gmail.com","username":"cp16net"},"change_message_id":"d6531e838ce7b4f483cb93643231bd46c9df2b66","unresolved":false,"context_lines":[{"line_number":527,"context_line":"----------"},{"line_number":528,"context_line":""},{"line_number":529,"context_line":"Does this change any API that an end-user has access to?"},{"line_number":530,"context_line":"Are there any exceptions in terms of consistency with other APIs?"},{"line_number":531,"context_line":""},{"line_number":532,"context_line":"Public API Security"},{"line_number":533,"context_line":"-------------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"fa32b979_7d2fd088","line":530,"updated":"2015-06-26 00:03:39.000000000","message":"answer questions?","commit_id":"ac432765657b5110a8db9962ded1d5e84367f4f7"},{"author":{"_account_id":4240,"name":"Craig Vyvial","email":"cp16net@gmail.com","username":"cp16net"},"change_message_id":"d6531e838ce7b4f483cb93643231bd46c9df2b66","unresolved":false,"context_lines":[{"line_number":538,"context_line":"----------"},{"line_number":539,"context_line":""},{"line_number":540,"context_line":"Does this change the Python API? If anything was removed, has it"},{"line_number":541,"context_line":"been properly marked as deprecated?"},{"line_number":542,"context_line":""},{"line_number":543,"context_line":"CLI (python-troveclient)"},{"line_number":544,"context_line":"------------------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"fa32b979_bd3c78c0","line":541,"updated":"2015-06-26 00:03:39.000000000","message":"answer questions?","commit_id":"ac432765657b5110a8db9962ded1d5e84367f4f7"},{"author":{"_account_id":14991,"name":"Mayuri Ganguly","email":"mayuri.ganguly@hpe.com","username":"gangulma"},"change_message_id":"fd54b913adad2539ba5fb47ff493729b5ad84948","unresolved":false,"context_lines":[{"line_number":545,"context_line":""},{"line_number":546,"context_line":"Will the Trove CLI need to be modified?  If the CLI will just implement"},{"line_number":547,"context_line":"the changes mentioned in the Python API section, it may be enough to"},{"line_number":548,"context_line":"just mention it here."},{"line_number":549,"context_line":""},{"line_number":550,"context_line":"Internal API"},{"line_number":551,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ba3cc151_1c287b99","line":548,"updated":"2015-07-01 17:15:52.000000000","message":"The trove CLI should be same for all datastores. The only changes for the CLI should be for the grow/shrink cluster commands.","commit_id":"ac432765657b5110a8db9962ded1d5e84367f4f7"},{"author":{"_account_id":4240,"name":"Craig Vyvial","email":"cp16net@gmail.com","username":"cp16net"},"change_message_id":"d6531e838ce7b4f483cb93643231bd46c9df2b66","unresolved":false,"context_lines":[{"line_number":545,"context_line":""},{"line_number":546,"context_line":"Will the Trove CLI need to be modified?  If the CLI will just implement"},{"line_number":547,"context_line":"the changes mentioned in the Python API section, it may be enough to"},{"line_number":548,"context_line":"just mention it here."},{"line_number":549,"context_line":""},{"line_number":550,"context_line":"Internal API"},{"line_number":551,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"fa32b979_5d49ac5f","line":548,"updated":"2015-06-26 00:03:39.000000000","message":"answer questions?","commit_id":"ac432765657b5110a8db9962ded1d5e84367f4f7"},{"author":{"_account_id":4240,"name":"Craig Vyvial","email":"cp16net@gmail.com","username":"cp16net"},"change_message_id":"d6531e838ce7b4f483cb93643231bd46c9df2b66","unresolved":false,"context_lines":[{"line_number":588,"context_line":"implement routing for new cluster strategy implementation"},{"line_number":589,"context_line":"implement python API and shell for shrink/grow (this may be already done"},{"line_number":590,"context_line":"through cluster-scaling bp implementation)"},{"line_number":591,"context_line":"add grow/shrink to cluster strategy (in absence of scaling implementation)"},{"line_number":592,"context_line":"implement guest agent support for joining/leaving a cluster"},{"line_number":593,"context_line":"implement unit tests as appropriate"},{"line_number":594,"context_line":"implement int-test if the mechanism for doing so has been worked out by"}],"source_content_type":"text/x-rst","patch_set":2,"id":"fa32b979_7d5d9014","line":591,"updated":"2015-06-26 00:03:39.000000000","message":"i think the above 2 items can be move out of this spec and add a link in the references section","commit_id":"ac432765657b5110a8db9962ded1d5e84367f4f7"},{"author":{"_account_id":9782,"name":"Morgan Jones","email":"morgan@tesora.com","username":"vgnbkr"},"change_message_id":"f3a38c9f924ecec81aa6cd078992c9306cf7da0c","unresolved":false,"context_lines":[{"line_number":588,"context_line":"implement routing for new cluster strategy implementation"},{"line_number":589,"context_line":"implement python API and shell for shrink/grow (this may be already done"},{"line_number":590,"context_line":"through cluster-scaling bp implementation)"},{"line_number":591,"context_line":"add grow/shrink to cluster strategy (in absence of scaling implementation)"},{"line_number":592,"context_line":"implement guest agent support for joining/leaving a cluster"},{"line_number":593,"context_line":"implement unit tests as appropriate"},{"line_number":594,"context_line":"implement int-test if the mechanism for doing so has been worked out by"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ba3cc151_021546e3","line":591,"in_reply_to":"fa32b979_7d5d9014","updated":"2015-07-02 14:27:59.000000000","message":"Again, I disagree.  See comment above.","commit_id":"ac432765657b5110a8db9962ded1d5e84367f4f7"},{"author":{"_account_id":4240,"name":"Craig Vyvial","email":"cp16net@gmail.com","username":"cp16net"},"change_message_id":"d6531e838ce7b4f483cb93643231bd46c9df2b66","unresolved":false,"context_lines":[{"line_number":607,"context_line":""},{"line_number":608,"context_line":"- This functionality depends on the cluster scaling functionality"},{"line_number":609,"context_line":"  outlined in"},{"line_number":610,"context_line":"  https://blueprints.launchpad.net/trove/+spec/redis-scaling"},{"line_number":611,"context_line":""},{"line_number":612,"context_line":""},{"line_number":613,"context_line":"Testing"}],"source_content_type":"text/x-rst","patch_set":2,"id":"fa32b979_9dadf4ec","line":610,"updated":"2015-06-26 00:03:39.000000000","message":"i wouldn\u0027t say that this is dependent but rather affects. so maybe add that to the reference section?","commit_id":"ac432765657b5110a8db9962ded1d5e84367f4f7"},{"author":{"_account_id":9782,"name":"Morgan Jones","email":"morgan@tesora.com","username":"vgnbkr"},"change_message_id":"f3a38c9f924ecec81aa6cd078992c9306cf7da0c","unresolved":false,"context_lines":[{"line_number":607,"context_line":""},{"line_number":608,"context_line":"- This functionality depends on the cluster scaling functionality"},{"line_number":609,"context_line":"  outlined in"},{"line_number":610,"context_line":"  https://blueprints.launchpad.net/trove/+spec/redis-scaling"},{"line_number":611,"context_line":""},{"line_number":612,"context_line":""},{"line_number":613,"context_line":"Testing"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ba3cc151_22d2ca28","line":610,"in_reply_to":"fa32b979_9dadf4ec","updated":"2015-07-02 14:27:59.000000000","message":"The bp name was wrong.  Fixed.","commit_id":"ac432765657b5110a8db9962ded1d5e84367f4f7"},{"author":{"_account_id":5293,"name":"Nikhil","email":"SlickNik@gmail.com","username":"slicknik"},"change_message_id":"06486acea778fd54b9de2a143b6de314b86859df","unresolved":false,"context_lines":[{"line_number":13,"context_line":"Redis Clustering"},{"line_number":14,"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"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Include the URL of your launchpad blueprint:"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"https://blueprints.launchpad.net/trove/+spec/redis-cluster"},{"line_number":19,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"ba3cc151_edde526c","line":16,"updated":"2015-07-08 06:35:04.000000000","message":"Please remove this line -- it\u0027s part of the template, and isn\u0027t needed for the actual spec.","commit_id":"ae98c995c787f74acc48f981eead1e7e9edf8fe3"},{"author":{"_account_id":5293,"name":"Nikhil","email":"SlickNik@gmail.com","username":"slicknik"},"change_message_id":"06486acea778fd54b9de2a143b6de314b86859df","unresolved":false,"context_lines":[{"line_number":42,"context_line":"Configuration"},{"line_number":43,"context_line":"-------------"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"No changes."},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"Database"},{"line_number":48,"context_line":"--------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"ba3cc151_4dcc1ebb","line":45,"updated":"2015-07-08 06:35:04.000000000","message":"I believe that this will require at least some configuration changes.\n\nAt the very least, we will need to add a conf value enabling clusters for redis (i.e. cluster_support). And  we will also need to set the api, taskmanager, and guestagent strategies for clustering in the [redis] group appropriately.","commit_id":"ae98c995c787f74acc48f981eead1e7e9edf8fe3"},{"author":{"_account_id":5293,"name":"Nikhil","email":"SlickNik@gmail.com","username":"slicknik"},"change_message_id":"06486acea778fd54b9de2a143b6de314b86859df","unresolved":false,"context_lines":[{"line_number":49,"context_line":""},{"line_number":50,"context_line":"No changes."},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"ReST API"},{"line_number":53,"context_line":"----------"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"--------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"ba3cc151_8d3226a6","line":52,"updated":"2015-07-08 06:35:04.000000000","message":"REST API","commit_id":"ae98c995c787f74acc48f981eead1e7e9edf8fe3"},{"author":{"_account_id":5293,"name":"Nikhil","email":"SlickNik@gmail.com","username":"slicknik"},"change_message_id":"06486acea778fd54b9de2a143b6de314b86859df","unresolved":false,"context_lines":[{"line_number":186,"context_line":"    400 - BadRequest. Server could not understand request."},{"line_number":187,"context_line":"    403 - Forbidden. Local storage not specified in flavor ID: \u003cID\u003e."},{"line_number":188,"context_line":"    403 - Forbidden. A flavor is required for each instance in the cluster."},{"line_number":189,"context_line":"    404 - Not Found. Flavor not found."},{"line_number":190,"context_line":""},{"line_number":191,"context_line":"------------"},{"line_number":192,"context_line":"Grow Cluster"}],"source_content_type":"text/x-rst","patch_set":3,"id":"ba3cc151_2db19a01","line":189,"updated":"2015-07-08 06:35:04.000000000","message":"Will we allow heterogenous redis clusters? Or will we enforce the clusters to be homogenous?","commit_id":"ae98c995c787f74acc48f981eead1e7e9edf8fe3"},{"author":{"_account_id":9782,"name":"Morgan Jones","email":"morgan@tesora.com","username":"vgnbkr"},"change_message_id":"f7ebcb9c4d42ceb2c9c0a5b21d3ed4c7c4ba0304","unresolved":false,"context_lines":[{"line_number":186,"context_line":"    400 - BadRequest. Server could not understand request."},{"line_number":187,"context_line":"    403 - Forbidden. Local storage not specified in flavor ID: \u003cID\u003e."},{"line_number":188,"context_line":"    403 - Forbidden. A flavor is required for each instance in the cluster."},{"line_number":189,"context_line":"    404 - Not Found. Flavor not found."},{"line_number":190,"context_line":""},{"line_number":191,"context_line":"------------"},{"line_number":192,"context_line":"Grow Cluster"}],"source_content_type":"text/x-rst","patch_set":3,"id":"ba3cc151_8127f1c8","line":189,"in_reply_to":"ba3cc151_2db19a01","updated":"2015-07-09 16:03:22.000000000","message":"Heterogeneous clusters are supported.","commit_id":"ae98c995c787f74acc48f981eead1e7e9edf8fe3"},{"author":{"_account_id":5293,"name":"Nikhil","email":"SlickNik@gmail.com","username":"slicknik"},"change_message_id":"06486acea778fd54b9de2a143b6de314b86859df","unresolved":false,"context_lines":[{"line_number":541,"context_line":"CLI (python-troveclient)"},{"line_number":542,"context_line":"------------------------"},{"line_number":543,"context_line":""},{"line_number":544,"context_line":"No CLI changes."},{"line_number":545,"context_line":""},{"line_number":546,"context_line":"Internal API"},{"line_number":547,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"ba3cc151_6db7a2d8","line":544,"updated":"2015-07-08 06:35:04.000000000","message":"I think you mention this below -- you will probably need to make a CLI change for grow / shrink, so you might want to call it out in this section.","commit_id":"ae98c995c787f74acc48f981eead1e7e9edf8fe3"},{"author":{"_account_id":9782,"name":"Morgan Jones","email":"morgan@tesora.com","username":"vgnbkr"},"change_message_id":"f7ebcb9c4d42ceb2c9c0a5b21d3ed4c7c4ba0304","unresolved":false,"context_lines":[{"line_number":541,"context_line":"CLI (python-troveclient)"},{"line_number":542,"context_line":"------------------------"},{"line_number":543,"context_line":""},{"line_number":544,"context_line":"No CLI changes."},{"line_number":545,"context_line":""},{"line_number":546,"context_line":"Internal API"},{"line_number":547,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"ba3cc151_e4092b2c","line":544,"in_reply_to":"ba3cc151_6db7a2d8","updated":"2015-07-09 16:03:22.000000000","message":"The CLI changes will have been made as a result of the cluster-scaling feature.","commit_id":"ae98c995c787f74acc48f981eead1e7e9edf8fe3"},{"author":{"_account_id":5293,"name":"Nikhil","email":"SlickNik@gmail.com","username":"slicknik"},"change_message_id":"06486acea778fd54b9de2a143b6de314b86859df","unresolved":false,"context_lines":[{"line_number":553,"context_line":"-----------"},{"line_number":554,"context_line":""},{"line_number":555,"context_line":"The Guest agent will implement the appropriate APIs to support the"},{"line_number":556,"context_line":"cluster API for Redis.  No API changes are envisioned."},{"line_number":557,"context_line":""},{"line_number":558,"context_line":"Alternatives"},{"line_number":559,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"ba3cc151_ed7df21c","line":556,"updated":"2015-07-08 06:35:04.000000000","message":"Do we have an idea of what new guest agent APIs will need to be added to implement clustering for Redis? Can we add some more details on this to the spec, please. Thanks!","commit_id":"ae98c995c787f74acc48f981eead1e7e9edf8fe3"},{"author":{"_account_id":9782,"name":"Morgan Jones","email":"morgan@tesora.com","username":"vgnbkr"},"change_message_id":"f7ebcb9c4d42ceb2c9c0a5b21d3ed4c7c4ba0304","unresolved":false,"context_lines":[{"line_number":553,"context_line":"-----------"},{"line_number":554,"context_line":""},{"line_number":555,"context_line":"The Guest agent will implement the appropriate APIs to support the"},{"line_number":556,"context_line":"cluster API for Redis.  No API changes are envisioned."},{"line_number":557,"context_line":""},{"line_number":558,"context_line":"Alternatives"},{"line_number":559,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"ba3cc151_a4ac83ed","line":556,"in_reply_to":"ba3cc151_ed7df21c","updated":"2015-07-09 16:03:22.000000000","message":"Ok, I can do that, but as all cluster related guest agent calls are datastore specific, they\u0027re merely implementation details and not really critical to describe here.","commit_id":"ae98c995c787f74acc48f981eead1e7e9edf8fe3"},{"author":{"_account_id":5293,"name":"Nikhil","email":"SlickNik@gmail.com","username":"slicknik"},"change_message_id":"06486acea778fd54b9de2a143b6de314b86859df","unresolved":false,"context_lines":[{"line_number":581,"context_line":"- implement clustering for Redis"},{"line_number":582,"context_line":""},{"line_number":583,"context_line":"implement new Taskmanager cluster strategy for Redis"},{"line_number":584,"context_line":"implement routing for new cluster strategy implementation"},{"line_number":585,"context_line":"implement python API and shell for shrink/grow (this may be already done"},{"line_number":586,"context_line":"through cluster-scaling bp implementation)"},{"line_number":587,"context_line":"add grow/shrink to cluster strategy (in absence of scaling implementation)"}],"source_content_type":"text/x-rst","patch_set":3,"id":"ba3cc151_0d6cd633","line":584,"updated":"2015-07-08 06:35:04.000000000","message":"What sort of routing are we talking about here? If I recall correctly, the redis clustering protocol internally use query routing, and redirect the client to the appropriate node on which the requested data lives. Do we need additional routing?","commit_id":"ae98c995c787f74acc48f981eead1e7e9edf8fe3"},{"author":{"_account_id":9782,"name":"Morgan Jones","email":"morgan@tesora.com","username":"vgnbkr"},"change_message_id":"f7ebcb9c4d42ceb2c9c0a5b21d3ed4c7c4ba0304","unresolved":false,"context_lines":[{"line_number":581,"context_line":"- implement clustering for Redis"},{"line_number":582,"context_line":""},{"line_number":583,"context_line":"implement new Taskmanager cluster strategy for Redis"},{"line_number":584,"context_line":"implement routing for new cluster strategy implementation"},{"line_number":585,"context_line":"implement python API and shell for shrink/grow (this may be already done"},{"line_number":586,"context_line":"through cluster-scaling bp implementation)"},{"line_number":587,"context_line":"add grow/shrink to cluster strategy (in absence of scaling implementation)"}],"source_content_type":"text/x-rst","patch_set":3,"id":"ba3cc151_c4b18702","line":584,"in_reply_to":"ba3cc151_0d6cd633","updated":"2015-07-09 16:03:22.000000000","message":"What I really meant was setting the appropriate configuration values, but this was obvious and the above line was misleading so I have removed it.","commit_id":"ae98c995c787f74acc48f981eead1e7e9edf8fe3"},{"author":{"_account_id":5293,"name":"Nikhil","email":"SlickNik@gmail.com","username":"slicknik"},"change_message_id":"06486acea778fd54b9de2a143b6de314b86859df","unresolved":false,"context_lines":[{"line_number":585,"context_line":"implement python API and shell for shrink/grow (this may be already done"},{"line_number":586,"context_line":"through cluster-scaling bp implementation)"},{"line_number":587,"context_line":"add grow/shrink to cluster strategy (in absence of scaling implementation)"},{"line_number":588,"context_line":"implement guest agent support for joining/leaving a cluster"},{"line_number":589,"context_line":"implement unit tests as appropriate"},{"line_number":590,"context_line":"implement int-test if the mechanism for doing so has been worked out by"},{"line_number":591,"context_line":"that time"}],"source_content_type":"text/x-rst","patch_set":3,"id":"ba3cc151_2dce7a2d","line":588,"updated":"2015-07-08 06:35:04.000000000","message":"Is this different from the grow / shrink guest strategy (point above)? When would a user use this implementation vs. the one outlined in the grow / shrink strategy from above?","commit_id":"ae98c995c787f74acc48f981eead1e7e9edf8fe3"},{"author":{"_account_id":9782,"name":"Morgan Jones","email":"morgan@tesora.com","username":"vgnbkr"},"change_message_id":"f7ebcb9c4d42ceb2c9c0a5b21d3ed4c7c4ba0304","unresolved":false,"context_lines":[{"line_number":585,"context_line":"implement python API and shell for shrink/grow (this may be already done"},{"line_number":586,"context_line":"through cluster-scaling bp implementation)"},{"line_number":587,"context_line":"add grow/shrink to cluster strategy (in absence of scaling implementation)"},{"line_number":588,"context_line":"implement guest agent support for joining/leaving a cluster"},{"line_number":589,"context_line":"implement unit tests as appropriate"},{"line_number":590,"context_line":"implement int-test if the mechanism for doing so has been worked out by"},{"line_number":591,"context_line":"that time"}],"source_content_type":"text/x-rst","patch_set":3,"id":"ba3cc151_e4828bfe","line":588,"in_reply_to":"ba3cc151_2dce7a2d","updated":"2015-07-09 16:03:22.000000000","message":"This is referring to the fact that the guest agent must know how to cause a node to join a cluster or leave it.  It\u0027s functionality needed by the taskmanager grow/shrink operations.","commit_id":"ae98c995c787f74acc48f981eead1e7e9edf8fe3"},{"author":{"_account_id":5293,"name":"Nikhil","email":"SlickNik@gmail.com","username":"slicknik"},"change_message_id":"06486acea778fd54b9de2a143b6de314b86859df","unresolved":false,"context_lines":[{"line_number":588,"context_line":"implement guest agent support for joining/leaving a cluster"},{"line_number":589,"context_line":"implement unit tests as appropriate"},{"line_number":590,"context_line":"implement int-test if the mechanism for doing so has been worked out by"},{"line_number":591,"context_line":"that time"},{"line_number":592,"context_line":""},{"line_number":593,"context_line":""},{"line_number":594,"context_line":"Upgrade Implications"}],"source_content_type":"text/x-rst","patch_set":3,"id":"ba3cc151_0d013638","line":591,"updated":"2015-07-08 06:35:04.000000000","message":"We should implement int-tests for this, even if the mechanism for being able to run it in the gate hasn\u0027t been worked out by that time -- in that case, someone should be able to run it manually for redis cluster creation and operations.","commit_id":"ae98c995c787f74acc48f981eead1e7e9edf8fe3"},{"author":{"_account_id":9782,"name":"Morgan Jones","email":"morgan@tesora.com","username":"vgnbkr"},"change_message_id":"f7ebcb9c4d42ceb2c9c0a5b21d3ed4c7c4ba0304","unresolved":false,"context_lines":[{"line_number":588,"context_line":"implement guest agent support for joining/leaving a cluster"},{"line_number":589,"context_line":"implement unit tests as appropriate"},{"line_number":590,"context_line":"implement int-test if the mechanism for doing so has been worked out by"},{"line_number":591,"context_line":"that time"},{"line_number":592,"context_line":""},{"line_number":593,"context_line":""},{"line_number":594,"context_line":"Upgrade Implications"}],"source_content_type":"text/x-rst","patch_set":3,"id":"ba3cc151_84a5bfa2","line":591,"in_reply_to":"ba3cc151_0d013638","updated":"2015-07-09 16:03:22.000000000","message":"Apparently the mechanism is to just copy all the existing int-tests, so OK.","commit_id":"ae98c995c787f74acc48f981eead1e7e9edf8fe3"},{"author":{"_account_id":5293,"name":"Nikhil","email":"SlickNik@gmail.com","username":"slicknik"},"change_message_id":"4317c0f8108fe3ba30899614c57d1bfb53188815","unresolved":false,"context_lines":[{"line_number":58,"context_line":"               default\u003d\u0027trove.common.strategies.cluster.experimental.\u0027"},{"line_number":59,"context_line":"               \u0027redis.guestagent.RedisGuestAgentStrategy\u0027,"},{"line_number":60,"context_line":"               help\u003d\u0027Class that implements datastore-specific Guest Agent API \u0027"},{"line_number":61,"context_line":"                    \u0027logic.\u0027),"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"Database"}],"source_content_type":"text/x-rst","patch_set":5,"id":"ba3cc151_90ac0eee","line":61,"updated":"2015-07-09 19:22:51.000000000","message":"Thanks for updating this section.","commit_id":"62bdae97bbd89ec6d6894f84142b11120505cb0e"},{"author":{"_account_id":5293,"name":"Nikhil","email":"SlickNik@gmail.com","username":"slicknik"},"change_message_id":"4317c0f8108fe3ba30899614c57d1bfb53188815","unresolved":false,"context_lines":[{"line_number":558,"context_line":"CLI (python-troveclient)"},{"line_number":559,"context_line":"------------------------"},{"line_number":560,"context_line":""},{"line_number":561,"context_line":"No CLI changes."},{"line_number":562,"context_line":""},{"line_number":563,"context_line":"Internal API"},{"line_number":564,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"ba3cc151_e5059e79","line":561,"updated":"2015-07-09 19:22:51.000000000","message":"Since the grow action is part of this spec (looking above). If the server action is part of this spec, I think that it makes sense to do the CLI work for that as part of this as well (rather than a different spec). \n\nOr else we might be in a situation (like mongoDB add_shard) where we have a server side API, but no CLI call corresponding to it. I\u0027d like to avoid this sort of thing from happening again.","commit_id":"62bdae97bbd89ec6d6894f84142b11120505cb0e"},{"author":{"_account_id":9782,"name":"Morgan Jones","email":"morgan@tesora.com","username":"vgnbkr"},"change_message_id":"282b0576ff2f539314749782ac99591b1422f990","unresolved":false,"context_lines":[{"line_number":558,"context_line":"CLI (python-troveclient)"},{"line_number":559,"context_line":"------------------------"},{"line_number":560,"context_line":""},{"line_number":561,"context_line":"No CLI changes."},{"line_number":562,"context_line":""},{"line_number":563,"context_line":"Internal API"},{"line_number":564,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"ba3cc151_5ddd3ede","line":561,"in_reply_to":"ba3cc151_e5059e79","updated":"2015-07-09 20:31:38.000000000","message":"Matt will be doing the CLI implementation in connection with the cluster-scaling spec.  The code will in fact be included in the changeset for this spec so that I can test the CLI, but this is just a workaround so that we don\u0027t have incur the overhead of dependent patchsets.  The point is that the CLI implementation is detailed in the cluster-scaling spec.","commit_id":"62bdae97bbd89ec6d6894f84142b11120505cb0e"},{"author":{"_account_id":10215,"name":"Peter Stachowski","email":"peter@tesora.com","username":"peterstac"},"change_message_id":"dfc977a26320c28b35d7b791d5aeb6e561a76d47","unresolved":false,"context_lines":[{"line_number":591,"context_line":"        return self._call(\"cluster_meet\", guest_api.AGENT_HIGH_TIMEOUT,"},{"line_number":592,"context_line":"                          self.version_cap, ip\u003dip, port\u003dport)"},{"line_number":593,"context_line":""},{"line_number":594,"context_line":"    def cluster_addslots(self, first_slot, last_slot):"},{"line_number":595,"context_line":"        LOG.debug(\"Adding slots %s-%s to cluster.\", first_slot, last_slot)"},{"line_number":596,"context_line":"        return self._call(\"cluster_addslots\","},{"line_number":597,"context_line":"                          guest_api.AGENT_HIGH_TIMEOUT, self.version_cap,"}],"source_content_type":"text/x-rst","patch_set":5,"id":"9a41bdd9_8228af87","line":594,"updated":"2015-07-14 17:33:13.000000000","message":"probably better to call this \u0027cluster_add_slots\u0027 (but that can be debated in the implementation ;) )","commit_id":"62bdae97bbd89ec6d6894f84142b11120505cb0e"},{"author":{"_account_id":5293,"name":"Nikhil","email":"SlickNik@gmail.com","username":"slicknik"},"change_message_id":"4317c0f8108fe3ba30899614c57d1bfb53188815","unresolved":false,"context_lines":[{"line_number":600,"context_line":"    def cluster_complete(self):"},{"line_number":601,"context_line":"        LOG.debug(\"Notifying cluster install completion.\")"},{"line_number":602,"context_line":"        return self._call(\"cluster_complete\", guest_api.AGENT_HIGH_TIMEOUT,"},{"line_number":603,"context_line":"                          self.version_cap)"},{"line_number":604,"context_line":""},{"line_number":605,"context_line":"Alternatives"},{"line_number":606,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"ba3cc151_b0a272fa","line":603,"updated":"2015-07-09 19:22:51.000000000","message":"Thanks for adding this section.","commit_id":"62bdae97bbd89ec6d6894f84142b11120505cb0e"},{"author":{"_account_id":5293,"name":"Nikhil","email":"SlickNik@gmail.com","username":"slicknik"},"change_message_id":"4317c0f8108fe3ba30899614c57d1bfb53188815","unresolved":false,"context_lines":[{"line_number":634,"context_line":"implement guest agent support for joining/leaving a cluster"},{"line_number":635,"context_line":"implement unit tests as appropriate"},{"line_number":636,"context_line":"implement int-test if the mechanism for doing so has been worked out by"},{"line_number":637,"context_line":"that time"},{"line_number":638,"context_line":""},{"line_number":639,"context_line":""},{"line_number":640,"context_line":"Upgrade Implications"}],"source_content_type":"text/x-rst","patch_set":5,"id":"ba3cc151_a538f6ee","line":637,"updated":"2015-07-09 19:22:51.000000000","message":"We have a mechanism for int-tests. What we don\u0027t have is a mechanism to run these in the gate. I\u0027d expect us to implement new int-tests for redis-clusters even if we don\u0027t have a way of running it in the gate yet (through 3rd party CI).\n\nThe mechanism would be to re-use existing tests where possible, and write new ones if the functionality doesn\u0027t exist. Please do not copy existing int-tests.\n\nIt would be awesome if you could update the spec to call this out.","commit_id":"62bdae97bbd89ec6d6894f84142b11120505cb0e"},{"author":{"_account_id":9782,"name":"Morgan Jones","email":"morgan@tesora.com","username":"vgnbkr"},"change_message_id":"282b0576ff2f539314749782ac99591b1422f990","unresolved":false,"context_lines":[{"line_number":634,"context_line":"implement guest agent support for joining/leaving a cluster"},{"line_number":635,"context_line":"implement unit tests as appropriate"},{"line_number":636,"context_line":"implement int-test if the mechanism for doing so has been worked out by"},{"line_number":637,"context_line":"that time"},{"line_number":638,"context_line":""},{"line_number":639,"context_line":""},{"line_number":640,"context_line":"Upgrade Implications"}],"source_content_type":"text/x-rst","patch_set":5,"id":"ba3cc151_e0ea690e","line":637,"in_reply_to":"ba3cc151_a538f6ee","updated":"2015-07-09 20:31:38.000000000","message":"What I meant is that I will follow the pattern set out by the Vertica int-tests.","commit_id":"62bdae97bbd89ec6d6894f84142b11120505cb0e"}]}
