Skip to content

Commit f6d721a

Browse files
committed
topology: add GetOwner method
1 parent b500ae4 commit f6d721a

File tree

2 files changed

+16
-41
lines changed

2 files changed

+16
-41
lines changed

topology/probes/ovn/ovn.go

Lines changed: 7 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -132,11 +132,7 @@ func (l *switchPortLinker) GetABLinks(lsNode *graph.Node) (edges []*graph.Edge)
132132
ports, _ := l.probe.ovndbapi.LSPList(name)
133133
for _, lp := range ports {
134134
if lpNode, _ := probe.lspIndexer.GetNode(lp.UUID); lpNode != nil {
135-
link, err := topology.NewLink(probe.graph, lsNode, lpNode, topology.OwnershipLink, nil)
136-
if err != nil {
137-
logging.GetLogger().Error(err)
138-
continue
139-
}
135+
link := topology.NewLink(probe.graph, lsNode, lpNode, topology.OwnershipLink, nil)
140136
edges = append(edges, link)
141137
}
142138
}
@@ -153,11 +149,7 @@ func (l *switchPortLinker) GetBALinks(lpNode *graph.Node) (edges []*graph.Edge)
153149
for _, lp := range ports {
154150
if lp.UUID == uuid {
155151
if lsNode, _ := probe.lsIndexer.GetNode(ls.UUID); lsNode != nil {
156-
link, err := topology.NewLink(probe.graph, lsNode, lpNode, topology.OwnershipLink, nil)
157-
if err != nil {
158-
logging.GetLogger().Error(link)
159-
continue
160-
}
152+
link := topology.NewLink(probe.graph, lsNode, lpNode, topology.OwnershipLink, nil)
161153
edges = append(edges, link)
162154
}
163155
}
@@ -177,11 +169,7 @@ func (l *routerPortLinker) GetABLinks(lrNode *graph.Node) (edges []*graph.Edge)
177169
ports, _ := l.probe.ovndbapi.LRPList(name)
178170
for _, lp := range ports {
179171
if lrpNode, _ := probe.lrpIndexer.GetNode(lp.UUID); lrpNode != nil {
180-
link, err := topology.NewLink(probe.graph, lrNode, lrpNode, topology.OwnershipLink, nil)
181-
if err != nil {
182-
logging.GetLogger().Error(err)
183-
continue
184-
}
172+
link := topology.NewLink(probe.graph, lrNode, lrpNode, topology.OwnershipLink, nil)
185173
edges = append(edges, link)
186174
}
187175
}
@@ -198,11 +186,7 @@ func (l *routerPortLinker) GetBALinks(lrpNode *graph.Node) (edges []*graph.Edge)
198186
for _, lp := range ports {
199187
if lp.UUID == uuid {
200188
if lrNode, _ := probe.lrIndexer.GetNode(lr.UUID); lrNode != nil {
201-
link, err := topology.NewLink(probe.graph, lrNode, lrpNode, topology.OwnershipLink, nil)
202-
if err != nil {
203-
logging.GetLogger().Error(link)
204-
continue
205-
}
189+
link := topology.NewLink(probe.graph, lrNode, lrpNode, topology.OwnershipLink, nil)
206190
edges = append(edges, link)
207191
}
208192
}
@@ -221,9 +205,8 @@ func (l *aclLinker) GetABLinks(lsNode *graph.Node) (edges []*graph.Edge) {
221205
acls, _ := l.probe.ovndbapi.ACLList(name)
222206
for _, acl := range acls {
223207
if aclNode, _ := l.probe.aclIndexer.GetNode(acl.UUID); aclNode != nil {
224-
if link, _ := topology.NewLink(l.probe.graph, lsNode, aclNode, topology.OwnershipLink, nil); link != nil {
225-
edges = append(edges, link)
226-
}
208+
link := topology.NewLink(l.probe.graph, lsNode, aclNode, topology.OwnershipLink, nil)
209+
edges = append(edges, link)
227210
}
228211
}
229212
return edges
@@ -238,11 +221,7 @@ func (l *aclLinker) GetBALinks(aclNode *graph.Node) (edges []*graph.Edge) {
238221
for _, acl := range acls {
239222
if acl.UUID == uuid {
240223
if lsNode, _ := l.probe.lsIndexer.GetNode(ls.UUID); lsNode != nil {
241-
link, err := topology.NewLink(l.probe.graph, lsNode, aclNode, topology.OwnershipLink, nil)
242-
if err != nil {
243-
logging.GetLogger().Error(link)
244-
continue
245-
}
224+
link := topology.NewLink(l.probe.graph, lsNode, aclNode, topology.OwnershipLink, nil)
246225
edges = append(edges, link)
247226
}
248227
}

topology/topology.go

Lines changed: 9 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -120,9 +120,12 @@ func IsOwnershipLinked(g *graph.Graph, node *graph.Node) bool {
120120
return len(edges) != 0
121121
}
122122

123-
// GetOwnershipLink get ownership Link between the parent and the child node or nil
124-
func GetOwnershipLink(g *graph.Graph, parent *graph.Node, child *graph.Node) *graph.Edge {
125-
return g.GetFirstLink(parent, child, OwnershipMetadata())
123+
// GetOwner returns the parent linked with an ownership link
124+
func GetOwner(g *graph.Graph, child *graph.Node) *graph.Node {
125+
if parents := g.LookupParents(child, nil, OwnershipMetadata()); len(parents) > 0 {
126+
return parents[0]
127+
}
128+
return nil
126129
}
127130

128131
// AddOwnershipLink Link between the parent and the child node, the child can have only one parent, previous will be overwritten
@@ -146,26 +149,19 @@ func HaveLink(g *graph.Graph, node1 *graph.Node, node2 *graph.Node, relationType
146149
}
147150

148151
// NewLink creates a link between a parent and a child node with the specified relation type and metadata
149-
func NewLink(g *graph.Graph, node1 *graph.Node, node2 *graph.Node, relationType string, metadata graph.Metadata) (*graph.Edge, error) {
152+
func NewLink(g *graph.Graph, node1 *graph.Node, node2 *graph.Node, relationType string, metadata graph.Metadata) *graph.Edge {
150153
m := graph.Metadata{"RelationType": relationType}
151154
for k, v := range metadata {
152155
m[k] = v
153156
}
154157

155158
id, _ := uuid.NewV5(uuid.NamespaceOID, []byte(node1.ID+node2.ID+graph.Identifier(relationType)))
156-
edge := g.CreateEdge(graph.Identifier(id.String()), node1, node2, m, graph.Time(time.Now()))
157-
if edge == nil {
158-
return nil, fmt.Errorf("Failed to create edge with id %s", id.String())
159-
}
160-
return edge, nil
159+
return g.CreateEdge(graph.Identifier(id.String()), node1, node2, m, graph.Time(time.Now()))
161160
}
162161

163162
// AddLink links the parent and the child node with the specified relation type and metadata
164163
func AddLink(g *graph.Graph, node1 *graph.Node, node2 *graph.Node, relationType string, metadata graph.Metadata) (*graph.Edge, error) {
165-
edge, err := NewLink(g, node1, node2, relationType, metadata)
166-
if err != nil {
167-
return nil, err
168-
}
164+
edge := NewLink(g, node1, node2, relationType, metadata)
169165
return edge, g.AddEdge(edge)
170166
}
171167

0 commit comments

Comments
 (0)