Difference between revisions of "Trove/OpenstackClient"
Alex Tomic (talk | contribs) (→Trove OpenStack Client Plugin Migration) |
(→Existing pain points for Python-TroveClient) |
||
Line 6: | Line 6: | ||
* Inconsistency between name and id use across commands | * Inconsistency between name and id use across commands | ||
* creating and updating configuration parameters is really hard. (not sure what a good solution is for this right now.) | * creating and updating configuration parameters is really hard. (not sure what a good solution is for this right now.) | ||
+ | * No need for metadata | ||
+ | * It would be useful to had a single call to get all datastores and versions in a merged list. (would require a new api call for this to happen though so it wouldnt be 1+(# of datastores) api cals. | ||
+ | * Add the management api calls. (quota and reset status were called out) | ||
+ | |||
==== Replication Group/Cluster ==== | ==== Replication Group/Cluster ==== | ||
Revision as of 15:45, 19 November 2015
Contents
Trove OpenStack Client Plugin Migration
This wiki page is intended to design how the commands for trove will look when we do the migration to the OpenStack client. Given that we don't have backwards compatibility issues this is a good opportunity to look at the usability of our commands and improve the user experience.
Existing pain points for Python-TroveClient
- Inconsistency between name and id use across commands
- creating and updating configuration parameters is really hard. (not sure what a good solution is for this right now.)
- No need for metadata
- It would be useful to had a single call to get all datastores and versions in a merged list. (would require a new api call for this to happen though so it wouldnt be 1+(# of datastores) api cals.
- Add the management api calls. (quota and reset status were called out)
Replication Group/Cluster
atomic77 - The distinction we maintain, internally, between replica groups and clusters should ideally be less apparent to a trove user. If we are not required to maintain a 1-1 mapping between the openstack client and the legacy trove client, perhaps it is an opportunity to present it that way, even if behind the scenes we still manage this differently. Why should a trove user know or care about why, say, percona-xe fully-replicated with 3 nodes is a "cluster", while traditional mysql/percona with two asynch slaves is a two step process to create a single node, then another create with --replica_of --replica_count 2?
So it could be something like
openstack trove cluster-create .. --nodes 3 --topology {"multi-master", "async master/slave", etc}
Not clear how ambitious this would be especially if we don't want to make backend changes, but if we ever want to fix this, this is a great time to start.
Examples
Python-TroveClient | Python-OpenStackClient |
---|---|
backup-copy | Example |
backup-create | Example |
backup-delete | Example |
backup-list | Example |
backup-list-instance | Example |
backup-show | Example |
cluster-create | Example |
cluster-delete | Example |
cluster-instances | Example |
cluster-list | Example |
cluster-show | Example |
configuration-attach | Example |
configuration-create | Example |
configuration-default | Example |
configuration-delete | Example |
configuration-detach | Example |
configuration-instances | Example |
configuration-list | Example |
configuration-parameter-list | Example |
configuration-parameter-show | Example |
configuration-patch | Example |
configuration-show | Example |
configuration-update | Example |
create | Example |
database-create | Example |
database-delete | Example |
database-list | Example |
datastore-list | Example |
datastore-show | Example |
datastore-version-list | Example |
datastore-version-show | Example |
delete | Example |
detach-replica | Example |
flavor-list | Example |
flavor-show | Example |
limit-list | Example |
list | Example |
metadata-create | Example |
metadata-delete | Example |
metadata-edit | Example |
metadata-list | Example |
metadata-show | Example |
metadata-update | Example |
resize-flavor | Example |
resize-instance | Example |
resize-volume | Example |
restart | Example |
root-enable | Example |
root-show | Example |
secgroup-add-rule | Example |
secgroup-delete-rule | Example |
secgroup-list | Example |
secgroup-list-rules | Example |
secgroup-show | Example |
show | Example |
update | Example |
user-create | Example |
user-delete | Example |
user-grant-access | Example |
user-list | Example |
user-revoke-access | Example |
user-show | Example |
user-show-access | Example |
user-update-attributes | Example |
bash-completion | Example |
help | Example |