]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
xxx: DELETEME: hack to find invalid type assignments
authorJohn Mulligan <jmulligan@redhat.com>
Mon, 29 May 2023 20:54:20 +0000 (16:54 -0400)
committerJohn Mulligan <jmulligan@redhat.com>
Thu, 29 Jun 2023 18:59:28 +0000 (14:59 -0400)
Signed-off-by: John Mulligan <jmulligan@redhat.com>
src/pybind/mgr/cephadm/services/cephadmservice.py
src/pybind/mgr/orchestrator/_interface.py
src/python-common/ceph/deployment/service_spec.py

index b34be195fa38c68d02a8b07cda50e009061f15a9..26eeb94d3070087ebf204c310d9127c7d2859c12 100644 (file)
@@ -110,6 +110,15 @@ class CephadmDaemonDeploySpec:
         self.extra_container_args = extra_container_args
         self.extra_entrypoint_args = extra_entrypoint_args
 
+    def __setattr__(self, name: str, value: Any) -> None:
+        if value is not None and name in ('extra_container_args', 'extra_entrypoint_args'):
+            for v in value:
+                tname = str(type(v))
+                if 'ArgumentSpec' not in tname:
+                    raise TypeError(f"{name} is not all ArgumentSpec values: {v!r}(is {type(v)} in {value!r}")
+
+        super().__setattr__(name, value)
+
     def name(self) -> str:
         return '%s.%s' % (self.daemon_type, self.daemon_id)
 
index 4c3ac44a5625f8f0b767f946979782012b1fa1ff..044fb455db38fdc54c1e1381faa50a7a08bfb607 100644 (file)
@@ -1018,6 +1018,15 @@ class DaemonDescription(object):
             self.extra_entrypoint_args = ArgumentSpec.from_general_args(
                 extra_entrypoint_args)
 
+    def __setattr__(self, name: str, value: Any) -> None:
+        if value is not None and name in ('extra_container_args', 'extra_entrypoint_args'):
+            for v in value:
+                tname = str(type(v))
+                if 'ArgumentSpec' not in tname:
+                    raise TypeError(f"{name} is not all ArgumentSpec values: {v!r}(is {type(v)} in {value!r}")
+
+        super().__setattr__(name, value)
+
     @property
     def status(self) -> Optional[DaemonDescriptionStatus]:
         return self._status
index 3c9e0483b04447f911cc28d431149bd114e9a154..2f981ede5fba4cbd28ebcfcb7e30b81d7ebe6972 100644 (file)
@@ -737,6 +737,17 @@ class ServiceSpec(object):
                 extra_entrypoint_args)
         self.custom_configs: Optional[List[CustomConfig]] = custom_configs
 
+    def __setattr__(self, name: str, value: Any) -> None:
+        if value is not None and name in ('extra_container_args', 'extra_entrypoint_args'):
+            for v in value:
+                tname = str(type(v))
+                if 'ArgumentSpec' not in tname:
+                    raise TypeError(
+                        f"{name} is not all ArgumentSpec values:"
+                        f" {v!r}(is {type(v)} in {value!r}")
+
+        super().__setattr__(name, value)
+
     @classmethod
     @handle_type_error
     def from_json(cls: Type[ServiceSpecT], json_spec: Dict) -> ServiceSpecT: