]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mgr/dashboard: adding & exposing Param Class to support EndpointDoc creation 61182/head
authorNaman Munet <naman.munet@ibm.com>
Thu, 26 Dec 2024 08:48:00 +0000 (14:18 +0530)
committerNaman Munet <naman.munet@ibm.com>
Fri, 3 Jan 2025 08:16:33 +0000 (13:46 +0530)
Fixes: https://tracker.ceph.com/issues/69272
Signed-off-by: Naman Munet <naman.munet@ibm.com>
src/pybind/mgr/dashboard/controllers/__init__.py
src/pybind/mgr/dashboard/controllers/_docs.py

index af3f276ebfa2faf9c8306e52a2091e013a5a4586..3db5da5d323590eb064d5e46793dd4e84f24055d 100755 (executable)
@@ -2,7 +2,7 @@ from ._api_router import APIRouter
 from ._auth import ControllerAuthMixin
 from ._base_controller import BaseController
 from ._crud import CRUDCollectionMethod, CRUDEndpoint, CRUDResourceMethod, SecretStr
-from ._docs import APIDoc, EndpointDoc
+from ._docs import APIDoc, EndpointDoc, Param
 from ._endpoint import Endpoint, Proxy
 from ._helpers import ENDPOINT_MAP, allow_empty_body, \
     generate_controller_routes, json_error_page, validate_ceph_type
@@ -23,6 +23,7 @@ __all__ = [
     'Task',
     'ControllerAuthMixin',
     'EndpointDoc',
+    'Param',
     'APIDoc',
     'allow_empty_body',
     'ENDPOINT_MAP',
index 5bd7a5a7a6ea5c6fd45173ea877347aed027596e..7301875f6b4f83d56d92cb6aa4681c4428dad3f0 100644 (file)
@@ -1,4 +1,4 @@
-from typing import Any, Dict, List, Optional, Tuple, Union
+from typing import Any, Dict, List, NamedTuple, Optional, Tuple, Type, Union
 
 from ..api.doc import SchemaInput, SchemaType
 
@@ -115,6 +115,13 @@ class EndpointDoc:  # noqa: N802
         return func
 
 
+class Param(NamedTuple):
+    type: Union[Type, List[Type]]
+    description: str
+    optional: bool = False
+    default: Optional[Any] = None
+
+
 class APIDoc(object):
     def __init__(self, description="", group=""):
         self.tag = group