diff options
author | FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp> | 2018-08-16 22:58:22 +0900 |
---|---|---|
committer | FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp> | 2018-08-16 22:58:22 +0900 |
commit | f0b724878360618dd0a950364709b048486771b6 (patch) | |
tree | 9b382035c4b759bd1567436e11ab0b91ff062d10 /internal/pkg/table/policy.go | |
parent | 0b6486f34ccbb16962ecd3d73e08a85c57fadde7 (diff) |
pkt/server: ListPolicy() and ListStatement() support filtering like ListDefinedSet() and ListPolicyAassignment()
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
Diffstat (limited to 'internal/pkg/table/policy.go')
-rw-r--r-- | internal/pkg/table/policy.go | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/internal/pkg/table/policy.go b/internal/pkg/table/policy.go index 23c2110c..1f5be006 100644 --- a/internal/pkg/table/policy.go +++ b/internal/pkg/table/policy.go @@ -3566,12 +3566,15 @@ func (r *RoutingPolicy) ReplaceDefinedSet(a DefinedSet) (err error) { return err } -func (r *RoutingPolicy) GetStatement() []*config.Statement { +func (r *RoutingPolicy) GetStatement(name string) []*config.Statement { r.mu.RLock() defer r.mu.RUnlock() l := make([]*config.Statement, 0, len(r.statementMap)) for _, st := range r.statementMap { + if name != "" && name != st.Name { + continue + } l = append(l, st.ToConfig()) } return l @@ -3638,11 +3641,14 @@ func (r *RoutingPolicy) ReplaceStatement(st *Statement) (err error) { return err } -func (r *RoutingPolicy) GetAllPolicy() []*config.PolicyDefinition { +func (r *RoutingPolicy) GetPolicy(name string) []*config.PolicyDefinition { r.mu.RLock() var ps Policies for _, p := range r.policyMap { + if name != "" && name != p.Name { + continue + } ps = append(ps, p) } r.mu.RUnlock() |