engine: graph, resources: Add filtered graph function

This lets a resource query the resource graph in a controlled way.
This commit is contained in:
James Shubin
2019-10-25 09:36:27 -04:00
parent 31030343a2
commit eaab1aae28
3 changed files with 67 additions and 0 deletions

View File

@@ -21,6 +21,7 @@ import (
"encoding/gob"
"fmt"
"github.com/purpleidea/mgmt/pgraph"
"github.com/purpleidea/mgmt/util/errwrap"
"gopkg.in/yaml.v2"
@@ -126,6 +127,14 @@ type Init struct {
// FIXME: it might be better to offer a safer, more limited, GraphQuery?
//Graph func() *pgraph.Graph // TODO: not implemented, use FilteredGraph
// FilteredGraph is a function that returns a filtered variant of the
// current graph. Only resource that have allowed themselves to be added
// into this graph will appear. If they did not consent, then those
// vertices and any associated edges, will not be present.
FilteredGraph func() (*pgraph.Graph, error)
// TODO: GraphQuery offers an interface to query the resource graph.
// World provides a connection to the outside world. This is most often
// used for communicating with the distributed database.
World World