diff options
Diffstat (limited to 'cobbler/item.py')
-rw-r--r-- | cobbler/item.py | 29 |
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? |