summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLingxian Kong <anlin.kong@gmail.com>2020-07-26 00:40:12 +1200
committerLingxian Kong <anlin.kong@gmail.com>2020-07-26 21:57:05 +1200
commitc23da586e9466cf77a8fca314871b3cba58028f9 (patch)
tree51e9137f1ba41d2784ad5218668244e96c283e19
parent40af5562643856efad8717698511e613b4b142d4 (diff)
downloadpython-troveclient-c23da586e9466cf77a8fca314871b3cba58028f9.tar.gz
Flavor is optional for creating instance5.0.0
When creating replicas, flavor is not needed. Replica has the same server settings as the primary. Change-Id: Ia9b43a464763234b84ba163d8c773b21f53f4ee7
-rw-r--r--releasenotes/notes/victoria-flavor-optional.yaml4
-rw-r--r--troveclient/osc/v1/database_instances.py15
-rw-r--r--troveclient/tests/osc/v1/test_database_instances.py8
-rw-r--r--troveclient/v1/instances.py14
4 files changed, 23 insertions, 18 deletions
diff --git a/releasenotes/notes/victoria-flavor-optional.yaml b/releasenotes/notes/victoria-flavor-optional.yaml
new file mode 100644
index 0000000..b538014
--- /dev/null
+++ b/releasenotes/notes/victoria-flavor-optional.yaml
@@ -0,0 +1,4 @@
+---
+features:
+ - Change flavor as an optional parameter (``--flavor``) for creating
+ instance. When creating replicas, flavor is not requried.
diff --git a/troveclient/osc/v1/database_instances.py b/troveclient/osc/v1/database_instances.py
index ffda02b..2d18626 100644
--- a/troveclient/osc/v1/database_instances.py
+++ b/troveclient/osc/v1/database_instances.py
@@ -227,7 +227,7 @@ class CreateDatabaseInstance(command.ShowOne):
help=_("Name of the instance."),
)
parser.add_argument(
- 'flavor',
+ '--flavor',
metavar='<flavor>',
type=str,
help=_("A flavor ID."),
@@ -241,7 +241,7 @@ class CreateDatabaseInstance(command.ShowOne):
"Required when volume support is enabled."),
)
parser.add_argument(
- '--volume_type',
+ '--volume-type',
metavar='<volume_type>',
type=str,
default=None,
@@ -268,7 +268,7 @@ class CreateDatabaseInstance(command.ShowOne):
help=_("A backup name or ID."),
)
parser.add_argument(
- '--availability_zone',
+ '--availability-zone',
metavar='<availability_zone>',
default=None,
help=_("The Zone hint to give to Nova."),
@@ -280,7 +280,7 @@ class CreateDatabaseInstance(command.ShowOne):
help=_("A datastore name or ID."),
)
parser.add_argument(
- '--datastore_version',
+ '--datastore-version',
metavar='<datastore_version>',
default=None,
help=_("A datastore version name or ID."),
@@ -298,13 +298,13 @@ class CreateDatabaseInstance(command.ShowOne):
help=_("ID of the configuration group to attach to the instance."),
)
parser.add_argument(
- '--replica_of',
+ '--replica-of',
metavar='<source_instance>',
default=None,
help=_("ID or name of an existing instance to replicate from."),
)
parser.add_argument(
- '--replica_count',
+ '--replica-count',
metavar='<count>',
type=int,
default=None,
@@ -353,7 +353,6 @@ class CreateDatabaseInstance(command.ShowOne):
def take_action(self, parsed_args):
database = self.app.client_manager.database
db_instances = database.instances
- flavor_id = parsed_args.flavor
volume = None
if parsed_args.size is not None and parsed_args.size <= 0:
@@ -409,7 +408,7 @@ class CreateDatabaseInstance(command.ShowOne):
instance = db_instances.create(
parsed_args.name,
- flavor_id,
+ flavor_id=parsed_args.flavor,
volume=volume,
databases=databases,
users=users,
diff --git a/troveclient/tests/osc/v1/test_database_instances.py b/troveclient/tests/osc/v1/test_database_instances.py
index bb3950d..630ba1d 100644
--- a/troveclient/tests/osc/v1/test_database_instances.py
+++ b/troveclient/tests/osc/v1/test_database_instances.py
@@ -204,15 +204,15 @@ class TestDatabaseInstanceCreate(TestInstances):
@mock.patch.object(utils, 'find_resource')
def test_instance_create(self, mock_find):
mock_find.id.side_effect = ['test', 'mod_id']
- args = ['test-name', '103',
+ args = ['test-name', '--flavor', '103',
'--size', '1',
'--databases', 'db1', 'db2',
'--users', 'u1:111', 'u2:111',
'--datastore', "datastore",
- '--datastore_version', "datastore_version",
+ '--datastore-version', "datastore_version",
'--nic', 'net-id=net1',
- '--replica_of', 'test',
- '--replica_count', '4',
+ '--replica-of', 'test',
+ '--replica-count', '4',
'--module', 'mod_id',
'--is-public',
'--allowed-cidr', '10.0.0.1/24',
diff --git a/troveclient/v1/instances.py b/troveclient/v1/instances.py
index 15725a3..2ff17f3 100644
--- a/troveclient/v1/instances.py
+++ b/troveclient/v1/instances.py
@@ -89,18 +89,20 @@ class Instances(base.ManagerWithFind):
auth_url, user, key, auth_version=auth_version,
os_options=os_options)
- def create(self, name, flavor_id, volume=None, databases=None, users=None,
- restorePoint=None, availability_zone=None, datastore=None,
- datastore_version=None, nics=None, configuration=None,
- replica_of=None, replica_count=None, modules=None,
- locality=None, region_name=None, access=None, **kwargs):
+ def create(self, name, flavor_id=None, volume=None, databases=None,
+ users=None, restorePoint=None, availability_zone=None,
+ datastore=None, datastore_version=None, nics=None,
+ configuration=None, replica_of=None, replica_count=None,
+ modules=None, locality=None, region_name=None, access=None,
+ **kwargs):
"""Create (boot) a new instance."""
body = {"instance": {
"name": name,
- "flavorRef": flavor_id
}}
datastore_obj = {}
+ if flavor_id:
+ body["instance"]["flavorRef"] = flavor_id
if volume:
body["instance"]["volume"] = volume
if databases: