diff options
Diffstat (limited to 'cobbler/collection.py')
-rw-r--r-- | cobbler/collection.py | 33 |
1 files changed, 28 insertions, 5 deletions
diff --git a/cobbler/collection.py b/cobbler/collection.py index 708bb985..c02d10ce 100644 --- a/cobbler/collection.py +++ b/cobbler/collection.py @@ -1,11 +1,13 @@ import serializable +import utils +import msg """ Base class for any serializable lists of things... """ class Collection(serializable.Serializable): - def class_container(self): + def factory_produce(self): raise exceptions.NotImplementedError def filename(self): @@ -16,10 +18,13 @@ class Collection(serializable.Serializable): Constructor. """ self.config = config + self.debug = 1 self.clear() - + def clear(self): + if self.debug: + print "Collection::clear" self.listing = {} def find(self,name): @@ -27,6 +32,8 @@ class Collection(serializable.Serializable): Return anything named 'name' in the collection, else return None if no objects can be found. """ + if self.debug: + print "Collection::find(%s)" % name if name in self.listing.keys(): return self.listing[name] return None @@ -36,12 +43,20 @@ class Collection(serializable.Serializable): """ Serialize the collection """ + if self.debug: + print "Collection::to_datastruct" datastruct = [x.to_datastruct() for x in self.listing.values()] + return datastruct def from_datastruct(self,datastruct): - container = self.class_container() + if self.debug: + print "Collection::from_datastruct(%s)" % datastruct + if datastruct is None: + print "DEBUG: from_datastruct -> None, skipping" + return + print "DEBUG: from_datastruct: %s" % datastruct for x in datastruct: - item = container(x,self.config) + item = self.factory_produce(self.config) self.add(item) def add(self,ref): @@ -51,6 +66,8 @@ class Collection(serializable.Serializable): object specified by ref deems itself invalid (and therefore won't be added to the collection). """ + if self.debug: + print "Collection::add(%s)" % ref if ref is None or not ref.is_valid(): if utils.last_error() is None or utils.last_error() == "": utils.set_error("bad_param") @@ -65,16 +82,20 @@ class Collection(serializable.Serializable): for reading by humans or parsing from scripts. Actually scripts would be better off reading the YAML in the config files directly. """ + if self.debug: + print "Collection::printable" values = map(lambda(a): a.printable(), sorted(self.listing.values())) if len(values) > 0: return "\n\n".join(values) else: - return m("empty_list") + return msg.m("empty_list") def __iter__(self): """ Iterator for the collection. Allows list comprehensions, etc """ + if self.debug: + print "Collection::__iter__" for a in self.listing.values(): yield a @@ -82,5 +103,7 @@ class Collection(serializable.Serializable): """ Returns size of the collection """ + if self.debug: + print "Collection::__len__" return len(self.listing.values()) |