-
Notifications
You must be signed in to change notification settings - Fork 474
/
policy.go
36 lines (32 loc) · 1.02 KB
/
policy.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
package models
import (
"github.com/kiali/kiali/kubernetes"
)
type Policies []Policy
type Policy struct {
IstioBase
Spec struct {
Targets interface{} `json:"targets"`
Peers interface{} `json:"peers"`
PeerIsOptional interface{} `json:"peerIsOptional"`
Origins interface{} `json:"origins"`
OriginIsOptional interface{} `json:"originIsOptional"`
PrincipalBinding interface{} `json:"principalBinding"`
} `json:"spec"`
}
func (ps *Policies) Parse(policies []kubernetes.IstioObject) {
for _, qs := range policies {
policy := Policy{}
policy.Parse(qs)
*ps = append(*ps, policy)
}
}
func (p *Policy) Parse(policy kubernetes.IstioObject) {
p.IstioBase.Parse(policy)
p.Spec.Targets = policy.GetSpec()["targets"]
p.Spec.Peers = policy.GetSpec()["peers"]
p.Spec.PeerIsOptional = policy.GetSpec()["peersIsOptional"]
p.Spec.Origins = policy.GetSpec()["origins"]
p.Spec.OriginIsOptional = policy.GetSpec()["originIsOptinal"]
p.Spec.PrincipalBinding = policy.GetSpec()["principalBinding"]
}