diff --git a/pkg/hns/netconf.go b/pkg/hns/netconf.go index 6e7cc6e6a..5a17a832f 100644 --- a/pkg/hns/netconf.go +++ b/pkg/hns/netconf.go @@ -40,7 +40,10 @@ func (n *NetConf) MarshalPolicies() []json.RawMessage { var result []json.RawMessage for _, policyArg := range n.AdditionalArgs { - if data, err := json.Marshal(policyArg); err == nil { + if !strings.EqualFold(policyArg.Type, "EndpointPolicy") { + continue + } + if data, err := json.Marshal(policyArg.Value); err == nil { result = append(result, data) } } @@ -48,6 +51,7 @@ func (n *NetConf) MarshalPolicies() []json.RawMessage { return result } + // ApplyOutboundNatPolicy applies NAT Policy in VFP using HNS // Simultaneously an exception is added for the network that has to be Nat'd func (n *NetConf) ApplyOutboundNatPolicy(nwToNat string) { diff --git a/pkg/hns/netconf_test.go b/pkg/hns/netconf_test.go index 9478decc4..ff25010a5 100644 --- a/pkg/hns/netconf_test.go +++ b/pkg/hns/netconf_test.go @@ -126,7 +126,7 @@ var _ = Describe("HNS NetConf", func() { n := NetConf{ AdditionalArgs: []policyArgument{ { - Type: "someType", + Type: "EndpointPolicy", Value: map[string]interface{}{ "someKey": "someValue", }, @@ -141,13 +141,13 @@ var _ = Describe("HNS NetConf", func() { } result := n.MarshalPolicies() - Expect(len(result)).To(Equal(2)) + Expect(len(result)).To(Equal(1)) - var policy policyArgument + var policy map[string]interface{} err := json.Unmarshal(result[0], &policy) Expect(err).ToNot(HaveOccurred()) - Expect(policy.Type).To(Equal("someType")) - Expect(policy.Value).To(HaveKeyWithValue("someKey", "someValue")) + Expect(policy).Should(HaveKey("someKey")) + Expect(policy["someKey"]).To(Equal("someValue")) }) }) diff --git a/plugins/main/windows/overlay/overlay_windows.go b/plugins/main/windows/overlay/overlay_windows.go index 6ea852542..7d667a916 100644 --- a/plugins/main/windows/overlay/overlay_windows.go +++ b/plugins/main/windows/overlay/overlay_windows.go @@ -64,12 +64,14 @@ func cmdAdd(args *skel.CmdArgs) error { if len(n.endpointMacPrefix) != 5 || n.endpointMacPrefix[2] != '-' { return fmt.Errorf("endpointMacPrefix [%v] is invalid, value must be of the format xx-xx", n.endpointMacPrefix) } + } else{ + n.endpointMacPrefix="0E-2A" } networkName := n.Name hnsNetwork, err := hcsshim.GetHNSNetworkByName(networkName) if err != nil { - return err + return fmt.Errorf("Error while GETHNSNewtorkByName(%v): %v",networkName,err) } if hnsNetwork == nil { @@ -86,13 +88,13 @@ func cmdAdd(args *skel.CmdArgs) error { // run the IPAM plugin and get back the config to apply r, err := ipam.ExecAdd(n.IPAM.Type, args.StdinData) if err != nil { - return nil, err + return nil, fmt.Errorf("Error while ipam.ExecAdd: %v",err) } // Convert whatever the IPAM result was into the current Result type result, err := current.NewResultFromResult(r) if err != nil { - return nil, err + return nil, fmt.Errorf("Error while NewResultFromResult: %v",err) } if len(result.IPs) == 0 { @@ -124,12 +126,12 @@ func cmdAdd(args *skel.CmdArgs) error { }) if err != nil { - return err + return fmt.Errorf("Error while ProvisionEndpoint(%v,%v,%v) :%v",epName, hnsNetwork.Id,args.ContainerID, err) } result, err := hns.ConstructResult(hnsNetwork, hnsEndpoint) if err != nil { - return err + return fmt.Errorf("Error while constructResult: %v",err) } return types.PrintResult(result, cniVersion)