From 889e6c23cba937eef5106554521def5e5a486f77 Mon Sep 17 00:00:00 2001 From: Steven Armstrong Date: Sat, 15 Oct 2011 00:44:54 +0200 Subject: [PATCH] Explorer tracks which type explorers have been transferred instad of Type Signed-off-by: Steven Armstrong --- lib/cdist/core/explorer.py | 5 +++-- lib/cdist/core/type.py | 3 +-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/cdist/core/explorer.py b/lib/cdist/core/explorer.py index 90201072..f2bfc153 100644 --- a/lib/cdist/core/explorer.py +++ b/lib/cdist/core/explorer.py @@ -75,6 +75,7 @@ class Explorer(object): } if log.getEffectiveLevel() == logging.DEBUG: self.env.update({'__debug': "yes" }) + self._type_explorers_transferred = [] ### global @@ -105,14 +106,14 @@ class Explorer(object): def transfer_type_explorers(self, cdist_type): """Transfer the type explorers for the given type to the remote side.""" if cdist_type.explorers: - if cdist_type.explorers_transferred: + if cdist_type.name in self._type_explorers_transferred: log.debug("Skipping retransfer of type explorers for: %s", cdist_type) else: source = os.path.join(self.local.type_path, cdist_type.explorer_path) destination = os.path.join(self.remote.type_path, cdist_type.explorer_path) self.remote.mkdir(destination) self.remote.transfer(source, destination) - cdist_type.explorers_transferred = True + self._type_explorers_transferred.append(cdist_type.name) def transfer_object_parameters(self, cdist_object): """Transfer the parameters for the given object to the remote side.""" diff --git a/lib/cdist/core/type.py b/lib/cdist/core/type.py index 6c3cd757..ce37769e 100644 --- a/lib/cdist/core/type.py +++ b/lib/cdist/core/type.py @@ -54,6 +54,7 @@ class Type(object): if not name in cls._instances: instance = super(Type, cls).__new__(cls) cls._instances[name] = instance + # return instance so __init__ is called return cls._instances[name] def __init__(self, base_path, name): @@ -67,8 +68,6 @@ class Type(object): self.gencode_remote_path = os.path.join(self.name, "gencode-remote") self.manifest_path = os.path.join(self.name, "manifest") - self.explorers_transferred = False - self.__explorers = None self.__required_parameters = None self.__optional_parameters = None