if root_on_create=True (trove.conf), a root password is generated and returned in the instance-create response. The root_on_create functionality only exists (thus far) for MySQL, but a generated password is being incorrectly returned in the case of instance-create with datastores like Redis, MongoDB, Cassandra, etc.
Example:
$trove create Herschel 7 --size 1 --datastore mongodb --datastore_version mongodb-mongo
+-------------------+--------------------------------------+
| Property | Value |
+-------------------+--------------------------------------+
| created | 2014-02-04T23:02:53 |
| datastore | mongodb |
| datastore_version | mongodb-mongo |
| flavor | 7 |
| id | 53636b58-25dc-4566-8812-9e6e03351788 |
| ip | 10.0.0.2 |
| name | Herschel |
| password | gWGekbxz3a73xn3Q3e4vraxnRwNUhdgBEXxd |
| status | BUILD |
| updated | 2014-02-04T23:03:01 |
| volume | 1 |
+-------------------+--------------------------------------+
The fix requires amending https://github.com/openstack/trove/blob/41c6289dcf021542c656b9d2b748b61d2aec22d3/trove/instance/models.py#L552 to look at the datastore_version's manager.
What about the UI impacts of this bug's root cause? The standard root password dialog that pops up in horizon when you create a DB. Does that not get launched if the root password field is Nil/Empty? Or is there a need for manager version checking code in horizon as well to skip popping that root password screen when manager is 'mongodb' (or others that don't support root password) ?