summaryrefslogtreecommitdiffstats
path: root/cobbler/item.py
diff options
context:
space:
mode:
Diffstat (limited to 'cobbler/item.py')
-rw-r--r--cobbler/item.py29
1 files changed, 29 insertions, 0 deletions
diff --git a/cobbler/item.py b/cobbler/item.py
index 8ce2994..f746491 100644
--- a/cobbler/item.py
+++ b/cobbler/item.py
@@ -27,10 +27,39 @@ class Item(serializable.Serializable):
self.config = config
self.settings = self.config._settings
self.clear()
+ self.children = {}
def clear(self):
raise exceptions.NotImplementedError
+ def get_children(self):
+ """
+ Get direct children of this object.
+
+ FIXME: testing
+ """
+ keys = self.children.keys()
+ keys.sort()
+ results = []
+ for k in keys:
+ results.append(self.children[k])
+ return results
+
+ def get_descendants(self):
+ """
+ Get objects that depend on this object, i.e. those that
+ would be affected by a cascading delete, etc.
+
+ FIXME: testing
+ """
+ results = []
+ kids = self.get_children()
+ results.extend(kids)
+ for kid in kids:
+ grandkids = kid.get_descendants()
+ results.extend(grandkids)
+ return results
+
def get_parent(self):
"""
For objects with a tree relationship, what's the parent object?