-
Notifications
You must be signed in to change notification settings - Fork 438
/
ovn-nb-logical_router_route.go
57 lines (46 loc) · 1.35 KB
/
ovn-nb-logical_router_route.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
package ovs
import (
"context"
"github.com/ovn-org/libovsdb/client"
"github.com/kubeovn/kube-ovn/pkg/ovsdb/ovnnb"
)
func (c OvnClient) GetLogicalRouterRouteByOpts(key, value string) ([]ovnnb.LogicalRouterStaticRoute, error) {
ctx, cancel := context.WithTimeout(context.Background(), c.Timeout)
defer cancel()
api, err := c.ovnNbClient.WherePredict(ctx, func(r *ovnnb.LogicalRouterStaticRoute) bool {
if len(r.Options) > 0 {
if v, ok := r.Options[key]; ok {
return v == value
}
}
return false
})
if err != nil {
return nil, err
}
var lrRouteList []ovnnb.LogicalRouterStaticRoute
if err = api.List(context.TODO(), &lrRouteList); err != nil && err != client.ErrNotFound {
return nil, err
}
return lrRouteList, nil
}
func (c OvnClient) GetLogicalRouterPoliciesByExtID(key, value string) ([]ovnnb.LogicalRouterPolicy, error) {
ctx, cancel := context.WithTimeout(context.Background(), c.Timeout)
defer cancel()
api, err := c.ovnNbClient.WherePredict(ctx, func(p *ovnnb.LogicalRouterPolicy) bool {
if len(p.ExternalIDs) > 0 {
if v, ok := p.ExternalIDs[key]; ok {
return v == value
}
}
return false
})
if err != nil {
return nil, err
}
var lrPolicyList []ovnnb.LogicalRouterPolicy
if err = api.List(context.TODO(), &lrPolicyList); err != nil && err != client.ErrNotFound {
return nil, err
}
return lrPolicyList, nil
}