353bec5e03
BP: vertica-cluster-user-features Change-Id: I0a39cae53b371d1a89a6abbf93d026b16a665ed8
169 lines
3.0 KiB
ReStructuredText
169 lines
3.0 KiB
ReStructuredText
..
|
||
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/<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)
|
||
-----------
|
||
|
||
- 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 |