From: Samuel Just Date: Wed, 29 Oct 2025 21:02:46 +0000 (+0000) Subject: python-common/.../service_spec: implement ServiceSpec.__getnewargs__ to allow unpickl... X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=00914e03e8982163b2c6d24c255e535b7a280577;p=ceph.git python-common/.../service_spec: implement ServiceSpec.__getnewargs__ to allow unpickle to work correctly Signed-off-by: Samuel Just (cherry picked from commit d4a1f2b117a7eeb966ba8072f38d291c00e4a5e5) --- diff --git a/src/python-common/ceph/deployment/service_spec.py b/src/python-common/ceph/deployment/service_spec.py index 040802412159..d81734fbf507 100644 --- a/src/python-common/ceph/deployment/service_spec.py +++ b/src/python-common/ceph/deployment/service_spec.py @@ -866,6 +866,14 @@ class ServiceSpec(object): sub_cls: Any = cls._cls(service_type) return object.__new__(sub_cls) + def __getnewargs__(self): + """ + Pickle will pass the return of this function to __new__ upon + unpickle. We need to ensure it gets service_type in order + to get the right subtype. + """ + return (self.service_type,) + def __init__(self, service_type: str, service_id: Optional[str] = None,