BP: vertica-cluster-user-features Change-Id: I0a39cae53b371d1a89a6abbf93d026b16a665ed8
3.0 KiB
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/<cluster_id>/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/<cluster_id>/root
Response:
{
"username": "root",
"password": "secretsecret"
}
- GET /v1.0/<tenant_id>/clusters/<cluster_id>/root
- DELETE /v1.0/<tenant_id>/clusters/<cluster_id>/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)
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