func autoConvert_v1_EgressNetworkPolicyRule_To_api_EgressNetworkPolicyRule(in *EgressNetworkPolicyRule, out *api.EgressNetworkPolicyRule, s conversion.Scope) error { out.Type = api.EgressNetworkPolicyRuleType(in.Type) if err := Convert_v1_EgressNetworkPolicyPeer_To_api_EgressNetworkPolicyPeer(&in.To, &out.To, s); err != nil { return err } return nil }
func TestValidateEgressNetworkPolicy(t *testing.T) { tests := []struct { name string fw *api.EgressNetworkPolicy expectedErrors int }{ { name: "Empty", fw: &api.EgressNetworkPolicy{ ObjectMeta: kapi.ObjectMeta{ Name: "default", Namespace: "testing", }, Spec: api.EgressNetworkPolicySpec{ Egress: []api.EgressNetworkPolicyRule{}, }, }, expectedErrors: 0, }, { name: "Good one", fw: &api.EgressNetworkPolicy{ ObjectMeta: kapi.ObjectMeta{ Name: "default", Namespace: "testing", }, Spec: api.EgressNetworkPolicySpec{ Egress: []api.EgressNetworkPolicyRule{ { Type: api.EgressNetworkPolicyRuleAllow, To: api.EgressNetworkPolicyPeer{ CIDRSelector: "1.2.3.0/24", }, }, { Type: api.EgressNetworkPolicyRuleDeny, To: api.EgressNetworkPolicyPeer{ CIDRSelector: "1.2.3.4/32", }, }, }, }, }, expectedErrors: 0, }, { name: "Bad policy", fw: &api.EgressNetworkPolicy{ ObjectMeta: kapi.ObjectMeta{ Name: "default", Namespace: "testing", }, Spec: api.EgressNetworkPolicySpec{ Egress: []api.EgressNetworkPolicyRule{ { Type: api.EgressNetworkPolicyRuleType("Bob"), To: api.EgressNetworkPolicyPeer{ CIDRSelector: "1.2.3.0/24", }, }, { Type: api.EgressNetworkPolicyRuleDeny, To: api.EgressNetworkPolicyPeer{ CIDRSelector: "1.2.3.4/32", }, }, }, }, }, expectedErrors: 1, }, { name: "Bad destination", fw: &api.EgressNetworkPolicy{ ObjectMeta: kapi.ObjectMeta{ Name: "default", Namespace: "testing", }, Spec: api.EgressNetworkPolicySpec{ Egress: []api.EgressNetworkPolicyRule{ { Type: api.EgressNetworkPolicyRuleAllow, To: api.EgressNetworkPolicyPeer{ CIDRSelector: "1.2.3.4", }, }, { Type: api.EgressNetworkPolicyRuleDeny, To: api.EgressNetworkPolicyPeer{ CIDRSelector: "", }, }, }, }, }, expectedErrors: 2, }, } for _, tc := range tests { errs := ValidateEgressNetworkPolicy(tc.fw) if len(errs) != tc.expectedErrors { t.Errorf("Test case %s expected %d error(s), got %d. %v", tc.name, tc.expectedErrors, len(errs), errs) } } }