示例#1
0
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
}