summaryrefslogtreecommitdiff
path: root/troveclient/compat
diff options
context:
space:
mode:
authorLingxian Kong <anlin.kong@gmail.com>2020-11-12 09:57:13 +1300
committerLingxian Kong <anlin.kong@gmail.com>2020-11-13 20:53:10 +1300
commitc04e299b1d503f2ce67730398b9585a196616e51 (patch)
tree78442db780aa4fe8d695ce22810c67b1f0456602 /troveclient/compat
parentdd371f04540d2c37fbae9626724769c05465e4b3 (diff)
downloadpython-troveclient-c04e299b1d503f2ce67730398b9585a196616e51.tar.gz
Revert "Remove flavor API"
Story: 2008341 Task: 41242 This reverts commit 27cf71299ec51976fed8b18dbf5c0e4f9f4fd6f5. Change-Id: I036a0423263b1a0332415c6403647ae82c9e34c4
Diffstat (limited to 'troveclient/compat')
-rw-r--r--troveclient/compat/__init__.py2
-rw-r--r--troveclient/compat/cli.py11
-rw-r--r--troveclient/compat/client.py3
-rw-r--r--troveclient/compat/mcli.py26
4 files changed, 42 insertions, 0 deletions
diff --git a/troveclient/compat/__init__.py b/troveclient/compat/__init__.py
index 1e9734d..a08dcb8 100644
--- a/troveclient/compat/__init__.py
+++ b/troveclient/compat/__init__.py
@@ -21,9 +21,11 @@ from troveclient.v1.accounts import Accounts # noqa
from troveclient.v1.databases import Databases # noqa
from troveclient.v1.diagnostics import DiagnosticsInterrogator # noqa
from troveclient.v1.diagnostics import HwInfoInterrogator # noqa
+from troveclient.v1.flavors import Flavors # noqa
from troveclient.v1.hosts import Hosts # noqa
from troveclient.v1.instances import Instances # noqa
from troveclient.v1.management import Management # noqa
+from troveclient.v1.management import MgmtFlavors # noqa
from troveclient.v1.management import RootHistory # noqa
from troveclient.v1.root import Root # noqa
from troveclient.v1.storage import StorageInfo # noqa
diff --git a/troveclient/compat/cli.py b/troveclient/compat/cli.py
index 6f6199e..8d82ab7 100644
--- a/troveclient/compat/cli.py
+++ b/troveclient/compat/cli.py
@@ -129,6 +129,16 @@ class InstanceCommands(common.AuthedCommandsBase):
self._pretty_print(self.dbaas.instances.configuration, self.id)
+class FlavorsCommands(common.AuthedCommandsBase):
+ """Command for listing Flavors."""
+
+ params = []
+
+ def list(self):
+ """List the available flavors."""
+ self._pretty_list(self.dbaas.flavors.list)
+
+
class DatabaseCommands(common.AuthedCommandsBase):
"""Database CRUD operations on an instance."""
@@ -426,6 +436,7 @@ class MetadataCommands(common.AuthedCommandsBase):
COMMANDS = {
'auth': common.Auth,
'instance': InstanceCommands,
+ 'flavor': FlavorsCommands,
'database': DatabaseCommands,
'limit': LimitsCommands,
'backup': BackupsCommands,
diff --git a/troveclient/compat/client.py b/troveclient/compat/client.py
index 1daa129..9dfa284 100644
--- a/troveclient/compat/client.py
+++ b/troveclient/compat/client.py
@@ -309,6 +309,7 @@ class Dbaas(object):
from troveclient.v1 import databases
from troveclient.v1 import datastores
from troveclient.v1 import diagnostics
+ from troveclient.v1 import flavors
from troveclient.v1 import hosts
from troveclient.v1 import instances
from troveclient.v1 import limits
@@ -330,6 +331,7 @@ class Dbaas(object):
region_name=region_name)
self.versions = versions.Versions(self)
self.databases = databases.Databases(self)
+ self.flavors = flavors.Flavors(self)
self.instances = instances.Instances(self)
self.limits = limits.Limits(self)
self.users = users.Users(self)
@@ -347,6 +349,7 @@ class Dbaas(object):
self.storage = storage.StorageInfo(self)
self.management = management.Management(self)
self.mgmt_cluster = management.MgmtClusters(self)
+ self.mgmt_flavor = management.MgmtFlavors(self)
self.accounts = accounts.Accounts(self)
self.diagnostics = diagnostics.DiagnosticsInterrogator(self)
self.hwinfo = diagnostics.HwInfoInterrogator(self)
diff --git a/troveclient/compat/mcli.py b/troveclient/compat/mcli.py
index f151ab7..e3efbae 100644
--- a/troveclient/compat/mcli.py
+++ b/troveclient/compat/mcli.py
@@ -181,6 +181,31 @@ class StorageCommands(common.AuthedCommandsBase):
self._pretty_list(self.dbaas.storage.index)
+class FlavorsCommands(common.AuthedCommandsBase):
+ """Commands for managing Flavors."""
+
+ params = [
+ 'name',
+ 'ram',
+ 'disk',
+ 'vcpus',
+ 'flavor_id',
+ 'ephemeral',
+ 'swap',
+ 'rxtx_factor',
+ 'service_type'
+ ]
+
+ def create(self):
+ """Create a new flavor."""
+ self._require('name', 'ram', 'disk', 'vcpus',
+ 'flavor_id', 'service_type')
+ self._pretty_print(self.dbaas.mgmt_flavor.create, self.name,
+ self.ram, self.disk, self.vcpus, self.flavor_id,
+ self.ephemeral, self.swap, self.rxtx_factor,
+ self.service_type)
+
+
def config_options(oparser):
oparser.add_option("-u", "--url", default="http://localhost:5000/v1.1",
help="Auth API endpoint URL with port and version. \
@@ -194,6 +219,7 @@ COMMANDS = {
'root': RootCommands,
'storage': StorageCommands,
'quota': QuotaCommands,
+ 'flavor': FlavorsCommands,
}