'Get objects that depend on this object, i.e. those that
would be affected by a cascading delete, etc.
With sort=True the list will be a walk of the tree,
e.g., distro -> [profile, sys, sys, profile, sys, sys]'

def get_descendants(self, sort=False):

    results = []
    kids = self.get_children(sorted=sort)
    if (not sort):
        results.extend(kids)
    for kid in kids:
        if sort:
            results.append(kid)
        grandkids = kid.get_descendants(sort=sort)
        results.extend(grandkids)
    return results
