Example #1
0
class ListInvocation:
    def __init__(self, provider_loader, ns):
        self.explorer = Explorer(provider_loader())
        self.group = ns.group
        self.show_attrs = ns.attrs

    def run(self):
        obj = self.explorer.get_object_tree()
        self._show(obj)

    def _show(self, obj, indent=None):
        if indent is None:
            indent = ""
        # Apply optional filtering
        if self.group is None or obj.group == self.group:
            # Display the object name and group
            print("{}{} {!r}".format(indent, obj.group, obj.name))
            indent += "  "
            # It would be cool if this would draw an ASCI-art tree
            if self.show_attrs:
                for key, value in obj.attrs.items():
                    print("{}{:15}: {!r}".format(indent, key, value))
        if obj.children:
            if self.group is None:
                print("{}{}".format(indent, _("children")))
                indent += "  "
            for child in obj.children:
                self._show(child, indent)
Example #2
0
class ListInvocation:

    def __init__(self, provider_list, ns):
        self.explorer = Explorer(provider_list)
        self.group = ns.group
        self.show_attrs = ns.attrs

    def run(self):
        obj = self.explorer.get_object_tree()
        self._show(obj)

    def _show(self, obj, indent=None):
        if indent is None:
            indent = ""
        # Apply optional filtering
        if self.group is None or obj.group == self.group:
            # Display the object name and group
            print("{}{} {!r}".format(indent, obj.group, obj.name))
            indent += "  "
            # It would be cool if this would draw an ASCI-art tree
            if self.show_attrs:
                for key, value in obj.attrs.items():
                    print("{}{}: {!r}".format(indent, key, value))
        if obj.children:
            if self.group is None:
                print("{}{}".format(indent, _("children")))
                indent += "  "
            for child in obj.children:
                self._show(child, indent)
Example #3
0
def get_all_jobs(sa):
    providers = sa.get_selected_providers()
    root = Explorer(providers).get_object_tree()

    def get_jobs(obj):
        jobs = []
        if obj.group == 'job' or (
                obj.group == 'template' and obj.attrs['template_unit'] == 'job'):
            attrs = dict(obj._impl._raw_data.copy())
            attrs['full_id'] = obj.name
            jobs.append(attrs)
        for child in obj.children:
            jobs += get_jobs(child)
        return jobs
    return sorted(get_jobs(root), key=operator.itemgetter('full_id'))
Example #4
0
def print_objs(group, sa, show_attrs=False, filter_fun=None):
    providers = sa.get_selected_providers()
    obj = Explorer(providers).get_object_tree()

    def _show(obj, indent):
        if group is None or obj.group == group:
            # object must satisfy filter_fun (if supplied) to be printed
            if filter_fun and not filter_fun(obj):
                return
            # Display the object name and group
            print("{}{} {!r}".format(indent, obj.group, obj.name))
            indent += "  "
            if show_attrs:
                for key, value in obj.attrs.items():
                    print("{}{:15}: {!r}".format(indent, key, value))
        if obj.children:
            if group is None:
                print("{}{}".format(indent, _("children")))
                indent += "  "
            for child in obj.children:
                _show(child, indent)

    _show(obj, "")
Example #5
0
 def __init__(self, provider_loader, ns):
     self.explorer = Explorer(provider_loader())
     self.group = ns.group
     self.show_attrs = ns.attrs
Example #6
0
 def __init__(self, provider_list, ns):
     self.explorer = Explorer(provider_list)
     self.group = ns.group