From 3c642e0b02bba31d5de1c9c3757590746251a634 Mon Sep 17 00:00:00 2001 From: Anders Ingemann Date: Sun, 25 Jan 2015 19:52:28 +0100 Subject: [PATCH] Fix serialization of DictClass using it in Queue.put somehow broke it --- bootstrapvz/base/bootstrapinfo.py | 34 ++++++++++++++++++------------- bootstrapvz/remote/__init__.py | 1 + 2 files changed, 21 insertions(+), 14 deletions(-) diff --git a/bootstrapvz/base/bootstrapinfo.py b/bootstrapvz/base/bootstrapinfo.py index 0039253..9162b62 100644 --- a/bootstrapvz/base/bootstrapinfo.py +++ b/bootstrapvz/base/bootstrapinfo.py @@ -78,20 +78,6 @@ class BootstrapInformation(object): :return: The manifest_vars dictionary :rtype: dict """ - class DictClass(dict): - """Tiny extension of dict to allow setting and getting keys via attributes - """ - def __getattr__(self, name): - return self[name] - - def __setattr__(self, name, value): - self[name] = value - - def __delattr__(self, name): - del self[name] - - def __getstate__(self): - return self.__dict__ def set_manifest_vars(obj, data): """Runs through the manifest and creates DictClasses for every key @@ -139,3 +125,23 @@ class BootstrapInformation(object): def __setstate__(self, state): for key in state: self.__dict__[key] = state[key] + + +class DictClass(dict): + """Tiny extension of dict to allow setting and getting keys via attributes + """ + def __getattr__(self, name): + return self[name] + + def __setattr__(self, name, value): + self[name] = value + + def __delattr__(self, name): + del self[name] + + def __getstate__(self): + return self.__dict__ + + def __setstate__(self, state): + for key in state: + self[key] = state[key] diff --git a/bootstrapvz/remote/__init__.py b/bootstrapvz/remote/__init__.py index ad0049d..35303e2 100644 --- a/bootstrapvz/remote/__init__.py +++ b/bootstrapvz/remote/__init__.py @@ -6,6 +6,7 @@ log = logging.getLogger(__name__) supported_classes = ['bootstrapvz.base.manifest.Manifest', 'bootstrapvz.base.bootstrapinfo.BootstrapInformation', + 'bootstrapvz.base.bootstrapinfo.DictClass', 'bootstrapvz.common.fs.loopbackvolume.LoopbackVolume', 'bootstrapvz.common.fs.qemuvolume.QEMUVolume', 'bootstrapvz.common.fs.virtualdiskimage.VirtualDiskImage',