]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mgr/dashboard: feature-toggles: add Option helper
authorErnesto Puerta <epuertat@redhat.com>
Thu, 24 Jan 2019 18:58:42 +0000 (19:58 +0100)
committerErnesto Puerta <epuertat@redhat.com>
Wed, 6 Feb 2019 17:08:00 +0000 (18:08 +0100)
A new helper class `Options` has been added to ease adding new
MODULE_OPTIONS.

Fixes: http://tracker.ceph.com/issues/37530
Signed-off-by: Ernesto Puerta <epuertat@redhat.com>
src/pybind/mgr/dashboard/module.py
src/pybind/mgr/mgr_module.py

index 051c0e729497f77465f264d6c934fe5a10643386..78b7edeabbcbfd23cffd071e3896ca7184f19ae6 100644 (file)
@@ -19,10 +19,6 @@ from OpenSSL import crypto
 
 from mgr_module import MgrModule, MgrStandbyModule
 
-# Imports required for CLI commands registration
-# pylint: disable=unused-import
-from .services import iscsi_cli
-
 try:
     import cherrypy
     from cherrypy._cptools import HandlerWrapperTool
index 68deb44a4fd40c5c241bf58d282ba6e9ed32bfaf..758db937033843f62d93dffc984ea1ed9d700d07 100644 (file)
@@ -352,6 +352,30 @@ def CLIReadCommand(prefix, args="", desc=""):
 def CLIWriteCommand(prefix, args="", desc=""):
     return CLICommand(prefix, args, desc, "w")
 
+class Option(dict):
+    """
+    Helper class to declare options for MODULE_OPTIONS list.
+
+    Caveat: it uses argument names matching Python keywords (type, min, max),
+    so any further processing should happen in a separate method.
+
+    TODO: type validation.
+    """
+    def __init__(
+            self, name,
+            default=None,
+            type='str',
+            desc=None, longdesc=None,
+            min=None, max=None,
+            enum_allowed=None,
+            see_also=None,
+            tags=None,
+            runtime=False,
+    ):
+        super(Option, self).__init__(
+            (k, v) for k, v in vars().items()
+            if k != 'self' and v is not None)
+
 
 class MgrStandbyModule(ceph_module.BaseMgrStandbyModule):
     """