MCPcopy Create free account
hub / github.com/rilldata/rill / newCatalogCache

Function newCatalogCache

runtime/catalog_cache.go:46–84  ·  view source on GitHub ↗

newCatalogCache initializes and warms a new catalog cache. It resets ephemeral fields to the following defaults: reconcile_status=idle, renamed_from=nil, reconcile_on=nil.

(ctx context.Context, ctrl *Controller, instanceID string)

Source from the content-addressed store, hash-verified

44// newCatalogCache initializes and warms a new catalog cache.
45// It resets ephemeral fields to the following defaults: reconcile_status=idle, renamed_from=nil, reconcile_on=nil.
46func newCatalogCache(ctx context.Context, ctrl *Controller, instanceID string) (*catalogCache, error) {
47 store, release, err := ctrl.Runtime.Catalog(ctx, instanceID)
48 if err != nil {
49 return nil, err
50 }
51
52 v, err := store.NextControllerVersion(ctx)
53 if err != nil {
54 return nil, err
55 }
56
57 c := &catalogCache{
58 ctrl: ctrl,
59 store: store,
60 release: release,
61 version: v,
62 resources: make(map[string]map[string]*runtimev1.Resource),
63 dirty: make(map[string]*runtimev1.ResourceName),
64 stored: make(map[string]bool),
65 dag: dag.New(nameStr),
66 cyclic: make(map[string]*runtimev1.ResourceName),
67 renamed: make(map[string]*runtimev1.ResourceName),
68 deleted: make(map[string]*runtimev1.ResourceName),
69 events: make(map[string]catalogEvent),
70 hasEventsCh: make(chan struct{}, 1),
71 }
72
73 rs, err := store.FindResources(ctx)
74 if err != nil {
75 return nil, err
76 }
77 for _, r := range rs {
78 r2 := resourceFromDriver(r)
79 c.link(r2)
80 c.stored[nameStr(r2.Meta.Name)] = true
81 }
82
83 return c, nil
84}
85
86// close closes the catalog cache, flushing any changes to the underlying store.
87func (c *catalogCache) close(ctx context.Context) error {

Callers 1

NewControllerFunction · 0.85

Calls 7

linkMethod · 0.95
NewFunction · 0.92
resourceFromDriverFunction · 0.85
nameStrFunction · 0.85
CatalogMethod · 0.80
NextControllerVersionMethod · 0.65
FindResourcesMethod · 0.65

Tested by

no test coverage detected