)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"a2a32c058a7aa6356093a852c0319be4a0dd819f","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Replace service groups with the tooz groups"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This specification proposes replacing (or depreciating and"},{"line_number":10,"context_line":"later replacing) the service group and associated drivers"},{"line_number":11,"context_line":"in nova with the usage of tooz (a new oslo library) to provide"},{"line_number":12,"context_line":"the same functionality through tooz\u0027s own group membership"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"3a961159_b14cab43","line":9,"updated":"2014-12-11 23:29:04.000000000","message":"s/depreciating/deprecating/","commit_id":"9a0e8ef8df91932572fc3a95d49ca58681932f38"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"6446a430f1b963dbd3143ce40a59b523e8c2b179","unresolved":false,"context_lines":[{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Implements: blueprint tooz-for-service-groups"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Co-Authored-By: Vilobh Meshram \u003cvilobhmm@yahoo-inc.com\u003e"},{"line_number":18,"context_line":"Change-Id: I65198fe507a11a1efd9f90e2f56d91023b689099"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":21,"id":"7a016987_1ecaaf4e","line":17,"updated":"2015-05-19 21:39:03.000000000","message":"just nit, since you\u0027re the git author, you don\u0027t need to be co-author but rather provide Josh as a co-author if you wish.","commit_id":"caab7e8e5ae35c929252b3091fb5fefbfe5ce83a"}],"specs/kilo/approved/service-group-using-tooz.rst":[{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"48d8cd3dec8c7bbc83b24570767f5a942fa448e2","unresolved":false,"context_lines":[{"line_number":56,"context_line":""},{"line_number":57,"context_line":"It doesn\u0027t appear to be listed in the current `kilo priorities`_ but it does"},{"line_number":58,"context_line":"feel like an exception should be made for something that *could* bring world"},{"line_number":59,"context_line":"peace..."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"Proposed change"},{"line_number":62,"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":7,"id":"3a961159_f23aa7cb","line":59,"updated":"2014-12-22 10:17:13.000000000","message":"Apologies but we can\u0027t add more priorities in Nova than the ones discusses in the Summit","commit_id":"b5299822ae7777210e32935b45fddac923ab333e"},{"author":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"change_message_id":"d77e681965d6a0b2cf62f405eff1c32f0ffdb279","unresolved":false,"context_lines":[{"line_number":56,"context_line":""},{"line_number":57,"context_line":"It doesn\u0027t appear to be listed in the current `kilo priorities`_ but it does"},{"line_number":58,"context_line":"feel like an exception should be made for something that *could* bring world"},{"line_number":59,"context_line":"peace..."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"Proposed change"},{"line_number":62,"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":7,"id":"3a961159_be6a9e7e","line":59,"in_reply_to":"3a961159_f23aa7cb","updated":"2014-12-22 19:35:56.000000000","message":"But but but, world peace!!","commit_id":"b5299822ae7777210e32935b45fddac923ab333e"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"48d8cd3dec8c7bbc83b24570767f5a942fa448e2","unresolved":false,"context_lines":[{"line_number":122,"context_line":"Following this change (and perhaps in the release after this change?) the"},{"line_number":123,"context_line":"older implementation(s) would be marked as deprecated/no longer supported and"},{"line_number":124,"context_line":"then in a release after this depreciation they could/would be removed (leaving"},{"line_number":125,"context_line":"only the tooz implementation)."},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"Alternatives"},{"line_number":128,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"3a961159_52453b41","line":125,"updated":"2014-12-22 10:17:13.000000000","message":"Deprecation is needed there, because computenodes can be one release before the other Nova services\n\nSo we need to make sure that computes that are calling the servicegroup API can still get the old model","commit_id":"b5299822ae7777210e32935b45fddac923ab333e"},{"author":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"change_message_id":"d77e681965d6a0b2cf62f405eff1c32f0ffdb279","unresolved":false,"context_lines":[{"line_number":122,"context_line":"Following this change (and perhaps in the release after this change?) the"},{"line_number":123,"context_line":"older implementation(s) would be marked as deprecated/no longer supported and"},{"line_number":124,"context_line":"then in a release after this depreciation they could/would be removed (leaving"},{"line_number":125,"context_line":"only the tooz implementation)."},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"Alternatives"},{"line_number":128,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"3a961159_fe2ee641","line":125,"in_reply_to":"3a961159_52453b41","updated":"2014-12-22 19:35:56.000000000","message":"Right, deprecation it is then.","commit_id":"b5299822ae7777210e32935b45fddac923ab333e"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"48d8cd3dec8c7bbc83b24570767f5a942fa448e2","unresolved":false,"context_lines":[{"line_number":158,"context_line":"    | deleted         | int(11)      | YES  |     | NULL    |                |"},{"line_number":159,"context_line":"    | disabled_reason | varchar(255) | YES  |     | NULL    |                |"},{"line_number":160,"context_line":"    +-----------------+--------------+------+-----+---------+----------------+"},{"line_number":161,"context_line":"    11 rows in set (0.00 sec)"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"What to do about this driver:"},{"line_number":164,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"3a961159_722797b6","line":161,"updated":"2014-12-22 10:17:13.000000000","message":"This table is also used for the other servicegroup drivers, see below.\n\nFor info, I\u0027m working on detaching the service vs. computenode DB tables, because there is a FK that needs to be removed.\n\nSee http://specs.openstack.org/openstack/nova-specs/specs/kilo/approved/detach-service-from-computenode.html for rationale and https://review.openstack.org/#/q/project:openstack/nova+branch:master+topic:bp/detach-service-from-computenode,n,z for implementation","commit_id":"b5299822ae7777210e32935b45fddac923ab333e"},{"author":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"change_message_id":"d77e681965d6a0b2cf62f405eff1c32f0ffdb279","unresolved":false,"context_lines":[{"line_number":158,"context_line":"    | deleted         | int(11)      | YES  |     | NULL    |                |"},{"line_number":159,"context_line":"    | disabled_reason | varchar(255) | YES  |     | NULL    |                |"},{"line_number":160,"context_line":"    +-----------------+--------------+------+-----+---------+----------------+"},{"line_number":161,"context_line":"    11 rows in set (0.00 sec)"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"What to do about this driver:"},{"line_number":164,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"3a961159_9ea08291","line":161,"in_reply_to":"3a961159_722797b6","updated":"2014-12-22 19:35:56.000000000","message":"Cool, thx!","commit_id":"b5299822ae7777210e32935b45fddac923ab333e"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"48d8cd3dec8c7bbc83b24570767f5a942fa448e2","unresolved":false,"context_lines":[{"line_number":163,"context_line":"What to do about this driver:"},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"#. Leave the driver in nova (and don\u0027t deprecate it)."},{"line_number":166,"context_line":"#. Something else?"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"mc.py"},{"line_number":169,"context_line":"~~~~~"}],"source_content_type":"text/x-rst","patch_set":7,"id":"3a961159_d2704ba6","line":166,"updated":"2014-12-22 10:17:13.000000000","message":"I think it should be an option, nope ?","commit_id":"b5299822ae7777210e32935b45fddac923ab333e"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"499dd5196326c105fad3a7d531bad9b6cf022201","unresolved":false,"context_lines":[{"line_number":163,"context_line":"What to do about this driver:"},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"#. Leave the driver in nova (and don\u0027t deprecate it)."},{"line_number":166,"context_line":"#. Something else?"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"mc.py"},{"line_number":169,"context_line":"~~~~~"}],"source_content_type":"text/x-rst","patch_set":7,"id":"3a961159_b5bb90c2","line":166,"in_reply_to":"3a961159_5e28da32","updated":"2014-12-23 09:17:28.000000000","message":"It should be optional to leave the existing SG driver, at least the DB one IMHO.\n\nWe can consider that ZK and MC will be covered by tooz, but deployers could want to keep Nova dependencies as minimal as possible and accept the existing DB driver as a good one.","commit_id":"b5299822ae7777210e32935b45fddac923ab333e"},{"author":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"change_message_id":"9fc52eb9a8609f02c06eacbc3167ba653b3014aa","unresolved":false,"context_lines":[{"line_number":163,"context_line":"What to do about this driver:"},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"#. Leave the driver in nova (and don\u0027t deprecate it)."},{"line_number":166,"context_line":"#. Something else?"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"mc.py"},{"line_number":169,"context_line":"~~~~~"}],"source_content_type":"text/x-rst","patch_set":7,"id":"3a961159_5219c678","line":166,"in_reply_to":"3a961159_b5bb90c2","updated":"2015-01-06 23:59:34.000000000","message":"Sounds fine with me.","commit_id":"b5299822ae7777210e32935b45fddac923ab333e"},{"author":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"change_message_id":"d77e681965d6a0b2cf62f405eff1c32f0ffdb279","unresolved":false,"context_lines":[{"line_number":163,"context_line":"What to do about this driver:"},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"#. Leave the driver in nova (and don\u0027t deprecate it)."},{"line_number":166,"context_line":"#. Something else?"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"mc.py"},{"line_number":169,"context_line":"~~~~~"}],"source_content_type":"text/x-rst","patch_set":7,"id":"3a961159_5e28da32","line":166,"in_reply_to":"3a961159_d2704ba6","updated":"2014-12-22 19:35:56.000000000","message":"What should be an option?","commit_id":"b5299822ae7777210e32935b45fddac923ab333e"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"48d8cd3dec8c7bbc83b24570767f5a942fa448e2","unresolved":false,"context_lines":[{"line_number":176,"context_line":""},{"line_number":177,"context_line":"This driver uses keys of the format::"},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"    key \u003d \"%(topic)s:%(host)s\" % service_ref"},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"Things to note:"},{"line_number":182,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"3a961159_325fcf10","line":179,"updated":"2014-12-22 10:17:13.000000000","message":"FYI service_ref is the DB entry seen above","commit_id":"b5299822ae7777210e32935b45fddac923ab333e"},{"author":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"change_message_id":"d77e681965d6a0b2cf62f405eff1c32f0ffdb279","unresolved":false,"context_lines":[{"line_number":176,"context_line":""},{"line_number":177,"context_line":"This driver uses keys of the format::"},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"    key \u003d \"%(topic)s:%(host)s\" % service_ref"},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"Things to note:"},{"line_number":182,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"3a961159_1e32d2a6","line":179,"in_reply_to":"3a961159_325fcf10","updated":"2014-12-22 19:35:56.000000000","message":"Thanks!","commit_id":"b5299822ae7777210e32935b45fddac923ab333e"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"48d8cd3dec8c7bbc83b24570767f5a942fa448e2","unresolved":false,"context_lines":[{"line_number":210,"context_line":"  - This disconnect of the database from tooz will be a functionality"},{"line_number":211,"context_line":"    difference that needs to be documented and tested (and hopefully is a"},{"line_number":212,"context_line":"    welcome change that reduces the coupling between the ``services`` table,"},{"line_number":213,"context_line":"    the database, and the various drivers)."},{"line_number":214,"context_line":""},{"line_number":215,"context_line":"- Something else?"},{"line_number":216,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"3a961159_729cf7c0","line":213,"updated":"2014-12-22 10:17:13.000000000","message":"++ for deprecating it","commit_id":"b5299822ae7777210e32935b45fddac923ab333e"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"48d8cd3dec8c7bbc83b24570767f5a942fa448e2","unresolved":false,"context_lines":[{"line_number":224,"context_line":"client connected to zookeeper has not *reported in* after a given amount of"},{"line_number":225,"context_line":"time this driver also *internally* uses a green thread that will"},{"line_number":226,"context_line":"periodically *report in* to zookeeper to ensure that the ephemeral node is"},{"line_number":227,"context_line":"not automatically removed."},{"line_number":228,"context_line":""},{"line_number":229,"context_line":"Options for what to do about this driver:"},{"line_number":230,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"3a961159_d27e8b69","line":227,"updated":"2014-12-22 10:17:13.000000000","message":"FYI, ZK also queries the services Nova DB table, see http://git.openstack.org/cgit/openstack/nova/tree/nova/servicegroup/drivers/zk.py#n117","commit_id":"b5299822ae7777210e32935b45fddac923ab333e"},{"author":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"change_message_id":"9fc52eb9a8609f02c06eacbc3167ba653b3014aa","unresolved":false,"context_lines":[{"line_number":224,"context_line":"client connected to zookeeper has not *reported in* after a given amount of"},{"line_number":225,"context_line":"time this driver also *internally* uses a green thread that will"},{"line_number":226,"context_line":"periodically *report in* to zookeeper to ensure that the ephemeral node is"},{"line_number":227,"context_line":"not automatically removed."},{"line_number":228,"context_line":""},{"line_number":229,"context_line":"Options for what to do about this driver:"},{"line_number":230,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"3a961159_9226ceb8","line":227,"in_reply_to":"3a961159_15a544a1","updated":"2015-01-06 23:59:34.000000000","message":"Ya, crzy stuff... Think I made a note of that in a later change.","commit_id":"b5299822ae7777210e32935b45fddac923ab333e"},{"author":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"change_message_id":"d77e681965d6a0b2cf62f405eff1c32f0ffdb279","unresolved":false,"context_lines":[{"line_number":224,"context_line":"client connected to zookeeper has not *reported in* after a given amount of"},{"line_number":225,"context_line":"time this driver also *internally* uses a green thread that will"},{"line_number":226,"context_line":"periodically *report in* to zookeeper to ensure that the ephemeral node is"},{"line_number":227,"context_line":"not automatically removed."},{"line_number":228,"context_line":""},{"line_number":229,"context_line":"Options for what to do about this driver:"},{"line_number":230,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"3a961159_de6f6a5e","line":227,"in_reply_to":"3a961159_d27e8b69","updated":"2014-12-22 19:35:56.000000000","message":"I\u0027m confused, what part of that is the query into the services table? Or do u mean that someone else provides the \u0027service_ref\u0027 object and that is coming from the database (the driver itself doesn\u0027t seem to directly query that table).","commit_id":"b5299822ae7777210e32935b45fddac923ab333e"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"499dd5196326c105fad3a7d531bad9b6cf022201","unresolved":false,"context_lines":[{"line_number":224,"context_line":"client connected to zookeeper has not *reported in* after a given amount of"},{"line_number":225,"context_line":"time this driver also *internally* uses a green thread that will"},{"line_number":226,"context_line":"periodically *report in* to zookeeper to ensure that the ephemeral node is"},{"line_number":227,"context_line":"not automatically removed."},{"line_number":228,"context_line":""},{"line_number":229,"context_line":"Options for what to do about this driver:"},{"line_number":230,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"3a961159_15a544a1","line":227,"in_reply_to":"3a961159_de6f6a5e","updated":"2014-12-23 09:17:28.000000000","message":"That\u0027s correct, service_ref is actually an argument from the method, given by callers which actually query the DB table to get it.","commit_id":"b5299822ae7777210e32935b45fddac923ab333e"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"48d8cd3dec8c7bbc83b24570767f5a942fa448e2","unresolved":false,"context_lines":[{"line_number":231,"context_line":"- Remove it/deprecate it, tooz provides the equivalent functionality using its"},{"line_number":232,"context_line":"  own zookeeper implementation using `kazoo`_ (which is maintained and is more"},{"line_number":233,"context_line":"  active in the python community). The functionality translation should be"},{"line_number":234,"context_line":"  relatively simple and straight-forward."},{"line_number":235,"context_line":""},{"line_number":236,"context_line":"Things to note:"},{"line_number":237,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"3a961159_92a163fa","line":234,"updated":"2014-12-22 10:17:13.000000000","message":"++ for deprecating it","commit_id":"b5299822ae7777210e32935b45fddac923ab333e"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"dded9944d52bf3f3b7b3451184050022040a307a","unresolved":false,"context_lines":[{"line_number":42,"context_line":"- Keep the code less stale (ex, the zookeeper driver is using an"},{"line_number":43,"context_line":"  outdated/dead? `evzookeeper`_ driver from 2012 with a `zookeeper unit test`_"},{"line_number":44,"context_line":"  that likely isn\u0027t/hasn\u0027t(?) ever been tested in an automated fashion)."},{"line_number":45,"context_line":"- World peace..."},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"Use Cases"},{"line_number":48,"context_line":"----------"}],"source_content_type":"text/x-rst","patch_set":9,"id":"3a961159_c165691e","line":45,"updated":"2015-01-12 15:21:46.000000000","message":"never!","commit_id":"05d5b73451c7adcd1ceab667b2b4dca55647cc66"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"dded9944d52bf3f3b7b3451184050022040a307a","unresolved":false,"context_lines":[{"line_number":48,"context_line":"----------"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"- Developer (nova team has to maintain, test, own less code)."},{"line_number":51,"context_line":"- Deployer (they can *potentially* configure tooz to use a backend of there"},{"line_number":52,"context_line":"  choosing)."},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"Project Priority"}],"source_content_type":"text/x-rst","patch_set":9,"id":"3a961159_81528133","line":51,"updated":"2015-01-12 15:21:46.000000000","message":"s/there/their/","commit_id":"05d5b73451c7adcd1ceab667b2b4dca55647cc66"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"dded9944d52bf3f3b7b3451184050022040a307a","unresolved":false,"context_lines":[{"line_number":54,"context_line":"Project Priority"},{"line_number":55,"context_line":"-----------------"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"It doesn\u0027t appear to be listed in the current `kilo priorities`_ but it does"},{"line_number":58,"context_line":"feel like an exception should be made for something that *could* bring world"},{"line_number":59,"context_line":"peace..."},{"line_number":60,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"3a961159_7c17fa45","line":57,"updated":"2015-01-12 15:21:46.000000000","message":"Technical debt isn\u0027t listed as a specific priority but it is a theme, so rather than refer to world peace maybe just say:\n\n\"None, but does help with technical debt which is an overall theme.\"","commit_id":"05d5b73451c7adcd1ceab667b2b4dca55647cc66"},{"author":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"change_message_id":"fea60022756471479a55383eb0016d2a84188530","unresolved":false,"context_lines":[{"line_number":54,"context_line":"Project Priority"},{"line_number":55,"context_line":"-----------------"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"It doesn\u0027t appear to be listed in the current `kilo priorities`_ but it does"},{"line_number":58,"context_line":"feel like an exception should be made for something that *could* bring world"},{"line_number":59,"context_line":"peace..."},{"line_number":60,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"3a961159_582a3530","line":57,"in_reply_to":"3a961159_7c17fa45","updated":"2015-01-13 02:07:32.000000000","message":"World peace and technical debt then ;)","commit_id":"05d5b73451c7adcd1ceab667b2b4dca55647cc66"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"dded9944d52bf3f3b7b3451184050022040a307a","unresolved":false,"context_lines":[{"line_number":163,"context_line":"What to do about this driver:"},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"#. Leave the driver in nova (and don\u0027t deprecate it)."},{"line_number":166,"context_line":"#. Something else?"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"mc.py"},{"line_number":169,"context_line":"~~~~~"}],"source_content_type":"text/x-rst","patch_set":9,"id":"3a961159_7c453a42","line":166,"updated":"2015-01-12 15:21:46.000000000","message":"Could there be some callback hook from tooz so that nova can provide DB information?","commit_id":"05d5b73451c7adcd1ceab667b2b4dca55647cc66"},{"author":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"change_message_id":"fea60022756471479a55383eb0016d2a84188530","unresolved":false,"context_lines":[{"line_number":163,"context_line":"What to do about this driver:"},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"#. Leave the driver in nova (and don\u0027t deprecate it)."},{"line_number":166,"context_line":"#. Something else?"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"mc.py"},{"line_number":169,"context_line":"~~~~~"}],"source_content_type":"text/x-rst","patch_set":9,"id":"3a961159_189d0d67","line":166,"in_reply_to":"3a961159_7c453a42","updated":"2015-01-13 02:07:32.000000000","message":"Unsure what that would do; tooz currently owns the group information *and* who is in the group and who isn\u0027t (and it maintains the liveness data to kick members out of groups). So having part of that information about who is in what group in nova but leaving the rest of the information in tooz doesn\u0027t seem to make sense (at least with the current tooz api).\n\nhttp://docs.openstack.org/developer/tooz/developers.html#interfaces\n\nMy general feeling is that this information should not be in the database; let tooz manage group membership and liveness and if needed have this services table provide metadata about those services that is not appropriate to put in tooz (tooz isn\u0027t a metadata store). So that would imho leave [topic, binary, host] in this table as metadata and let tooz handle the rest (with the host as the joining key). Of course this a big change in nova since afaik nova is using the combined concepts currently (munging together service metadata information, service liveness information into the same table).","commit_id":"05d5b73451c7adcd1ceab667b2b4dca55647cc66"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"dded9944d52bf3f3b7b3451184050022040a307a","unresolved":false,"context_lines":[{"line_number":209,"context_line":"  information in memcache (or redis) itself."},{"line_number":210,"context_line":""},{"line_number":211,"context_line":"  - This disconnect of the database from tooz will be a functionality"},{"line_number":212,"context_line":"    difference that needs to be documented and tested (and hopefully is a"},{"line_number":213,"context_line":"    welcome change that reduces the coupling between the ``services`` table,"},{"line_number":214,"context_line":"    the database, and the various drivers)."},{"line_number":215,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"3a961159_3cbe5201","line":212,"updated":"2015-01-12 15:21:46.000000000","message":"Unfortunately we don\u0027t test any other drivers but DB in the gate so we probably won\u0027t know if we regress this until someone using it reports a bug (or any manual external testing).\n\nMaybe we should think about custom jobs on the experimental queue while any of this development is in progress, i.e. get a baseline job working with the existing nova driver and then make sure that doesn\u0027t regress as it\u0027s being replaced.","commit_id":"05d5b73451c7adcd1ceab667b2b4dca55647cc66"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"dded9944d52bf3f3b7b3451184050022040a307a","unresolved":false,"context_lines":[{"line_number":238,"context_line":""},{"line_number":239,"context_line":"- The `evzookeeper`_ doesn\u0027t seem to well tested or used in nova, in fact it"},{"line_number":240,"context_line":"  has conditional imports around using `evzookeeper`_ so it doesn\u0027t seem like"},{"line_number":241,"context_line":"  this driver is well maintained/tested or integrated with in the nova code"},{"line_number":242,"context_line":"  base (ie ``evzookeeper`` isn\u0027t in the global requirements repo...) so"},{"line_number":243,"context_line":"  deprecating it would seem like a benefit for all."},{"line_number":244,"context_line":"- It still does depend on having its ``is_up`` function being provided"}],"source_content_type":"text/x-rst","patch_set":9,"id":"3a961159_fc5a0af1","line":241,"updated":"2015-01-12 15:21:46.000000000","message":"Same comment as above, it\u0027d be nice to see an experimental queue job for this driver and then make sure it doesn\u0027t regress as we move over to tooz (it might even fix problems, idk).","commit_id":"05d5b73451c7adcd1ceab667b2b4dca55647cc66"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"dded9944d52bf3f3b7b3451184050022040a307a","unresolved":false,"context_lines":[{"line_number":299,"context_line":"when they switch from the existing drivers to this new tooz one. To accomodate"},{"line_number":300,"context_line":"this change in a way that does *not* cause service(s) to report downtime and/or"},{"line_number":301,"context_line":"disappear (since group membership will change to the tooz model) it would"},{"line_number":302,"context_line":"be advantegous to have or be able to run the old service group driver"},{"line_number":303,"context_line":"and the new tooz driver for a period of time (and then after this period has"},{"line_number":304,"context_line":"elapsed stop running the old service group driver)."},{"line_number":305,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"3a961159_3ce1f2fc","line":302,"updated":"2015-01-12 15:21:46.000000000","message":"s/advantegous/advantageous/","commit_id":"05d5b73451c7adcd1ceab667b2b4dca55647cc66"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"dded9944d52bf3f3b7b3451184050022040a307a","unresolved":false,"context_lines":[{"line_number":422,"context_line":"Developer impact"},{"line_number":423,"context_line":"----------------"},{"line_number":424,"context_line":""},{"line_number":425,"context_line":"- Nova developers may have to interact more with the oslo community (and"},{"line_number":426,"context_line":"  the tooz subcommunity) when learning, understanding, and integrating with"},{"line_number":427,"context_line":"  tooz."},{"line_number":428,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"3a961159_fc84ca0c","line":425,"updated":"2015-01-12 15:21:46.000000000","message":"omg but those guys are such *jerks*! :P","commit_id":"05d5b73451c7adcd1ceab667b2b4dca55647cc66"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"dded9944d52bf3f3b7b3451184050022040a307a","unresolved":false,"context_lines":[{"line_number":479,"context_line":"- Tooz already has integration testing with memcache, redis, zookeeper so"},{"line_number":480,"context_line":"  there shouldn\u0027t be a need for nova to reimplement that"},{"line_number":481,"context_line":"  functionality/integration in its own internal testing suite."},{"line_number":482,"context_line":"- Tempest tests will be used/added to test tooz + nova + [redis, memcache,"},{"line_number":483,"context_line":"  zookeeper] to ensure the whole system works together as expected."},{"line_number":484,"context_line":""},{"line_number":485,"context_line":"Documentation Impact"}],"source_content_type":"text/x-rst","patch_set":9,"id":"3a961159_7ca7faa7","line":482,"updated":"2015-01-12 15:21:46.000000000","message":"This wouldn\u0027t really be a tempest issue since from a tempest point of view it shouldn\u0027t matter what you\u0027re using under the covers, this is more of a devstack/job config issue (same as the experimental queue comments above).","commit_id":"05d5b73451c7adcd1ceab667b2b4dca55647cc66"}],"specs/kilo/service-group-using-tooz.rst":[{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"8f82728b7357b675c869663837c08f4ba0991d2f","unresolved":false,"context_lines":[{"line_number":16,"context_line":"if they are alive or dead (typically the member information includes what"},{"line_number":17,"context_line":"topic can be used to contact the member as well) we propose to retain a similar"},{"line_number":18,"context_line":"API in nova but instead using `tooz`_ (a new oslo library that has been under"},{"line_number":19,"context_line":"development for 6+ months) to provide the grouping concepts. This reduces"},{"line_number":20,"context_line":"the code in nova and gets nova out of maintaining group specific drivers in"},{"line_number":21,"context_line":"its codebase. This delegation of group membership duties will help keep the"},{"line_number":22,"context_line":"code less stale (for example the zookeeper driver is using an outdated/dead?"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a890539_67a612c3","line":19,"updated":"2014-12-03 08:26:32.000000000","message":"A year now :)","commit_id":"2b538ea729e6bc02c0c6039ff0667a5aea4c0e55"},{"author":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"change_message_id":"fce3ad0a03ab1d96170c00159af605288f5edb1f","unresolved":false,"context_lines":[{"line_number":16,"context_line":"if they are alive or dead (typically the member information includes what"},{"line_number":17,"context_line":"topic can be used to contact the member as well) we propose to retain a similar"},{"line_number":18,"context_line":"API in nova but instead using `tooz`_ (a new oslo library that has been under"},{"line_number":19,"context_line":"development for 6+ months) to provide the grouping concepts. This reduces"},{"line_number":20,"context_line":"the code in nova and gets nova out of maintaining group specific drivers in"},{"line_number":21,"context_line":"its codebase. This delegation of group membership duties will help keep the"},{"line_number":22,"context_line":"code less stale (for example the zookeeper driver is using an outdated/dead?"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a890539_c725060b","line":19,"in_reply_to":"5a890539_67a612c3","updated":"2014-12-03 08:32:38.000000000","message":"Damn, time flies, ha.","commit_id":"2b538ea729e6bc02c0c6039ff0667a5aea4c0e55"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"e8a3020944b1f9063fb0d35580230cddb1d4228f","unresolved":false,"context_lines":[{"line_number":299,"context_line":"    url \u003d \"redis://localhost:6379?timeout\u003d5\""},{"line_number":300,"context_line":""},{"line_number":301,"context_line":"To configure this a new ``cfg.CONF`` option would need to be created (perhaps"},{"line_number":302,"context_line":"named ``tooz_servicegroup_url``) that would be used to configure what driver"},{"line_number":303,"context_line":"tooz uses internally and what options it provides to that driver. Depending"},{"line_number":304,"context_line":"on how the existing drivers are deprecated this should be mostly transparent"},{"line_number":305,"context_line":"and can be accomplished by making it possible to transition from the existing"}],"source_content_type":"text/x-rst","patch_set":4,"id":"5a890539_b9a8e38c","line":302,"updated":"2014-12-04 10:07:36.000000000","message":"I don\u0027t think we should leak library name in end user config options. servicegroup_coordination_url might be better for example.","commit_id":"ad63c002567dc4d5fbd5389e9580f69a2670ec70"},{"author":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"change_message_id":"5a4055d9fb4080857e7cd02d5f9e1aa3d8f3be3d","unresolved":false,"context_lines":[{"line_number":299,"context_line":"    url \u003d \"redis://localhost:6379?timeout\u003d5\""},{"line_number":300,"context_line":""},{"line_number":301,"context_line":"To configure this a new ``cfg.CONF`` option would need to be created (perhaps"},{"line_number":302,"context_line":"named ``tooz_servicegroup_url``) that would be used to configure what driver"},{"line_number":303,"context_line":"tooz uses internally and what options it provides to that driver. Depending"},{"line_number":304,"context_line":"on how the existing drivers are deprecated this should be mostly transparent"},{"line_number":305,"context_line":"and can be accomplished by making it possible to transition from the existing"}],"source_content_type":"text/x-rst","patch_set":4,"id":"5a890539_d0dbb0ea","line":302,"in_reply_to":"5a890539_b9a8e38c","updated":"2014-12-04 19:23:34.000000000","message":"Good idea, will adjust.","commit_id":"ad63c002567dc4d5fbd5389e9580f69a2670ec70"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"a2a32c058a7aa6356093a852c0319be4a0dd819f","unresolved":false,"context_lines":[{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Instead of having nova maintain, test its own group membership code which"},{"line_number":14,"context_line":"is used to determine what services are up \u0026 down which is frequently used to"},{"line_number":15,"context_line":"determine which the members of a given group [compute, scheduler...] are and"},{"line_number":16,"context_line":"if they are alive or dead (typically the member information includes what"},{"line_number":17,"context_line":"topic can be used to contact the member as well) we propose to retain a similar"},{"line_number":18,"context_line":"API in nova but instead using `tooz`_ (a new oslo library that has been under"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3a961159_b1c58b8f","line":15,"updated":"2014-12-11 23:29:04.000000000","message":"s/which the/which/","commit_id":"9a0e8ef8df91932572fc3a95d49ca58681932f38"},{"author":{"_account_id":100,"name":"Johannes Erdfelt","email":"johannes@erdfelt.com","username":"johannes.erdfelt"},"change_message_id":"8b0d96b92a309fd5d5a380639a2d8f91346fab22","unresolved":false,"context_lines":[{"line_number":35,"context_line":"  test suite which is specialized to test the grouping concepts)."},{"line_number":36,"context_line":"- Provide a cleaner abstraction (since how tooz maintains the grouping"},{"line_number":37,"context_line":"  concept(s) is now an internal API implementation)."},{"line_number":38,"context_line":"- Reduce the burdon on the nova team around testing, management, maintenance"},{"line_number":39,"context_line":"  and general upkeep of the servicegroup concepts (seeing as this is something"},{"line_number":40,"context_line":"  that is not a direct feature of a compute project it seems like this burdon"},{"line_number":41,"context_line":"  should just be placed on a external project instead)."}],"source_content_type":"text/x-rst","patch_set":5,"id":"3a961159_6f023bb5","line":38,"updated":"2014-12-12 21:15:26.000000000","message":"s/burdon/burden/","commit_id":"9a0e8ef8df91932572fc3a95d49ca58681932f38"},{"author":{"_account_id":100,"name":"Johannes Erdfelt","email":"johannes@erdfelt.com","username":"johannes.erdfelt"},"change_message_id":"8b0d96b92a309fd5d5a380639a2d8f91346fab22","unresolved":false,"context_lines":[{"line_number":37,"context_line":"  concept(s) is now an internal API implementation)."},{"line_number":38,"context_line":"- Reduce the burdon on the nova team around testing, management, maintenance"},{"line_number":39,"context_line":"  and general upkeep of the servicegroup concepts (seeing as this is something"},{"line_number":40,"context_line":"  that is not a direct feature of a compute project it seems like this burdon"},{"line_number":41,"context_line":"  should just be placed on a external project instead)."},{"line_number":42,"context_line":"- Keep the code less stale (ex, the zookeeper driver is using an"},{"line_number":43,"context_line":"  outdated/dead? `evzookeeper`_ driver from 2012 with a `zookeeper unit test`_"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3a961159_af2fc33d","line":40,"updated":"2014-12-12 21:15:26.000000000","message":"s/burdon/burden/","commit_id":"9a0e8ef8df91932572fc3a95d49ca58681932f38"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"a2a32c058a7aa6356093a852c0319be4a0dd819f","unresolved":false,"context_lines":[{"line_number":56,"context_line":""},{"line_number":57,"context_line":"It doesn\u0027t appear to be listed in the current `kilo priorities`_ but it does"},{"line_number":58,"context_line":"feel like an exception should be made for something that *could* bring world"},{"line_number":59,"context_line":"peace..."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"Proposed change"},{"line_number":62,"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":5,"id":"3a961159_d1c21784","line":59,"updated":"2014-12-11 23:29:04.000000000","message":":)","commit_id":"9a0e8ef8df91932572fc3a95d49ca58681932f38"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"a2a32c058a7aa6356093a852c0319be4a0dd819f","unresolved":false,"context_lines":[{"line_number":117,"context_line":""},{"line_number":118,"context_line":"        def get_one(self, group_id):"},{"line_number":119,"context_line":"            # Call into impl to get one the members of the given group (and"},{"line_number":120,"context_line":"            # handle/translate appropriate errors)..."},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"Following this change (and perhaps in the release after this change?) the"},{"line_number":123,"context_line":"older implementation(s) would be marked as deprecated/no longer supported and"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3a961159_f1bb930c","line":120,"updated":"2014-12-11 23:29:04.000000000","message":"I don\u0027t really understand the idea that we should keep this ServiceGroupDriver abstraction in place at all if we use tooz. tooz is already the driver abstraction layer, so we should just have a servicegroup.API object that calls into the tooz library and be done with it.","commit_id":"9a0e8ef8df91932572fc3a95d49ca58681932f38"},{"author":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"change_message_id":"9d47d469fa27a478bb03ab9ad831ca3f4a7b4b00","unresolved":false,"context_lines":[{"line_number":117,"context_line":""},{"line_number":118,"context_line":"        def get_one(self, group_id):"},{"line_number":119,"context_line":"            # Call into impl to get one the members of the given group (and"},{"line_number":120,"context_line":"            # handle/translate appropriate errors)..."},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"Following this change (and perhaps in the release after this change?) the"},{"line_number":123,"context_line":"older implementation(s) would be marked as deprecated/no longer supported and"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3a961159_1a449348","line":120,"in_reply_to":"3a961159_f1bb930c","updated":"2014-12-12 21:32:24.000000000","message":"Sure, that\u0027s an option, gotta deprecate stuff somehow though. Perhaps removal is step 2 (or 3) of that deprecation strategy?","commit_id":"9a0e8ef8df91932572fc3a95d49ca58681932f38"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"a2a32c058a7aa6356093a852c0319be4a0dd819f","unresolved":false,"context_lines":[{"line_number":122,"context_line":"Following this change (and perhaps in the release after this change?) the"},{"line_number":123,"context_line":"older implementation(s) would be marked as deprecated/no longer supported and"},{"line_number":124,"context_line":"then in a release after this depreciation they could/would be removed (leaving"},{"line_number":125,"context_line":"only the tooz implementation)."},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"Alternatives"},{"line_number":128,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3a961159_11b9ff14","line":125,"updated":"2014-12-11 23:29:04.000000000","message":"OK, so perhaps after the deprecation cycle, we can consolidate the driver abstraction out of Nova...","commit_id":"9a0e8ef8df91932572fc3a95d49ca58681932f38"},{"author":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"change_message_id":"9d47d469fa27a478bb03ab9ad831ca3f4a7b4b00","unresolved":false,"context_lines":[{"line_number":122,"context_line":"Following this change (and perhaps in the release after this change?) the"},{"line_number":123,"context_line":"older implementation(s) would be marked as deprecated/no longer supported and"},{"line_number":124,"context_line":"then in a release after this depreciation they could/would be removed (leaving"},{"line_number":125,"context_line":"only the tooz implementation)."},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"Alternatives"},{"line_number":128,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3a961159_7a459741","line":125,"in_reply_to":"3a961159_11b9ff14","updated":"2014-12-12 21:32:24.000000000","message":"Agreed; except for the sorta awkward \u0027\u0027db.py\u0027\u0027 one described below, that is connected closely to nova\u0027s datamodel and internals; so that one may never exist in tooz for that reason...","commit_id":"9a0e8ef8df91932572fc3a95d49ca58681932f38"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"a2a32c058a7aa6356093a852c0319be4a0dd819f","unresolved":false,"context_lines":[{"line_number":169,"context_line":"   binding the two projects). Then have tooz test using its own version of that"},{"line_number":170,"context_line":"   format/data model (which *should* work transparently with the nova"},{"line_number":171,"context_line":"   format/data model as long as compatability is retained)."},{"line_number":172,"context_line":"#. Something else?"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"mc.py"},{"line_number":175,"context_line":"~~~~~"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3a961159_31399ba4","line":172,"updated":"2014-12-11 23:29:04.000000000","message":"So.. here\u0027s the problem with this. Even if you use a different non-db driver for the servicegroups in Nova, *there is still a service record created in the services table*. The reason is because of the (stupid) relationship between the services table and the compute_nodes table. This oddity is being addressed with the detach-service-from-compute-node blueprint which is almost entirely completed. So, bottom line... don\u0027t assume that just because the DB driver isn\u0027t configured that the services table will be empty, because it won\u0027t. :)","commit_id":"9a0e8ef8df91932572fc3a95d49ca58681932f38"},{"author":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"change_message_id":"9d47d469fa27a478bb03ab9ad831ca3f4a7b4b00","unresolved":false,"context_lines":[{"line_number":169,"context_line":"   binding the two projects). Then have tooz test using its own version of that"},{"line_number":170,"context_line":"   format/data model (which *should* work transparently with the nova"},{"line_number":171,"context_line":"   format/data model as long as compatability is retained)."},{"line_number":172,"context_line":"#. Something else?"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"mc.py"},{"line_number":175,"context_line":"~~~~~"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3a961159_daf20b05","line":172,"in_reply_to":"3a961159_31399ba4","updated":"2014-12-12 21:32:24.000000000","message":"Fair enough; that\u0027s why I\u0027m leaning to \u0027Leave the driver in nova (and don\u0027t deprecate it).\u0027 Perhaps someday in the future it can go bye-bye though...","commit_id":"9a0e8ef8df91932572fc3a95d49ca58681932f38"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"a2a32c058a7aa6356093a852c0319be4a0dd819f","unresolved":false,"context_lines":[{"line_number":193,"context_line":"  tables that the ``db.py`` driver uses). This is IMHO *confusing* and means"},{"line_number":194,"context_line":"  that the database ``services`` table (described above) is used but the"},{"line_number":195,"context_line":"  fields [updated_at, report_count, ...] are not actually used (the"},{"line_number":196,"context_line":"  fields [disabled, deleted, topic] though are)."},{"line_number":197,"context_line":"- Memcache is a *cache* and IMHO should *not* be used for this kind of"},{"line_number":198,"context_line":"  *critical* service liveness information (if the cache gets cleared or a"},{"line_number":199,"context_line":"  memcache server goes down, you may have just lost a portion of your"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3a961159_513e278d","line":196,"updated":"2014-12-11 23:29:04.000000000","message":"See above for the real reason the services table in the DB is actually used, it\u0027s not actually anything to do with the mc driver.","commit_id":"9a0e8ef8df91932572fc3a95d49ca58681932f38"},{"author":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"change_message_id":"d8e6242fd210f067a7411fd056c2cd11950703c8","unresolved":false,"context_lines":[{"line_number":193,"context_line":"  tables that the ``db.py`` driver uses). This is IMHO *confusing* and means"},{"line_number":194,"context_line":"  that the database ``services`` table (described above) is used but the"},{"line_number":195,"context_line":"  fields [updated_at, report_count, ...] are not actually used (the"},{"line_number":196,"context_line":"  fields [disabled, deleted, topic] though are)."},{"line_number":197,"context_line":"- Memcache is a *cache* and IMHO should *not* be used for this kind of"},{"line_number":198,"context_line":"  *critical* service liveness information (if the cache gets cleared or a"},{"line_number":199,"context_line":"  memcache server goes down, you may have just lost a portion of your"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3a961159_9ad6c326","line":196,"in_reply_to":"3a961159_513e278d","updated":"2014-12-12 21:35:12.000000000","message":"Ya, the historical context would be interesting to look over for why this driver only does what it does...","commit_id":"9a0e8ef8df91932572fc3a95d49ca58681932f38"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"a2a32c058a7aa6356093a852c0319be4a0dd819f","unresolved":false,"context_lines":[{"line_number":318,"context_line":"disappear (since group membership will change to the tooz model) it would"},{"line_number":319,"context_line":"likely be advantegous to have or be able to run the old service group driver"},{"line_number":320,"context_line":"and the new tooz driver for a period of time (and then after this period has"},{"line_number":321,"context_line":"elapsed stop running the old service group driver)."},{"line_number":322,"context_line":""},{"line_number":323,"context_line":"Developer impact"},{"line_number":324,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3a961159_713fa387","line":321,"updated":"2014-12-11 23:29:04.000000000","message":"Hmm, how would you propose running two service group drivers at the same time?","commit_id":"9a0e8ef8df91932572fc3a95d49ca58681932f38"},{"author":{"_account_id":100,"name":"Johannes Erdfelt","email":"johannes@erdfelt.com","username":"johannes.erdfelt"},"change_message_id":"8b0d96b92a309fd5d5a380639a2d8f91346fab22","unresolved":false,"context_lines":[{"line_number":318,"context_line":"disappear (since group membership will change to the tooz model) it would"},{"line_number":319,"context_line":"likely be advantegous to have or be able to run the old service group driver"},{"line_number":320,"context_line":"and the new tooz driver for a period of time (and then after this period has"},{"line_number":321,"context_line":"elapsed stop running the old service group driver)."},{"line_number":322,"context_line":""},{"line_number":323,"context_line":"Developer impact"},{"line_number":324,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3a961159_efe62be7","line":321,"in_reply_to":"3a961159_713fa387","updated":"2014-12-12 21:15:26.000000000","message":"It seems like problem with the existing data is only an issue for rolling upgrades, right? Just trying to understand the scope of this problem.","commit_id":"9a0e8ef8df91932572fc3a95d49ca58681932f38"},{"author":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"change_message_id":"9d47d469fa27a478bb03ab9ad831ca3f4a7b4b00","unresolved":false,"context_lines":[{"line_number":318,"context_line":"disappear (since group membership will change to the tooz model) it would"},{"line_number":319,"context_line":"likely be advantegous to have or be able to run the old service group driver"},{"line_number":320,"context_line":"and the new tooz driver for a period of time (and then after this period has"},{"line_number":321,"context_line":"elapsed stop running the old service group driver)."},{"line_number":322,"context_line":""},{"line_number":323,"context_line":"Developer impact"},{"line_number":324,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3a961159_9a3a4397","line":321,"in_reply_to":"3a961159_efe62be7","updated":"2014-12-12 21:32:24.000000000","message":"Yes, only for rolling upgrades. If nobody cares about that then this problem becomes easier ;) Though if people do then there has to be some sorta of simultaneous running, or tooz needs to be able to read from the old nova records (in zookeeper/memcache) and write to somewhere else to ensure your cluster doesn\u0027t disappear while this transition happens ;)","commit_id":"9a0e8ef8df91932572fc3a95d49ca58681932f38"},{"author":{"_account_id":100,"name":"Johannes Erdfelt","email":"johannes@erdfelt.com","username":"johannes.erdfelt"},"change_message_id":"8b0d96b92a309fd5d5a380639a2d8f91346fab22","unresolved":false,"context_lines":[{"line_number":333,"context_line":"Assignee(s)"},{"line_number":334,"context_line":"-----------"},{"line_number":335,"context_line":""},{"line_number":336,"context_line":"Currently throwing it up there, but likely candiates exist..."},{"line_number":337,"context_line":""},{"line_number":338,"context_line":"Work Items"},{"line_number":339,"context_line":"----------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3a961159_2fd4b3ea","line":336,"updated":"2014-12-12 21:15:26.000000000","message":"s/candiates/candidates/","commit_id":"9a0e8ef8df91932572fc3a95d49ca58681932f38"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"a2a32c058a7aa6356093a852c0319be4a0dd819f","unresolved":false,"context_lines":[{"line_number":386,"context_line":"Documentation Impact"},{"line_number":387,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":388,"context_line":""},{"line_number":389,"context_line":"- The *legacy* driver depreciation and associated migration strategy/plan"},{"line_number":390,"context_line":"  needs to be documented and explained to operators."},{"line_number":391,"context_line":"- How to use the new driver and how to configure it needs to be documented"},{"line_number":392,"context_line":"  appropriatlely."}],"source_content_type":"text/x-rst","patch_set":5,"id":"3a961159_91440f1c","line":389,"updated":"2014-12-11 23:29:04.000000000","message":"s/depreciation/deprecation/","commit_id":"9a0e8ef8df91932572fc3a95d49ca58681932f38"},{"author":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"change_message_id":"9d47d469fa27a478bb03ab9ad831ca3f4a7b4b00","unresolved":false,"context_lines":[{"line_number":386,"context_line":"Documentation Impact"},{"line_number":387,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":388,"context_line":""},{"line_number":389,"context_line":"- The *legacy* driver depreciation and associated migration strategy/plan"},{"line_number":390,"context_line":"  needs to be documented and explained to operators."},{"line_number":391,"context_line":"- How to use the new driver and how to configure it needs to be documented"},{"line_number":392,"context_line":"  appropriatlely."}],"source_content_type":"text/x-rst","patch_set":5,"id":"3a961159_7a4f5734","line":389,"in_reply_to":"3a961159_91440f1c","updated":"2014-12-12 21:32:24.000000000","message":"Damn, someday I\u0027ll learn how to spell, lol.","commit_id":"9a0e8ef8df91932572fc3a95d49ca58681932f38"}],"specs/liberty/approved/service-group-using-tooz.rst":[{"author":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"change_message_id":"e9c056bbb52915499ac6200f8859cbb7eead5d03","unresolved":false,"context_lines":[{"line_number":54,"context_line":"Project Priority"},{"line_number":55,"context_line":"-----------------"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"It doesn\u0027t appear to be listed in the current `kilo priorities`_ but it does"},{"line_number":58,"context_line":"feel like an exception should be made for something that *could* bring world"},{"line_number":59,"context_line":"peace..."},{"line_number":60,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"9aa53dc9_ceb10f03","line":57,"updated":"2015-04-09 17:52:14.000000000","message":"If this is now liberty this shouldn\u0027t say kilo ;)","commit_id":"8d51977b649eb7608887958c883bc36bce3b65d3"},{"author":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"change_message_id":"b7a3ab0c30a01f88578e3192e0129c78bf81c892","unresolved":false,"context_lines":[{"line_number":456,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":457,"context_line":""},{"line_number":458,"context_line":"- Tooz"},{"line_number":459,"context_line":""},{"line_number":460,"context_line":"*Current* dependencies (all but ``pymemcache`` are in the global"},{"line_number":461,"context_line":"requirements repo, this should be fixed before it becomes a further issue)::"},{"line_number":462,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"7aaa499b_3545a9b2","line":459,"updated":"2015-04-14 15:40:22.000000000","message":"Can u remove \u0027all but ``pymemcache`` are in the global requirements repo, this should be fixed before it becomes a further issue\u0027 as that has been fixed.","commit_id":"7bc88405aa53259c1a970ffa9cf45e99bb823cab"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"aaa012932c3da2ba9c126664d66010cb1f7a3cca","unresolved":false,"context_lines":[{"line_number":456,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":457,"context_line":""},{"line_number":458,"context_line":"- Tooz"},{"line_number":459,"context_line":""},{"line_number":460,"context_line":"*Current* dependencies (all but ``pymemcache`` are in the global"},{"line_number":461,"context_line":"requirements repo, this should be fixed before it becomes a further issue)::"},{"line_number":462,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"7aaa499b_efeac50e","line":459,"in_reply_to":"7aaa499b_3545a9b2","updated":"2015-04-14 19:29:12.000000000","message":"Done","commit_id":"7bc88405aa53259c1a970ffa9cf45e99bb823cab"},{"author":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"change_message_id":"b7a3ab0c30a01f88578e3192e0129c78bf81c892","unresolved":false,"context_lines":[{"line_number":500,"context_line":""},{"line_number":501,"context_line":"Tooz rtd:"},{"line_number":502,"context_line":""},{"line_number":503,"context_line":"- http://tooz.readthedocs.org"},{"line_number":504,"context_line":""},{"line_number":505,"context_line":"Others:"},{"line_number":506,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"7aaa499b_d5356546","line":503,"updated":"2015-04-14 15:40:22.000000000","message":"Can we get this linked to:\n\nhttp://docs.openstack.org/developer/tooz/\n\nAs http://tooz.readthedocs.org is deleted/gone.","commit_id":"7bc88405aa53259c1a970ffa9cf45e99bb823cab"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"aaa012932c3da2ba9c126664d66010cb1f7a3cca","unresolved":false,"context_lines":[{"line_number":500,"context_line":""},{"line_number":501,"context_line":"Tooz rtd:"},{"line_number":502,"context_line":""},{"line_number":503,"context_line":"- http://tooz.readthedocs.org"},{"line_number":504,"context_line":""},{"line_number":505,"context_line":"Others:"},{"line_number":506,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"7aaa499b_6f435543","line":503,"in_reply_to":"7aaa499b_d5356546","updated":"2015-04-14 19:29:12.000000000","message":"Done","commit_id":"7bc88405aa53259c1a970ffa9cf45e99bb823cab"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"01b27cc85b050f342c79f1da639eb63e5fafa0ec","unresolved":false,"context_lines":[{"line_number":16,"context_line":"if they are alive or dead (typically the member information includes what"},{"line_number":17,"context_line":"topic can be used to contact the member as well) we propose to retain a similar"},{"line_number":18,"context_line":"API in nova but instead using `tooz`_ (a new oslo library that has been under"},{"line_number":19,"context_line":"development for around a year) to provide the grouping concepts."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"Problem description"},{"line_number":22,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":12,"id":"bab921fb_7436cc04","line":19,"updated":"2015-04-23 11:15:21.000000000","message":"Having read the spec, and now understanding what being proposed, its quite different.\n\nI think all we need is something like:\n\nNova can replace the need to maintain several of its own group membership drivers by replacing them with a thin driver that uses Tooz.","commit_id":"9fdf4e56c8ade4b5d7aae99b36a76a4060890f81"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"01b27cc85b050f342c79f1da639eb63e5fafa0ec","unresolved":false,"context_lines":[{"line_number":27,"context_line":"test, and support code that does these group membership concepts (currently"},{"line_number":28,"context_line":"supporting [db, memcache, zookeeper] drivers) the `tooz`_ library can instead"},{"line_number":29,"context_line":"be used as the entrypoint and driver provider/maintainer that provides"},{"line_number":30,"context_line":"equivalent concepts."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"This will have the following benefits (not an all inclusive listing):"},{"line_number":33,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"bab921fb_94184086","line":30,"updated":"2015-04-23 11:15:21.000000000","message":"But it can\u0027t, because it doesn\u0027t have a db driver.\n\nIts only replacing the non-db drivers. And thats fine.","commit_id":"9fdf4e56c8ade4b5d7aae99b36a76a4060890f81"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"01b27cc85b050f342c79f1da639eb63e5fafa0ec","unresolved":false,"context_lines":[{"line_number":63,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"The proposed change would be to refactor the ``servicegroup/api.py`` API"},{"line_number":66,"context_line":"to have only a single implementation that is backed by tooz. Instead of"},{"line_number":67,"context_line":"having an API (shown below) that would be backed by custom implementations"},{"line_number":68,"context_line":"in nova (one of [db, memcache, zookeeper]) there would be a single API that"},{"line_number":69,"context_line":"would just use tooz."}],"source_content_type":"text/x-rst","patch_set":12,"id":"bab921fb_34173453","line":66,"updated":"2015-04-23 11:15:21.000000000","message":"But what about the DB driver? I think we are saying we are keeping that in Nova, so there will be two drivers, tooz and DB.","commit_id":"9fdf4e56c8ade4b5d7aae99b36a76a4060890f81"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"71b847d8e8ef50c4006d56f7d762448639b063c4","unresolved":false,"context_lines":[{"line_number":102,"context_line":""},{"line_number":103,"context_line":"        def join(self, member_id, group_id, service\u003dNone):"},{"line_number":104,"context_line":"            # Call into impl to join (and handle/translate the"},{"line_number":105,"context_line":"            # appropriate errors)..."},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"        def is_up(self, member):"},{"line_number":108,"context_line":"            # Call into impl to check if the member is up... (and"}],"source_content_type":"text/x-rst","patch_set":12,"id":"7aaa499b_d230bf03","line":105,"updated":"2015-04-15 09:12:05.000000000","message":"I am assuming tooz will have a nice facade that deals with giving us a nice simple interface that works across all the drivers.","commit_id":"9fdf4e56c8ade4b5d7aae99b36a76a4060890f81"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"43a35225de8751c2023acd57efc3184354b898a9","unresolved":false,"context_lines":[{"line_number":102,"context_line":""},{"line_number":103,"context_line":"        def join(self, member_id, group_id, service\u003dNone):"},{"line_number":104,"context_line":"            # Call into impl to join (and handle/translate the"},{"line_number":105,"context_line":"            # appropriate errors)..."},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"        def is_up(self, member):"},{"line_number":108,"context_line":"            # Call into impl to check if the member is up... (and"}],"source_content_type":"text/x-rst","patch_set":12,"id":"dac4157f_0c30ba55","line":105,"in_reply_to":"7aaa499b_c4f7c757","updated":"2015-04-20 06:58:32.000000000","message":"Since this is already included in the reference section will not update this in new patch.","commit_id":"9fdf4e56c8ade4b5d7aae99b36a76a4060890f81"},{"author":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"change_message_id":"47a5d81cb94b4d142f5b2ff22de261ed0b4e414c","unresolved":false,"context_lines":[{"line_number":102,"context_line":""},{"line_number":103,"context_line":"        def join(self, member_id, group_id, service\u003dNone):"},{"line_number":104,"context_line":"            # Call into impl to join (and handle/translate the"},{"line_number":105,"context_line":"            # appropriate errors)..."},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"        def is_up(self, member):"},{"line_number":108,"context_line":"            # Call into impl to check if the member is up... (and"}],"source_content_type":"text/x-rst","patch_set":12,"id":"7aaa499b_c4f7c757","line":105,"in_reply_to":"7aaa499b_d230bf03","updated":"2015-04-15 18:44:03.000000000","message":"Yup.\n\nhttp://docs.openstack.org/developer/tooz/","commit_id":"9fdf4e56c8ade4b5d7aae99b36a76a4060890f81"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"01b27cc85b050f342c79f1da639eb63e5fafa0ec","unresolved":false,"context_lines":[{"line_number":102,"context_line":""},{"line_number":103,"context_line":"        def join(self, member_id, group_id, service\u003dNone):"},{"line_number":104,"context_line":"            # Call into impl to join (and handle/translate the"},{"line_number":105,"context_line":"            # appropriate errors)..."},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"        def is_up(self, member):"},{"line_number":108,"context_line":"            # Call into impl to check if the member is up... (and"}],"source_content_type":"text/x-rst","patch_set":12,"id":"bab921fb_148af0bf","line":105,"in_reply_to":"dac4157f_0c30ba55","updated":"2015-04-23 11:15:21.000000000","message":"yeah, its making me think about the code too much with all this detail, thats for the code review.","commit_id":"9fdf4e56c8ade4b5d7aae99b36a76a4060890f81"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"71b847d8e8ef50c4006d56f7d762448639b063c4","unresolved":false,"context_lines":[{"line_number":116,"context_line":"            # Call into impl to get all the members of the given group (and"},{"line_number":117,"context_line":"            # handle/translate appropriate errors)..."},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"        def get_one(self, group_id):"},{"line_number":120,"context_line":"            # Call into impl to get one the members of the given group (and"},{"line_number":121,"context_line":"            # handle/translate appropriate errors)..."},{"line_number":122,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"7aaa499b_32afe395","line":119,"updated":"2015-04-15 09:12:05.000000000","message":"FYI, there are changes to reduce this interface to a minimum.","commit_id":"9fdf4e56c8ade4b5d7aae99b36a76a4060890f81"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"43a35225de8751c2023acd57efc3184354b898a9","unresolved":false,"context_lines":[{"line_number":116,"context_line":"            # Call into impl to get all the members of the given group (and"},{"line_number":117,"context_line":"            # handle/translate appropriate errors)..."},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"        def get_one(self, group_id):"},{"line_number":120,"context_line":"            # Call into impl to get one the members of the given group (and"},{"line_number":121,"context_line":"            # handle/translate appropriate errors)..."},{"line_number":122,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"dac4157f_6c773603","line":119,"in_reply_to":"5aa745d1_401a1019","updated":"2015-04-20 06:58:32.000000000","message":"In that review as well the reviewer has proposed making use of this work. If change https://review.openstack.org/#/c/168876/ goes in first will change the implementation and blueprint accordingly(considering the blueprint is not accepted till that change gets merged). Otherwise if that method is unnecessary I can include it in my implementation for this blueprint. I am open for both options which works better.","commit_id":"9fdf4e56c8ade4b5d7aae99b36a76a4060890f81"},{"author":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"change_message_id":"47a5d81cb94b4d142f5b2ff22de261ed0b4e414c","unresolved":false,"context_lines":[{"line_number":116,"context_line":"            # Call into impl to get all the members of the given group (and"},{"line_number":117,"context_line":"            # handle/translate appropriate errors)..."},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"        def get_one(self, group_id):"},{"line_number":120,"context_line":"            # Call into impl to get one the members of the given group (and"},{"line_number":121,"context_line":"            # handle/translate appropriate errors)..."},{"line_number":122,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"7aaa499b_a4971beb","line":119,"in_reply_to":"7aaa499b_32afe395","updated":"2015-04-15 18:44:03.000000000","message":"What changes? Where?","commit_id":"9fdf4e56c8ade4b5d7aae99b36a76a4060890f81"},{"author":{"_account_id":5638,"name":"Davanum Srinivas","email":"davanum@gmail.com","username":"dims-v"},"change_message_id":"725d91987e484f615c298631a1e481eb44647da2","unresolved":false,"context_lines":[{"line_number":116,"context_line":"            # Call into impl to get all the members of the given group (and"},{"line_number":117,"context_line":"            # handle/translate appropriate errors)..."},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"        def get_one(self, group_id):"},{"line_number":120,"context_line":"            # Call into impl to get one the members of the given group (and"},{"line_number":121,"context_line":"            # handle/translate appropriate errors)..."},{"line_number":122,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"5aa745d1_401a1019","line":119,"in_reply_to":"7aaa499b_a4971beb","updated":"2015-04-15 19:01:19.000000000","message":"I see one review in progress - https://review.openstack.org/#/c/168876/","commit_id":"9fdf4e56c8ade4b5d7aae99b36a76a4060890f81"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"01b27cc85b050f342c79f1da639eb63e5fafa0ec","unresolved":false,"context_lines":[{"line_number":116,"context_line":"            # Call into impl to get all the members of the given group (and"},{"line_number":117,"context_line":"            # handle/translate appropriate errors)..."},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"        def get_one(self, group_id):"},{"line_number":120,"context_line":"            # Call into impl to get one the members of the given group (and"},{"line_number":121,"context_line":"            # handle/translate appropriate errors)..."},{"line_number":122,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"bab921fb_f4ff7c32","line":119,"in_reply_to":"dac4157f_6c773603","updated":"2015-04-23 11:15:21.000000000","message":"My point was really that this is too much detail for the spec, at its likely to get out of date, but I don\u0027t mind leaving it in.","commit_id":"9fdf4e56c8ade4b5d7aae99b36a76a4060890f81"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"71b847d8e8ef50c4006d56f7d762448639b063c4","unresolved":false,"context_lines":[{"line_number":164,"context_line":"What to do about this driver:"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"#. Leave the driver in nova (and don\u0027t deprecate it)."},{"line_number":167,"context_line":"#. Something else?"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"mc.py"},{"line_number":170,"context_line":"~~~~~"}],"source_content_type":"text/x-rst","patch_set":12,"id":"7aaa499b_52138f66","line":167,"updated":"2015-04-15 09:12:05.000000000","message":"Why is this driver not in Tooz?\n\nIt is our current default driver, and very widely deployed.","commit_id":"9fdf4e56c8ade4b5d7aae99b36a76a4060890f81"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"01b27cc85b050f342c79f1da639eb63e5fafa0ec","unresolved":false,"context_lines":[{"line_number":164,"context_line":"What to do about this driver:"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"#. Leave the driver in nova (and don\u0027t deprecate it)."},{"line_number":167,"context_line":"#. Something else?"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"mc.py"},{"line_number":170,"context_line":"~~~~~"}],"source_content_type":"text/x-rst","patch_set":12,"id":"bab921fb_f4741cd0","line":167,"in_reply_to":"5aa745d1_20f9444e","updated":"2015-04-23 11:15:21.000000000","message":"My big issue here is we need to choose whats happening in the spec.\n\nI think all you need for the db.py section is something like this:\n\n\"Tooz has no DB driver, so Nova\u0027s DB driver will not be affected by this patch\".","commit_id":"9fdf4e56c8ade4b5d7aae99b36a76a4060890f81"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"d9e8dcdace5d70db7c7a3e1b9216fe8f5f65aeb1","unresolved":false,"context_lines":[{"line_number":164,"context_line":"What to do about this driver:"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"#. Leave the driver in nova (and don\u0027t deprecate it)."},{"line_number":167,"context_line":"#. Something else?"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"mc.py"},{"line_number":170,"context_line":"~~~~~"}],"source_content_type":"text/x-rst","patch_set":12,"id":"5aa745d1_20f9444e","line":167,"in_reply_to":"5aa745d1_e0a59cb5","updated":"2015-04-15 19:40:35.000000000","message":"+1","commit_id":"9fdf4e56c8ade4b5d7aae99b36a76a4060890f81"},{"author":{"_account_id":5638,"name":"Davanum Srinivas","email":"davanum@gmail.com","username":"dims-v"},"change_message_id":"725d91987e484f615c298631a1e481eb44647da2","unresolved":false,"context_lines":[{"line_number":164,"context_line":"What to do about this driver:"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"#. Leave the driver in nova (and don\u0027t deprecate it)."},{"line_number":167,"context_line":"#. Something else?"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"mc.py"},{"line_number":170,"context_line":"~~~~~"}],"source_content_type":"text/x-rst","patch_set":12,"id":"5aa745d1_e0a59cb5","line":167,"in_reply_to":"7aaa499b_04892fc9","updated":"2015-04-15 19:01:19.000000000","message":"db schema above seems very specific to Nova to be in Tooz...","commit_id":"9fdf4e56c8ade4b5d7aae99b36a76a4060890f81"},{"author":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"change_message_id":"47a5d81cb94b4d142f5b2ff22de261ed0b4e414c","unresolved":false,"context_lines":[{"line_number":164,"context_line":"What to do about this driver:"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"#. Leave the driver in nova (and don\u0027t deprecate it)."},{"line_number":167,"context_line":"#. Something else?"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"mc.py"},{"line_number":170,"context_line":"~~~~~"}],"source_content_type":"text/x-rst","patch_set":12,"id":"7aaa499b_04892fc9","line":167,"in_reply_to":"7aaa499b_52138f66","updated":"2015-04-15 18:44:03.000000000","message":"Tooz doesn\u0027t currently keep a migration/db schema...\n\nNot that it couldn\u0027t but it has avoided that for the time being...\n\nPerhaps time to revisit that...\n\nThis kind of impl. is also rife with issues... so it\u0027s not exactly a good pattern to publicize (and/or improve) IMHO...","commit_id":"9fdf4e56c8ade4b5d7aae99b36a76a4060890f81"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"71b847d8e8ef50c4006d56f7d762448639b063c4","unresolved":false,"context_lines":[{"line_number":252,"context_line":"  the groups that there will still be a connection into the ``services``"},{"line_number":253,"context_line":"  database table for this information for a period of time. We will have to"},{"line_number":254,"context_line":"  consider how to make this better after the initial migration and deprecation"},{"line_number":255,"context_line":"  work is completed..."},{"line_number":256,"context_line":""},{"line_number":257,"context_line":"REST API impact"},{"line_number":258,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":12,"id":"7aaa499b_d221dffc","line":255,"updated":"2015-04-15 09:12:05.000000000","message":"This feels like way too much detail for the spec. but its here now I guess, I just worry about bike shedding on the details of the above text.","commit_id":"9fdf4e56c8ade4b5d7aae99b36a76a4060890f81"},{"author":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"change_message_id":"caac82938ce693205b86a0c7a03f8c51611c35f3","unresolved":false,"context_lines":[{"line_number":252,"context_line":"  the groups that there will still be a connection into the ``services``"},{"line_number":253,"context_line":"  database table for this information for a period of time. We will have to"},{"line_number":254,"context_line":"  consider how to make this better after the initial migration and deprecation"},{"line_number":255,"context_line":"  work is completed..."},{"line_number":256,"context_line":""},{"line_number":257,"context_line":"REST API impact"},{"line_number":258,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":12,"id":"5aa745d1_23aa6e71","line":255,"in_reply_to":"5aa745d1_409fb05f","updated":"2015-04-15 19:33:50.000000000","message":"Interesting, ya, sucks using (and supporting) a old/unsupported evzookeeper driver that nobody is maintaining (anymore). I\"m core in kazoo (and other y! is also) so hopefully can avoid that in the future...\n\nhttp://kazoo.readthedocs.org/en/latest/index.html#authors","commit_id":"9fdf4e56c8ade4b5d7aae99b36a76a4060890f81"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"d9e8dcdace5d70db7c7a3e1b9216fe8f5f65aeb1","unresolved":false,"context_lines":[{"line_number":252,"context_line":"  the groups that there will still be a connection into the ``services``"},{"line_number":253,"context_line":"  database table for this information for a period of time. We will have to"},{"line_number":254,"context_line":"  consider how to make this better after the initial migration and deprecation"},{"line_number":255,"context_line":"  work is completed..."},{"line_number":256,"context_line":""},{"line_number":257,"context_line":"REST API impact"},{"line_number":258,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":12,"id":"5aa745d1_8396e292","line":255,"in_reply_to":"5aa745d1_409fb05f","updated":"2015-04-15 19:40:35.000000000","message":"The zookeeper driver uses evzookeeper which is not maintained.","commit_id":"9fdf4e56c8ade4b5d7aae99b36a76a4060890f81"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"01b27cc85b050f342c79f1da639eb63e5fafa0ec","unresolved":false,"context_lines":[{"line_number":252,"context_line":"  the groups that there will still be a connection into the ``services``"},{"line_number":253,"context_line":"  database table for this information for a period of time. We will have to"},{"line_number":254,"context_line":"  consider how to make this better after the initial migration and deprecation"},{"line_number":255,"context_line":"  work is completed..."},{"line_number":256,"context_line":""},{"line_number":257,"context_line":"REST API impact"},{"line_number":258,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":12,"id":"bab921fb_b73106ef","line":255,"in_reply_to":"5aa745d1_8396e292","updated":"2015-04-23 11:15:21.000000000","message":"I am cool with removing this code from Nova. Its more a nit that next time, no need to go into this detail.","commit_id":"9fdf4e56c8ade4b5d7aae99b36a76a4060890f81"},{"author":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"change_message_id":"47a5d81cb94b4d142f5b2ff22de261ed0b4e414c","unresolved":false,"context_lines":[{"line_number":252,"context_line":"  the groups that there will still be a connection into the ``services``"},{"line_number":253,"context_line":"  database table for this information for a period of time. We will have to"},{"line_number":254,"context_line":"  consider how to make this better after the initial migration and deprecation"},{"line_number":255,"context_line":"  work is completed..."},{"line_number":256,"context_line":""},{"line_number":257,"context_line":"REST API impact"},{"line_number":258,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":12,"id":"7aaa499b_e491a3f2","line":255,"in_reply_to":"7aaa499b_d221dffc","updated":"2015-04-15 18:44:03.000000000","message":"Ummm, ok, I\u0027ll probably keep it. If nova cores can\u0027t stop any said bike shedding (by for example saying \u0027stop bike shedding\u0027), we got bigger problems...","commit_id":"9fdf4e56c8ade4b5d7aae99b36a76a4060890f81"},{"author":{"_account_id":5638,"name":"Davanum Srinivas","email":"davanum@gmail.com","username":"dims-v"},"change_message_id":"725d91987e484f615c298631a1e481eb44647da2","unresolved":false,"context_lines":[{"line_number":252,"context_line":"  the groups that there will still be a connection into the ``services``"},{"line_number":253,"context_line":"  database table for this information for a period of time. We will have to"},{"line_number":254,"context_line":"  consider how to make this better after the initial migration and deprecation"},{"line_number":255,"context_line":"  work is completed..."},{"line_number":256,"context_line":""},{"line_number":257,"context_line":"REST API impact"},{"line_number":258,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":12,"id":"5aa745d1_409fb05f","line":255,"in_reply_to":"7aaa499b_e491a3f2","updated":"2015-04-15 19:01:19.000000000","message":"fresh incoming issue (https://bugs.launchpad.net/nova/+bug/1443910) reinforces the evzookeeper concerns.","commit_id":"9fdf4e56c8ade4b5d7aae99b36a76a4060890f81"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"71b847d8e8ef50c4006d56f7d762448639b063c4","unresolved":false,"context_lines":[{"line_number":388,"context_line":"**TLDR:** This special and *temporary* implementation would be used to"},{"line_number":389,"context_line":"transition away from the old implementation and move the the new"},{"line_number":390,"context_line":"implementation; avoiding a sudden transition to the tooz driver that would"},{"line_number":391,"context_line":"likely cause services to stop reporting that they are up and running."},{"line_number":392,"context_line":""},{"line_number":393,"context_line":"A secondary/fallback option (which only really works for the zookeeper driver"},{"line_number":394,"context_line":"that exists) is to have tooz be able to read/write the data that the existing"}],"source_content_type":"text/x-rst","patch_set":12,"id":"7aaa499b_f23bbb36","line":391,"updated":"2015-04-15 09:12:05.000000000","message":"This all feels way too messy...\n\nSurely what we need is a driver that always joins to the new tooz driver, but on query is able to check a \"legacy\" driver, if the tooz driver appears to not thing the node exists.\n\nThat way, as the nova nodes get updated, they will start to move from the old system to the tooz system during the transition.","commit_id":"9fdf4e56c8ade4b5d7aae99b36a76a4060890f81"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"71b847d8e8ef50c4006d56f7d762448639b063c4","unresolved":false,"context_lines":[{"line_number":390,"context_line":"implementation; avoiding a sudden transition to the tooz driver that would"},{"line_number":391,"context_line":"likely cause services to stop reporting that they are up and running."},{"line_number":392,"context_line":""},{"line_number":393,"context_line":"A secondary/fallback option (which only really works for the zookeeper driver"},{"line_number":394,"context_line":"that exists) is to have tooz be able to read/write the data that the existing"},{"line_number":395,"context_line":"zookeeper driver reads/writes; this allows for a transition over to the new"},{"line_number":396,"context_line":"driver in a seamless manner (since no data format changes will occur). This"}],"source_content_type":"text/x-rst","patch_set":12,"id":"7aaa499b_52e82fb4","line":393,"updated":"2015-04-15 09:12:05.000000000","message":"This might want to move to alternatives section, to save confusion.","commit_id":"9fdf4e56c8ade4b5d7aae99b36a76a4060890f81"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"71b847d8e8ef50c4006d56f7d762448639b063c4","unresolved":false,"context_lines":[{"line_number":418,"context_line":"driver. Depending on how the existing drivers are deprecated this should be"},{"line_number":419,"context_line":"mostly transparent and can be accomplished by making it possible to transition"},{"line_number":420,"context_line":"from the existing drivers to the tooz one in a manner that will work with"},{"line_number":421,"context_line":"those who use continuous deployment."},{"line_number":422,"context_line":""},{"line_number":423,"context_line":"Developer impact"},{"line_number":424,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":12,"id":"7aaa499b_325ec376","line":421,"updated":"2015-04-15 09:12:05.000000000","message":"Can\u0027t we make sure you integrate in a similar way to other oslo libs and their config. it would be a shame for each project to do their own thing in terms of config.\n\nI would expect a tooz section in the nova.conf file that deals with what you need?","commit_id":"9fdf4e56c8ade4b5d7aae99b36a76a4060890f81"},{"author":{"_account_id":5638,"name":"Davanum Srinivas","email":"davanum@gmail.com","username":"dims-v"},"change_message_id":"725d91987e484f615c298631a1e481eb44647da2","unresolved":false,"context_lines":[{"line_number":418,"context_line":"driver. Depending on how the existing drivers are deprecated this should be"},{"line_number":419,"context_line":"mostly transparent and can be accomplished by making it possible to transition"},{"line_number":420,"context_line":"from the existing drivers to the tooz one in a manner that will work with"},{"line_number":421,"context_line":"those who use continuous deployment."},{"line_number":422,"context_line":""},{"line_number":423,"context_line":"Developer impact"},{"line_number":424,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":12,"id":"5aa745d1_20aa6471","line":421,"in_reply_to":"5aa745d1_1d1d93bd","updated":"2015-04-15 19:01:19.000000000","message":"Josh,\n\nit could just be a \"[tooz]\" group defined in a module in Nova glue code that calls tooz. it just grabs whatever needed from the config and constructs the url you need above. Mostly to help people from having to construct complicated urls which may be prone to error","commit_id":"9fdf4e56c8ade4b5d7aae99b36a76a4060890f81"},{"author":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"change_message_id":"caac82938ce693205b86a0c7a03f8c51611c35f3","unresolved":false,"context_lines":[{"line_number":418,"context_line":"driver. Depending on how the existing drivers are deprecated this should be"},{"line_number":419,"context_line":"mostly transparent and can be accomplished by making it possible to transition"},{"line_number":420,"context_line":"from the existing drivers to the tooz one in a manner that will work with"},{"line_number":421,"context_line":"those who use continuous deployment."},{"line_number":422,"context_line":""},{"line_number":423,"context_line":"Developer impact"},{"line_number":424,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":12,"id":"5aa745d1_e3ba46c0","line":421,"in_reply_to":"5aa745d1_20aa6471","updated":"2015-04-15 19:33:50.000000000","message":"Could be; seems like some small helper function then, not needing a full \u0027oslo.tooz\u0027 thingy/wrapper...","commit_id":"9fdf4e56c8ade4b5d7aae99b36a76a4060890f81"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"43a35225de8751c2023acd57efc3184354b898a9","unresolved":false,"context_lines":[{"line_number":418,"context_line":"driver. Depending on how the existing drivers are deprecated this should be"},{"line_number":419,"context_line":"mostly transparent and can be accomplished by making it possible to transition"},{"line_number":420,"context_line":"from the existing drivers to the tooz one in a manner that will work with"},{"line_number":421,"context_line":"those who use continuous deployment."},{"line_number":422,"context_line":""},{"line_number":423,"context_line":"Developer impact"},{"line_number":424,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":12,"id":"dac4157f_6c81768f","line":421,"in_reply_to":"5aa745d1_4900f4aa","updated":"2015-04-20 06:58:32.000000000","message":"Option proposed by Josh and John both are valid. I am open for both and just in case there is a seperate [tooz] section in nova.conf we can use oslo config and get the needed details like backend url etc if thats what John wan\u0027t to say. John please correct I am missing something.","commit_id":"9fdf4e56c8ade4b5d7aae99b36a76a4060890f81"},{"author":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"change_message_id":"cb0b684ab993dd168625b75a4f83693c7aa990ef","unresolved":false,"context_lines":[{"line_number":418,"context_line":"driver. Depending on how the existing drivers are deprecated this should be"},{"line_number":419,"context_line":"mostly transparent and can be accomplished by making it possible to transition"},{"line_number":420,"context_line":"from the existing drivers to the tooz one in a manner that will work with"},{"line_number":421,"context_line":"those who use continuous deployment."},{"line_number":422,"context_line":""},{"line_number":423,"context_line":"Developer impact"},{"line_number":424,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":12,"id":"5aa745d1_4900f4aa","line":421,"in_reply_to":"5aa745d1_e3ba46c0","updated":"2015-04-16 00:07:25.000000000","message":"http://paste.openstack.org/show/204049/ for example, although meh.","commit_id":"9fdf4e56c8ade4b5d7aae99b36a76a4060890f81"},{"author":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"change_message_id":"47a5d81cb94b4d142f5b2ff22de261ed0b4e414c","unresolved":false,"context_lines":[{"line_number":418,"context_line":"driver. Depending on how the existing drivers are deprecated this should be"},{"line_number":419,"context_line":"mostly transparent and can be accomplished by making it possible to transition"},{"line_number":420,"context_line":"from the existing drivers to the tooz one in a manner that will work with"},{"line_number":421,"context_line":"those who use continuous deployment."},{"line_number":422,"context_line":""},{"line_number":423,"context_line":"Developer impact"},{"line_number":424,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":12,"id":"5aa745d1_1d1d93bd","line":421,"in_reply_to":"7aaa499b_325ec376","updated":"2015-04-15 18:44:03.000000000","message":"What does this mean? It\u0027s a url with a standard format. Sure someone can make oslo.tooz and wrap oslo.config around tooz  (and therefore wrap the standard url format), but meh, what\u0027s the point...\n\nTooz is made to be used outside openstack as well, and so therefore should be easily useable outside (where it is also used) without depending on the openstack *only* configuration format, IMHO we *really* need to stop thinking that openstack is the only project in the world... but I\u0027ll save more of this rant for another time...\n\nhttp://docs.openstack.org/developer/tooz/#f1","commit_id":"9fdf4e56c8ade4b5d7aae99b36a76a4060890f81"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"01b27cc85b050f342c79f1da639eb63e5fafa0ec","unresolved":false,"context_lines":[{"line_number":418,"context_line":"driver. Depending on how the existing drivers are deprecated this should be"},{"line_number":419,"context_line":"mostly transparent and can be accomplished by making it possible to transition"},{"line_number":420,"context_line":"from the existing drivers to the tooz one in a manner that will work with"},{"line_number":421,"context_line":"those who use continuous deployment."},{"line_number":422,"context_line":""},{"line_number":423,"context_line":"Developer impact"},{"line_number":424,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":12,"id":"bab921fb_b75fc60d","line":421,"in_reply_to":"dac4157f_6c81768f","updated":"2015-04-23 11:15:21.000000000","message":"I am just wanting all projects using Tooz to be configured in a similar way here, to make the administrators lives much easier.\n\nI don\u0027t mind how that happens, and extra [tooz] section seems like a nice simple way of doing that.\n\nGenerally we are trying to avoid adding more config options into the general section of nova.conf, its getting out of hand. So I like the extra section.","commit_id":"9fdf4e56c8ade4b5d7aae99b36a76a4060890f81"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"71b847d8e8ef50c4006d56f7d762448639b063c4","unresolved":false,"context_lines":[{"line_number":426,"context_line":"- Nova developers may have to interact more with the oslo community (and"},{"line_number":427,"context_line":"  the tooz subcommunity) when learning, understanding, and integrating with"},{"line_number":428,"context_line":"  tooz."},{"line_number":429,"context_line":""},{"line_number":430,"context_line":"Implementation"},{"line_number":431,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":432,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"7aaa499b_b28f73cb","line":429,"updated":"2015-04-15 09:12:05.000000000","message":"we need to consider if this changes our scheduler integration with nova, I guess it shouldn\u0027t change things too much, but it would be good to check the expectations you have on query patterns and speeds.","commit_id":"9fdf4e56c8ade4b5d7aae99b36a76a4060890f81"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"43a35225de8751c2023acd57efc3184354b898a9","unresolved":false,"context_lines":[{"line_number":426,"context_line":"- Nova developers may have to interact more with the oslo community (and"},{"line_number":427,"context_line":"  the tooz subcommunity) when learning, understanding, and integrating with"},{"line_number":428,"context_line":"  tooz."},{"line_number":429,"context_line":""},{"line_number":430,"context_line":"Implementation"},{"line_number":431,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":432,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"dac4157f_6c585657","line":429,"in_reply_to":"7aaa499b_b28f73cb","updated":"2015-04-20 06:58:32.000000000","message":"AFAIK this shouldn\u0027t; I don\u0027t expect things changing drastically for the db driver and for other backends tooz will take care. But if needed can be documented for sure.","commit_id":"9fdf4e56c8ade4b5d7aae99b36a76a4060890f81"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"01b27cc85b050f342c79f1da639eb63e5fafa0ec","unresolved":false,"context_lines":[{"line_number":426,"context_line":"- Nova developers may have to interact more with the oslo community (and"},{"line_number":427,"context_line":"  the tooz subcommunity) when learning, understanding, and integrating with"},{"line_number":428,"context_line":"  tooz."},{"line_number":429,"context_line":""},{"line_number":430,"context_line":"Implementation"},{"line_number":431,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":432,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"bab921fb_97828251","line":429,"in_reply_to":"dac4157f_6c585657","updated":"2015-04-23 11:15:21.000000000","message":"Its more a heads up, but given we are keeping the DB driver, I am fine with that.","commit_id":"9fdf4e56c8ade4b5d7aae99b36a76a4060890f81"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"71b847d8e8ef50c4006d56f7d762448639b063c4","unresolved":false,"context_lines":[{"line_number":457,"context_line":""},{"line_number":458,"context_line":"- Tooz"},{"line_number":459,"context_line":""},{"line_number":460,"context_line":"*Current* dependencies"},{"line_number":461,"context_line":""},{"line_number":462,"context_line":"    pbr\u003e\u003d0.6,!\u003d0.7,\u003c1.0"},{"line_number":463,"context_line":"    Babel\u003e\u003d1.3"}],"source_content_type":"text/x-rst","patch_set":12,"id":"7aaa499b_12dd07e0","line":460,"updated":"2015-04-15 09:12:05.000000000","message":"Thats not what this section is for, please remove.\n\nThis is about external dependencies.","commit_id":"9fdf4e56c8ade4b5d7aae99b36a76a4060890f81"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"43a35225de8751c2023acd57efc3184354b898a9","unresolved":false,"context_lines":[{"line_number":457,"context_line":""},{"line_number":458,"context_line":"- Tooz"},{"line_number":459,"context_line":""},{"line_number":460,"context_line":"*Current* dependencies"},{"line_number":461,"context_line":""},{"line_number":462,"context_line":"    pbr\u003e\u003d0.6,!\u003d0.7,\u003c1.0"},{"line_number":463,"context_line":"    Babel\u003e\u003d1.3"}],"source_content_type":"text/x-rst","patch_set":12,"id":"dac4157f_a741e93b","line":460,"in_reply_to":"7aaa499b_12dd07e0","updated":"2015-04-20 06:58:32.000000000","message":"Done","commit_id":"9fdf4e56c8ade4b5d7aae99b36a76a4060890f81"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"71b847d8e8ef50c4006d56f7d762448639b063c4","unresolved":false,"context_lines":[{"line_number":471,"context_line":"    retrying!\u003d1.3.0"},{"line_number":472,"context_line":"    futures\u003e\u003d2.1.6"},{"line_number":473,"context_line":"    oslo.utils\u003e\u003d1.0.0"},{"line_number":474,"context_line":"    redis\u003e\u003d2.10.0"},{"line_number":475,"context_line":""},{"line_number":476,"context_line":"Testing"},{"line_number":477,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":12,"id":"7aaa499b_52e94f7f","line":474,"updated":"2015-04-15 09:12:05.000000000","message":"Please don\u0027t make people who don\u0027t use redis require this, etc.","commit_id":"9fdf4e56c8ade4b5d7aae99b36a76a4060890f81"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"43a35225de8751c2023acd57efc3184354b898a9","unresolved":false,"context_lines":[{"line_number":471,"context_line":"    retrying!\u003d1.3.0"},{"line_number":472,"context_line":"    futures\u003e\u003d2.1.6"},{"line_number":473,"context_line":"    oslo.utils\u003e\u003d1.0.0"},{"line_number":474,"context_line":"    redis\u003e\u003d2.10.0"},{"line_number":475,"context_line":""},{"line_number":476,"context_line":"Testing"},{"line_number":477,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":12,"id":"dac4157f_67b9912e","line":474,"in_reply_to":"7aaa499b_52e94f7f","updated":"2015-04-20 06:58:32.000000000","message":"Sure. But let\u0027s say we have a tooz section in nova.conf and the customer enables redis backend is there a facility in openstack to modify the requirements.txt so that it will enable deploying redis on the servers. If thats there its great. If not new ideas are welcome and agree should not let anyone deploy extra pieces of software if they are not using it.","commit_id":"9fdf4e56c8ade4b5d7aae99b36a76a4060890f81"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"01b27cc85b050f342c79f1da639eb63e5fafa0ec","unresolved":false,"context_lines":[{"line_number":471,"context_line":"    retrying!\u003d1.3.0"},{"line_number":472,"context_line":"    futures\u003e\u003d2.1.6"},{"line_number":473,"context_line":"    oslo.utils\u003e\u003d1.0.0"},{"line_number":474,"context_line":"    redis\u003e\u003d2.10.0"},{"line_number":475,"context_line":""},{"line_number":476,"context_line":"Testing"},{"line_number":477,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":12,"id":"bab921fb_97d04255","line":474,"in_reply_to":"dac4157f_67b9912e","updated":"2015-04-23 11:15:21.000000000","message":"We should discuss this elsewhere.\n\nMost projects (unhelpfully) log an error message about the missing dependency, but generally only require that for the unit tests, or something like that.\n\nThere has to be a better way, but lets ignore that here.","commit_id":"9fdf4e56c8ade4b5d7aae99b36a76a4060890f81"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"71b847d8e8ef50c4006d56f7d762448639b063c4","unresolved":false,"context_lines":[{"line_number":478,"context_line":""},{"line_number":479,"context_line":"- Tooz already has integration testing with memcache, redis, zookeeper so"},{"line_number":480,"context_line":"  there shouldn\u0027t be a need for nova to reimplement that"},{"line_number":481,"context_line":"  functionality/integration in its own internal testing suite."},{"line_number":482,"context_line":"- Tempest tests will be used/added to test tooz + nova + [redis, memcache,"},{"line_number":483,"context_line":"  zookeeper] to ensure the whole system works together as expected."},{"line_number":484,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"7aaa499b_32a36351","line":481,"updated":"2015-04-15 09:12:05.000000000","message":"is there no DB driver?","commit_id":"9fdf4e56c8ade4b5d7aae99b36a76a4060890f81"},{"author":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"change_message_id":"47a5d81cb94b4d142f5b2ff22de261ed0b4e414c","unresolved":false,"context_lines":[{"line_number":478,"context_line":""},{"line_number":479,"context_line":"- Tooz already has integration testing with memcache, redis, zookeeper so"},{"line_number":480,"context_line":"  there shouldn\u0027t be a need for nova to reimplement that"},{"line_number":481,"context_line":"  functionality/integration in its own internal testing suite."},{"line_number":482,"context_line":"- Tempest tests will be used/added to test tooz + nova + [redis, memcache,"},{"line_number":483,"context_line":"  zookeeper] to ensure the whole system works together as expected."},{"line_number":484,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"5aa745d1_fded478f","line":481,"in_reply_to":"7aaa499b_32a36351","updated":"2015-04-15 18:44:03.000000000","message":"See above.","commit_id":"9fdf4e56c8ade4b5d7aae99b36a76a4060890f81"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"71b847d8e8ef50c4006d56f7d762448639b063c4","unresolved":false,"context_lines":[{"line_number":480,"context_line":"  there shouldn\u0027t be a need for nova to reimplement that"},{"line_number":481,"context_line":"  functionality/integration in its own internal testing suite."},{"line_number":482,"context_line":"- Tempest tests will be used/added to test tooz + nova + [redis, memcache,"},{"line_number":483,"context_line":"  zookeeper] to ensure the whole system works together as expected."},{"line_number":484,"context_line":""},{"line_number":485,"context_line":"Documentation Impact"},{"line_number":486,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":12,"id":"7aaa499b_450aa722","line":483,"updated":"2015-04-15 09:12:05.000000000","message":"Surely that would have to be different gating jobs? So I was expecting to see...\n\nNova uses tooz with a driver (db driver?) that works fine in devstack gate. Tooz will do full testing of every driver itself.\n\nWe would have transition testing as part of the current grenade testing.\n\nNo further testing impact.","commit_id":"9fdf4e56c8ade4b5d7aae99b36a76a4060890f81"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"466edc188125c5e4b60fcba5913663b1661e16a7","unresolved":false,"context_lines":[{"line_number":25,"context_line":"and used to introspect liveness of those services by other members of the"},{"line_number":26,"context_line":"groups that all services belong to. To reduce nova from having to maintain,"},{"line_number":27,"context_line":"test, and support code that does these group membership concepts (currently"},{"line_number":28,"context_line":"supporting [db, memcache, zookeeper] drivers) the `tooz`_ library can instead"},{"line_number":29,"context_line":"be used as the entrypoint and driver provider/maintainer that provides"},{"line_number":30,"context_line":"equivalent concepts."},{"line_number":31,"context_line":""}],"source_content_type":"text/x-rst","patch_set":14,"id":"bab921fb_d7559ac6","line":28,"updated":"2015-04-23 11:20:20.000000000","message":"It seems like we have to keep the db driver.","commit_id":"6d5062807c18f1e52df1ae173202caaf9ca9f4d7"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"e63150b7305a95c19580dd47eaa70efdeddc326b","unresolved":false,"context_lines":[{"line_number":25,"context_line":"and used to introspect liveness of those services by other members of the"},{"line_number":26,"context_line":"groups that all services belong to. To reduce nova from having to maintain,"},{"line_number":27,"context_line":"test, and support code that does these group membership concepts (currently"},{"line_number":28,"context_line":"supporting [db, memcache, zookeeper] drivers) the `tooz`_ library can instead"},{"line_number":29,"context_line":"be used as the entrypoint and driver provider/maintainer that provides"},{"line_number":30,"context_line":"equivalent concepts."},{"line_number":31,"context_line":""}],"source_content_type":"text/x-rst","patch_set":14,"id":"7ad32947_53c1b02d","line":28,"in_reply_to":"7ad32947_191a4f6f","updated":"2015-04-28 21:38:43.000000000","message":"Sure.","commit_id":"6d5062807c18f1e52df1ae173202caaf9ca9f4d7"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"e6d1a9323309cf8972f802a4bae919aefdffab30","unresolved":false,"context_lines":[{"line_number":25,"context_line":"and used to introspect liveness of those services by other members of the"},{"line_number":26,"context_line":"groups that all services belong to. To reduce nova from having to maintain,"},{"line_number":27,"context_line":"test, and support code that does these group membership concepts (currently"},{"line_number":28,"context_line":"supporting [db, memcache, zookeeper] drivers) the `tooz`_ library can instead"},{"line_number":29,"context_line":"be used as the entrypoint and driver provider/maintainer that provides"},{"line_number":30,"context_line":"equivalent concepts."},{"line_number":31,"context_line":""}],"source_content_type":"text/x-rst","patch_set":14,"id":"7ad32947_191a4f6f","line":28,"in_reply_to":"bab921fb_b08d7733","updated":"2015-04-27 14:06:41.000000000","message":"That seems a good step for liberty.","commit_id":"6d5062807c18f1e52df1ae173202caaf9ca9f4d7"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"0e5f6c29567e14d9d480f7e35972438ed61f43d8","unresolved":false,"context_lines":[{"line_number":25,"context_line":"and used to introspect liveness of those services by other members of the"},{"line_number":26,"context_line":"groups that all services belong to. To reduce nova from having to maintain,"},{"line_number":27,"context_line":"test, and support code that does these group membership concepts (currently"},{"line_number":28,"context_line":"supporting [db, memcache, zookeeper] drivers) the `tooz`_ library can instead"},{"line_number":29,"context_line":"be used as the entrypoint and driver provider/maintainer that provides"},{"line_number":30,"context_line":"equivalent concepts."},{"line_number":31,"context_line":""}],"source_content_type":"text/x-rst","patch_set":14,"id":"bab921fb_b08d7733","line":28,"in_reply_to":"bab921fb_d7559ac6","updated":"2015-04-23 19:40:23.000000000","message":"Sure. My bad. \n\nAdded comment in the new patch that\n\nnova will take care of db driver\ntooz will take care of non-db drivers.\n\nPlease check","commit_id":"6d5062807c18f1e52df1ae173202caaf9ca9f4d7"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"466edc188125c5e4b60fcba5913663b1661e16a7","unresolved":false,"context_lines":[{"line_number":185,"context_line":""},{"line_number":186,"context_line":"#. Leave the driver in nova since the DB schema is very specific"},{"line_number":187,"context_line":"#  to nova(and don\u0027t deprecate it)."},{"line_number":188,"context_line":"#. Something else?"},{"line_number":189,"context_line":""},{"line_number":190,"context_line":"mc.py"},{"line_number":191,"context_line":"~~~~~"}],"source_content_type":"text/x-rst","patch_set":14,"id":"bab921fb_b769068e","line":188,"updated":"2015-04-23 11:20:20.000000000","message":"We need to decide what we are doing in this spec, so we must chose one of these..\n\nI think we need to keep it in Nova, and not deprecate it.","commit_id":"6d5062807c18f1e52df1ae173202caaf9ca9f4d7"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"e63150b7305a95c19580dd47eaa70efdeddc326b","unresolved":false,"context_lines":[{"line_number":185,"context_line":""},{"line_number":186,"context_line":"#. Leave the driver in nova since the DB schema is very specific"},{"line_number":187,"context_line":"#  to nova(and don\u0027t deprecate it)."},{"line_number":188,"context_line":"#. Something else?"},{"line_number":189,"context_line":""},{"line_number":190,"context_line":"mc.py"},{"line_number":191,"context_line":"~~~~~"}],"source_content_type":"text/x-rst","patch_set":14,"id":"7ad32947_13e218d6","line":188,"in_reply_to":"7ad32947_9972dfac","updated":"2015-04-28 21:38:43.000000000","message":"Sure sounds good to me.","commit_id":"6d5062807c18f1e52df1ae173202caaf9ca9f4d7"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"e6d1a9323309cf8972f802a4bae919aefdffab30","unresolved":false,"context_lines":[{"line_number":185,"context_line":""},{"line_number":186,"context_line":"#. Leave the driver in nova since the DB schema is very specific"},{"line_number":187,"context_line":"#  to nova(and don\u0027t deprecate it)."},{"line_number":188,"context_line":"#. Something else?"},{"line_number":189,"context_line":""},{"line_number":190,"context_line":"mc.py"},{"line_number":191,"context_line":"~~~~~"}],"source_content_type":"text/x-rst","patch_set":14,"id":"7ad32947_9972dfac","line":188,"in_reply_to":"bab921fb_635ddbe8","updated":"2015-04-27 14:06:41.000000000","message":"My comment here is the spec needs to chose one or the other before we merge this spec.\n\nGiven tooz has no support for a DB based driver, and its the only current driver known to work, we should keep that driver in Nova. At least thats my gut feeling here.","commit_id":"6d5062807c18f1e52df1ae173202caaf9ca9f4d7"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"0e5f6c29567e14d9d480f7e35972438ed61f43d8","unresolved":false,"context_lines":[{"line_number":185,"context_line":""},{"line_number":186,"context_line":"#. Leave the driver in nova since the DB schema is very specific"},{"line_number":187,"context_line":"#  to nova(and don\u0027t deprecate it)."},{"line_number":188,"context_line":"#. Something else?"},{"line_number":189,"context_line":""},{"line_number":190,"context_line":"mc.py"},{"line_number":191,"context_line":"~~~~~"}],"source_content_type":"text/x-rst","patch_set":14,"id":"bab921fb_635ddbe8","line":188,"in_reply_to":"bab921fb_b769068e","updated":"2015-04-23 19:40:23.000000000","message":"1. Right now Tooz doesn\u0027t maintain schema details. \n2. So it would be better to keep it here to limit the scope of this blueprint. \n3. But going ahead it would be nice for the respective driver to take ownership of the services heirarchy. For example in case of db driver it is maintained in the form of service table whereas in Zookeeper driver it has maintained as a fanout structure with topic-id being the root and host being the leaves. If we do this we need the admin interaction(nova-manage) and programatic interation(throught nova.servicegroup.API()) to use to same API\u0027s as followed by (nova.servicegroup.API()) as this would guarantee data consistency because right now the admin interfaces blindly operate on the DB without considering if there is any other backend configured to manage services leading to data inconsistency if any.\n4. The service object might also need a refactor as it is the one responsible for initiating the db calls. There needs to be an abstraction layer and it needs to be aware of backend configured underneath but this is out of the scope of this blueprint.\n\nIn short :-\n1. Keep the DB driver in nova for the scope of this blueprint and add new API\u0027s to servicegroup.API() like leave() etc for non-db drivers(which tooz will manage) to make sure that respective API get invoked when some admin operations are called.\n\n2. Or make the admin operations also use the same API as the programatic interface would do i.e. use the the api\u0027s in nova.servicegroup.API()\n\nI leave the call upto you John.","commit_id":"6d5062807c18f1e52df1ae173202caaf9ca9f4d7"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"1de630cc1a3481b1331adbe0f5a18c5cc534daa3","unresolved":false,"context_lines":[{"line_number":396,"context_line":""},{"line_number":397,"context_line":"The general idea would be that a driver implementation would be provided"},{"line_number":398,"context_line":"that would exist for this migration period/cycle (not as an offically supported"},{"line_number":399,"context_line":"driver), it would have the capabilities to internally use *two* drivers for"},{"line_number":400,"context_line":"providing the service group implementation (one driver would be the legacy"},{"line_number":401,"context_line":"driver and the secondary driver would be the tooz driver). During the migration"},{"line_number":402,"context_line":"period the functions that this driver would provide would read/save/write to"}],"source_content_type":"text/x-rst","patch_set":14,"id":"bab921fb_b7aa266f","line":399,"updated":"2015-04-23 11:28:27.000000000","message":"why is upgrade not \"officially supported\" ?","commit_id":"6d5062807c18f1e52df1ae173202caaf9ca9f4d7"},{"author":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"change_message_id":"5086dbc75c7fb7c931aeacff4cb96d7c27e5b638","unresolved":false,"context_lines":[{"line_number":396,"context_line":""},{"line_number":397,"context_line":"The general idea would be that a driver implementation would be provided"},{"line_number":398,"context_line":"that would exist for this migration period/cycle (not as an offically supported"},{"line_number":399,"context_line":"driver), it would have the capabilities to internally use *two* drivers for"},{"line_number":400,"context_line":"providing the service group implementation (one driver would be the legacy"},{"line_number":401,"context_line":"driver and the secondary driver would be the tooz driver). During the migration"},{"line_number":402,"context_line":"period the functions that this driver would provide would read/save/write to"}],"source_content_type":"text/x-rst","patch_set":14,"id":"3acd31a7_76eea8b5","line":399,"in_reply_to":"bab921fb_b7aa266f","updated":"2015-05-01 04:25:08.000000000","message":"Idea was to have a driver (like the above) that existed for the migration period then remove it after migration cycle is done, using upgrade driver just for a time period to allow people to upgrade (but not keeping that driver for all the time).","commit_id":"6d5062807c18f1e52df1ae173202caaf9ca9f4d7"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"1de630cc1a3481b1331adbe0f5a18c5cc534daa3","unresolved":false,"context_lines":[{"line_number":423,"context_line":"the database like the ``mc.py`` and ``db.py`` drivers do). Overall I am not"},{"line_number":424,"context_line":"recommending this option since it is fragile, sensitive to data formats"},{"line_number":425,"context_line":"and it doesn\u0027t work for drivers that tooz has no way to support (aka any"},{"line_number":426,"context_line":"driver that uses the internal ``services`` database table mentioned above)."},{"line_number":427,"context_line":""},{"line_number":428,"context_line":"Configs"},{"line_number":429,"context_line":"~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":14,"id":"bab921fb_f7ce5e59","line":426,"updated":"2015-04-23 11:28:27.000000000","message":"Please choose the direction you are going to implement.","commit_id":"6d5062807c18f1e52df1ae173202caaf9ca9f4d7"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"e63150b7305a95c19580dd47eaa70efdeddc326b","unresolved":false,"context_lines":[{"line_number":423,"context_line":"the database like the ``mc.py`` and ``db.py`` drivers do). Overall I am not"},{"line_number":424,"context_line":"recommending this option since it is fragile, sensitive to data formats"},{"line_number":425,"context_line":"and it doesn\u0027t work for drivers that tooz has no way to support (aka any"},{"line_number":426,"context_line":"driver that uses the internal ``services`` database table mentioned above)."},{"line_number":427,"context_line":""},{"line_number":428,"context_line":"Configs"},{"line_number":429,"context_line":"~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":14,"id":"7ad32947_1330d855","line":426,"in_reply_to":"7ad32947_b9d0fbca","updated":"2015-04-28 21:38:43.000000000","message":"Sure. Let me rephrase it better and come up with a specific approach. I will do it in upcoming patch.","commit_id":"6d5062807c18f1e52df1ae173202caaf9ca9f4d7"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"e6d1a9323309cf8972f802a4bae919aefdffab30","unresolved":false,"context_lines":[{"line_number":423,"context_line":"the database like the ``mc.py`` and ``db.py`` drivers do). Overall I am not"},{"line_number":424,"context_line":"recommending this option since it is fragile, sensitive to data formats"},{"line_number":425,"context_line":"and it doesn\u0027t work for drivers that tooz has no way to support (aka any"},{"line_number":426,"context_line":"driver that uses the internal ``services`` database table mentioned above)."},{"line_number":427,"context_line":""},{"line_number":428,"context_line":"Configs"},{"line_number":429,"context_line":"~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":14,"id":"7ad32947_b9d0fbca","line":426,"in_reply_to":"bab921fb_8326af66","updated":"2015-04-27 14:06:41.000000000","message":"I just need the spec to define what you are going to do, not a list of possible approaches, then we can discuss if the chosen approach is the best.\n\nThe change you mention doesn\u0027t seem to have any backwards compatibility bits.\n\nThe simplest approach is to have downtime during the migration, and given they are currently \"broken\" that might be the best approach. As long as we are clear how you can migrate from one to the other (like restart all the services), I think that might be good enough, in this case, but lets make that clear in the spec first.\n\nAt some point, there will be the discussion of migrating from DB to tooz, if we want to deprecate the DB one, but lets keep that totally separate from supporting tooz and deprecating the non-DB drivers.","commit_id":"6d5062807c18f1e52df1ae173202caaf9ca9f4d7"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"0e5f6c29567e14d9d480f7e35972438ed61f43d8","unresolved":false,"context_lines":[{"line_number":423,"context_line":"the database like the ``mc.py`` and ``db.py`` drivers do). Overall I am not"},{"line_number":424,"context_line":"recommending this option since it is fragile, sensitive to data formats"},{"line_number":425,"context_line":"and it doesn\u0027t work for drivers that tooz has no way to support (aka any"},{"line_number":426,"context_line":"driver that uses the internal ``services`` database table mentioned above)."},{"line_number":427,"context_line":""},{"line_number":428,"context_line":"Configs"},{"line_number":429,"context_line":"~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":14,"id":"bab921fb_8326af66","line":426,"in_reply_to":"bab921fb_f7ce5e59","updated":"2015-04-23 19:40:23.000000000","message":"The plan is to do some thing like https://review.openstack.org/#/c/172502/ for this blueprint. Please check.\n\nThe additional details mentioned here can be overwhelming sometimes.","commit_id":"6d5062807c18f1e52df1ae173202caaf9ca9f4d7"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"1de630cc1a3481b1331adbe0f5a18c5cc534daa3","unresolved":false,"context_lines":[{"line_number":505,"context_line":"  there shouldn\u0027t be a need for nova to reimplement that"},{"line_number":506,"context_line":"  functionality/integration in its own internal testing suite."},{"line_number":507,"context_line":"- Tempest tests will be used/added to test tooz + nova + [redis, memcache,"},{"line_number":508,"context_line":"  zookeeper] to ensure the whole system works together as expected."},{"line_number":509,"context_line":""},{"line_number":510,"context_line":"Documentation Impact"},{"line_number":511,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":14,"id":"bab921fb_977962ff","line":508,"updated":"2015-04-23 11:28:27.000000000","message":"AFAIK tempest doesn\u0027t work like that.\n\nWhat we really need is some test running all the usual tempest tests in a setup that is using tooz.\n\nIs that the plan here?","commit_id":"6d5062807c18f1e52df1ae173202caaf9ca9f4d7"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"0e5f6c29567e14d9d480f7e35972438ed61f43d8","unresolved":false,"context_lines":[{"line_number":505,"context_line":"  there shouldn\u0027t be a need for nova to reimplement that"},{"line_number":506,"context_line":"  functionality/integration in its own internal testing suite."},{"line_number":507,"context_line":"- Tempest tests will be used/added to test tooz + nova + [redis, memcache,"},{"line_number":508,"context_line":"  zookeeper] to ensure the whole system works together as expected."},{"line_number":509,"context_line":""},{"line_number":510,"context_line":"Documentation Impact"},{"line_number":511,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":14,"id":"bab921fb_83358f47","line":508,"in_reply_to":"bab921fb_977962ff","updated":"2015-04-23 19:40:23.000000000","message":"Yes sort of. \n\nRight now tooz plans to use zake as the default driver may be functional tempest test to test the functionality against the base zake driver https://github.com/yahoo/Zake","commit_id":"6d5062807c18f1e52df1ae173202caaf9ca9f4d7"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"1de630cc1a3481b1331adbe0f5a18c5cc534daa3","unresolved":false,"context_lines":[{"line_number":506,"context_line":"  functionality/integration in its own internal testing suite."},{"line_number":507,"context_line":"- Tempest tests will be used/added to test tooz + nova + [redis, memcache,"},{"line_number":508,"context_line":"  zookeeper] to ensure the whole system works together as expected."},{"line_number":509,"context_line":""},{"line_number":510,"context_line":"Documentation Impact"},{"line_number":511,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":512,"context_line":""}],"source_content_type":"text/x-rst","patch_set":14,"id":"bab921fb_b77466fd","line":509,"updated":"2015-04-23 11:28:27.000000000","message":"Need to look at testing of the transitional driver. Saying its manual testing only might be OK in this case, but it would be good the state that.","commit_id":"6d5062807c18f1e52df1ae173202caaf9ca9f4d7"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"40dae83e56ae77d1aa968ccf0a4b264e3f8a8efe","unresolved":false,"context_lines":[{"line_number":506,"context_line":"  functionality/integration in its own internal testing suite."},{"line_number":507,"context_line":"- Tempest tests will be used/added to test tooz + nova + [redis, memcache,"},{"line_number":508,"context_line":"  zookeeper] to ensure the whole system works together as expected."},{"line_number":509,"context_line":""},{"line_number":510,"context_line":"Documentation Impact"},{"line_number":511,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":512,"context_line":""}],"source_content_type":"text/x-rst","patch_set":14,"id":"3acd31a7_17b6963d","line":509,"in_reply_to":"bab921fb_839fcf02","updated":"2015-04-29 14:30:10.000000000","message":"I think manual testing might be enough given the scope, but grenade would test this quite well, I feel.","commit_id":"6d5062807c18f1e52df1ae173202caaf9ca9f4d7"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"0e5f6c29567e14d9d480f7e35972438ed61f43d8","unresolved":false,"context_lines":[{"line_number":506,"context_line":"  functionality/integration in its own internal testing suite."},{"line_number":507,"context_line":"- Tempest tests will be used/added to test tooz + nova + [redis, memcache,"},{"line_number":508,"context_line":"  zookeeper] to ensure the whole system works together as expected."},{"line_number":509,"context_line":""},{"line_number":510,"context_line":"Documentation Impact"},{"line_number":511,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":512,"context_line":""}],"source_content_type":"text/x-rst","patch_set":14,"id":"bab921fb_839fcf02","line":509,"in_reply_to":"bab921fb_b77466fd","updated":"2015-04-23 19:40:23.000000000","message":"Sure. Can come up if needed but  the zk driver is broken in there current state and mc driver is not a real driver as it stores service information in db. As we have seen and you mentioned that most of the deployments use db drivers(which won\u0027t be touched as part of this blueprint). So do we really need this ?","commit_id":"6d5062807c18f1e52df1ae173202caaf9ca9f4d7"},{"author":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"change_message_id":"2195cc3b71eeb6b64739fcd4a753b748adaa3783","unresolved":false,"context_lines":[{"line_number":60,"context_line":"Project Priority"},{"line_number":61,"context_line":"-----------------"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"Should be an important addition considering the exsisting state of"},{"line_number":64,"context_line":"few servicegroup drivers like zk.py which use modules like evzookeeper"},{"line_number":65,"context_line":"which are no more maintained. Tooz has active development and is"},{"line_number":66,"context_line":"very well maintained. Apart from the existing db servicegroup driver"}],"source_content_type":"text/x-rst","patch_set":15,"id":"3acd31a7_592ddf93","line":63,"updated":"2015-05-04 23:51:01.000000000","message":"exsisting -\u003e existing","commit_id":"132560d9ad3a8ac0a8e8248e72d7d7c63ef3fb4c"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"a9d0396508f4ee1e9a5f222f886110c156712f12","unresolved":false,"context_lines":[{"line_number":60,"context_line":"Project Priority"},{"line_number":61,"context_line":"-----------------"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"Should be an important addition considering the exsisting state of"},{"line_number":64,"context_line":"few servicegroup drivers like zk.py which use modules like evzookeeper"},{"line_number":65,"context_line":"which are no more maintained. Tooz has active development and is"},{"line_number":66,"context_line":"very well maintained. Apart from the existing db servicegroup driver"}],"source_content_type":"text/x-rst","patch_set":15,"id":"3acd31a7_5aa38a00","line":63,"in_reply_to":"3acd31a7_592ddf93","updated":"2015-05-05 07:16:44.000000000","message":"Done","commit_id":"132560d9ad3a8ac0a8e8248e72d7d7c63ef3fb4c"},{"author":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"change_message_id":"2195cc3b71eeb6b64739fcd4a753b748adaa3783","unresolved":false,"context_lines":[{"line_number":62,"context_line":""},{"line_number":63,"context_line":"Should be an important addition considering the exsisting state of"},{"line_number":64,"context_line":"few servicegroup drivers like zk.py which use modules like evzookeeper"},{"line_number":65,"context_line":"which are no more maintained. Tooz has active development and is"},{"line_number":66,"context_line":"very well maintained. Apart from the existing db servicegroup driver"},{"line_number":67,"context_line":"other drivers are not fully functional driver. For example the"},{"line_number":68,"context_line":"Memcache driver, mc.py, stores the services details in Nova"}],"source_content_type":"text/x-rst","patch_set":15,"id":"3acd31a7_f93cabc9","line":65,"updated":"2015-05-04 23:51:01.000000000","message":"Not just not maintained but don\u0027t actually work with the current eventlet due to missing library attributes that evzookeeper is using. Can u include that information that u found (about which eventlet versions work and which don\u0027t).","commit_id":"132560d9ad3a8ac0a8e8248e72d7d7c63ef3fb4c"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"a9d0396508f4ee1e9a5f222f886110c156712f12","unresolved":false,"context_lines":[{"line_number":62,"context_line":""},{"line_number":63,"context_line":"Should be an important addition considering the exsisting state of"},{"line_number":64,"context_line":"few servicegroup drivers like zk.py which use modules like evzookeeper"},{"line_number":65,"context_line":"which are no more maintained. Tooz has active development and is"},{"line_number":66,"context_line":"very well maintained. Apart from the existing db servicegroup driver"},{"line_number":67,"context_line":"other drivers are not fully functional driver. For example the"},{"line_number":68,"context_line":"Memcache driver, mc.py, stores the services details in Nova"}],"source_content_type":"text/x-rst","patch_set":15,"id":"3acd31a7_9a6002a7","line":65,"in_reply_to":"3acd31a7_f93cabc9","updated":"2015-05-05 07:16:44.000000000","message":"Sure Josh. Done.","commit_id":"132560d9ad3a8ac0a8e8248e72d7d7c63ef3fb4c"},{"author":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"change_message_id":"2195cc3b71eeb6b64739fcd4a753b748adaa3783","unresolved":false,"context_lines":[{"line_number":189,"context_line":"    +-----------------+--------------+------+-----+---------+----------------+"},{"line_number":190,"context_line":"    11 rows in set (0.00 sec)"},{"line_number":191,"context_line":""},{"line_number":192,"context_line":"What to do about this driver:"},{"line_number":193,"context_line":""},{"line_number":194,"context_line":"#. Leave the driver in nova since the DB schema is very specific"},{"line_number":195,"context_line":"#  to nova(and don\u0027t deprecate it)."}],"source_content_type":"text/x-rst","patch_set":15,"id":"3acd31a7_992ff787","line":192,"updated":"2015-05-04 23:51:01.000000000","message":"I think we can remove this section, we are just going to leave this in nova for the time being right?","commit_id":"132560d9ad3a8ac0a8e8248e72d7d7c63ef3fb4c"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"a9d0396508f4ee1e9a5f222f886110c156712f12","unresolved":false,"context_lines":[{"line_number":189,"context_line":"    +-----------------+--------------+------+-----+---------+----------------+"},{"line_number":190,"context_line":"    11 rows in set (0.00 sec)"},{"line_number":191,"context_line":""},{"line_number":192,"context_line":"What to do about this driver:"},{"line_number":193,"context_line":""},{"line_number":194,"context_line":"#. Leave the driver in nova since the DB schema is very specific"},{"line_number":195,"context_line":"#  to nova(and don\u0027t deprecate it)."}],"source_content_type":"text/x-rst","patch_set":15,"id":"3acd31a7_5a56eace","line":192,"in_reply_to":"3acd31a7_992ff787","updated":"2015-05-05 07:16:44.000000000","message":"Yes. For this spec we will keep db driver to nova and move non-db drivers to tooz.\nSure will do it. I will just clearly mention that we should keep it with nova.","commit_id":"132560d9ad3a8ac0a8e8248e72d7d7c63ef3fb4c"},{"author":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"change_message_id":"2195cc3b71eeb6b64739fcd4a753b748adaa3783","unresolved":false,"context_lines":[{"line_number":230,"context_line":"  like `memcachedb`_, but let\u0027s not consider that as the deployment"},{"line_number":231,"context_line":"  solution)."},{"line_number":232,"context_line":""},{"line_number":233,"context_line":"Options for what to do about this driver:"},{"line_number":234,"context_line":""},{"line_number":235,"context_line":"- Remove it/deprecate it, tooz provides the equivalent/better functionality"},{"line_number":236,"context_line":"  using its own memcache (or redis) implementation. The primary difference"}],"source_content_type":"text/x-rst","patch_set":15,"id":"3acd31a7_f9438b40","line":233,"updated":"2015-05-04 23:51:01.000000000","message":"Whats the decision here? Remove it? Leave it?","commit_id":"132560d9ad3a8ac0a8e8248e72d7d7c63ef3fb4c"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"a9d0396508f4ee1e9a5f222f886110c156712f12","unresolved":false,"context_lines":[{"line_number":230,"context_line":"  like `memcachedb`_, but let\u0027s not consider that as the deployment"},{"line_number":231,"context_line":"  solution)."},{"line_number":232,"context_line":""},{"line_number":233,"context_line":"Options for what to do about this driver:"},{"line_number":234,"context_line":""},{"line_number":235,"context_line":"- Remove it/deprecate it, tooz provides the equivalent/better functionality"},{"line_number":236,"context_line":"  using its own memcache (or redis) implementation. The primary difference"}],"source_content_type":"text/x-rst","patch_set":15,"id":"3acd31a7_7adac64d","line":233,"in_reply_to":"3acd31a7_f9438b40","updated":"2015-05-05 07:16:44.000000000","message":"Remove it. Deprecate it ASAP!","commit_id":"132560d9ad3a8ac0a8e8248e72d7d7c63ef3fb4c"},{"author":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"change_message_id":"2195cc3b71eeb6b64739fcd4a753b748adaa3783","unresolved":false,"context_lines":[{"line_number":248,"context_line":"zk.py"},{"line_number":249,"context_line":"~~~~~"},{"line_number":250,"context_line":""},{"line_number":251,"context_line":"This driver uses `evzookeeper`_ (seemingly unmaintained?) to store members"},{"line_number":252,"context_line":"under the path formed by ``\"/\".join(CONF.zookeeper.sg_prefix, group)`` in"},{"line_number":253,"context_line":"zookeeper by placing a ephemeral node representing the member under that"},{"line_number":254,"context_line":"path. Since zookeeper will remove ephemeral node(s) automatically when the"}],"source_content_type":"text/x-rst","patch_set":15,"id":"3acd31a7_597b9f8c","line":251,"updated":"2015-05-04 23:51:01.000000000","message":"Not just unmaintained, but literally doesn\u0027t work with the newer eventlets right?","commit_id":"132560d9ad3a8ac0a8e8248e72d7d7c63ef3fb4c"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"a9d0396508f4ee1e9a5f222f886110c156712f12","unresolved":false,"context_lines":[{"line_number":248,"context_line":"zk.py"},{"line_number":249,"context_line":"~~~~~"},{"line_number":250,"context_line":""},{"line_number":251,"context_line":"This driver uses `evzookeeper`_ (seemingly unmaintained?) to store members"},{"line_number":252,"context_line":"under the path formed by ``\"/\".join(CONF.zookeeper.sg_prefix, group)`` in"},{"line_number":253,"context_line":"zookeeper by placing a ephemeral node representing the member under that"},{"line_number":254,"context_line":"path. Since zookeeper will remove ephemeral node(s) automatically when the"}],"source_content_type":"text/x-rst","patch_set":15,"id":"3acd31a7_dac67a67","line":251,"in_reply_to":"3acd31a7_597b9f8c","updated":"2015-05-05 07:16:44.000000000","message":"Done","commit_id":"132560d9ad3a8ac0a8e8248e72d7d7c63ef3fb4c"},{"author":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"change_message_id":"2195cc3b71eeb6b64739fcd4a753b748adaa3783","unresolved":false,"context_lines":[{"line_number":257,"context_line":"periodically *report in* to zookeeper to ensure that the ephemeral node is"},{"line_number":258,"context_line":"not automatically removed."},{"line_number":259,"context_line":""},{"line_number":260,"context_line":"Options for what to do about this driver:"},{"line_number":261,"context_line":""},{"line_number":262,"context_line":"- Remove it/deprecate it, tooz provides the equivalent functionality using its"},{"line_number":263,"context_line":"  own zookeeper implementation using `kazoo`_ (which is maintained and is more"}],"source_content_type":"text/x-rst","patch_set":15,"id":"3acd31a7_f96a6bb2","line":260,"updated":"2015-05-04 23:51:01.000000000","message":"Whats the decision here?","commit_id":"132560d9ad3a8ac0a8e8248e72d7d7c63ef3fb4c"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"a9d0396508f4ee1e9a5f222f886110c156712f12","unresolved":false,"context_lines":[{"line_number":257,"context_line":"periodically *report in* to zookeeper to ensure that the ephemeral node is"},{"line_number":258,"context_line":"not automatically removed."},{"line_number":259,"context_line":""},{"line_number":260,"context_line":"Options for what to do about this driver:"},{"line_number":261,"context_line":""},{"line_number":262,"context_line":"- Remove it/deprecate it, tooz provides the equivalent functionality using its"},{"line_number":263,"context_line":"  own zookeeper implementation using `kazoo`_ (which is maintained and is more"}],"source_content_type":"text/x-rst","patch_set":15,"id":"3acd31a7_bac3be56","line":260,"in_reply_to":"3acd31a7_f96a6bb2","updated":"2015-05-05 07:16:44.000000000","message":"Remove it, deprecate it ASAP","commit_id":"132560d9ad3a8ac0a8e8248e72d7d7c63ef3fb4c"},{"author":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"change_message_id":"2195cc3b71eeb6b64739fcd4a753b748adaa3783","unresolved":false,"context_lines":[{"line_number":341,"context_line":"    Zookeeper Driver is hardly used by any deployment at present so a"},{"line_number":342,"context_line":"transition to Tooz Zookeeper driver will be ideal. There are various"},{"line_number":343,"context_line":"reasons for it firstly Nova servicegroup zookeeper driver(zk.py) uses"},{"line_number":344,"context_line":"evzookeeper which is no more maintained. Evzookeeper can only be"},{"line_number":345,"context_line":"imported with Eventlet \u003c 0.17. Regrading current adoption of zk.py"},{"line_number":346,"context_line":"please see the mailing list conversation in the references for"},{"line_number":347,"context_line":"details. To make the transition to Tooz Zookeeper driver easy a"}],"source_content_type":"text/x-rst","patch_set":15,"id":"3acd31a7_d967afe7","line":344,"updated":"2015-05-04 23:51:01.000000000","message":"Can u put this information which is not really about migration up at the top instead of down here in the migration section.","commit_id":"132560d9ad3a8ac0a8e8248e72d7d7c63ef3fb4c"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"a9d0396508f4ee1e9a5f222f886110c156712f12","unresolved":false,"context_lines":[{"line_number":341,"context_line":"    Zookeeper Driver is hardly used by any deployment at present so a"},{"line_number":342,"context_line":"transition to Tooz Zookeeper driver will be ideal. There are various"},{"line_number":343,"context_line":"reasons for it firstly Nova servicegroup zookeeper driver(zk.py) uses"},{"line_number":344,"context_line":"evzookeeper which is no more maintained. Evzookeeper can only be"},{"line_number":345,"context_line":"imported with Eventlet \u003c 0.17. Regrading current adoption of zk.py"},{"line_number":346,"context_line":"please see the mailing list conversation in the references for"},{"line_number":347,"context_line":"details. To make the transition to Tooz Zookeeper driver easy a"}],"source_content_type":"text/x-rst","patch_set":15,"id":"3acd31a7_3a856e06","line":344,"in_reply_to":"3acd31a7_d967afe7","updated":"2015-05-05 07:16:44.000000000","message":"Done","commit_id":"132560d9ad3a8ac0a8e8248e72d7d7c63ef3fb4c"},{"author":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"change_message_id":"2195cc3b71eeb6b64739fcd4a753b748adaa3783","unresolved":false,"context_lines":[{"line_number":379,"context_line":"       self.service_ref \u003d objects.Service.get_by_host_and_binary(ctxt,"},{"line_number":380,"context_line":"                                                                 self.host,"},{"line_number":381,"context_line":"                                                                 self.binary)"},{"line_number":382,"context_line":"    c. A migration script will be provided to the operator/deployer"},{"line_number":383,"context_line":"       1. To copy the services data from nova.services to memcache."},{"line_number":384,"context_line":"       2. From this point in time data topic/group-id for each service"},{"line_number":385,"context_line":"          can be fetched and the respective groups will be created"}],"source_content_type":"text/x-rst","patch_set":15,"id":"3acd31a7_799d3bbb","line":382,"updated":"2015-05-04 23:51:01.000000000","message":"+1 I think this is a reasonable way to handle this odd driver.","commit_id":"132560d9ad3a8ac0a8e8248e72d7d7c63ef3fb4c"},{"author":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"change_message_id":"2195cc3b71eeb6b64739fcd4a753b748adaa3783","unresolved":false,"context_lines":[{"line_number":400,"context_line":"          as other host with same group-id/topic."},{"line_number":401,"context_line":"       5. get_all() can return all the members of a respective group."},{"line_number":402,"context_line":""},{"line_number":403,"context_line":"Still the admin interface like nova-manage needs to be fixed. At present"},{"line_number":404,"context_line":"nova-mange blindly relies on DB entries and is not designed to work"},{"line_number":405,"context_line":"with other data stores."},{"line_number":406,"context_line":"    services \u003d db.service_get_all(ctxt)"}],"source_content_type":"text/x-rst","patch_set":15,"id":"3acd31a7_d9dc4f75","line":403,"updated":"2015-05-04 23:51:01.000000000","message":"+1 this mismatch of information and where it\u0027s used and stored is a problem that needs to be addressed soon after this spec (IMHO).","commit_id":"132560d9ad3a8ac0a8e8248e72d7d7c63ef3fb4c"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"a9d0396508f4ee1e9a5f222f886110c156712f12","unresolved":false,"context_lines":[{"line_number":400,"context_line":"          as other host with same group-id/topic."},{"line_number":401,"context_line":"       5. get_all() can return all the members of a respective group."},{"line_number":402,"context_line":""},{"line_number":403,"context_line":"Still the admin interface like nova-manage needs to be fixed. At present"},{"line_number":404,"context_line":"nova-mange blindly relies on DB entries and is not designed to work"},{"line_number":405,"context_line":"with other data stores."},{"line_number":406,"context_line":"    services \u003d db.service_get_all(ctxt)"}],"source_content_type":"text/x-rst","patch_set":15,"id":"3acd31a7_1aa632ae","line":403,"in_reply_to":"3acd31a7_d9dc4f75","updated":"2015-05-05 07:16:44.000000000","message":"I agree.","commit_id":"132560d9ad3a8ac0a8e8248e72d7d7c63ef3fb4c"},{"author":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"change_message_id":"2195cc3b71eeb6b64739fcd4a753b748adaa3783","unresolved":false,"context_lines":[{"line_number":410,"context_line":"memcache/zookeeper interface we need to change nova-manage to"},{"line_number":411,"context_line":"fetch services details depending on the underlying data-store used"},{"line_number":412,"context_line":"to store services detail. But this is out of the scope of this spec"},{"line_number":413,"context_line":"but definately needs to be fixed."},{"line_number":414,"context_line":""},{"line_number":415,"context_line":""},{"line_number":416,"context_line":"Configs"}],"source_content_type":"text/x-rst","patch_set":15,"id":"3acd31a7_19a887da","line":413,"updated":"2015-05-04 23:51:01.000000000","message":"definately - \u003edefinitely","commit_id":"132560d9ad3a8ac0a8e8248e72d7d7c63ef3fb4c"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"a9d0396508f4ee1e9a5f222f886110c156712f12","unresolved":false,"context_lines":[{"line_number":410,"context_line":"memcache/zookeeper interface we need to change nova-manage to"},{"line_number":411,"context_line":"fetch services details depending on the underlying data-store used"},{"line_number":412,"context_line":"to store services detail. But this is out of the scope of this spec"},{"line_number":413,"context_line":"but definately needs to be fixed."},{"line_number":414,"context_line":""},{"line_number":415,"context_line":""},{"line_number":416,"context_line":"Configs"}],"source_content_type":"text/x-rst","patch_set":15,"id":"3acd31a7_9ab802ca","line":413,"in_reply_to":"3acd31a7_19a887da","updated":"2015-05-05 07:16:44.000000000","message":"Done","commit_id":"132560d9ad3a8ac0a8e8248e72d7d7c63ef3fb4c"},{"author":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"change_message_id":"2195cc3b71eeb6b64739fcd4a753b748adaa3783","unresolved":false,"context_lines":[{"line_number":427,"context_line":"To configure this a new ``cfg.CONF`` option would need to be created (perhaps"},{"line_number":428,"context_line":"named ``servicegroup_coordination_url``) that would be used to configure what"},{"line_number":429,"context_line":"driver tooz uses internally and what options it provides to that"},{"line_number":430,"context_line":"driver. Depending on how the existing drivers are deprecated this should be"},{"line_number":431,"context_line":"mostly transparent and can be accomplished by making it possible to transition"},{"line_number":432,"context_line":"from the existing drivers to the tooz one in a manner that will work with"},{"line_number":433,"context_line":"those who use continuous deployment."}],"source_content_type":"text/x-rst","patch_set":15,"id":"3acd31a7_d9ae8fe5","line":430,"updated":"2015-05-04 23:51:01.000000000","message":"I think we need to remove this depending on how and have absolutes at this point.","commit_id":"132560d9ad3a8ac0a8e8248e72d7d7c63ef3fb4c"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"a9d0396508f4ee1e9a5f222f886110c156712f12","unresolved":false,"context_lines":[{"line_number":427,"context_line":"To configure this a new ``cfg.CONF`` option would need to be created (perhaps"},{"line_number":428,"context_line":"named ``servicegroup_coordination_url``) that would be used to configure what"},{"line_number":429,"context_line":"driver tooz uses internally and what options it provides to that"},{"line_number":430,"context_line":"driver. Depending on how the existing drivers are deprecated this should be"},{"line_number":431,"context_line":"mostly transparent and can be accomplished by making it possible to transition"},{"line_number":432,"context_line":"from the existing drivers to the tooz one in a manner that will work with"},{"line_number":433,"context_line":"those who use continuous deployment."}],"source_content_type":"text/x-rst","patch_set":15,"id":"3acd31a7_7a19a6d6","line":430,"in_reply_to":"3acd31a7_d9ae8fe5","updated":"2015-05-05 07:16:44.000000000","message":"Just clearly mentioned that we keep the db driver whereas remove the non-tooz ones.","commit_id":"132560d9ad3a8ac0a8e8248e72d7d7c63ef3fb4c"},{"author":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"change_message_id":"2195cc3b71eeb6b64739fcd4a753b748adaa3783","unresolved":false,"context_lines":[{"line_number":470,"context_line":""},{"line_number":471,"context_line":"- Tooz"},{"line_number":472,"context_line":""},{"line_number":473,"context_line":"External dependencies"},{"line_number":474,"context_line":""},{"line_number":475,"context_line":"- pbr\u003e\u003d0.6,!\u003d0.7,\u003c1.0"},{"line_number":476,"context_line":"- Babel\u003e\u003d1.3"}],"source_content_type":"text/x-rst","patch_set":15,"id":"3acd31a7_b9b75339","line":473,"updated":"2015-05-04 23:51:01.000000000","message":"Remove this whole listing here.","commit_id":"132560d9ad3a8ac0a8e8248e72d7d7c63ef3fb4c"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"a9d0396508f4ee1e9a5f222f886110c156712f12","unresolved":false,"context_lines":[{"line_number":470,"context_line":""},{"line_number":471,"context_line":"- Tooz"},{"line_number":472,"context_line":""},{"line_number":473,"context_line":"External dependencies"},{"line_number":474,"context_line":""},{"line_number":475,"context_line":"- pbr\u003e\u003d0.6,!\u003d0.7,\u003c1.0"},{"line_number":476,"context_line":"- Babel\u003e\u003d1.3"}],"source_content_type":"text/x-rst","patch_set":15,"id":"3acd31a7_3a0fae89","line":473,"in_reply_to":"3acd31a7_b9b75339","updated":"2015-05-05 07:16:44.000000000","message":"Done","commit_id":"132560d9ad3a8ac0a8e8248e72d7d7c63ef3fb4c"},{"author":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"change_message_id":"ae4414ecf7169af26c0a00e387893d488eabf394","unresolved":false,"context_lines":[{"line_number":77,"context_line":"at two places( database and zookeeper) is tricky and will lead to data"},{"line_number":78,"context_line":"inconsistency since the interfaces used to access this information can"},{"line_number":79,"context_line":"be admin like nova-manage(which solely acts on the database) or"},{"line_number":80,"context_line":"programatic by invoking the servicegroup API. Also, evzookeeper"},{"line_number":81,"context_line":"uses certain attributes which only work with eventlet \u003c 0.17.0. The"},{"line_number":82,"context_line":"current requirements need eventlet 0.17.3 and logically it will"},{"line_number":83,"context_line":"keep on increasing. So Zookeeper driver won\u0027t be functional and"}],"source_content_type":"text/x-rst","patch_set":16,"id":"3acd31a7_884d4b40","line":80,"updated":"2015-05-05 16:07:17.000000000","message":"+1\n\nFrom my understanding/recollection (when vilobh was trying this in a test program) there are missing attributes that evzookeeper is trying to use that only worked in \u003c 0.17.0; so ya, it\u0027s busted :-P","commit_id":"661fbfaabb086d69b3fdc0da24c8ccba08b8e57b"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"c8885ad2fd6c8eb41de2a123d2ad8225e7bd1245","unresolved":false,"context_lines":[{"line_number":77,"context_line":"at two places( database and zookeeper) is tricky and will lead to data"},{"line_number":78,"context_line":"inconsistency since the interfaces used to access this information can"},{"line_number":79,"context_line":"be admin like nova-manage(which solely acts on the database) or"},{"line_number":80,"context_line":"programatic by invoking the servicegroup API. Also, evzookeeper"},{"line_number":81,"context_line":"uses certain attributes which only work with eventlet \u003c 0.17.0. The"},{"line_number":82,"context_line":"current requirements need eventlet 0.17.3 and logically it will"},{"line_number":83,"context_line":"keep on increasing. So Zookeeper driver won\u0027t be functional and"}],"source_content_type":"text/x-rst","patch_set":16,"id":"3acd31a7_f16946fa","line":80,"in_reply_to":"3acd31a7_884d4b40","updated":"2015-05-05 18:22:40.000000000","message":"True.","commit_id":"661fbfaabb086d69b3fdc0da24c8ccba08b8e57b"},{"author":{"_account_id":12175,"name":"Eli Qiao","email":"qiaoliyong@gmail.com","username":"Eli"},"change_message_id":"6acc88f5e68ba37cdcde9575a51bb5a3b8e14c6a","unresolved":false,"context_lines":[{"line_number":108,"context_line":"        def is_up(self, member):"},{"line_number":109,"context_line":"            raise NotImplementedError()"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"        def leave(self, member_id, group_id):"},{"line_number":112,"context_line":"            raise NotImplementedError()"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"        def get_all(self, group_id):"}],"source_content_type":"text/x-rst","patch_set":19,"id":"1aca2d91_79431b43","line":111,"updated":"2015-05-08 02:25:01.000000000","message":"+1, currently , there isn\u0027t any supporting in service group api to leave.\nas you can check from nova-api service, it only delete db entry when try to deleting(leaving) a service","commit_id":"b4d1ec0e6a5bac2ecdedb74bdd5bdc06aea4bcbd"},{"author":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"change_message_id":"0976229e3150d4a568f4ea177ea2743d0f3a439a","unresolved":false,"context_lines":[{"line_number":358,"context_line":"zookeeper/memcache driver reads/writes; this allows for a transition over"},{"line_number":359,"context_line":"to the new driver in a seamless manner (since no data format changes"},{"line_number":360,"context_line":"will occur)."},{"line_number":361,"context_line":""},{"line_number":362,"context_line":"A. Zookeeper Driver"},{"line_number":363,"context_line":"Zookeeper Driver (zk.py) is hardly used by any deployment at"},{"line_number":364,"context_line":"present so a transition to Tooz Zookeeper driver will be ideal. Regarding"}],"source_content_type":"text/x-rst","patch_set":19,"id":"1aca2d91_b6554f51","line":361,"updated":"2015-05-07 18:59:18.000000000","message":"If you do another revision can u format this correctly in RST list syntax. Thanks.\n\nhttp://docutils.sourceforge.net/docs/user/rst/quickref.html#enumerated-lists","commit_id":"b4d1ec0e6a5bac2ecdedb74bdd5bdc06aea4bcbd"},{"author":{"_account_id":12175,"name":"Eli Qiao","email":"qiaoliyong@gmail.com","username":"Eli"},"change_message_id":"6acc88f5e68ba37cdcde9575a51bb5a3b8e14c6a","unresolved":false,"context_lines":[{"line_number":458,"context_line":""},{"line_number":459,"context_line":"- Nova developers may have to interact more with the oslo community (and"},{"line_number":460,"context_line":"  the tooz subcommunity) when learning, understanding, and integrating with"},{"line_number":461,"context_line":"  tooz."},{"line_number":462,"context_line":""},{"line_number":463,"context_line":"Implementation"},{"line_number":464,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":19,"id":"1aca2d91_f9ea8b0e","line":461,"updated":"2015-05-08 02:25:01.000000000","message":"by refactor service group , I think REST api layer need some refactor too.\ncan you document some impacts here?","commit_id":"b4d1ec0e6a5bac2ecdedb74bdd5bdc06aea4bcbd"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"7c9aacda72d4e5dfebba4fad8ce04b961c7226ae","unresolved":false,"context_lines":[{"line_number":29,"context_line":"(currently supporting [db, memcache, zookeeper] drivers) the"},{"line_number":30,"context_line":"`tooz`_ library can instead be used as the entrypoint and driver"},{"line_number":31,"context_line":"provider/maintainer that provides equivalent concepts. With this blueprint"},{"line_number":32,"context_line":"the plan is to keep the existing db driver in nova whereas `tooz`_ to"},{"line_number":33,"context_line":"take care of remaining two drivers i.e. memcache and zookeeper since they"},{"line_number":34,"context_line":"are not maintained and are untested. In fact memcache driver internally"},{"line_number":35,"context_line":"uses the data stored in db driver and the Zookeeper driver stores redundant"}],"source_content_type":"text/x-rst","patch_set":20,"id":"5ad58531_766846bb","line":32,"range":{"start_line":32,"start_character":0,"end_line":32,"end_character":43},"updated":"2015-05-11 20:46:45.000000000","message":"MHO is that the DB driver is wrong, since it mixes both information about an existing (or having existed) service and the current status of this service.\n\nI would rather prefer that db.is_up() would not use the updated_at field to know if the service is up but would rather check a services_status table which would be periodically be updated using a different semantics.\n\nThat said, it doesn\u0027t need to be part of this spec, maybe just a comment mentioning that is worth it.","commit_id":"e063dc957733b6778f269041e890f806e0feac1e"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"2fb92349d938b2dfef6fa720926cecfcc4727dcb","unresolved":false,"context_lines":[{"line_number":29,"context_line":"(currently supporting [db, memcache, zookeeper] drivers) the"},{"line_number":30,"context_line":"`tooz`_ library can instead be used as the entrypoint and driver"},{"line_number":31,"context_line":"provider/maintainer that provides equivalent concepts. With this blueprint"},{"line_number":32,"context_line":"the plan is to keep the existing db driver in nova whereas `tooz`_ to"},{"line_number":33,"context_line":"take care of remaining two drivers i.e. memcache and zookeeper since they"},{"line_number":34,"context_line":"are not maintained and are untested. In fact memcache driver internally"},{"line_number":35,"context_line":"uses the data stored in db driver and the Zookeeper driver stores redundant"}],"source_content_type":"text/x-rst","patch_set":20,"id":"7a016987_aca42708","line":32,"in_reply_to":"5ad58531_766846bb","updated":"2015-05-14 01:03:44.000000000","message":"Ok. But isn\u0027t status also updated base on the liveliness which is derived from when the service was last created or updated ? So its all related. But sure if needed can file a new spec. Just want to limit the scope of this spec to replacing nova zookeeper, memcache drivers with tooz zookeeper, memcache drivers.","commit_id":"e063dc957733b6778f269041e890f806e0feac1e"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"7c9aacda72d4e5dfebba4fad8ce04b961c7226ae","unresolved":false,"context_lines":[{"line_number":47,"context_line":"- Reduce the burden on the nova team around testing, management, maintenance"},{"line_number":48,"context_line":"  and general upkeep of the servicegroup concepts (seeing as this is something"},{"line_number":49,"context_line":"  that is not a direct feature of a compute project it seems like this burden"},{"line_number":50,"context_line":"  should just be placed on a external project instead)."},{"line_number":51,"context_line":"- Keep the code less stale (ex, the zookeeper driver is using an"},{"line_number":52,"context_line":"  outdated/dead? `evzookeeper`_ driver from 2012 with a `zookeeper unit test`_"},{"line_number":53,"context_line":"  that likely isn\u0027t/hasn\u0027t(?) ever been tested in an automated fashion)."}],"source_content_type":"text/x-rst","patch_set":20,"id":"5ad58531_f6d2f633","line":50,"updated":"2015-05-11 20:46:45.000000000","message":"TBH, it doesn\u0027t change from a Nova PoV since the DB driver will still be part of Nova.\n\nThat\u0027s only in a latter spec that would remove the DB driver from Nova that it would make this point.","commit_id":"e063dc957733b6778f269041e890f806e0feac1e"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"2fb92349d938b2dfef6fa720926cecfcc4727dcb","unresolved":false,"context_lines":[{"line_number":47,"context_line":"- Reduce the burden on the nova team around testing, management, maintenance"},{"line_number":48,"context_line":"  and general upkeep of the servicegroup concepts (seeing as this is something"},{"line_number":49,"context_line":"  that is not a direct feature of a compute project it seems like this burden"},{"line_number":50,"context_line":"  should just be placed on a external project instead)."},{"line_number":51,"context_line":"- Keep the code less stale (ex, the zookeeper driver is using an"},{"line_number":52,"context_line":"  outdated/dead? `evzookeeper`_ driver from 2012 with a `zookeeper unit test`_"},{"line_number":53,"context_line":"  that likely isn\u0027t/hasn\u0027t(?) ever been tested in an automated fashion)."}],"source_content_type":"text/x-rst","patch_set":20,"id":"9a0c5dc1_f7ad1589","line":50,"in_reply_to":"5ad58531_f6d2f633","updated":"2015-05-14 01:03:44.000000000","message":"Sure.","commit_id":"e063dc957733b6778f269041e890f806e0feac1e"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"7c9aacda72d4e5dfebba4fad8ce04b961c7226ae","unresolved":false,"context_lines":[{"line_number":64,"context_line":"-----------------"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"Should be an important addition considering the existing state of"},{"line_number":67,"context_line":"few servicegroup drivers like zk.py which use modules like evzookeeper"},{"line_number":68,"context_line":"which are no more maintained. Tooz has active development and is"},{"line_number":69,"context_line":"very well maintained. Apart from the existing db servicegroup driver"},{"line_number":70,"context_line":"other drivers are not fully functional driver. For example the"},{"line_number":71,"context_line":"Memcache driver, mc.py, stores the services details in Nova"},{"line_number":72,"context_line":"database. From the implementation it seems like it is only used to"}],"source_content_type":"text/x-rst","patch_set":20,"id":"5ad58531_76ce0685","line":69,"range":{"start_line":67,"start_character":30,"end_line":69,"end_character":21},"updated":"2015-05-11 20:46:45.000000000","message":"I don\u0027t really like providing such opinions since it\u0027s only valid for the moment where it\u0027s written. You have strong reasons to motivate the change, that doesn\u0027t necessarly need this subjective reason to be mentioned IMHO.","commit_id":"e063dc957733b6778f269041e890f806e0feac1e"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"2fb92349d938b2dfef6fa720926cecfcc4727dcb","unresolved":false,"context_lines":[{"line_number":66,"context_line":"Should be an important addition considering the existing state of"},{"line_number":67,"context_line":"few servicegroup drivers like zk.py which use modules like evzookeeper"},{"line_number":68,"context_line":"which are no more maintained. Tooz has active development and is"},{"line_number":69,"context_line":"very well maintained. Apart from the existing db servicegroup driver"},{"line_number":70,"context_line":"other drivers are not fully functional driver. For example the"},{"line_number":71,"context_line":"Memcache driver, mc.py, stores the services details in Nova"},{"line_number":72,"context_line":"database. From the implementation it seems like it is only used to"}],"source_content_type":"text/x-rst","patch_set":20,"id":"7a016987_acc9c7ae","line":69,"in_reply_to":"5ad58531_76ce0685","updated":"2015-05-14 01:03:44.000000000","message":"I guess we are just trying to state the facts and IMHO nothing wrong in that if it helps to improve the current state of servicegroups.","commit_id":"e063dc957733b6778f269041e890f806e0feac1e"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"7c9aacda72d4e5dfebba4fad8ce04b961c7226ae","unresolved":false,"context_lines":[{"line_number":95,"context_line":"The proposed change would be to refactor the ``servicegroup/api.py`` API"},{"line_number":96,"context_line":"to have only a single implementation that is backed by tooz. Instead of"},{"line_number":97,"context_line":"having an API (shown below) that would be backed by custom implementations"},{"line_number":98,"context_line":"in nova (one of [db, memcache, zookeeper]) there would be a single API that"},{"line_number":99,"context_line":"would just use tooz."},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"The API that *currently* exists::"},{"line_number":102,"context_line":""}],"source_content_type":"text/x-rst","patch_set":20,"id":"5ad58531_b6810efe","line":99,"range":{"start_line":98,"start_character":42,"end_line":99,"end_character":20},"updated":"2015-05-11 20:46:45.000000000","message":"Please amend this since the DB driver will stay.","commit_id":"e063dc957733b6778f269041e890f806e0feac1e"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"2fb92349d938b2dfef6fa720926cecfcc4727dcb","unresolved":false,"context_lines":[{"line_number":96,"context_line":"to have only a single implementation that is backed by tooz. Instead of"},{"line_number":97,"context_line":"having an API (shown below) that would be backed by custom implementations"},{"line_number":98,"context_line":"in nova (one of [db, memcache, zookeeper]) there would be a single API that"},{"line_number":99,"context_line":"would just use tooz."},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"The API that *currently* exists::"},{"line_number":102,"context_line":""}],"source_content_type":"text/x-rst","patch_set":20,"id":"7a016987_8c45eb18","line":99,"in_reply_to":"5ad58531_b6810efe","updated":"2015-05-14 01:03:44.000000000","message":"Here just mentioning the drivers that exist and then I have added details of the plan to just replace zookeeper and memcache.","commit_id":"e063dc957733b6778f269041e890f806e0feac1e"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"7c9aacda72d4e5dfebba4fad8ce04b961c7226ae","unresolved":false,"context_lines":[{"line_number":225,"context_line":"  memcache) to check liveness via the ``is_up`` implementation (liveness is"},{"line_number":226,"context_line":"  maintained by a periodic ``set`` call into memcache for each group member)."},{"line_number":227,"context_line":"  The service group members come from the database (using the same"},{"line_number":228,"context_line":"  tables that the ``db.py`` driver uses). This is IMHO *confusing* and means"},{"line_number":229,"context_line":"  that the database ``services`` table (described above) is used but the"},{"line_number":230,"context_line":"  fields [updated_at, report_count, ...] are not actually used (the"},{"line_number":231,"context_line":"  fields [disabled, deleted, topic] though are)."},{"line_number":232,"context_line":"- Memcache is a *cache* and IMHO should *not* be used for this kind of"},{"line_number":233,"context_line":"  *critical* service liveness information (if the cache gets cleared or a"},{"line_number":234,"context_line":"  memcache server goes down, you may have just lost a portion of your"}],"source_content_type":"text/x-rst","patch_set":20,"id":"5ad58531_b6afce7c","line":231,"range":{"start_line":228,"start_character":42,"end_line":231,"end_character":47},"updated":"2015-05-11 20:46:45.000000000","message":"that\u0027s my point above. The services table is confusing since it references both the existence of a service (not driver-specific) and the way to check the service (driver-specific).","commit_id":"e063dc957733b6778f269041e890f806e0feac1e"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"2fb92349d938b2dfef6fa720926cecfcc4727dcb","unresolved":false,"context_lines":[{"line_number":228,"context_line":"  tables that the ``db.py`` driver uses). This is IMHO *confusing* and means"},{"line_number":229,"context_line":"  that the database ``services`` table (described above) is used but the"},{"line_number":230,"context_line":"  fields [updated_at, report_count, ...] are not actually used (the"},{"line_number":231,"context_line":"  fields [disabled, deleted, topic] though are)."},{"line_number":232,"context_line":"- Memcache is a *cache* and IMHO should *not* be used for this kind of"},{"line_number":233,"context_line":"  *critical* service liveness information (if the cache gets cleared or a"},{"line_number":234,"context_line":"  memcache server goes down, you may have just lost a portion of your"}],"source_content_type":"text/x-rst","patch_set":20,"id":"7a016987_ec045fc7","line":231,"in_reply_to":"5ad58531_b6afce7c","updated":"2015-05-14 01:03:44.000000000","message":"In its current state nova.services act as a reference to the service running somewhere may it be compute, etc. I support your comment that nova.services is confusing and if possible liveliness task should be moved to external entity like Zookeeper.","commit_id":"e063dc957733b6778f269041e890f806e0feac1e"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"7c9aacda72d4e5dfebba4fad8ce04b961c7226ae","unresolved":false,"context_lines":[{"line_number":297,"context_line":"  initially (the entity calling that function will have at one point"},{"line_number":298,"context_line":"  fetched that ``service_ref`` object from the database ORM/conductor layer)."},{"line_number":299,"context_line":"  This mixed usage is IMHO confusing (and it will hopefully be adjusted"},{"line_number":300,"context_line":"  and made better when `detach-service-from-computenode`_ is completed) and"},{"line_number":301,"context_line":"  will likely mean that even if the tooz driver maintains the listing of"},{"line_number":302,"context_line":"  the groups that there will still be a connection into the ``services``"},{"line_number":303,"context_line":"  database table for this information for a period of time. We will have to"}],"source_content_type":"text/x-rst","patch_set":20,"id":"5ad58531_f6031675","line":300,"range":{"start_line":300,"start_character":17,"end_line":300,"end_character":70},"updated":"2015-05-11 20:46:45.000000000","message":"That has nothing to do with detach-service IMHO as service was not touched at all, just how the compute node is matching a service.","commit_id":"e063dc957733b6778f269041e890f806e0feac1e"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"2fb92349d938b2dfef6fa720926cecfcc4727dcb","unresolved":false,"context_lines":[{"line_number":297,"context_line":"  initially (the entity calling that function will have at one point"},{"line_number":298,"context_line":"  fetched that ``service_ref`` object from the database ORM/conductor layer)."},{"line_number":299,"context_line":"  This mixed usage is IMHO confusing (and it will hopefully be adjusted"},{"line_number":300,"context_line":"  and made better when `detach-service-from-computenode`_ is completed) and"},{"line_number":301,"context_line":"  will likely mean that even if the tooz driver maintains the listing of"},{"line_number":302,"context_line":"  the groups that there will still be a connection into the ``services``"},{"line_number":303,"context_line":"  database table for this information for a period of time. We will have to"}],"source_content_type":"text/x-rst","patch_set":20,"id":"7a016987_8cb4cbd1","line":300,"in_reply_to":"5ad58531_f6031675","updated":"2015-05-14 01:03:44.000000000","message":"Agree. Since you being the Author I agree even more :) True the spec only talks about  modifying computes table adding a host field and removing service_id but not actually touching the service. Will update the spec.","commit_id":"e063dc957733b6778f269041e890f806e0feac1e"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"7c9aacda72d4e5dfebba4fad8ce04b961c7226ae","unresolved":false,"context_lines":[{"line_number":302,"context_line":"  the groups that there will still be a connection into the ``services``"},{"line_number":303,"context_line":"  database table for this information for a period of time. We will have to"},{"line_number":304,"context_line":"  consider how to make this better after the initial migration and deprecation"},{"line_number":305,"context_line":"  work is completed..."},{"line_number":306,"context_line":"- Using this driver might lead to data inconsitency as same information about"},{"line_number":307,"context_line":"  services is kept in database and zookeeper and there is no way to keep them"},{"line_number":308,"context_line":"  in sync."}],"source_content_type":"text/x-rst","patch_set":20,"id":"5ad58531_96397244","line":305,"updated":"2015-05-11 20:46:45.000000000","message":"Yeah, that maybe need further discussions... I\u0027m a bit uncomfortable with keeping the broken model that I mentioned above, but I appreciate the move and I don\u0027t want it to be blocked because of that.","commit_id":"e063dc957733b6778f269041e890f806e0feac1e"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"2fb92349d938b2dfef6fa720926cecfcc4727dcb","unresolved":false,"context_lines":[{"line_number":302,"context_line":"  the groups that there will still be a connection into the ``services``"},{"line_number":303,"context_line":"  database table for this information for a period of time. We will have to"},{"line_number":304,"context_line":"  consider how to make this better after the initial migration and deprecation"},{"line_number":305,"context_line":"  work is completed..."},{"line_number":306,"context_line":"- Using this driver might lead to data inconsitency as same information about"},{"line_number":307,"context_line":"  services is kept in database and zookeeper and there is no way to keep them"},{"line_number":308,"context_line":"  in sync."}],"source_content_type":"text/x-rst","patch_set":20,"id":"7a016987_4c3c932f","line":305,"in_reply_to":"5ad58531_96397244","updated":"2015-05-14 01:03:44.000000000","message":"Sure.","commit_id":"e063dc957733b6778f269041e890f806e0feac1e"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"7c9aacda72d4e5dfebba4fad8ce04b961c7226ae","unresolved":false,"context_lines":[{"line_number":498,"context_line":"  there shouldn\u0027t be a need for nova to reimplement that"},{"line_number":499,"context_line":"  functionality/integration in its own internal testing suite."},{"line_number":500,"context_line":"- Tempest tests will be used/added to test tooz + nova + [redis, memcache,"},{"line_number":501,"context_line":"  zookeeper] to ensure the whole system works together as expected."},{"line_number":502,"context_line":""},{"line_number":503,"context_line":"Documentation Impact"},{"line_number":504,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":20,"id":"5ad58531_f65f9673","line":501,"updated":"2015-05-11 20:46:45.000000000","message":"How can we make sure that Tooz is stable enough so that it wouldn\u0027t break Nova ? Can/Should it be co-gated ? How do you ensure your API stability ? Do you have a python client ?","commit_id":"e063dc957733b6778f269041e890f806e0feac1e"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"70881f1988777e52e94563510498b40b03f0e991","unresolved":false,"context_lines":[{"line_number":498,"context_line":"  there shouldn\u0027t be a need for nova to reimplement that"},{"line_number":499,"context_line":"  functionality/integration in its own internal testing suite."},{"line_number":500,"context_line":"- Tempest tests will be used/added to test tooz + nova + [redis, memcache,"},{"line_number":501,"context_line":"  zookeeper] to ensure the whole system works together as expected."},{"line_number":502,"context_line":""},{"line_number":503,"context_line":"Documentation Impact"},{"line_number":504,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":20,"id":"9a0c5dc1_73a04b91","line":501,"in_reply_to":"5ad58531_a7ec3690","updated":"2015-05-12 08:23:45.000000000","message":"I obviously made a mistake when I went into details and I want to apologize. While I truly appreciate the move to Tooz, my concern is about how we can be sure that your library APIs will be stable enough to prevent any unexcepted behavioural change to happen.\n\nAnyway, the Tempest tests that you\u0027re planning to add should cover that for Nova. The only worries I have is how we can be sure that this coverage is full, just because here you want to test something which is not directly provided as a REST API but rather as an internal API.\n\nThat said, maybe I\u0027m just painting the shed on that...","commit_id":"e063dc957733b6778f269041e890f806e0feac1e"},{"author":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"change_message_id":"43c01a349e9dc05a42763b2a7836db20f22b602c","unresolved":false,"context_lines":[{"line_number":498,"context_line":"  there shouldn\u0027t be a need for nova to reimplement that"},{"line_number":499,"context_line":"  functionality/integration in its own internal testing suite."},{"line_number":500,"context_line":"- Tempest tests will be used/added to test tooz + nova + [redis, memcache,"},{"line_number":501,"context_line":"  zookeeper] to ensure the whole system works together as expected."},{"line_number":502,"context_line":""},{"line_number":503,"context_line":"Documentation Impact"},{"line_number":504,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":20,"id":"5ad58531_a7ec3690","line":501,"in_reply_to":"5ad58531_f65f9673","updated":"2015-05-11 22:31:11.000000000","message":"Tooz is a oslo project/library[1]; stable enough? Ceilometer and others have been using it..., but then what is/when is something stable enough? I\u0027m unsure how to quantify that, how do you? Tooz is a library[2], not a service so I\u0027m not sure why it would have a python client.\n\n[1] https://github.com/openstack/tooz/\n\n[2] http://docs.openstack.org/developer/tooz/","commit_id":"e063dc957733b6778f269041e890f806e0feac1e"},{"author":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"change_message_id":"1d64a819e8cc7af22c4044bcbfd562d13e9e6f32","unresolved":false,"context_lines":[{"line_number":164,"context_line":"maintained in the database which is wrong as we have the same"},{"line_number":165,"context_line":"information at two different places. With leave() we can guarantee"},{"line_number":166,"context_line":"that the member has left the group when lets say an entry for a host"},{"line_number":167,"context_line":"in a servicegroup is modified via a command line interface like nova-manage"},{"line_number":168,"context_line":"which directly operates on information stored in database."},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":21,"id":"7a016987_bb62f4d6","line":167,"updated":"2015-05-14 22:51:42.000000000","message":"Did u want to leave this nova-manage stuff out and fill it in via another spec that is eventually used to implement the pieces of https://blueprints.launchpad.net/nova/+spec/servicegroup-api-control-plane ?","commit_id":"caab7e8e5ae35c929252b3091fb5fefbfe5ce83a"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"70da468c705f9cc56d901d607cdae3c6567a2cb0","unresolved":false,"context_lines":[{"line_number":164,"context_line":"maintained in the database which is wrong as we have the same"},{"line_number":165,"context_line":"information at two different places. With leave() we can guarantee"},{"line_number":166,"context_line":"that the member has left the group when lets say an entry for a host"},{"line_number":167,"context_line":"in a servicegroup is modified via a command line interface like nova-manage"},{"line_number":168,"context_line":"which directly operates on information stored in database."},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":21,"id":"7a016987_7a5be8f6","line":167,"in_reply_to":"7a016987_bb62f4d6","updated":"2015-05-20 06:24:13.000000000","message":"Although I have included a reference for it but will explicitly state it.","commit_id":"caab7e8e5ae35c929252b3091fb5fefbfe5ce83a"},{"author":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"change_message_id":"1d64a819e8cc7af22c4044bcbfd562d13e9e6f32","unresolved":false,"context_lines":[{"line_number":417,"context_line":"   as other host with same group-id/topic."},{"line_number":418,"context_line":"   5. get_all() can return all the members of a respective group."},{"line_number":419,"context_line":""},{"line_number":420,"context_line":"Still the admin interface like nova-manage needs to be fixed. At present"},{"line_number":421,"context_line":"nova-mange blindly relies on DB entries and is not designed to work"},{"line_number":422,"context_line":"with other data stores."},{"line_number":423,"context_line":"services \u003d db.service_get_all(ctxt)"}],"source_content_type":"text/x-rst","patch_set":21,"id":"7a016987_3b7cc471","line":420,"updated":"2015-05-14 22:51:42.000000000","message":"This seems like another spec to fix all of this right?","commit_id":"caab7e8e5ae35c929252b3091fb5fefbfe5ce83a"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"0f1c8868ce2008a10f42dccad20adbdc79f9f911","unresolved":false,"context_lines":[{"line_number":417,"context_line":"   as other host with same group-id/topic."},{"line_number":418,"context_line":"   5. get_all() can return all the members of a respective group."},{"line_number":419,"context_line":""},{"line_number":420,"context_line":"Still the admin interface like nova-manage needs to be fixed. At present"},{"line_number":421,"context_line":"nova-mange blindly relies on DB entries and is not designed to work"},{"line_number":422,"context_line":"with other data stores."},{"line_number":423,"context_line":"services \u003d db.service_get_all(ctxt)"}],"source_content_type":"text/x-rst","patch_set":21,"id":"7a016987_5eb707f5","line":420,"in_reply_to":"7a016987_3b7cc471","updated":"2015-05-19 21:34:25.000000000","message":"I\u0027m quite torn here. Since the nova-manage command heavily uses the DB to call statuses, it would probably require a change in game by asking it to call the internal SG API. Since it\u0027s a big change IMHO, I agree with you, we need a separate BP.\n\nThat said, mentioning the problem in that spec and saying it will be discussed on another spec sounds good to me.","commit_id":"caab7e8e5ae35c929252b3091fb5fefbfe5ce83a"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"70da468c705f9cc56d901d607cdae3c6567a2cb0","unresolved":false,"context_lines":[{"line_number":417,"context_line":"   as other host with same group-id/topic."},{"line_number":418,"context_line":"   5. get_all() can return all the members of a respective group."},{"line_number":419,"context_line":""},{"line_number":420,"context_line":"Still the admin interface like nova-manage needs to be fixed. At present"},{"line_number":421,"context_line":"nova-mange blindly relies on DB entries and is not designed to work"},{"line_number":422,"context_line":"with other data stores."},{"line_number":423,"context_line":"services \u003d db.service_get_all(ctxt)"}],"source_content_type":"text/x-rst","patch_set":21,"id":"7a016987_1ae63444","line":420,"in_reply_to":"7a016987_5eb707f5","updated":"2015-05-20 06:24:13.000000000","message":"Sure. I think I have already included the blueprint for that work in the references section.\n\nhttps://blueprints.launchpad.net/nova/+spec/servicegroup-api-control-plane","commit_id":"caab7e8e5ae35c929252b3091fb5fefbfe5ce83a"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"bd6c0bba0955162e666446d5227719153657b7f9","unresolved":false,"context_lines":[{"line_number":10,"context_line":""},{"line_number":11,"context_line":"https://blueprints.launchpad.net/nova/+spec/tooz-for-service-groups"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Instead of having nova to maintain and test its own group membership"},{"line_number":14,"context_line":"code which is used to determine which services are up and down, which"},{"line_number":15,"context_line":"are frequently used to determine who are the members of a given"},{"line_number":16,"context_line":"group [compute, scheduler...] and if they are alive or dead (typically"},{"line_number":17,"context_line":"the member information includes what topic can be used to contact"},{"line_number":18,"context_line":"the member) we propose to retain a similar API in nova but instead"},{"line_number":19,"context_line":"using `tooz`_ (a new oslo library that has been under"},{"line_number":20,"context_line":"development for around a year) to provide the grouping concepts. The"},{"line_number":21,"context_line":"final aim of this spec is to replace nova servicegroup zookeeper,"},{"line_number":22,"context_line":"memecahe driver by respective tooz drivers. The existing Nova"},{"line_number":23,"context_line":"database servicegroup driver will remain with Nova for the scope"}],"source_content_type":"text/x-rst","patch_set":24,"id":"7a016987_fdc80857","line":20,"range":{"start_line":13,"start_character":0,"end_line":20,"end_character":63},"updated":"2015-05-28 19:37:58.000000000","message":"This is a really long run-on sentence which makes it very hard to understand.","commit_id":"b159a7768420ab95fdb297410a08f8b37227d607"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"a982f2165879dde6de6c0d55291a222b30385022","unresolved":false,"context_lines":[{"line_number":17,"context_line":"the member information includes what topic can be used to contact"},{"line_number":18,"context_line":"the member) we propose to retain a similar API in nova but instead"},{"line_number":19,"context_line":"using `tooz`_ (a new oslo library that has been under"},{"line_number":20,"context_line":"development for around a year) to provide the grouping concepts. The"},{"line_number":21,"context_line":"final aim of this spec is to replace nova servicegroup zookeeper,"},{"line_number":22,"context_line":"memecahe driver by respective tooz drivers. The existing Nova"},{"line_number":23,"context_line":"database servicegroup driver will remain with Nova for the scope"}],"source_content_type":"text/x-rst","patch_set":24,"id":"7a016987_b61aadc4","line":20,"in_reply_to":"7a016987_fdc80857","updated":"2015-05-28 22:27:14.000000000","message":"Done","commit_id":"b159a7768420ab95fdb297410a08f8b37227d607"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"bd6c0bba0955162e666446d5227719153657b7f9","unresolved":false,"context_lines":[{"line_number":28,"context_line":""},{"line_number":29,"context_line":"The service group code in nova is used to determine what services are up \u0026"},{"line_number":30,"context_line":"down and used to introspect liveness of those services by other members of"},{"line_number":31,"context_line":"the groups that all services belong to. To reduce nova from having to"},{"line_number":32,"context_line":"maintain, test and support code that does these group membership concepts"},{"line_number":33,"context_line":"(currently supporting [db, memcache, zookeeper] drivers) the"},{"line_number":34,"context_line":"`tooz`_ library can instead be used as the entrypoint and driver"}],"source_content_type":"text/x-rst","patch_set":24,"id":"7a016987_1dfac475","line":31,"range":{"start_line":31,"start_character":43,"end_line":31,"end_character":49},"updated":"2015-05-28 19:37:58.000000000","message":"I think you meant \"prevent\" here","commit_id":"b159a7768420ab95fdb297410a08f8b37227d607"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"a982f2165879dde6de6c0d55291a222b30385022","unresolved":false,"context_lines":[{"line_number":28,"context_line":""},{"line_number":29,"context_line":"The service group code in nova is used to determine what services are up \u0026"},{"line_number":30,"context_line":"down and used to introspect liveness of those services by other members of"},{"line_number":31,"context_line":"the groups that all services belong to. To reduce nova from having to"},{"line_number":32,"context_line":"maintain, test and support code that does these group membership concepts"},{"line_number":33,"context_line":"(currently supporting [db, memcache, zookeeper] drivers) the"},{"line_number":34,"context_line":"`tooz`_ library can instead be used as the entrypoint and driver"}],"source_content_type":"text/x-rst","patch_set":24,"id":"7a016987_f66b851c","line":31,"in_reply_to":"7a016987_1dfac475","updated":"2015-05-28 22:27:14.000000000","message":"Done","commit_id":"b159a7768420ab95fdb297410a08f8b37227d607"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"bd6c0bba0955162e666446d5227719153657b7f9","unresolved":false,"context_lines":[{"line_number":33,"context_line":"(currently supporting [db, memcache, zookeeper] drivers) the"},{"line_number":34,"context_line":"`tooz`_ library can instead be used as the entrypoint and driver"},{"line_number":35,"context_line":"provider/maintainer that provides equivalent concepts. With this blueprint"},{"line_number":36,"context_line":"the plan is to keep the existing db driver in nova whereas `tooz`_ to"},{"line_number":37,"context_line":"take care of remaining two drivers i.e. memcache and zookeeper since they"},{"line_number":38,"context_line":"are not maintained and are untested. In fact memcache driver internally"},{"line_number":39,"context_line":"uses the data stored in db driver and the Zookeeper driver stores redundant"}],"source_content_type":"text/x-rst","patch_set":24,"id":"7a016987_3d37c04e","line":36,"range":{"start_line":36,"start_character":51,"end_line":36,"end_character":58},"updated":"2015-05-28 19:37:58.000000000","message":"I don\u0027t think this makes sense. Perhaps this would be better:\n\n\"...in nova and use `tooz`_ to replace the existing two drivers (memcache and zookeeper).\"","commit_id":"b159a7768420ab95fdb297410a08f8b37227d607"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"a982f2165879dde6de6c0d55291a222b30385022","unresolved":false,"context_lines":[{"line_number":33,"context_line":"(currently supporting [db, memcache, zookeeper] drivers) the"},{"line_number":34,"context_line":"`tooz`_ library can instead be used as the entrypoint and driver"},{"line_number":35,"context_line":"provider/maintainer that provides equivalent concepts. With this blueprint"},{"line_number":36,"context_line":"the plan is to keep the existing db driver in nova whereas `tooz`_ to"},{"line_number":37,"context_line":"take care of remaining two drivers i.e. memcache and zookeeper since they"},{"line_number":38,"context_line":"are not maintained and are untested. In fact memcache driver internally"},{"line_number":39,"context_line":"uses the data stored in db driver and the Zookeeper driver stores redundant"}],"source_content_type":"text/x-rst","patch_set":24,"id":"7a016987_d655291e","line":36,"in_reply_to":"7a016987_3d37c04e","updated":"2015-05-28 22:27:14.000000000","message":"Definitely helps :)","commit_id":"b159a7768420ab95fdb297410a08f8b37227d607"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"bd6c0bba0955162e666446d5227719153657b7f9","unresolved":false,"context_lines":[{"line_number":57,"context_line":"  that likely isn\u0027t/hasn\u0027t(?) ever been tested in an automated fashion)."},{"line_number":58,"context_line":"- With these changes we will keep the db servicegroup driver in nova itself"},{"line_number":59,"context_line":"  whereas the plan is to move zookeeper, memcache to tooz."},{"line_number":60,"context_line":"- World peace..."},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"Use Cases"},{"line_number":63,"context_line":"----------"}],"source_content_type":"text/x-rst","patch_set":24,"id":"7a016987_5d095c83","line":60,"updated":"2015-05-28 19:37:58.000000000","message":"I think you can remove this :)","commit_id":"b159a7768420ab95fdb297410a08f8b37227d607"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"a982f2165879dde6de6c0d55291a222b30385022","unresolved":false,"context_lines":[{"line_number":57,"context_line":"  that likely isn\u0027t/hasn\u0027t(?) ever been tested in an automated fashion)."},{"line_number":58,"context_line":"- With these changes we will keep the db servicegroup driver in nova itself"},{"line_number":59,"context_line":"  whereas the plan is to move zookeeper, memcache to tooz."},{"line_number":60,"context_line":"- World peace..."},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"Use Cases"},{"line_number":63,"context_line":"----------"}],"source_content_type":"text/x-rst","patch_set":24,"id":"7a016987_168bc1c4","line":60,"in_reply_to":"7a016987_5d095c83","updated":"2015-05-28 22:27:14.000000000","message":"Done","commit_id":"b159a7768420ab95fdb297410a08f8b37227d607"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"bd6c0bba0955162e666446d5227719153657b7f9","unresolved":false,"context_lines":[{"line_number":64,"context_line":""},{"line_number":65,"context_line":"- Developer (nova team has to maintain, test, own less code)."},{"line_number":66,"context_line":"- Deployer (they can *potentially* configure tooz to use a backend of their"},{"line_number":67,"context_line":"  choosing)."},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"Project Priority"},{"line_number":70,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":24,"id":"7a016987_bd71700e","line":67,"updated":"2015-05-28 19:37:58.000000000","message":"These aren\u0027t use cases. Suggested alternatives:\n\n - As a developer, I want nova to have robust service grouping without maintaining a custom implementation\n\n - As a deployer, I want to use a strong grouping implementation such as zookeeper, which is not currently possible in nova due to unmaintained code.","commit_id":"b159a7768420ab95fdb297410a08f8b37227d607"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"a982f2165879dde6de6c0d55291a222b30385022","unresolved":false,"context_lines":[{"line_number":64,"context_line":""},{"line_number":65,"context_line":"- Developer (nova team has to maintain, test, own less code)."},{"line_number":66,"context_line":"- Deployer (they can *potentially* configure tooz to use a backend of their"},{"line_number":67,"context_line":"  choosing)."},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"Project Priority"},{"line_number":70,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":24,"id":"7a016987_71ce7f2e","line":67,"in_reply_to":"7a016987_bd71700e","updated":"2015-05-28 22:27:14.000000000","message":"Sure.","commit_id":"b159a7768420ab95fdb297410a08f8b37227d607"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"bd6c0bba0955162e666446d5227719153657b7f9","unresolved":false,"context_lines":[{"line_number":93,"context_line":"won\u0027t be functional and cannot be used with eventlet \u003e\u003d 0.17.1. Thats"},{"line_number":94,"context_line":"why considering the state of servicegroup drivers like the Zookeeper"},{"line_number":95,"context_line":"driver and Memcache driver we feel this blueprint can be an important"},{"line_number":96,"context_line":"addition."},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"Proposed change"},{"line_number":99,"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":24,"id":"7a016987_7dcd3830","line":96,"updated":"2015-05-28 19:37:58.000000000","message":"This section is supposed to mention the priority under which this work is covered, not defend the fact that it should be a priority. So, here you should just say:\n\n\"Scheduler work (including this service group refactoring) is a priority in Liberty\"","commit_id":"b159a7768420ab95fdb297410a08f8b37227d607"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"a982f2165879dde6de6c0d55291a222b30385022","unresolved":false,"context_lines":[{"line_number":93,"context_line":"won\u0027t be functional and cannot be used with eventlet \u003e\u003d 0.17.1. Thats"},{"line_number":94,"context_line":"why considering the state of servicegroup drivers like the Zookeeper"},{"line_number":95,"context_line":"driver and Memcache driver we feel this blueprint can be an important"},{"line_number":96,"context_line":"addition."},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"Proposed change"},{"line_number":99,"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":24,"id":"7a016987_71e55fa2","line":96,"in_reply_to":"7a016987_7dcd3830","updated":"2015-05-28 22:27:14.000000000","message":"Sure.","commit_id":"b159a7768420ab95fdb297410a08f8b37227d607"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"bd6c0bba0955162e666446d5227719153657b7f9","unresolved":false,"context_lines":[{"line_number":99,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"The proposed change would be to refactor the ``servicegroup/api.py`` API"},{"line_number":102,"context_line":"to have only a single implementation that is backed by tooz. Instead of"},{"line_number":103,"context_line":"having an API (shown below) that would be backed by custom implementations"},{"line_number":104,"context_line":"in nova (one of [db, memcache, zookeeper]) there would be a single API that"},{"line_number":105,"context_line":"would just use tooz. As mentioned above this new driver will be an interface"}],"source_content_type":"text/x-rst","patch_set":24,"id":"7a016987_206af3b3","line":102,"updated":"2015-05-28 19:37:58.000000000","message":"I don\u0027t quite understand this. If we\u0027re not using tooz, what happens? Below you make it sound like you\u0027d replace the base class with just the tooz implementation. Would you actually leave the base implementation as a no-op and then only implement it in the tooz driver such that a db-only implementation just does nothing for these calls?","commit_id":"b159a7768420ab95fdb297410a08f8b37227d607"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"5ce5632d0f3a67d9ed2e0c142901ad3b8346f4e4","unresolved":false,"context_lines":[{"line_number":99,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"The proposed change would be to refactor the ``servicegroup/api.py`` API"},{"line_number":102,"context_line":"to have only a single implementation that is backed by tooz. Instead of"},{"line_number":103,"context_line":"having an API (shown below) that would be backed by custom implementations"},{"line_number":104,"context_line":"in nova (one of [db, memcache, zookeeper]) there would be a single API that"},{"line_number":105,"context_line":"would just use tooz. As mentioned above this new driver will be an interface"}],"source_content_type":"text/x-rst","patch_set":24,"id":"7a016987_e7d86d20","line":102,"in_reply_to":"7a016987_206af3b3","updated":"2015-05-28 22:29:18.000000000","message":"Except leave() everything else will be same. For leave() db driver can be a no-op.","commit_id":"b159a7768420ab95fdb297410a08f8b37227d607"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"bd6c0bba0955162e666446d5227719153657b7f9","unresolved":false,"context_lines":[{"line_number":220,"context_line":"sometime soon?) that then saves data using the backends that ``memorycache``"},{"line_number":221,"context_line":"module supports (this being memcache or a local memory implementation that is"},{"line_number":222,"context_line":"typically/hopefully used just for testing; when a memcache server can not be"},{"line_number":223,"context_line":"made available to integrate against)."},{"line_number":224,"context_line":""},{"line_number":225,"context_line":"This driver uses keys of the format::"},{"line_number":226,"context_line":""}],"source_content_type":"text/x-rst","patch_set":24,"id":"7a016987_407e0f6b","line":223,"updated":"2015-05-28 19:37:58.000000000","message":"FWIW, I don\u0027t think we need all the text in this section. You\u0027ve said you\u0027ll deprecate it, and I think that it\u0027s already broken. So the data model impact doesn\u0027t seem interesting to me.","commit_id":"b159a7768420ab95fdb297410a08f8b37227d607"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"a982f2165879dde6de6c0d55291a222b30385022","unresolved":false,"context_lines":[{"line_number":220,"context_line":"sometime soon?) that then saves data using the backends that ``memorycache``"},{"line_number":221,"context_line":"module supports (this being memcache or a local memory implementation that is"},{"line_number":222,"context_line":"typically/hopefully used just for testing; when a memcache server can not be"},{"line_number":223,"context_line":"made available to integrate against)."},{"line_number":224,"context_line":""},{"line_number":225,"context_line":"This driver uses keys of the format::"},{"line_number":226,"context_line":""}],"source_content_type":"text/x-rst","patch_set":24,"id":"7a016987_b132b70e","line":223,"in_reply_to":"7a016987_407e0f6b","updated":"2015-05-28 22:27:14.000000000","message":"I feel its good to mention about it because it will help to understand the migration plan simpler.","commit_id":"b159a7768420ab95fdb297410a08f8b37227d607"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"f9fa32bf7a4e4cbbbc6cf841f785ec54b293f614","unresolved":false,"context_lines":[{"line_number":220,"context_line":"sometime soon?) that then saves data using the backends that ``memorycache``"},{"line_number":221,"context_line":"module supports (this being memcache or a local memory implementation that is"},{"line_number":222,"context_line":"typically/hopefully used just for testing; when a memcache server can not be"},{"line_number":223,"context_line":"made available to integrate against)."},{"line_number":224,"context_line":""},{"line_number":225,"context_line":"This driver uses keys of the format::"},{"line_number":226,"context_line":""}],"source_content_type":"text/x-rst","patch_set":24,"id":"7a016987_68130db9","line":223,"in_reply_to":"7a016987_b132b70e","updated":"2015-05-29 17:15:00.000000000","message":"It feels like an unnecessary distraction. If you really feel it\u0027s necessary, how about trimming most of the detail out of these two sections, mentioning that there is a plan, and add a work item to create devref documentation on how to migrate from mc/zk to tooz?","commit_id":"b159a7768420ab95fdb297410a08f8b37227d607"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"bd6c0bba0955162e666446d5227719153657b7f9","unresolved":false,"context_lines":[{"line_number":270,"context_line":"~~~~~"},{"line_number":271,"context_line":""},{"line_number":272,"context_line":"This driver uses `evzookeeper`_ (which is not only unmaintained but literally"},{"line_number":273,"context_line":"doesn\u0027t work with eventlet \u003e\u003d 0.17.1) to store members"},{"line_number":274,"context_line":"under the path formed by ``\"/\".join(CONF.zookeeper.sg_prefix, group)`` in"},{"line_number":275,"context_line":"zookeeper by placing a ephemeral node representing the member under that"},{"line_number":276,"context_line":"path. Since zookeeper will remove ephemeral node(s) automatically when the"}],"source_content_type":"text/x-rst","patch_set":24,"id":"7a016987_2098b3bf","line":273,"updated":"2015-05-28 19:37:58.000000000","message":"Same here. No need to go on at length about the data model impact.","commit_id":"b159a7768420ab95fdb297410a08f8b37227d607"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"a982f2165879dde6de6c0d55291a222b30385022","unresolved":false,"context_lines":[{"line_number":270,"context_line":"~~~~~"},{"line_number":271,"context_line":""},{"line_number":272,"context_line":"This driver uses `evzookeeper`_ (which is not only unmaintained but literally"},{"line_number":273,"context_line":"doesn\u0027t work with eventlet \u003e\u003d 0.17.1) to store members"},{"line_number":274,"context_line":"under the path formed by ``\"/\".join(CONF.zookeeper.sg_prefix, group)`` in"},{"line_number":275,"context_line":"zookeeper by placing a ephemeral node representing the member under that"},{"line_number":276,"context_line":"path. Since zookeeper will remove ephemeral node(s) automatically when the"}],"source_content_type":"text/x-rst","patch_set":24,"id":"7a016987_2c154c3f","line":273,"in_reply_to":"7a016987_2098b3bf","updated":"2015-05-28 22:27:14.000000000","message":"I feel its good to mention about it because it will help to understand the migration plan simpler.","commit_id":"b159a7768420ab95fdb297410a08f8b37227d607"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"bd6c0bba0955162e666446d5227719153657b7f9","unresolved":false,"context_lines":[{"line_number":322,"context_line":"may not be completely fair, and zookeeper has security but it\u0027s not being"},{"line_number":323,"context_line":"used in ``zk.py``). The usage of tooz would have the potential to increase"},{"line_number":324,"context_line":"security (as tooz itself can configure and interact with those backends"},{"line_number":325,"context_line":"in a more secure manner when/if it implements said security interactions)."},{"line_number":326,"context_line":""},{"line_number":327,"context_line":"Notifications impact"},{"line_number":328,"context_line":"--------------------"}],"source_content_type":"text/x-rst","patch_set":24,"id":"7a016987_c08aff63","line":325,"updated":"2015-05-28 19:37:58.000000000","message":"Sounds like you can replace this whole paragraph with \"None\" to me, based on what you say here (i.e. I don\u0027t think you\u0027re adding anything with all the text).\n\nHowever, presumably we have credentials (or certificates, or...) with zookeeper/tooz to worry about, right? Does that require us to configure plaintext passwords in our config file or anything like that? If anything, maybe touch on the additional requirements in that regard that may come up. If not, then I\u0027d leave this whole section as \"None\".","commit_id":"b159a7768420ab95fdb297410a08f8b37227d607"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"a982f2165879dde6de6c0d55291a222b30385022","unresolved":false,"context_lines":[{"line_number":322,"context_line":"may not be completely fair, and zookeeper has security but it\u0027s not being"},{"line_number":323,"context_line":"used in ``zk.py``). The usage of tooz would have the potential to increase"},{"line_number":324,"context_line":"security (as tooz itself can configure and interact with those backends"},{"line_number":325,"context_line":"in a more secure manner when/if it implements said security interactions)."},{"line_number":326,"context_line":""},{"line_number":327,"context_line":"Notifications impact"},{"line_number":328,"context_line":"--------------------"}],"source_content_type":"text/x-rst","patch_set":24,"id":"7a016987_6c6b44ba","line":325,"in_reply_to":"7a016987_c08aff63","updated":"2015-05-28 22:27:14.000000000","message":"This should be probably None. Thanks for bringing this up!","commit_id":"b159a7768420ab95fdb297410a08f8b37227d607"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"bd6c0bba0955162e666446d5227719153657b7f9","unresolved":false,"context_lines":[{"line_number":345,"context_line":"Other deployer impact"},{"line_number":346,"context_line":"---------------------"},{"line_number":347,"context_line":""},{"line_number":348,"context_line":"Migration plan/strategy"},{"line_number":349,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":350,"context_line":""},{"line_number":351,"context_line":"The other main deployer concern will be around what happens with the existing"}],"source_content_type":"text/x-rst","patch_set":24,"id":"7a016987_004a5726","line":348,"updated":"2015-05-28 19:37:58.000000000","message":"The other drivers are demonstrably broken right? If a deployment could not be running kilo and zk or mc drivers, then there really is no migration to be done, right?","commit_id":"b159a7768420ab95fdb297410a08f8b37227d607"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"a982f2165879dde6de6c0d55291a222b30385022","unresolved":false,"context_lines":[{"line_number":345,"context_line":"Other deployer impact"},{"line_number":346,"context_line":"---------------------"},{"line_number":347,"context_line":""},{"line_number":348,"context_line":"Migration plan/strategy"},{"line_number":349,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":350,"context_line":""},{"line_number":351,"context_line":"The other main deployer concern will be around what happens with the existing"}],"source_content_type":"text/x-rst","patch_set":24,"id":"7a016987_0c94d040","line":348,"in_reply_to":"7a016987_004a5726","updated":"2015-05-28 22:27:14.000000000","message":"As per the data we got via mailing list[1] no one (or very few who didn\u0027t reply) use zk/mc drivers.\n\nA] Agree that if deployment is not running kilo and zk or mc driver we don\u0027t need a migration plan as they will be using it for first time.\n\nB] But for people who are already using zk, mc drivers :-\n Even if the deployment could not be running kilo may be \u003c kilo or \u003e kilo. \n\n    a] If \u003e kilo (icehouse, havana) zk driver should work but still nova sg zk driver is managing that info won\u0027t we need migration plan if we want to move to tooz zk driver ?\n\n    b] If \u003c\u003d kilo ( liberty) nova sg zk driver wont work. But if the deployment at kilo level was using nova sg zk driver they will need a migration plan to move to be managed by tooz.\n\n[2] has more details.\n\n\n[1] https://www.mail-archive.com/openstack-dev@lists.openstack.org/msg51610.html\n[2] http://lists.openstack.org/pipermail/openstack-dev/2015-May/063602.html","commit_id":"b159a7768420ab95fdb297410a08f8b37227d607"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"bd6c0bba0955162e666446d5227719153657b7f9","unresolved":false,"context_lines":[{"line_number":479,"context_line":"#. Create/add tests for tooz servicegroup driver."},{"line_number":480,"context_line":"#. Add new ability to run two service group drivers for a given period of"},{"line_number":481,"context_line":"   time and then remove the *old* one after the period has elapsed (this"},{"line_number":482,"context_line":"   allows those who are using CD to switch over if they choose)."},{"line_number":483,"context_line":"#. Test that ability and ensure that it continues to work as expected."},{"line_number":484,"context_line":"#. Document the new driver and migration pattern."},{"line_number":485,"context_line":"#. Document and form some agreement on a depreciation strategy/plan for the"}],"source_content_type":"text/x-rst","patch_set":24,"id":"7a016987_c0fd5fb2","line":482,"updated":"2015-05-28 19:37:58.000000000","message":"I don\u0027t really understand this need, nor how this would work. Perhaps when you address my concerns above it will be more clear.","commit_id":"b159a7768420ab95fdb297410a08f8b37227d607"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"a982f2165879dde6de6c0d55291a222b30385022","unresolved":false,"context_lines":[{"line_number":479,"context_line":"#. Create/add tests for tooz servicegroup driver."},{"line_number":480,"context_line":"#. Add new ability to run two service group drivers for a given period of"},{"line_number":481,"context_line":"   time and then remove the *old* one after the period has elapsed (this"},{"line_number":482,"context_line":"   allows those who are using CD to switch over if they choose)."},{"line_number":483,"context_line":"#. Test that ability and ensure that it continues to work as expected."},{"line_number":484,"context_line":"#. Document the new driver and migration pattern."},{"line_number":485,"context_line":"#. Document and form some agreement on a depreciation strategy/plan for the"}],"source_content_type":"text/x-rst","patch_set":24,"id":"7a016987_8cbc40bc","line":482,"in_reply_to":"7a016987_c0fd5fb2","updated":"2015-05-28 22:27:14.000000000","message":"We don\u0027t need this. My bad.","commit_id":"b159a7768420ab95fdb297410a08f8b37227d607"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"bd6c0bba0955162e666446d5227719153657b7f9","unresolved":false,"context_lines":[{"line_number":480,"context_line":"#. Add new ability to run two service group drivers for a given period of"},{"line_number":481,"context_line":"   time and then remove the *old* one after the period has elapsed (this"},{"line_number":482,"context_line":"   allows those who are using CD to switch over if they choose)."},{"line_number":483,"context_line":"#. Test that ability and ensure that it continues to work as expected."},{"line_number":484,"context_line":"#. Document the new driver and migration pattern."},{"line_number":485,"context_line":"#. Document and form some agreement on a depreciation strategy/plan for the"},{"line_number":486,"context_line":"   existing *legacy* drivers."}],"source_content_type":"text/x-rst","patch_set":24,"id":"7a016987_a02dc347","line":483,"updated":"2015-05-28 19:37:58.000000000","message":"How?","commit_id":"b159a7768420ab95fdb297410a08f8b37227d607"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"a982f2165879dde6de6c0d55291a222b30385022","unresolved":false,"context_lines":[{"line_number":480,"context_line":"#. Add new ability to run two service group drivers for a given period of"},{"line_number":481,"context_line":"   time and then remove the *old* one after the period has elapsed (this"},{"line_number":482,"context_line":"   allows those who are using CD to switch over if they choose)."},{"line_number":483,"context_line":"#. Test that ability and ensure that it continues to work as expected."},{"line_number":484,"context_line":"#. Document the new driver and migration pattern."},{"line_number":485,"context_line":"#. Document and form some agreement on a depreciation strategy/plan for the"},{"line_number":486,"context_line":"   existing *legacy* drivers."}],"source_content_type":"text/x-rst","patch_set":24,"id":"7a016987_8c18c0d4","line":483,"in_reply_to":"7a016987_a02dc347","updated":"2015-05-28 22:27:14.000000000","message":"Please see the \"Testing\" section for details.","commit_id":"b159a7768420ab95fdb297410a08f8b37227d607"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"bd6c0bba0955162e666446d5227719153657b7f9","unresolved":false,"context_lines":[{"line_number":482,"context_line":"   allows those who are using CD to switch over if they choose)."},{"line_number":483,"context_line":"#. Test that ability and ensure that it continues to work as expected."},{"line_number":484,"context_line":"#. Document the new driver and migration pattern."},{"line_number":485,"context_line":"#. Document and form some agreement on a depreciation strategy/plan for the"},{"line_number":486,"context_line":"   existing *legacy* drivers."},{"line_number":487,"context_line":"#. Followup on said depreciation strategy/plan when appropriate."},{"line_number":488,"context_line":""}],"source_content_type":"text/x-rst","patch_set":24,"id":"7a016987_60234b59","line":485,"range":{"start_line":485,"start_character":41,"end_line":485,"end_character":53},"updated":"2015-05-28 19:37:58.000000000","message":"Should be \"deprecation\"","commit_id":"b159a7768420ab95fdb297410a08f8b37227d607"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"a982f2165879dde6de6c0d55291a222b30385022","unresolved":false,"context_lines":[{"line_number":482,"context_line":"   allows those who are using CD to switch over if they choose)."},{"line_number":483,"context_line":"#. Test that ability and ensure that it continues to work as expected."},{"line_number":484,"context_line":"#. Document the new driver and migration pattern."},{"line_number":485,"context_line":"#. Document and form some agreement on a depreciation strategy/plan for the"},{"line_number":486,"context_line":"   existing *legacy* drivers."},{"line_number":487,"context_line":"#. Followup on said depreciation strategy/plan when appropriate."},{"line_number":488,"context_line":""}],"source_content_type":"text/x-rst","patch_set":24,"id":"7a016987_4cb2c8e6","line":485,"in_reply_to":"7a016987_60234b59","updated":"2015-05-28 22:27:14.000000000","message":"Done","commit_id":"b159a7768420ab95fdb297410a08f8b37227d607"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"bd6c0bba0955162e666446d5227719153657b7f9","unresolved":false,"context_lines":[{"line_number":484,"context_line":"#. Document the new driver and migration pattern."},{"line_number":485,"context_line":"#. Document and form some agreement on a depreciation strategy/plan for the"},{"line_number":486,"context_line":"   existing *legacy* drivers."},{"line_number":487,"context_line":"#. Followup on said depreciation strategy/plan when appropriate."},{"line_number":488,"context_line":""},{"line_number":489,"context_line":"Dependencies"},{"line_number":490,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":24,"id":"7a016987_40284f33","line":487,"range":{"start_line":487,"start_character":20,"end_line":487,"end_character":32},"updated":"2015-05-28 19:37:58.000000000","message":"Same.","commit_id":"b159a7768420ab95fdb297410a08f8b37227d607"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"a982f2165879dde6de6c0d55291a222b30385022","unresolved":false,"context_lines":[{"line_number":484,"context_line":"#. Document the new driver and migration pattern."},{"line_number":485,"context_line":"#. Document and form some agreement on a depreciation strategy/plan for the"},{"line_number":486,"context_line":"   existing *legacy* drivers."},{"line_number":487,"context_line":"#. Followup on said depreciation strategy/plan when appropriate."},{"line_number":488,"context_line":""},{"line_number":489,"context_line":"Dependencies"},{"line_number":490,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":24,"id":"7a016987_6c322460","line":487,"in_reply_to":"7a016987_40284f33","updated":"2015-05-28 22:27:14.000000000","message":"Not needed removed it.","commit_id":"b159a7768420ab95fdb297410a08f8b37227d607"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"bd6c0bba0955162e666446d5227719153657b7f9","unresolved":false,"context_lines":[{"line_number":498,"context_line":"  there shouldn\u0027t be a need for nova to reimplement that"},{"line_number":499,"context_line":"  functionality/integration in its own internal testing suite."},{"line_number":500,"context_line":"- Tempest tests will be used/added to test tooz + nova + [redis, memcache,"},{"line_number":501,"context_line":"  zookeeper] to ensure the whole system works together as expected."},{"line_number":502,"context_line":""},{"line_number":503,"context_line":"Documentation Impact"},{"line_number":504,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":24,"id":"7a016987_e0ee1bec","line":501,"updated":"2015-05-28 19:37:58.000000000","message":"You can\u0027t add tempest tests for this. Perhaps you mean tempest jobs with nova configured to use tooz? Certainly you won\u0027t be able to get jobs for all of those technologies in infra.\n\nFurther, you can only test the happy path of these things with a tempest job, right? You can\u0027t, for example, force a node to die and make sure nova reports it properly. Same with a graceful shutdown.\n\nI think you will need fairly extensive functional tests here to validate the new behavior with multiple nodes. That may not require actually using zookeeper on the box, but rather just rely on a dummy driver or something to make sure that services are joining/leaving on start/stop, etc.","commit_id":"b159a7768420ab95fdb297410a08f8b37227d607"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"f9fa32bf7a4e4cbbbc6cf841f785ec54b293f614","unresolved":false,"context_lines":[{"line_number":498,"context_line":"  there shouldn\u0027t be a need for nova to reimplement that"},{"line_number":499,"context_line":"  functionality/integration in its own internal testing suite."},{"line_number":500,"context_line":"- Tempest tests will be used/added to test tooz + nova + [redis, memcache,"},{"line_number":501,"context_line":"  zookeeper] to ensure the whole system works together as expected."},{"line_number":502,"context_line":""},{"line_number":503,"context_line":"Documentation Impact"},{"line_number":504,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":24,"id":"7a016987_a873454d","line":501,"in_reply_to":"7a016987_2797a549","updated":"2015-05-29 17:15:00.000000000","message":"None of the failure paths are tested by tempest jobs, AFAIK. It\u0027s kindof a nonsensical case, given that tempest runs in parallel and testing the service failure paths would require shutting down a service that is being used by another testing thread.","commit_id":"b159a7768420ab95fdb297410a08f8b37227d607"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"a982f2165879dde6de6c0d55291a222b30385022","unresolved":false,"context_lines":[{"line_number":498,"context_line":"  there shouldn\u0027t be a need for nova to reimplement that"},{"line_number":499,"context_line":"  functionality/integration in its own internal testing suite."},{"line_number":500,"context_line":"- Tempest tests will be used/added to test tooz + nova + [redis, memcache,"},{"line_number":501,"context_line":"  zookeeper] to ensure the whole system works together as expected."},{"line_number":502,"context_line":""},{"line_number":503,"context_line":"Documentation Impact"},{"line_number":504,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":24,"id":"7a016987_2797a549","line":501,"in_reply_to":"7a016987_e0ee1bec","updated":"2015-05-28 22:27:14.000000000","message":"Yes I meant tempest jobs with nova configured to use Tooz.\n\nWhat happened with earlier nova sg zk and mc drivers ? Did they only execute the happy path ? For that matter does the db driver, which is the only claimed driver to be tested, also follows just the happy path ? I don\u0027t plan to follow anything different than what was done for the integration testing with current sg drivers (db, zk, mc)\n\nRegarding functional tests sure that can be done. We have Zake driver in Tooz, which provide a nice set of testing utilities for the kazoo library which do not require a real zookeeper server to be tested with. Hope that helps.","commit_id":"b159a7768420ab95fdb297410a08f8b37227d607"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"97de56c518789ed990b8aea00ed5bcbd4e30ca8a","unresolved":false,"context_lines":[{"line_number":10,"context_line":""},{"line_number":11,"context_line":"https://blueprints.launchpad.net/nova/+spec/tooz-for-service-groups"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Instead of having nova to maintain and test its own group membership"},{"line_number":14,"context_line":"code which is used to determine which services are up and down, which"},{"line_number":15,"context_line":"are frequently used to determine who are the members of a given"},{"line_number":16,"context_line":"group [compute, scheduler...] and if they are alive or dead (typically"},{"line_number":17,"context_line":"the member information includes what topic can be used to contact"},{"line_number":18,"context_line":"the member). The proposal is to retain a similar API in nova but"},{"line_number":19,"context_line":"instead using `tooz`_ (a new oslo library that has been under"},{"line_number":20,"context_line":"development for around a year) to provide the grouping concepts. The"},{"line_number":21,"context_line":"final aim of this spec is to replace nova servicegroup zookeeper,"}],"source_content_type":"text/x-rst","patch_set":25,"id":"7a016987_e855bd4f","line":18,"range":{"start_line":13,"start_character":0,"end_line":18,"end_character":12},"updated":"2015-05-29 17:24:25.000000000","message":"I see that you trimmed this a little, but it is still a run-on and rather hard to parse, IMHO.","commit_id":"311aff7d21b80edf3dc5c57409e2e5f8c19890ed"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"dd7920713352eb3fa27fe73e56b3d53be25f079b","unresolved":false,"context_lines":[{"line_number":15,"context_line":"are frequently used to determine who are the members of a given"},{"line_number":16,"context_line":"group [compute, scheduler...] and if they are alive or dead (typically"},{"line_number":17,"context_line":"the member information includes what topic can be used to contact"},{"line_number":18,"context_line":"the member). The proposal is to retain a similar API in nova but"},{"line_number":19,"context_line":"instead using `tooz`_ (a new oslo library that has been under"},{"line_number":20,"context_line":"development for around a year) to provide the grouping concepts. The"},{"line_number":21,"context_line":"final aim of this spec is to replace nova servicegroup zookeeper,"}],"source_content_type":"text/x-rst","patch_set":25,"id":"7a016987_b1c5f05c","line":18,"in_reply_to":"7a016987_e855bd4f","updated":"2015-05-29 19:13:34.000000000","message":"Sure. Please check now.","commit_id":"311aff7d21b80edf3dc5c57409e2e5f8c19890ed"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"97de56c518789ed990b8aea00ed5bcbd4e30ca8a","unresolved":false,"context_lines":[{"line_number":72,"context_line":"-----------------"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"Scheduler work (including this service group refactoring) is a"},{"line_number":75,"context_line":"priority in Liberty. Should be an important addition"},{"line_number":76,"context_line":"considering the existing state of few servicegroup drivers like"},{"line_number":77,"context_line":"zk.py which use modules like evzookeeper which are no more"},{"line_number":78,"context_line":"maintained. Tooz has active development and is very well"},{"line_number":79,"context_line":"maintained. Apart from the existing db servicegroup driver"},{"line_number":80,"context_line":"other drivers are not fully functional driver. For example the"},{"line_number":81,"context_line":"Memcache driver, mc.py, stores the services details in Nova"},{"line_number":82,"context_line":"database. From the implementation it seems like it is only used to"},{"line_number":83,"context_line":"check the heatbeat. The Zookeeper driver is broken and should not"},{"line_number":84,"context_line":"be used as using it may lead to inconsistent information. By default"},{"line_number":85,"context_line":"the service information is maintained in the database. While using"},{"line_number":86,"context_line":"the Zookeeper driver the servie information is also maintained in"},{"line_number":87,"context_line":"Zookeeper, there is a fanout structure znode organisation where root"},{"line_number":88,"context_line":"is the topic and the leaves are the hosts. Keeping same information"},{"line_number":89,"context_line":"at two places( database and zookeeper) is tricky and will lead to data"},{"line_number":90,"context_line":"inconsistency since the interfaces used to access this information can"},{"line_number":91,"context_line":"be admin like nova-manage(which solely acts on the database) or"},{"line_number":92,"context_line":"programatic by invoking the servicegroup API. Also, evzookeeper"},{"line_number":93,"context_line":"uses certain attributes which only work with eventlet \u003c 0.17.0. The"},{"line_number":94,"context_line":"current requirements need eventlet 0.17.3 and logically it will"},{"line_number":95,"context_line":"keep on increasing. There are missing attributes that evzookeeper is"},{"line_number":96,"context_line":"trying to use that only works in eventlet \u003c 0.17.0. So Zookeeper driver"},{"line_number":97,"context_line":"won\u0027t be functional and cannot be used with eventlet \u003e\u003d 0.17.1. Thats"},{"line_number":98,"context_line":"why considering the state of servicegroup drivers like the Zookeeper"},{"line_number":99,"context_line":"driver and Memcache driver we feel this blueprint can be an important"},{"line_number":100,"context_line":"addition."},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"Proposed change"},{"line_number":103,"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":25,"id":"7a016987_48cdf12f","line":100,"range":{"start_line":75,"start_character":21,"end_line":100,"end_character":9},"updated":"2015-05-29 17:24:25.000000000","message":"Again, this is not for defending the inclusion or why it is \"an important addition\". Please remove all the highlighted text (everything after the first sentence).","commit_id":"311aff7d21b80edf3dc5c57409e2e5f8c19890ed"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"dd7920713352eb3fa27fe73e56b3d53be25f079b","unresolved":false,"context_lines":[{"line_number":97,"context_line":"won\u0027t be functional and cannot be used with eventlet \u003e\u003d 0.17.1. Thats"},{"line_number":98,"context_line":"why considering the state of servicegroup drivers like the Zookeeper"},{"line_number":99,"context_line":"driver and Memcache driver we feel this blueprint can be an important"},{"line_number":100,"context_line":"addition."},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"Proposed change"},{"line_number":103,"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":25,"id":"7a016987_3196a03e","line":100,"in_reply_to":"7a016987_48cdf12f","updated":"2015-05-29 19:13:34.000000000","message":"Done","commit_id":"311aff7d21b80edf3dc5c57409e2e5f8c19890ed"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"97de56c518789ed990b8aea00ed5bcbd4e30ca8a","unresolved":false,"context_lines":[{"line_number":319,"context_line":"Security impact"},{"line_number":320,"context_line":"---------------"},{"line_number":321,"context_line":""},{"line_number":322,"context_line":"N/A"},{"line_number":323,"context_line":""},{"line_number":324,"context_line":"Notifications impact"},{"line_number":325,"context_line":"--------------------"}],"source_content_type":"text/x-rst","patch_set":25,"id":"7a016987_a8f90550","line":322,"updated":"2015-05-29 17:24:25.000000000","message":"This goes for most of the other uses of \"N/A\" here, but this should be specifically \"None\". \"N/A\" means \"not applicable\" which is different than \"None\" which means \"there is no (security) impact\". Same for \"RST API Impact\", etc.","commit_id":"311aff7d21b80edf3dc5c57409e2e5f8c19890ed"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"dd7920713352eb3fa27fe73e56b3d53be25f079b","unresolved":false,"context_lines":[{"line_number":319,"context_line":"Security impact"},{"line_number":320,"context_line":"---------------"},{"line_number":321,"context_line":""},{"line_number":322,"context_line":"N/A"},{"line_number":323,"context_line":""},{"line_number":324,"context_line":"Notifications impact"},{"line_number":325,"context_line":"--------------------"}],"source_content_type":"text/x-rst","patch_set":25,"id":"7a016987_f1cb6851","line":322,"in_reply_to":"7a016987_a8f90550","updated":"2015-05-29 19:13:34.000000000","message":"Done","commit_id":"311aff7d21b80edf3dc5c57409e2e5f8c19890ed"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"97de56c518789ed990b8aea00ed5bcbd4e30ca8a","unresolved":false,"context_lines":[{"line_number":491,"context_line":"  there shouldn\u0027t be a need for nova to reimplement that"},{"line_number":492,"context_line":"  functionality/integration in its own internal testing suite."},{"line_number":493,"context_line":"- Tempest tests will be used/added to test tooz + nova + [redis, memcache,"},{"line_number":494,"context_line":"  zookeeper] to ensure the whole system works together as expected."},{"line_number":495,"context_line":""},{"line_number":496,"context_line":"Documentation Impact"},{"line_number":497,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":25,"id":"7a016987_c85c414d","line":494,"updated":"2015-05-29 17:24:25.000000000","message":"Doesn\u0027t look like my concerns in the previous version were addressed in this section. Specifically around describing the tempest *jobs* that will be added, what those limitations are, and prescribing functional test work.","commit_id":"311aff7d21b80edf3dc5c57409e2e5f8c19890ed"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"dd7920713352eb3fa27fe73e56b3d53be25f079b","unresolved":false,"context_lines":[{"line_number":491,"context_line":"  there shouldn\u0027t be a need for nova to reimplement that"},{"line_number":492,"context_line":"  functionality/integration in its own internal testing suite."},{"line_number":493,"context_line":"- Tempest tests will be used/added to test tooz + nova + [redis, memcache,"},{"line_number":494,"context_line":"  zookeeper] to ensure the whole system works together as expected."},{"line_number":495,"context_line":""},{"line_number":496,"context_line":"Documentation Impact"},{"line_number":497,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":25,"id":"7a016987_3cef971f","line":494,"in_reply_to":"7a016987_c85c414d","updated":"2015-05-29 19:13:34.000000000","message":"Added details as we discussed on IRC\n\n1. Functional tests will be added in Nova for testing Nova\u0027s\n  ability to handle what happens when the Tooz drivers report\n  a problem.\n\n2. At present there is no framework available to do fault tolerance\n  testing. Filed a blueprint `fault-tolerance-framework`_ for the\n  same.","commit_id":"311aff7d21b80edf3dc5c57409e2e5f8c19890ed"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"46b7000851f130b55564b4b59e0b0198a2fd71c0","unresolved":false,"context_lines":[{"line_number":16,"context_line":"group [compute, scheduler, etc.] and if they are alive or dead."},{"line_number":17,"context_line":"The proposal is to retain a similar API in nova but instead"},{"line_number":18,"context_line":"using `tooz`_ (a new oslo library that has been under development"},{"line_number":19,"context_line":"for around a year) to provide the grouping concepts. The"},{"line_number":20,"context_line":"final aim of this spec is to replace nova servicegroup zookeeper,"},{"line_number":21,"context_line":"memecahe driver by respective tooz drivers. The existing Nova"},{"line_number":22,"context_line":"database servicegroup driver will remain with Nova for the scope"}],"source_content_type":"text/x-rst","patch_set":26,"id":"3afb71cf_882e7741","line":19,"updated":"2015-06-09 08:56:38.000000000","message":"Thats not really the point, as agreed at the summit.\n\nThe idea is to stop maintaining the zookeeper and memcache drivers, at least for now.","commit_id":"17eb6df8c235fdd7ca45391c5b1ad29eea930869"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"afc5f74b5b562230a507f42b607b7f4ff8b3a14d","unresolved":false,"context_lines":[{"line_number":10,"context_line":""},{"line_number":11,"context_line":"https://blueprints.launchpad.net/nova/+spec/tooz-for-service-groups"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Nova\u0027s zookeeper and memecache service group drivers have fallen into"},{"line_number":14,"context_line":"disrepair. `tooz`_ (a new oslo library that has been under development"},{"line_number":15,"context_line":"for around a year) is able to provide the grouping concepts in a way"},{"line_number":16,"context_line":"that means nova would no longer need to maintain the zookeeper and memcache"}],"source_content_type":"text/x-rst","patch_set":28,"id":"3afb71cf_fe18e5d4","line":13,"updated":"2015-06-10 02:27:43.000000000","message":"s/memecache/memcache/  unless of course \"memecache\" is a new social-media caching technology I am unaware of.","commit_id":"0220f626a9593c2839ebc8032320708cea7bf66c"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"369aca4e89a8883962529a5dce4b1e42c31850bb","unresolved":false,"context_lines":[{"line_number":10,"context_line":""},{"line_number":11,"context_line":"https://blueprints.launchpad.net/nova/+spec/tooz-for-service-groups"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Nova\u0027s zookeeper and memecache service group drivers have fallen into"},{"line_number":14,"context_line":"disrepair. `tooz`_ (a new oslo library that has been under development"},{"line_number":15,"context_line":"for around a year) is able to provide the grouping concepts in a way"},{"line_number":16,"context_line":"that means nova would no longer need to maintain the zookeeper and memcache"}],"source_content_type":"text/x-rst","patch_set":28,"id":"3afb71cf_61764607","line":13,"in_reply_to":"3afb71cf_fe18e5d4","updated":"2015-06-11 09:33:00.000000000","message":"lol","commit_id":"0220f626a9593c2839ebc8032320708cea7bf66c"},{"author":{"_account_id":1849,"name":"Joe Gordon","email":"joe.gordon0@gmail.com","username":"jogo"},"change_message_id":"5caca5bfebe2ac557e0748a3d3b8237e3281cee3","unresolved":false,"context_lines":[{"line_number":62,"context_line":"We could do nothing, but that is unlikely to get the broken drivers fixed,"},{"line_number":63,"context_line":"leading to lots of confusion for users, and painful upgrades."},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"We could just drop support for memcache and zookeeper serve group drivers"},{"line_number":66,"context_line":"all together, but there appears to be a community that wants to support them"},{"line_number":67,"context_line":"via `tooz`_ and it would be good to support that community."},{"line_number":68,"context_line":""}],"source_content_type":"text/x-rst","patch_set":28,"id":"3afb71cf_9139fba6","line":65,"range":{"start_line":65,"start_character":54,"end_line":65,"end_character":59},"updated":"2015-06-09 11:07:52.000000000","message":"s/serve/service/ ?","commit_id":"0220f626a9593c2839ebc8032320708cea7bf66c"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"369aca4e89a8883962529a5dce4b1e42c31850bb","unresolved":false,"context_lines":[{"line_number":62,"context_line":"We could do nothing, but that is unlikely to get the broken drivers fixed,"},{"line_number":63,"context_line":"leading to lots of confusion for users, and painful upgrades."},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"We could just drop support for memcache and zookeeper serve group drivers"},{"line_number":66,"context_line":"all together, but there appears to be a community that wants to support them"},{"line_number":67,"context_line":"via `tooz`_ and it would be good to support that community."},{"line_number":68,"context_line":""}],"source_content_type":"text/x-rst","patch_set":28,"id":"3afb71cf_e1fc7673","line":65,"range":{"start_line":65,"start_character":54,"end_line":65,"end_character":59},"in_reply_to":"3afb71cf_9139fba6","updated":"2015-06-11 09:33:00.000000000","message":"+1","commit_id":"0220f626a9593c2839ebc8032320708cea7bf66c"},{"author":{"_account_id":1849,"name":"Joe Gordon","email":"joe.gordon0@gmail.com","username":"jogo"},"change_message_id":"5caca5bfebe2ac557e0748a3d3b8237e3281cee3","unresolved":false,"context_lines":[{"line_number":70,"context_line":"to the new `tooz`_ driver, but given those drivers appear to be currently"},{"line_number":71,"context_line":"broken, that seems like wasted effort. User feedback during the deprecation"},{"line_number":72,"context_line":"cycle can be used to decide if this is needed before we remove the drivers"},{"line_number":73,"context_line":"from the Nova code base."},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"Data model impact"},{"line_number":76,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":28,"id":"3afb71cf_114e2b3b","line":73,"updated":"2015-06-09 11:07:52.000000000","message":"Sounds reasonable","commit_id":"0220f626a9593c2839ebc8032320708cea7bf66c"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"afc5f74b5b562230a507f42b607b7f4ff8b3a14d","unresolved":false,"context_lines":[{"line_number":75,"context_line":"Data model impact"},{"line_number":76,"context_line":"-----------------"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"The DB service group driver will be unaffected by this change."},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"The memcache and zookeeper drivers do not store information in those system in"},{"line_number":81,"context_line":"the same way that `tooz`_ stores information. But Nova is just a user of the"}],"source_content_type":"text/x-rst","patch_set":28,"id":"3afb71cf_13a848da","line":78,"updated":"2015-06-10 02:27:43.000000000","message":"Note that unless the \"uncruft the horrific state of the servicegroup API\" blueprint is a pre-requisite to this one, then the DB servicegroup driver will still unfortunately be entangled throughout the servicegroup API itself, as you well know.\n\nWe need to first detach the services database table from direct usage by Nova code. After we decouple the services database table from direct querying in Nova, we can look at deprecating the memcache and zookeeper SG drivers.","commit_id":"0220f626a9593c2839ebc8032320708cea7bf66c"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"369aca4e89a8883962529a5dce4b1e42c31850bb","unresolved":false,"context_lines":[{"line_number":75,"context_line":"Data model impact"},{"line_number":76,"context_line":"-----------------"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"The DB service group driver will be unaffected by this change."},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"The memcache and zookeeper drivers do not store information in those system in"},{"line_number":81,"context_line":"the same way that `tooz`_ stores information. But Nova is just a user of the"}],"source_content_type":"text/x-rst","patch_set":28,"id":"3afb71cf_81526265","line":78,"in_reply_to":"3afb71cf_13a848da","updated":"2015-06-11 09:33:00.000000000","message":"Have you written up that blueprint yet?","commit_id":"0220f626a9593c2839ebc8032320708cea7bf66c"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"afc5f74b5b562230a507f42b607b7f4ff8b3a14d","unresolved":false,"context_lines":[{"line_number":130,"context_line":"* Update configuration to point at new service group driver"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"* Possibly run a script to migrate the list of known enabled services"},{"line_number":133,"context_line":"  from the old system to the new system, if required."},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"* Turn back on all services"},{"line_number":136,"context_line":""}],"source_content_type":"text/x-rst","patch_set":28,"id":"3afb71cf_137f2867","line":133,"updated":"2015-06-10 02:27:43.000000000","message":"This will not be necessary if you turn off all the services... since turning on the service will register it as a member in a group the new tooz backend.","commit_id":"0220f626a9593c2839ebc8032320708cea7bf66c"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"369aca4e89a8883962529a5dce4b1e42c31850bb","unresolved":false,"context_lines":[{"line_number":130,"context_line":"* Update configuration to point at new service group driver"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"* Possibly run a script to migrate the list of known enabled services"},{"line_number":133,"context_line":"  from the old system to the new system, if required."},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"* Turn back on all services"},{"line_number":136,"context_line":""}],"source_content_type":"text/x-rst","patch_set":28,"id":"3afb71cf_e1e596db","line":133,"in_reply_to":"3afb71cf_137f2867","updated":"2015-06-11 09:33:00.000000000","message":"So some folks wanted us to have discovered services disabled by default at some point, thats mostly why I added this as possibly.","commit_id":"0220f626a9593c2839ebc8032320708cea7bf66c"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"f4743bd68244af5e8441278d3db14899950ab432","unresolved":false,"context_lines":[{"line_number":123,"context_line":"There will be a new configuration value for the `tooz` driver, using a URL."},{"line_number":124,"context_line":"A few examples of this URL format::"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"    servicegroup_tooz_url \u003d \"kazoo://127.0.0.1:2181?timeout\u003d5\""},{"line_number":127,"context_line":"    servicegroup_tooz_url \u003d \"memcached://localhost:11211?timeout\u003d5\""},{"line_number":128,"context_line":"    servicegroup_tooz_url \u003d \"redis://localhost:6379?timeout\u003d5\""},{"line_number":129,"context_line":""}],"source_content_type":"text/x-rst","patch_set":29,"id":"3afb71cf_24fbb249","line":126,"updated":"2015-06-11 13:51:56.000000000","message":"I would prefer having [tooz] section and backend_url option there. Having another section would be consistent with current implementation of ZooKeeper driver.","commit_id":"21dc4fa306268ffde17b2fc88890e0f6a9f453c1"},{"author":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"change_message_id":"96e743e12995a022899cfe08756f5e9688a7a331","unresolved":false,"context_lines":[{"line_number":123,"context_line":"There will be a new configuration value for the `tooz` driver, using a URL."},{"line_number":124,"context_line":"A few examples of this URL format::"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"    servicegroup_tooz_url \u003d \"kazoo://127.0.0.1:2181?timeout\u003d5\""},{"line_number":127,"context_line":"    servicegroup_tooz_url \u003d \"memcached://localhost:11211?timeout\u003d5\""},{"line_number":128,"context_line":"    servicegroup_tooz_url \u003d \"redis://localhost:6379?timeout\u003d5\""},{"line_number":129,"context_line":""}],"source_content_type":"text/x-rst","patch_set":29,"id":"3afb71cf_64cd1f5d","line":126,"in_reply_to":"3afb71cf_24fbb249","updated":"2015-06-11 17:29:25.000000000","message":"Sure, I think we considered that, we can make it use [tooz] or something else, np, easy to do...","commit_id":"21dc4fa306268ffde17b2fc88890e0f6a9f453c1"},{"author":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"change_message_id":"96e743e12995a022899cfe08756f5e9688a7a331","unresolved":false,"context_lines":[{"line_number":164,"context_line":"-----------"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"Primary assignee:"},{"line_number":167,"context_line":"vilobhmm"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"Work Items"},{"line_number":170,"context_line":"----------"}],"source_content_type":"text/x-rst","patch_set":29,"id":"3afb71cf_44c34339","line":167,"updated":"2015-06-11 17:29:25.000000000","message":"Feel free to add me to, here to help!","commit_id":"21dc4fa306268ffde17b2fc88890e0f6a9f453c1"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"0c642b8590e3755b031e046e985d34c5cbfa169b","unresolved":false,"context_lines":[{"line_number":169,"context_line":"Work Items"},{"line_number":170,"context_line":"----------"},{"line_number":171,"context_line":""},{"line_number":172,"context_line":"* Ensure the Service DB is always accessed through the service group API"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"* Implement the new tooz servicegroup driver"},{"line_number":175,"context_line":""}],"source_content_type":"text/x-rst","patch_set":29,"id":"3afb71cf_c434defc","line":172,"updated":"2015-06-11 13:58:28.000000000","message":"I see the above as a pre-requisite for this blueprint, not as a work item in it.\n\nIn fact, the above work is covered by this blueprint:\n\nhttps://review.openstack.org/#/c/190322/","commit_id":"21dc4fa306268ffde17b2fc88890e0f6a9f453c1"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"77f4b36192a31c097fef26a8632490db6d9414ab","unresolved":false,"context_lines":[{"line_number":169,"context_line":"Work Items"},{"line_number":170,"context_line":"----------"},{"line_number":171,"context_line":""},{"line_number":172,"context_line":"* Ensure the Service DB is always accessed through the service group API"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"* Implement the new tooz servicegroup driver"},{"line_number":175,"context_line":""}],"source_content_type":"text/x-rst","patch_set":29,"id":"3afb71cf_796b8186","line":172,"in_reply_to":"3afb71cf_3fa9707c","updated":"2015-06-11 19:44:43.000000000","message":"I agree with Jay. IMHO https://review.openstack.org/#/c/190322/ is needed *before* that spec, since it would provide a consistent abstraction layer for checking a service. Once we would have that clean abstraction, we could just work on providing the Tooz driver for fixing the ZK problems related in that spec.","commit_id":"21dc4fa306268ffde17b2fc88890e0f6a9f453c1"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"67089253909cf5d0bae51d38ff0c2bedda26698d","unresolved":false,"context_lines":[{"line_number":169,"context_line":"Work Items"},{"line_number":170,"context_line":"----------"},{"line_number":171,"context_line":""},{"line_number":172,"context_line":"* Ensure the Service DB is always accessed through the service group API"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"* Implement the new tooz servicegroup driver"},{"line_number":175,"context_line":""}],"source_content_type":"text/x-rst","patch_set":29,"id":"1af86dd1_3ea16baa","line":172,"in_reply_to":"3afb71cf_796b8186","updated":"2015-06-12 09:47:33.000000000","message":"So, I didn\u0027t know this BP existed, agreed we should depend on it, if it exists.","commit_id":"21dc4fa306268ffde17b2fc88890e0f6a9f453c1"},{"author":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"change_message_id":"6a59275bef831dc04a6c37e81475f363fc839207","unresolved":false,"context_lines":[{"line_number":169,"context_line":"Work Items"},{"line_number":170,"context_line":"----------"},{"line_number":171,"context_line":""},{"line_number":172,"context_line":"* Ensure the Service DB is always accessed through the service group API"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"* Implement the new tooz servicegroup driver"},{"line_number":175,"context_line":""}],"source_content_type":"text/x-rst","patch_set":29,"id":"3afb71cf_3fa9707c","line":172,"in_reply_to":"3afb71cf_c434defc","updated":"2015-06-11 17:46:12.000000000","message":"+1 to the fact that both *need* to happen, as for the ordering, I think both could be done in this cycle (it\u0027d be nice if the stuff in 190322 was fixed *soon*, but this one could also go first IMHO).","commit_id":"21dc4fa306268ffde17b2fc88890e0f6a9f453c1"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"7342b52b220e02f664c2a9994fdf518018f2db21","unresolved":false,"context_lines":[{"line_number":82,"context_line":"that we copy the services data, services state and everything which is"},{"line_number":83,"context_line":"related to checking service liveliness into the new datastore which is"},{"line_number":84,"context_line":"zookeeper in this case. Same logic should be applicable for migrating"},{"line_number":85,"context_line":"to Memecache driver."},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"It will simply wrap calls into the `tooz`_ library, and raise Nova"},{"line_number":88,"context_line":"specific exceptions for errors that are hit."}],"source_content_type":"text/x-rst","patch_set":31,"id":"fa32b979_ad7e6de2","line":85,"updated":"2015-06-15 08:52:57.000000000","message":"why is this here? its too much detail really for this discussion, although others may not agree with me. This is all best reviewed in the code review please.","commit_id":"5f747ff1352ab270e344681d86c44a34405156d3"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"7342b52b220e02f664c2a9994fdf518018f2db21","unresolved":false,"context_lines":[{"line_number":187,"context_line":"----------"},{"line_number":188,"context_line":"* Ensure all the interfaces which access/modify service"},{"line_number":189,"context_line":"  details go through the servicegroup API"},{"line_number":190,"context_line":"  layer.(https://review.openstack.org/#/c/190322/)"},{"line_number":191,"context_line":""},{"line_number":192,"context_line":"* Ensure the Service DB is always accessed through the service group API."},{"line_number":193,"context_line":""}],"source_content_type":"text/x-rst","patch_set":31,"id":"fa32b979_eda7954d","line":190,"updated":"2015-06-15 08:52:57.000000000","message":"This is no longer part of this spec, so should be removed.","commit_id":"5f747ff1352ab270e344681d86c44a34405156d3"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"7342b52b220e02f664c2a9994fdf518018f2db21","unresolved":false,"context_lines":[{"line_number":189,"context_line":"  details go through the servicegroup API"},{"line_number":190,"context_line":"  layer.(https://review.openstack.org/#/c/190322/)"},{"line_number":191,"context_line":""},{"line_number":192,"context_line":"* Ensure the Service DB is always accessed through the service group API."},{"line_number":193,"context_line":""},{"line_number":194,"context_line":"* Implement the new tooz servicegroup driver."},{"line_number":195,"context_line":""}],"source_content_type":"text/x-rst","patch_set":31,"id":"fa32b979_4d6d6103","line":192,"updated":"2015-06-15 08:52:57.000000000","message":"as is this.","commit_id":"5f747ff1352ab270e344681d86c44a34405156d3"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"7342b52b220e02f664c2a9994fdf518018f2db21","unresolved":false,"context_lines":[{"line_number":203,"context_line":"Dependencies"},{"line_number":204,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":205,"context_line":""},{"line_number":206,"context_line":"Tooz"},{"line_number":207,"context_line":""},{"line_number":208,"context_line":"Testing"},{"line_number":209,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":31,"id":"fa32b979_cd2091fa","line":206,"updated":"2015-06-15 08:52:57.000000000","message":"The blueprint dependency should go here please.","commit_id":"5f747ff1352ab270e344681d86c44a34405156d3"}]}
