func LookupNodeFromNodePathString(g *graph.Graph, s string) *graph.Node { parts := strings.Split(s, "/") m, err := nodePathPartToMetadata(parts[0]) if err != nil { logging.GetLogger().Errorf("Unable to parse a part of node path string (%s): %s", parts[0], err.Error()) return nil } node := g.LookupFirstNode(m) if node == nil { return nil } for _, part := range parts[1:] { m, err := nodePathPartToMetadata(part) if err != nil { return nil } node = g.LookupFirstChild(node, m) if node == nil { return nil } } return node }