diff --git a/specs/liberty/cluster-root-enable.rst b/specs/liberty/cluster-root-enable.rst new file mode 100644 index 0000000..6a2db6a --- /dev/null +++ b/specs/liberty/cluster-root-enable.rst @@ -0,0 +1,169 @@ +.. + This work is licensed under a Creative Commons Attribution 3.0 Unported + License. + + http://creativecommons.org/licenses/by/3.0/legalcode +.. + +=================== +Cluster root enable +=================== + +This spec is intended to add root enable support for clusters. + +Launchpad blueprint: + +https://blueprints.launchpad.net/trove/+spec/vertica-cluster-user-features + + +Problem Description +=================== + +Trove's cluster API currently does not support root enable. + + +Proposed Change +=============== + +Add support for root-enable for clusters, with optional user-provided +passwords. User supplied passwords are necessary to create a good user +experience in Horizon where enabling a root user should allow user input +rather than requiring the user to wait for a password to popup on a response +dialog. + + +Configuration +------------- + +None + +Database +-------- + +None + +Public API +---------- + +This change will add a new /clusters//root resource which is +similar to the /root resource on instances with the addition of an optional +password. + +Request:: + + { + "password": "secretsecret" + } + +- POST /v1.0/​[account-id]/clusters//root + +Response:: + + { + "username": "root", + "password": "secretsecret" + } + +- GET /v1.0/​/clusters//root +- DELETE /v1.0/​​/clusters//root + +Public API Security +------------------- + +The security of this API will be handled in the same manner as existing +implementations. + +Python API +---------- + +None + +CLI (python-troveclient) +------------------------ + +New cluster-root-enable and cluster-root-show commands will be added + +Changes will effect: + +troveclient/v1/root.py +troveclient/v1/shell.py +troveclient/v1/clusters.py + +Internal API +------------ + +Root enablement support should be added for clusters. Changes include: + +trove/extensions/routes/mysql.py +trove/extensions/mysql/service.py +trove/extensions/mysql/models.py +trove/guestagent/api.py + +Guest Agent +----------- + +The guestagent API will get a new enable_root(self, password) function +which allows optionally provided passwords to be supplied to a guest +agent. This function will be in addition to the existing function, allowing +for backwards compatibility with existing images. + +Additionally, each guest agent datastore impl will need to implement +the enable_root(password) function. + +Alternatives +------------ + +None + + +Implementation +============== + +Assignee(s) +----------- + +- jonathan.halterman@hp.com +- sharika.pongubala@hp.com + +Milestones +---------- + +Liberty + +Work Items +---------- + +- API changes +- Guest agent changes +- CLI changes +- Internal API changes + + +Upgrade Implications +==================== + +None + + +Dependencies +============ + +None + + +Testing +======= + +New unit and scenario tests will be added to assert that root enablement +works as expected at the cluster level + + +Documentation Impact +==================== +The API changes to the clusters resource and the addition of the new +cluster root resource need to be documented. + +References +========== + +None \ No newline at end of file