]> git.apps.os.sepia.ceph.com Git - ceph.git/commit
python-common: handle "anonymous_access: false" in to_json of Grafana spec
authorAdam King <adking@redhat.com>
Tue, 16 Apr 2024 16:22:01 +0000 (12:22 -0400)
committerAdam King <adking@redhat.com>
Wed, 29 May 2024 12:45:15 +0000 (08:45 -0400)
commit010fa4c3d28d6eabfd67a98fbb6a2a3a72bea999
tree8f86b2a12ca3a1f120bf6dc64e7900f8f61efc19
parent49fa1622ee1c9d889b2e76c494999e49ddbf2255
python-common: handle "anonymous_access: false" in to_json of Grafana spec

This option is dropped during the regular ServiceSpec to_json
function, as it is not equipped to handle booleans that default
to True. In hindsight, we just shouldn't have added a boolean
field that defaults to True, but it's a bit late now to change
the attribute, so this implements a workaround.

NOTE: if OrderedDict[str, Any] is not encapsulated in quotes,
a bunch of mgr modules fail to load on python 3.6 with

mgr[py] Traceback (most recent call last):
 File "/usr/share/ceph/mgr/volumes/__init__.py", line 2, in <module>
   from .module import Module
 File "/usr/share/ceph/mgr/volumes/module.py", line 7, in <module>
   import orchestrator
 File "/usr/share/ceph/mgr/orchestrator/__init__.py", line 3, in <module>
   from .module import OrchestratorCli
 File "/usr/share/ceph/mgr/orchestrator/module.py", line 19, in <module>
   from ceph.deployment.drive_group import DriveGroupSpec, DeviceSelection, OSDMethod
 File "/lib/python3.6/site-packages/ceph/deployment/drive_group.py", line 5, in <module>
   from ceph.deployment.service_spec import (
 File "/lib/python3.6/site-packages/ceph/deployment/service_spec.py", line 1986, in <module>
   class GrafanaSpec(MonitoringSpec):
 File "/lib/python3.6/site-packages/ceph/deployment/service_spec.py", line 2034, in GrafanaSpec
   def to_json(self) -> OrderedDict[str, Any]:
TypeError: 'type' object is not subscriptable

Fixes: https://tracker.ceph.com/issues/65511
Signed-off-by: Adam King <adking@redhat.com>
(cherry picked from commit 0089536567b2ce8d3215339b264a48de06bfac38)
src/python-common/ceph/deployment/service_spec.py
src/python-common/ceph/tests/test_service_spec.py