summaryrefslogtreecommitdiffstats
path: root/cobbler/collection.py
diff options
context:
space:
mode:
Diffstat (limited to 'cobbler/collection.py')
-rw-r--r--cobbler/collection.py33
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())