def METHOD_NAME(self, node: Node) -> None:
    children_values = []
    if node.type == "root":
        children_values = [n.value for n in node.children]
    if node.type == "cluster":
        children_values = ClusterObject.objects.filter(cluster=node.value).order_by("id")
    elif node.type == "service":
        children_values = ServiceComponent.objects.filter(cluster=node.value.cluster, service=node.value).order_by(
            "id"
        )
    elif node.type == "component":
        children_values = [
            c.host
            for c in HostComponent.objects.filter(
                cluster=node.value.service.cluster,
                service=node.value.service,
                component=node.value,
            )
            .select_related("host")
            .order_by("id")
        ]
    elif node.type == "host":
        children_values = []
    elif node.type == "provider":
        children_values = Host.objects.filter(provider=node.value)
    for value in children_values:
        child = self._make_node(value)
        node.add_child(child)
        child.add_parent(node)
        self.METHOD_NAME(child)