in network/hnswrapper/hnsv2wrapperfake.go [286:340]
func (f Hnsv2wrapperFake) ApplyEndpointPolicy(endpoint *hcn.HostComputeEndpoint, requestType hcn.RequestType, endpointPolicy hcn.PolicyEndpointRequest) error {
f.Lock()
defer f.Unlock()
delayHnsCall(f.Delay)
epCache, ok := f.Cache.endpoints[endpoint.Id]
if !ok {
return newErrorFakeHNS(fmt.Sprintf("[FakeHNS] could not find endpoint %s", endpoint.Id))
}
switch requestType {
case hcn.RequestTypeAdd:
for _, newPolicy := range endpointPolicy.Policies {
if newPolicy.Type != hcn.ACL {
continue
}
var aclPol FakeEndpointPolicy
err := json.Unmarshal(newPolicy.Settings, &aclPol)
if err != nil {
return newErrorFakeHNS(err.Error())
}
epCache.Policies = append(epCache.Policies, &aclPol)
}
case hcn.RequestTypeRemove:
for _, newPolicy := range endpointPolicy.Policies {
if newPolicy.Type != hcn.ACL {
continue
}
var aclPol FakeEndpointPolicy
err := json.Unmarshal(newPolicy.Settings, &aclPol)
if err != nil {
return newErrorFakeHNS(err.Error())
}
err = epCache.RemovePolicy(&aclPol)
if err != nil {
return err
}
}
case hcn.RequestTypeUpdate:
epCache.Policies = make([]*FakeEndpointPolicy, 0)
for _, newPolicy := range endpointPolicy.Policies {
if newPolicy.Type != hcn.ACL {
continue
}
var aclPol FakeEndpointPolicy
err := json.Unmarshal(newPolicy.Settings, &aclPol)
if err != nil {
return newErrorFakeHNS(err.Error())
}
epCache.Policies = append(epCache.Policies, &aclPol)
}
case hcn.RequestTypeRefresh:
return nil
}
return nil
}