)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"85d8c9113d320da0875bb6a52c20c0e8d69ddddc","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Vertica cluster user features blueprint."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"BP: vertica-cluster-user-features"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: I0a39cae53b371d1a89a6abbf93d026b16a665ed8"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":12,"id":"fa32b979_30ea2610","line":9,"updated":"2015-06-24 12:01:04.000000000","message":"I\u0027ve never seen \"BP\" in a commit message before but it seems to work!","commit_id":"53ba562cc4a570bd7960e8f998d1e2c37812f17e"}],"specs/liberty/cluster-root-enable.rst":[{"author":{"_account_id":15321,"name":"Matthew Van Dijk","email":"mvandijk@tesora.com","username":"mvandijk"},"change_message_id":"59e6e161a4520e0943d1bc61fdbfc3b407cb6866","unresolved":false,"context_lines":[{"line_number":45,"context_line":"Public API"},{"line_number":46,"context_line":"----------"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"This change will add a new /clusters/\u003ccluster_id\u003e/root resource wich is similar "},{"line_number":49,"context_line":"to the /root resource on instances with the addition of an optional password."},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"Request::"}],"source_content_type":"text/x-rst","patch_set":13,"id":"ba3cc151_b630fc57","line":48,"updated":"2015-06-29 18:58:30.000000000","message":"trailing whitespace over 79 char limit","commit_id":"370d02b4e0478b4392a0ba5af4dc662d18dc07c5"},{"author":{"_account_id":15321,"name":"Matthew Van Dijk","email":"mvandijk@tesora.com","username":"mvandijk"},"change_message_id":"59e6e161a4520e0943d1bc61fdbfc3b407cb6866","unresolved":false,"context_lines":[{"line_number":102,"context_line":"-----------"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"Each guest agent\u0027s manager\u0027s enable_root function will need to accept an "},{"line_number":105,"context_line":"optional password, and root enablement for each guestagent will need to support "},{"line_number":106,"context_line":"setting the user supplied password."},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":13,"id":"ba3cc151_1640c8a4","line":105,"updated":"2015-06-29 18:58:30.000000000","message":"trailing whitespace over 79 char limit","commit_id":"370d02b4e0478b4392a0ba5af4dc662d18dc07c5"},{"author":{"_account_id":7806,"name":"Sushil Kumar","email":"skm.net@gmail.com","username":"sushilkm"},"change_message_id":"89d88d52a590c77de3163a1e6a76fe60f5092537","unresolved":false,"context_lines":[{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Launchpad blueprint:"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"https://blueprints.launchpad.net/trove/+spec/vertica-cluster-user-features"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Problem Description"}],"source_content_type":"text/x-rst","patch_set":16,"id":"ba3cc151_ced5d643","line":16,"updated":"2015-06-30 06:43:25.000000000","message":"The BP names does not syncs with the spec document name, in-fact both things suggest different meanings.\n\nBP name suggest implementation of feature for user feature but spec document suggests only for root","commit_id":"89a557bbe0ba12f42c4cb42bc18c53bc97a0d3bd"},{"author":{"_account_id":7806,"name":"Sushil Kumar","email":"skm.net@gmail.com","username":"sushilkm"},"change_message_id":"89d88d52a590c77de3163a1e6a76fe60f5092537","unresolved":false,"context_lines":[{"line_number":45,"context_line":"Public API"},{"line_number":46,"context_line":"----------"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"This change will add a new /clusters/\u003ccluster_id\u003e/root resource wich is"},{"line_number":49,"context_line":"similar to the /root resource on instances with the addition of an optional"},{"line_number":50,"context_line":"password."},{"line_number":51,"context_line":""}],"source_content_type":"text/x-rst","patch_set":16,"id":"ba3cc151_4ec22687","line":48,"updated":"2015-06-30 06:43:25.000000000","message":"s/wich/which","commit_id":"89a557bbe0ba12f42c4cb42bc18c53bc97a0d3bd"},{"author":{"_account_id":7806,"name":"Sushil Kumar","email":"skm.net@gmail.com","username":"sushilkm"},"change_message_id":"89d88d52a590c77de3163a1e6a76fe60f5092537","unresolved":false,"context_lines":[{"line_number":55,"context_line":"    \"password\": \"secretsecret\""},{"line_number":56,"context_line":"  }"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"- POST /v1.0/​[account-id]/clusters/\u003ccluster_id\u003e/root"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"Response::"},{"line_number":61,"context_line":""}],"source_content_type":"text/x-rst","patch_set":16,"id":"ba3cc151_4e49c630","line":58,"updated":"2015-06-30 06:43:25.000000000","message":"is account-id \u003d tenant-id or something else.","commit_id":"89a557bbe0ba12f42c4cb42bc18c53bc97a0d3bd"},{"author":{"_account_id":7806,"name":"Sushil Kumar","email":"skm.net@gmail.com","username":"sushilkm"},"change_message_id":"89d88d52a590c77de3163a1e6a76fe60f5092537","unresolved":false,"context_lines":[{"line_number":131,"context_line":""},{"line_number":132,"context_line":"Work items or tasks -- break the feature up into the things that need to be"},{"line_number":133,"context_line":"done to implement it. Those parts might end up being done by different"},{"line_number":134,"context_line":"people, but we\u0027re mostly trying to understand the timeline for implementation."},{"line_number":135,"context_line":""},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"Upgrade Implications"}],"source_content_type":"text/x-rst","patch_set":16,"id":"ba3cc151_8e14aef5","line":134,"updated":"2015-06-30 06:43:25.000000000","message":"No listed work items.","commit_id":"89a557bbe0ba12f42c4cb42bc18c53bc97a0d3bd"},{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"9292b78933d0fb38ecf13cb8381b1b7fb1aedd31","unresolved":false,"context_lines":[{"line_number":61,"context_line":""},{"line_number":62,"context_line":"  {"},{"line_number":63,"context_line":"    \"username\": \"root\","},{"line_number":64,"context_line":"    \"password\": \"secretsecret\""},{"line_number":65,"context_line":"  }"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"- GET /v1.0/​\u003ctenant_id\u003e/clusters/\u003ccluster_id\u003e/root"}],"source_content_type":"text/x-rst","patch_set":17,"id":"ba3cc151_367de5e7","line":64,"updated":"2015-07-05 00:12:34.000000000","message":"if the user provided a password, why would you bother returning it?","commit_id":"262d1ea329b1132b5bae46a4f55f96aca0964b45"},{"author":{"_account_id":1976,"name":"Jonathan Halterman","email":"jhalterman@hp.com","username":"jhalterman"},"change_message_id":"3dfa1be46bb6abd7b7bdabad16cb6e936a6e85d3","unresolved":false,"context_lines":[{"line_number":61,"context_line":""},{"line_number":62,"context_line":"  {"},{"line_number":63,"context_line":"    \"username\": \"root\","},{"line_number":64,"context_line":"    \"password\": \"secretsecret\""},{"line_number":65,"context_line":"  }"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"- GET /v1.0/​\u003ctenant_id\u003e/clusters/\u003ccluster_id\u003e/root"}],"source_content_type":"text/x-rst","patch_set":17,"id":"ba3cc151_31864f66","line":64,"in_reply_to":"ba3cc151_367de5e7","updated":"2015-07-05 02:27:50.000000000","message":"Because currently the POST to /root response returns the username and password, so excluding the password would violate the schema.","commit_id":"262d1ea329b1132b5bae46a4f55f96aca0964b45"},{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"9292b78933d0fb38ecf13cb8381b1b7fb1aedd31","unresolved":false,"context_lines":[{"line_number":102,"context_line":"Guest Agent"},{"line_number":103,"context_line":"-----------"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"Each guest agent\u0027s manager\u0027s enable_root function will need to accept an"},{"line_number":106,"context_line":"optional password, and root enablement for each guestagent will need to"},{"line_number":107,"context_line":"support setting the user supplied password."},{"line_number":108,"context_line":""}],"source_content_type":"text/x-rst","patch_set":17,"id":"ba3cc151_d68119c5","line":105,"updated":"2015-07-05 00:12:34.000000000","message":"Wouldn\u0027t this be an incompatible change? i.e. an old guest image will no longer work with a new trove?","commit_id":"262d1ea329b1132b5bae46a4f55f96aca0964b45"},{"author":{"_account_id":1976,"name":"Jonathan Halterman","email":"jhalterman@hp.com","username":"jhalterman"},"change_message_id":"3dfa1be46bb6abd7b7bdabad16cb6e936a6e85d3","unresolved":false,"context_lines":[{"line_number":102,"context_line":"Guest Agent"},{"line_number":103,"context_line":"-----------"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"Each guest agent\u0027s manager\u0027s enable_root function will need to accept an"},{"line_number":106,"context_line":"optional password, and root enablement for each guestagent will need to"},{"line_number":107,"context_line":"support setting the user supplied password."},{"line_number":108,"context_line":""}],"source_content_type":"text/x-rst","patch_set":17,"id":"ba3cc151_f17f8764","line":105,"in_reply_to":"ba3cc151_d68119c5","updated":"2015-07-05 02:27:50.000000000","message":"I\u0027m not sure what the full implications would be. How do API changes on a guestagent currently effect things?","commit_id":"262d1ea329b1132b5bae46a4f55f96aca0964b45"},{"author":{"_account_id":5293,"name":"Nikhil","email":"SlickNik@gmail.com","username":"slicknik"},"change_message_id":"6c292aab9d89eb89b746e037f3c7712c0216a79a","unresolved":false,"context_lines":[{"line_number":102,"context_line":"Guest Agent"},{"line_number":103,"context_line":"-----------"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"Each guest agent\u0027s manager\u0027s enable_root function will need to accept an"},{"line_number":106,"context_line":"optional password, and root enablement for each guestagent will need to"},{"line_number":107,"context_line":"support setting the user supplied password."},{"line_number":108,"context_line":""}],"source_content_type":"text/x-rst","patch_set":17,"id":"ba3cc151_246f4cfd","line":105,"in_reply_to":"ba3cc151_e204fb7e","updated":"2015-07-08 19:37:43.000000000","message":"Because of the way the RPC over oslo messaging works, just adding a new parameter in the same API is a breaking API change. What this means is that we\u0027d have to add a new API call (something like enable_root_password(self, root_password\u003dNone) and support both APIs for at least one cycle. You might want to call this out in the Guest Agent section.","commit_id":"262d1ea329b1132b5bae46a4f55f96aca0964b45"},{"author":{"_account_id":5293,"name":"Nikhil","email":"SlickNik@gmail.com","username":"slicknik"},"change_message_id":"b49ff8abc9b741bdc2bc707bdb396ab67ceb39be","unresolved":false,"context_lines":[{"line_number":102,"context_line":"Guest Agent"},{"line_number":103,"context_line":"-----------"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"Each guest agent\u0027s manager\u0027s enable_root function will need to accept an"},{"line_number":106,"context_line":"optional password, and root enablement for each guestagent will need to"},{"line_number":107,"context_line":"support setting the user supplied password."},{"line_number":108,"context_line":""}],"source_content_type":"text/x-rst","patch_set":17,"id":"ba3cc151_f3c50f3d","line":105,"in_reply_to":"ba3cc151_f17f8764","updated":"2015-07-07 04:37:37.000000000","message":"An old guest image isn\u0027t guaranteed to work with a newer Trove control plane, but a newer guest image should work with an older control plane. This is one of the reasons that we always upgrade the guest agents first, before we upgrade the control plane.\n\nConsidering guest agent API compatibility in the second case (newer guest with an older control plane), this doesn\u0027t have to be an incompatible change. We can do what we\u0027ve done in the past to tackle this, namely:\n1. Create a new API on the guest that supports root_create using both a user and a password.\n2. Deprecate, but keep the old root_create API on the guest around (for at least one cycle), so you don\u0027t have upgrade issues.","commit_id":"262d1ea329b1132b5bae46a4f55f96aca0964b45"},{"author":{"_account_id":1976,"name":"Jonathan Halterman","email":"jhalterman@hp.com","username":"jhalterman"},"change_message_id":"e78ef8ea93345c65b9b934c0408ae2e9b6592c7a","unresolved":false,"context_lines":[{"line_number":102,"context_line":"Guest Agent"},{"line_number":103,"context_line":"-----------"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"Each guest agent\u0027s manager\u0027s enable_root function will need to accept an"},{"line_number":106,"context_line":"optional password, and root enablement for each guestagent will need to"},{"line_number":107,"context_line":"support setting the user supplied password."},{"line_number":108,"context_line":""}],"source_content_type":"text/x-rst","patch_set":17,"id":"ba3cc151_e204fb7e","line":105,"in_reply_to":"ba3cc151_f3c50f3d","updated":"2015-07-08 17:45:41.000000000","message":"So what would creating a new API mean in practice? I was thinking it would just be the existing enable_root call with a default password: enable_root(self, root_password\u003dNone)","commit_id":"262d1ea329b1132b5bae46a4f55f96aca0964b45"},{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"bd3ff5f4fb03e9feb4971de52685e29bd7975309","unresolved":false,"context_lines":[{"line_number":102,"context_line":"Guest Agent"},{"line_number":103,"context_line":"-----------"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"The guestagent API will get a new enable_root(self, password) function"},{"line_number":106,"context_line":"which allows optionally provided passwords to be supplied to a guest"},{"line_number":107,"context_line":"agent. This function will be in addition to the existing function, allowing"},{"line_number":108,"context_line":"for backwards compatibility with existing images."}],"source_content_type":"text/x-rst","patch_set":18,"id":"ba3cc151_135a88f2","line":105,"updated":"2015-07-08 21:31:46.000000000","message":"I understand what you are proposing but I think the actual implementation may be easier to understand if instead of creating a new function with the same name, you created one with a different and descriptive name (enable_root_with_password). And on the Guest, you would have this new method ...\n\ni.e. change api.py to have a new enable_root_with_password() and a new function in the guest itself (extensions).\n\nThen a release later we can deprecate the old one on the guest etc., etc.,\n\nBut, that\u0027s an implementation *SUGGESTION*","commit_id":"4e54ae521e6c0308c988860d365f7ff08821f71e"},{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"bd3ff5f4fb03e9feb4971de52685e29bd7975309","unresolved":false,"context_lines":[{"line_number":107,"context_line":"agent. This function will be in addition to the existing function, allowing"},{"line_number":108,"context_line":"for backwards compatibility with existing images."},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"Additionally, each guest agent datastore impl will need to implement "},{"line_number":111,"context_line":"the enable_root(password) function."},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":18,"id":"ba3cc151_7369948b","line":110,"updated":"2015-07-08 21:31:46.000000000","message":"you have this trailing space (I\u0027m -1\u0027ing this review just for this ;))","commit_id":"4e54ae521e6c0308c988860d365f7ff08821f71e"},{"author":{"_account_id":1976,"name":"Jonathan Halterman","email":"jhalterman@hp.com","username":"jhalterman"},"change_message_id":"5aae5d49d287b60a097fa3b2bac2f52c6bb9a7cf","unresolved":false,"context_lines":[{"line_number":107,"context_line":"agent. This function will be in addition to the existing function, allowing"},{"line_number":108,"context_line":"for backwards compatibility with existing images."},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"Additionally, each guest agent datastore impl will need to implement "},{"line_number":111,"context_line":"the enable_root(password) function."},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":18,"id":"ba3cc151_731754ee","line":110,"in_reply_to":"ba3cc151_7369948b","updated":"2015-07-08 21:40:48.000000000","message":"LOL","commit_id":"4e54ae521e6c0308c988860d365f7ff08821f71e"},{"author":{"_account_id":10295,"name":"mariam john","email":"mariamj@us.ibm.com","username":"mariamj"},"change_message_id":"b16c1bcc21355bc1ca49b67ea94421fca837f8f5","unresolved":false,"context_lines":[{"line_number":30,"context_line":"experience in Horizon where enabling a root user should allow user input"},{"line_number":31,"context_line":"rather than requiring the user to wait for a password to popup on a response"},{"line_number":32,"context_line":"dialog."},{"line_number":33,"context_line":""},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"Configuration"},{"line_number":36,"context_line":"-------------"}],"source_content_type":"text/x-rst","patch_set":19,"id":"ba3cc151_5dc69e9a","line":33,"updated":"2015-07-09 20:15:58.000000000","message":"Jonathan, so does this mean that when we enable root on a cluster that all the instances in that cluster are going to be root enabled with the same password?","commit_id":"353bec5e035339899e43dd0382c857a48dd39de3"},{"author":{"_account_id":10295,"name":"mariam john","email":"mariamj@us.ibm.com","username":"mariamj"},"change_message_id":"922025f61822a4b5dfcbf2e483e9049e767146bb","unresolved":false,"context_lines":[{"line_number":30,"context_line":"experience in Horizon where enabling a root user should allow user input"},{"line_number":31,"context_line":"rather than requiring the user to wait for a password to popup on a response"},{"line_number":32,"context_line":"dialog."},{"line_number":33,"context_line":""},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"Configuration"},{"line_number":36,"context_line":"-------------"}],"source_content_type":"text/x-rst","patch_set":19,"id":"9a41bdd9_dfa6a552","line":33,"in_reply_to":"ba3cc151_1da8161f","updated":"2015-07-14 10:55:28.000000000","message":"Thanks Jonathan. Appreciate it.","commit_id":"353bec5e035339899e43dd0382c857a48dd39de3"},{"author":{"_account_id":1976,"name":"Jonathan Halterman","email":"jhalterman@hp.com","username":"jhalterman"},"change_message_id":"8b92c04f5d25b04fd4af39c4a2a608c2127d384a","unresolved":false,"context_lines":[{"line_number":30,"context_line":"experience in Horizon where enabling a root user should allow user input"},{"line_number":31,"context_line":"rather than requiring the user to wait for a password to popup on a response"},{"line_number":32,"context_line":"dialog."},{"line_number":33,"context_line":""},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"Configuration"},{"line_number":36,"context_line":"-------------"}],"source_content_type":"text/x-rst","patch_set":19,"id":"ba3cc151_1da8161f","line":33,"in_reply_to":"ba3cc151_5dc69e9a","updated":"2015-07-09 20:24:23.000000000","message":"Yep, exactly. How to make that happen will be specific to each datastore.","commit_id":"353bec5e035339899e43dd0382c857a48dd39de3"},{"author":{"_account_id":10295,"name":"mariam john","email":"mariamj@us.ibm.com","username":"mariamj"},"change_message_id":"b16c1bcc21355bc1ca49b67ea94421fca837f8f5","unresolved":false,"context_lines":[{"line_number":36,"context_line":"-------------"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"None"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"Database"},{"line_number":41,"context_line":"--------"},{"line_number":42,"context_line":""}],"source_content_type":"text/x-rst","patch_set":19,"id":"ba3cc151_fd93f24c","line":39,"updated":"2015-07-09 20:15:58.000000000","message":"So currently there is a configuration called root_on_create I believe that can be set for each guest agent configuration. By default I believe this is False, but if a user decides to set this to true, then a password is generated for that instance and returned to the user. This configuration parameter currently only applies to instances. I think it may be confusing to have this defined only for instances but have root enable feature for clusters and instances. Do we anticipate a need for such a parameter for clusters as well? Thanks Jonathan.","commit_id":"353bec5e035339899e43dd0382c857a48dd39de3"},{"author":{"_account_id":1976,"name":"Jonathan Halterman","email":"jhalterman@hp.com","username":"jhalterman"},"change_message_id":"8b92c04f5d25b04fd4af39c4a2a608c2127d384a","unresolved":false,"context_lines":[{"line_number":36,"context_line":"-------------"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"None"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"Database"},{"line_number":41,"context_line":"--------"},{"line_number":42,"context_line":""}],"source_content_type":"text/x-rst","patch_set":19,"id":"ba3cc151_1d7fb6ab","line":39,"in_reply_to":"ba3cc151_fd93f24c","updated":"2015-07-09 20:24:23.000000000","message":"I don\u0027t anticipate the need, but for consistency I could certainly see it happening. The problem is we really need to allow enable root to accept a password in order to have a good user experience on the UI. This is true for both clusters and instances, really, (though instances don\u0027t support root enable on the UI currently).","commit_id":"353bec5e035339899e43dd0382c857a48dd39de3"}],"specs/liberty/vertica-cluster-user-features.rst":[{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"9de0df5f94399bee2d9756589ae0a30d712c4cea","unresolved":false,"context_lines":[{"line_number":42,"context_line":"instances resource, and likewise will only be supported for the POST method::"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"  {"},{"line_number":45,"context_line":"    \"users\": ["},{"line_number":46,"context_line":"      \"foo:bar\","},{"line_number":47,"context_line":"      \"baz:cat\""},{"line_number":48,"context_line":"    ]"}],"source_content_type":"text/x-rst","patch_set":7,"id":"3afb71cf_24905295","line":45,"updated":"2015-06-04 19:00:58.000000000","message":"why not use the same mechanism that the existing instance creation uses, namely the users_list? See apischema.py@184","commit_id":"d912c1264f9ed9df838335cb06f8ab6a1bb54461"},{"author":{"_account_id":1976,"name":"Jonathan Halterman","email":"jhalterman@hp.com","username":"jhalterman"},"change_message_id":"c3f966069339aaeeada594323bd10d3c2b4b877e","unresolved":false,"context_lines":[{"line_number":42,"context_line":"instances resource, and likewise will only be supported for the POST method::"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"  {"},{"line_number":45,"context_line":"    \"users\": ["},{"line_number":46,"context_line":"      \"foo:bar\","},{"line_number":47,"context_line":"      \"baz:cat\""},{"line_number":48,"context_line":"    ]"}],"source_content_type":"text/x-rst","patch_set":7,"id":"3afb71cf_2acaf76d","line":45,"in_reply_to":"3afb71cf_24905295","updated":"2015-06-08 17:14:58.000000000","message":"Reuse is a good thing, so I would like to use that schema. One possibly drawback is that Vertica doesn\u0027t allow multiple databases to be defined (it does, but only one can be active in a cluster at a time). So the databases section isn\u0027t really valid/necessary. Should we use this schema anyways and just exclude that section?","commit_id":"d912c1264f9ed9df838335cb06f8ab6a1bb54461"},{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"9de0df5f94399bee2d9756589ae0a30d712c4cea","unresolved":false,"context_lines":[{"line_number":56,"context_line":""},{"line_number":57,"context_line":"This will mirror the instances root resource with some additions."},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"POST will allow a root user to be created, along with an optional user supplied"},{"line_number":60,"context_line":"password via a request body::"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"  {"}],"source_content_type":"text/x-rst","patch_set":7,"id":"3afb71cf_44f6aed8","line":59,"updated":"2015-06-04 19:00:58.000000000","message":"why not use the existing mechanism whereby a random password is generated for you? Is this a specific requirement for vertica?","commit_id":"d912c1264f9ed9df838335cb06f8ab6a1bb54461"},{"author":{"_account_id":1976,"name":"Jonathan Halterman","email":"jhalterman@hp.com","username":"jhalterman"},"change_message_id":"c3f966069339aaeeada594323bd10d3c2b4b877e","unresolved":false,"context_lines":[{"line_number":56,"context_line":""},{"line_number":57,"context_line":"This will mirror the instances root resource with some additions."},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"POST will allow a root user to be created, along with an optional user supplied"},{"line_number":60,"context_line":"password via a request body::"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"  {"}],"source_content_type":"text/x-rst","patch_set":7,"id":"3afb71cf_6a7eaf1a","line":59,"in_reply_to":"3afb71cf_44f6aed8","updated":"2015-06-08 17:14:58.000000000","message":"It\u0027s not a Vertica requirement per se, but being able to specify a root password would be beneficial for our users and likely those of other datastores. But I\u0027ll just pull this for now.","commit_id":"d912c1264f9ed9df838335cb06f8ab6a1bb54461"},{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"9de0df5f94399bee2d9756589ae0a30d712c4cea","unresolved":false,"context_lines":[{"line_number":73,"context_line":"Changes will effect:"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"- trove/cluster/models.py"},{"line_number":76,"context_line":"- trove/cluster/service.py"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"Internal API"},{"line_number":79,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"3afb71cf_a425625d","line":76,"updated":"2015-06-04 19:00:58.000000000","message":"should also affect apischema.py","commit_id":"d912c1264f9ed9df838335cb06f8ab6a1bb54461"},{"author":{"_account_id":1976,"name":"Jonathan Halterman","email":"jhalterman@hp.com","username":"jhalterman"},"change_message_id":"c3f966069339aaeeada594323bd10d3c2b4b877e","unresolved":false,"context_lines":[{"line_number":73,"context_line":"Changes will effect:"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"- trove/cluster/models.py"},{"line_number":76,"context_line":"- trove/cluster/service.py"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"Internal API"},{"line_number":79,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"3afb71cf_2a78b729","line":76,"in_reply_to":"3afb71cf_a425625d","updated":"2015-06-08 17:14:58.000000000","message":"Done","commit_id":"d912c1264f9ed9df838335cb06f8ab6a1bb54461"},{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"9de0df5f94399bee2d9756589ae0a30d712c4cea","unresolved":false,"context_lines":[{"line_number":106,"context_line":""},{"line_number":107,"context_line":"New commands:"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"- An update-root command will need to be added to update a root password."},{"line_number":110,"context_line":"- A root-delete command will need to be added to tie into the existing disable_root internal APIs."},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"Changes will effect:"}],"source_content_type":"text/x-rst","patch_set":7,"id":"3afb71cf_a4aa0284","line":109,"updated":"2015-06-04 19:00:58.000000000","message":"That\u0027s interesting, how would you do that, with a PATCH or a PUT?","commit_id":"d912c1264f9ed9df838335cb06f8ab6a1bb54461"},{"author":{"_account_id":1976,"name":"Jonathan Halterman","email":"jhalterman@hp.com","username":"jhalterman"},"change_message_id":"36baded5ccf644f16f4f54fa4ee07af606545d66","unresolved":false,"context_lines":[{"line_number":106,"context_line":""},{"line_number":107,"context_line":"New commands:"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"- An update-root command will need to be added to update a root password."},{"line_number":110,"context_line":"- A root-delete command will need to be added to tie into the existing disable_root internal APIs."},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"Changes will effect:"}],"source_content_type":"text/x-rst","patch_set":7,"id":"3afb71cf_caf2436f","line":109,"in_reply_to":"3afb71cf_a4aa0284","updated":"2015-06-08 17:16:15.000000000","message":"Per some previous reviews, I just decided to pull this for now since there was concern about adding support in other datastores.","commit_id":"d912c1264f9ed9df838335cb06f8ab6a1bb54461"},{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"9de0df5f94399bee2d9756589ae0a30d712c4cea","unresolved":false,"context_lines":[{"line_number":107,"context_line":"New commands:"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"- An update-root command will need to be added to update a root password."},{"line_number":110,"context_line":"- A root-delete command will need to be added to tie into the existing disable_root internal APIs."},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"Changes will effect:"},{"line_number":113,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"3afb71cf_44790e2f","line":110,"updated":"2015-06-04 19:00:58.000000000","message":"disable_root is not an existing API","commit_id":"d912c1264f9ed9df838335cb06f8ab6a1bb54461"},{"author":{"_account_id":1976,"name":"Jonathan Halterman","email":"jhalterman@hp.com","username":"jhalterman"},"change_message_id":"36baded5ccf644f16f4f54fa4ee07af606545d66","unresolved":false,"context_lines":[{"line_number":107,"context_line":"New commands:"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"- An update-root command will need to be added to update a root password."},{"line_number":110,"context_line":"- A root-delete command will need to be added to tie into the existing disable_root internal APIs."},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"Changes will effect:"},{"line_number":113,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"3afb71cf_4aff7334","line":110,"in_reply_to":"3afb71cf_44790e2f","updated":"2015-06-08 17:16:15.000000000","message":"I proposed adding it, but we can do this via another change if needed.","commit_id":"d912c1264f9ed9df838335cb06f8ab6a1bb54461"},{"author":{"_account_id":7806,"name":"Sushil Kumar","email":"skm.net@gmail.com","username":"sushilkm"},"change_message_id":"4eefa99e0e822756c1baa7448c6daa8c8d177820","unresolved":false,"context_lines":[{"line_number":56,"context_line":"- GET /v1.0/​[account-id]/clusters/[cluster-id]/root"},{"line_number":57,"context_line":"- DELETE /v1.0/​​[account-id]/clusters/[cluster-id]/root"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"This will mirror the instances root resource."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"- POST creates or updates/resets a user password."},{"line_number":62,"context_line":"- GET returns whether a root user exists, or has been enabled."}],"source_content_type":"text/x-rst","patch_set":8,"id":"3afb71cf_4a5bf354","line":59,"updated":"2015-06-09 06:18:53.000000000","message":"instances\u0027","commit_id":"4d26fa545dc7ee23bdb966116ab735bc0bba3821"},{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"78d6dbded18eaf37908b4be282d06f031f554a99","unresolved":false,"context_lines":[{"line_number":40,"context_line":""},{"line_number":41,"context_line":"The body of a POST to /v1.0/​[account-id]/clusters will accept an optional \"users\" object, containing an array"},{"line_number":42,"context_line":"of users to create. This mirrors the \"users\" object supported by the"},{"line_number":43,"context_line":"instances resource, and likewise will only be supported for the POST method::"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"  {"},{"line_number":46,"context_line":"    \"users\": ["}],"source_content_type":"text/x-rst","patch_set":9,"id":"1af86dd1_36406256","line":43,"updated":"2015-06-12 17:33:28.000000000","message":"Replying to earlier comment (from ps 7) the databases section does not define databases, rather provides users access to those databases. so, no, I believe you can use the exact same schema as instance creation.","commit_id":"38b00d9133b9416518191eeea613b10c9e3c0732"},{"author":{"_account_id":7806,"name":"Sushil Kumar","email":"skm.net@gmail.com","username":"sushilkm"},"change_message_id":"e205e2118223f8ec91c071aa3a29c063c93aa1d2","unresolved":false,"context_lines":[{"line_number":84,"context_line":"------------"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"The Vertica guest agent\u0027s manager api\u0027s install_cluster method will need to accept an array of users"},{"line_number":87,"context_line":"to create in the cluster. Additionally, the prepare method should accept a list of users for handling"},{"line_number":88,"context_line":"single instance installs. The Vertica guestagent\u0027s manager will also need to add an implementation"},{"line_number":89,"context_line":"for the existing enable_root, and is_root_enabled API calls. Changes will effect:"},{"line_number":90,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"fa32b979_7e28a686","line":87,"updated":"2015-06-17 06:31:50.000000000","message":"prepare method already accepts users parameter","commit_id":"38b00d9133b9416518191eeea613b10c9e3c0732"},{"author":{"_account_id":10295,"name":"mariam john","email":"mariamj@us.ibm.com","username":"mariamj"},"change_message_id":"fe6547960a7e407ee6ab537a6ed1c01da3734087","unresolved":false,"context_lines":[{"line_number":21,"context_line":""},{"line_number":22,"context_line":"Proposed Change"},{"line_number":23,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"- Add support for optional users when creating a Vertica cluster"},{"line_number":26,"context_line":"- Add support for root-enable for Vertica instances, with user provided passwords"},{"line_number":27,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"fa32b979_f0311e5a","line":24,"updated":"2015-06-24 12:05:53.000000000","message":"Jonathan, the Proposed Change section is missing the following subsections: Python API, Public API Security, CLI(python-troveclient) and Alternatives. Hope that helps.","commit_id":"53ba562cc4a570bd7960e8f998d1e2c37812f17e"},{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"85d8c9113d320da0875bb6a52c20c0e8d69ddddc","unresolved":false,"context_lines":[{"line_number":38,"context_line":""},{"line_number":39,"context_line":"Add optional users to cluster creation."},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"The body of a POST to /v1.0/​[account-id]/clusters will accept an optional"},{"line_number":42,"context_line":"\"users\" object, containing an array of users to create. This mirrors the"},{"line_number":43,"context_line":"\"users\" object supported by the instances resource, and likewise will"},{"line_number":44,"context_line":"only be supported for the POST method."}],"source_content_type":"text/x-rst","patch_set":12,"id":"fa32b979_10ccc2b9","line":41,"updated":"2015-06-24 12:01:04.000000000","message":"after v1.0/ you have some peculiar form of whitespace or other character?","commit_id":"53ba562cc4a570bd7960e8f998d1e2c37812f17e"},{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"85d8c9113d320da0875bb6a52c20c0e8d69ddddc","unresolved":false,"context_lines":[{"line_number":40,"context_line":""},{"line_number":41,"context_line":"The body of a POST to /v1.0/​[account-id]/clusters will accept an optional"},{"line_number":42,"context_line":"\"users\" object, containing an array of users to create. This mirrors the"},{"line_number":43,"context_line":"\"users\" object supported by the instances resource, and likewise will"},{"line_number":44,"context_line":"only be supported for the POST method."},{"line_number":45,"context_line":""},{"line_number":46,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"fa32b979_70ee6eee","line":43,"updated":"2015-06-24 12:01:04.000000000","message":"as shown below, it doesn\u0027t mirror the object used in the instance resource. That object is called users_list and includes two other optional fields.\n\nI believe you had said the concept of db and host are not analogous, is that correct?","commit_id":"53ba562cc4a570bd7960e8f998d1e2c37812f17e"},{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"85d8c9113d320da0875bb6a52c20c0e8d69ddddc","unresolved":false,"context_lines":[{"line_number":128,"context_line":""},{"line_number":129,"context_line":"Add support for a clusters root resource with the following methods:"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"- POST /v1.0/​[account-id]/clusters/[cluster-id]/root"},{"line_number":132,"context_line":"- GET /v1.0/​[account-id]/clusters/[cluster-id]/root"},{"line_number":133,"context_line":"- DELETE /v1.0/​​[account-id]/clusters/[cluster-id]/root"},{"line_number":134,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"fa32b979_9099b27b","line":131,"updated":"2015-06-24 12:01:04.000000000","message":"It would be advisable for this specification to provide the payloads (if any) and responses to these messages, also the possible error codes.","commit_id":"53ba562cc4a570bd7960e8f998d1e2c37812f17e"},{"author":{"_account_id":10295,"name":"mariam john","email":"mariamj@us.ibm.com","username":"mariamj"},"change_message_id":"fe6547960a7e407ee6ab537a6ed1c01da3734087","unresolved":false,"context_lines":[{"line_number":173,"context_line":"- trove/guestagent/datastore/experimental/vertica module"},{"line_number":174,"context_line":""},{"line_number":175,"context_line":"CLI"},{"line_number":176,"context_line":"--------"},{"line_number":177,"context_line":"Changes to existing commands:"},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"- The create-cluster command will need to accept an optional --users"}],"source_content_type":"text/x-rst","patch_set":12,"id":"fa32b979_50180ad3","line":176,"updated":"2015-06-24 12:05:53.000000000","message":"this just needs to be renamed as CLI(python-troveclient) I believe.","commit_id":"53ba562cc4a570bd7960e8f998d1e2c37812f17e"}],"specs/vertica-cluster-user-features.rst":[{"author":{"_account_id":9782,"name":"Morgan Jones","email":"morgan@tesora.com","username":"vgnbkr"},"change_message_id":"9715559140cec3c42b03631e9e3c8bdc0fa2f8fb","unresolved":false,"context_lines":[{"line_number":37,"context_line":""},{"line_number":38,"context_line":"Add optional users to cluster creation."},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"- The body of a POST to /clusters will accept an optional \"users\" object, containing an array"},{"line_number":41,"context_line":"of user:password pairs to create. This mirrors the \"users\" object supported by the"},{"line_number":42,"context_line":"instances resource, and likewise will only be supported for the POST method:"},{"line_number":43,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"9aa53dc9_aa3457fb","line":40,"updated":"2015-04-10 14:23:32.000000000","message":"The norm is to show the full POST URL and response.","commit_id":"6a167a01e839774f073afc01f70eab7bf0f5c663"},{"author":{"_account_id":1976,"name":"Jonathan Halterman","email":"jhalterman@hp.com","username":"jhalterman"},"change_message_id":"cccc6be4e23d7aa1980afd8d014736a192fbc2aa","unresolved":false,"context_lines":[{"line_number":37,"context_line":""},{"line_number":38,"context_line":"Add optional users to cluster creation."},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"- The body of a POST to /clusters will accept an optional \"users\" object, containing an array"},{"line_number":41,"context_line":"of user:password pairs to create. This mirrors the \"users\" object supported by the"},{"line_number":42,"context_line":"instances resource, and likewise will only be supported for the POST method:"},{"line_number":43,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"7aaa499b_883cb830","line":40,"in_reply_to":"9aa53dc9_aa3457fb","updated":"2015-04-10 21:24:20.000000000","message":"Done","commit_id":"6a167a01e839774f073afc01f70eab7bf0f5c663"},{"author":{"_account_id":9782,"name":"Morgan Jones","email":"morgan@tesora.com","username":"vgnbkr"},"change_message_id":"9715559140cec3c42b03631e9e3c8bdc0fa2f8fb","unresolved":false,"context_lines":[{"line_number":56,"context_line":""},{"line_number":57,"context_line":"This will mirror the instances root resource with some additions."},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"- POST will allow a root user to be created, along with a user supplied password supplied via:"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"  {"},{"line_number":62,"context_line":"    \"password\": \"foo\""}],"source_content_type":"text/x-rst","patch_set":2,"id":"9aa53dc9_2a7ba7c2","line":59,"updated":"2015-04-10 14:23:32.000000000","message":"Adding a password changes the signature of the existing API and is beyond the scope of this blueprint.  Also, you would need to implement the root password functionality for all other datastores (as this change would change the help message for root-enable).","commit_id":"6a167a01e839774f073afc01f70eab7bf0f5c663"},{"author":{"_account_id":1976,"name":"Jonathan Halterman","email":"jhalterman@hp.com","username":"jhalterman"},"change_message_id":"cccc6be4e23d7aa1980afd8d014736a192fbc2aa","unresolved":false,"context_lines":[{"line_number":56,"context_line":""},{"line_number":57,"context_line":"This will mirror the instances root resource with some additions."},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"- POST will allow a root user to be created, along with a user supplied password supplied via:"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"  {"},{"line_number":62,"context_line":"    \"password\": \"foo\""}],"source_content_type":"text/x-rst","patch_set":2,"id":"7aaa499b_e80b3c7c","line":59,"in_reply_to":"9aa53dc9_2a7ba7c2","updated":"2015-04-10 21:24:20.000000000","message":"By changing the signature, you mean because we would allow a request body to be posted? The URI would be the same. \n\nThe user-supplied password would be an optional thing so it shouldn\u0027t effect existing data stores. This should be clarified.","commit_id":"6a167a01e839774f073afc01f70eab7bf0f5c663"},{"author":{"_account_id":9782,"name":"Morgan Jones","email":"morgan@tesora.com","username":"vgnbkr"},"change_message_id":"d1db4b2a585aa77c8ab389d0db53d4fd688df551","unresolved":false,"context_lines":[{"line_number":56,"context_line":""},{"line_number":57,"context_line":"This will mirror the instances root resource with some additions."},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"POST will allow a root user to be created, along with an optional user supplied"},{"line_number":60,"context_line":"password via a request body::"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"  {"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7aaa499b_f079befd","line":59,"updated":"2015-04-13 15:41:58.000000000","message":"Even if optional, it would still need to appear in the CLI help and so would need to be supported by all datastores.  Also, it would require a change to the guestagent API and so again would affect all datastores.","commit_id":"91aecb011531a92ee44fed41bdabaf07b3afa5b8"},{"author":{"_account_id":1976,"name":"Jonathan Halterman","email":"jhalterman@hp.com","username":"jhalterman"},"change_message_id":"476be592da2f25152af79d4f51ef46a719ad46f7","unresolved":false,"context_lines":[{"line_number":56,"context_line":""},{"line_number":57,"context_line":"This will mirror the instances root resource with some additions."},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"POST will allow a root user to be created, along with an optional user supplied"},{"line_number":60,"context_line":"password via a request body::"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"  {"}],"source_content_type":"text/x-rst","patch_set":4,"id":"5afe65bd_ef06fa84","line":59,"in_reply_to":"7aaa499b_f079befd","updated":"2015-06-04 17:11:19.000000000","message":"I removed this from the spec.","commit_id":"91aecb011531a92ee44fed41bdabaf07b3afa5b8"},{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"9de0df5f94399bee2d9756589ae0a30d712c4cea","unresolved":false,"context_lines":[{"line_number":6,"context_line":".."},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":9,"context_line":"Add Vertica clustering features"},{"line_number":10,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Launchpad blueprint:"}],"source_content_type":"text/x-rst","patch_set":7,"id":"3afb71cf_c4161ea7","line":9,"updated":"2015-06-04 19:00:58.000000000","message":"why are you adding two files in this BP?","commit_id":"d912c1264f9ed9df838335cb06f8ab6a1bb54461"}]}
