MCPcopy
hub / github.com/apecloud/kubeblocks / FindMatchedVertex

Method FindMatchedVertex

pkg/controller/model/graph_client.go:235–260  ·  view source on GitHub ↗
(dag *graph.DAG, object client.Object)

Source from the content-addressed store, hash-verified

233}
234
235func (r *realGraphClient) FindMatchedVertex(dag *graph.DAG, object client.Object) graph.Vertex {
236 keyLookFor, err := GetGVKName(object)
237 if err != nil {
238 panic(fmt.Sprintf("parse gvk name failed, obj: %T, name: %s, err: %v", object, object.GetName(), err))
239 }
240 var found graph.Vertex
241 findVertex := func(v graph.Vertex) error {
242 if found != nil {
243 return nil
244 }
245 ov, _ := v.(*ObjectVertex)
246 key, err := GetGVKName(ov.Obj)
247 if err != nil {
248 panic(fmt.Sprintf("parse gvk name failed, obj: %T, name: %s, err: %v", ov.Obj, ov.Obj.GetName(), err))
249 }
250 if *keyLookFor == *key {
251 found = v
252 }
253 return nil
254 }
255 err = dag.WalkReverseTopoOrder(findVertex, nil)
256 if err != nil {
257 panic(fmt.Sprintf("walk DAG failed, err: %v", err))
258 }
259 return found
260}
261
262var _ GraphClient = &realGraphClient{}
263

Callers 4

RootMethod · 0.95
IsActionMethod · 0.95
DependOnMethod · 0.95
doWriteMethod · 0.95

Calls 3

GetGVKNameFunction · 0.85
WalkReverseTopoOrderMethod · 0.80
GetNameMethod · 0.65

Tested by

no test coverage detected