From e90a58a6bc7071e4ee1626ad44cf9aef92adac0a Mon Sep 17 00:00:00 2001 From: dolibali <139439533+dolibali@users.noreply.github.com> Date: Sun, 29 Sep 2024 16:56:24 +0800 Subject: [PATCH] Fix error log not printed nearby in ovs package (#4562) * Fix error log not printed nearby in ovs package --------- Signed-off-by: dolibali Co-authored-by: dolibali --- pkg/ovs/ovn-ic-sbctl.go | 5 +++++ pkg/ovs/ovn-nb-acl.go | 23 ++++++++++++++++++-- pkg/ovs/ovn-nb-address_set.go | 5 +++++ pkg/ovs/ovn-nb-dhcp_options.go | 6 +++++ pkg/ovs/ovn-nb-gateway_chassis.go | 1 + pkg/ovs/ovn-nb-load_balancer.go | 14 ++++++++++++ pkg/ovs/ovn-nb-load_balancer_health_check.go | 5 +++++ pkg/ovs/ovn-nb-logical_router.go | 7 ++++++ pkg/ovs/ovn-nb-logical_router_policy.go | 17 +++++++++++++++ pkg/ovs/ovn-nb-logical_router_port.go | 1 + pkg/ovs/ovn-nb-logical_router_route.go | 5 +++++ pkg/ovs/ovn-nb-logical_router_test.go | 2 ++ pkg/ovs/ovn-nb-logical_switch.go | 11 ++++++++++ pkg/ovs/ovn-nb-logical_switch_port.go | 23 ++++++++++++++++++++ pkg/ovs/ovn-nb-logical_switch_test.go | 2 ++ pkg/ovs/ovn-nb-nat.go | 4 ++++ pkg/ovs/ovn-nb-port_group.go | 15 +++++++++++++ pkg/ovs/ovn-nb.go | 15 +++++++++++++ pkg/ovs/ovn-sb-chassis.go | 8 +++++++ pkg/ovs/ovn.go | 1 + pkg/ovs/ovs-vsctl.go | 2 ++ pkg/ovs/ovs-vsctl_linux.go | 7 +++++- pkg/ovs/util.go | 4 ++++ 23 files changed, 180 insertions(+), 3 deletions(-) diff --git a/pkg/ovs/ovn-ic-sbctl.go b/pkg/ovs/ovn-ic-sbctl.go index a80ed60e8f4..bc787d989c1 100644 --- a/pkg/ovs/ovn-ic-sbctl.go +++ b/pkg/ovs/ovn-ic-sbctl.go @@ -101,6 +101,7 @@ func (c LegacyClient) GetRouteUUIDsInOneAZ(uuid string) ([]string, error) { func (c LegacyClient) GetPortBindingUUIDsInOneAZ(uuid string) ([]string, error) { portBindings, err := c.FindUUIDWithAttrInTable("availability_zone", uuid, "Port_Binding") if err != nil { + klog.Error(err) return nil, fmt.Errorf("failed to get ovn-ic-sb Port_Binding with uuid %v: %w", uuid, err) } return portBindings, nil @@ -109,6 +110,7 @@ func (c LegacyClient) GetPortBindingUUIDsInOneAZ(uuid string) ([]string, error) func (c LegacyClient) DestroyGateways(uuids []string) error { for _, uuid := range uuids { if err := c.DestroyTableWithUUID(uuid, "gateway"); err != nil { + klog.Error(err) return fmt.Errorf("failed to delete gateway %v: %w", uuid, err) } } @@ -118,6 +120,7 @@ func (c LegacyClient) DestroyGateways(uuids []string) error { func (c LegacyClient) DestroyRoutes(uuids []string) error { for _, uuid := range uuids { if err := c.DestroyTableWithUUID(uuid, "route"); err != nil { + klog.Error(err) return fmt.Errorf("failed to delete route %v: %w", uuid, err) } } @@ -127,6 +130,7 @@ func (c LegacyClient) DestroyRoutes(uuids []string) error { func (c LegacyClient) DestroyPortBindings(uuids []string) error { for _, uuid := range uuids { if err := c.DestroyTableWithUUID(uuid, "Port_Binding"); err != nil { + klog.Error(err) return fmt.Errorf("failed to delete Port_Binding %v: %w", uuid, err) } } @@ -135,6 +139,7 @@ func (c LegacyClient) DestroyPortBindings(uuids []string) error { func (c LegacyClient) DestroyChassis(uuid string) error { if err := c.DestroyTableWithUUID(uuid, "availability_zone"); err != nil { + klog.Error(err) return fmt.Errorf("failed to delete chassis %v: %w", uuid, err) } return nil diff --git a/pkg/ovs/ovn-nb-acl.go b/pkg/ovs/ovn-nb-acl.go index 853172a4d3d..76375698eb0 100644 --- a/pkg/ovs/ovn-nb-acl.go +++ b/pkg/ovs/ovn-nb-acl.go @@ -43,6 +43,7 @@ func (c *OVNNbClient) UpdateIngressACLOps(pgName, asIngressName, asExceptName, p defaultDropACL, err := c.newACLWithoutCheck(pgName, ovnnb.ACLDirectionToLport, util.IngressDefaultDrop, allIPMatch.String(), ovnnb.ACLActionDrop, util.NetpolACLTier, options) if err != nil { + klog.Error(err) return nil, fmt.Errorf("new default drop ingress acl for port group %s: %w", pgName, err) } @@ -61,6 +62,7 @@ func (c *OVNNbClient) UpdateIngressACLOps(pgName, asIngressName, asExceptName, p allowACL, err := c.newACLWithoutCheck(pgName, ovnnb.ACLDirectionToLport, util.IngressAllowPriority, m, ovnnb.ACLActionAllowRelated, util.NetpolACLTier, options) if err != nil { + klog.Error(err) return nil, fmt.Errorf("new allow ingress acl for port group %s: %w", pgName, err) } @@ -69,7 +71,8 @@ func (c *OVNNbClient) UpdateIngressACLOps(pgName, asIngressName, asExceptName, p ops, err := c.CreateAclsOps(pgName, portGroupKey, acls...) if err != nil { - return nil, err + klog.Error(err) + return nil, fmt.Errorf("failed to create ingress acl for port group %s: %w", pgName, err) } return ops, nil @@ -197,6 +200,7 @@ func (c *OVNNbClient) CreateGatewayACL(lsName, pgName, gateway, u2oInterconnecti } if err := c.CreateAcls(parentName, parentType, acls...); err != nil { + klog.Error(err) return fmt.Errorf("add gateway acls to %s: %w", pgName, err) } @@ -283,13 +287,16 @@ func (c *OVNNbClient) CreateSgDenyAllACL(sgName string) error { return fmt.Errorf("new deny all egress acl for security group %s: %w", sgName, err) } - if err := c.CreateAcls(pgName, portGroupKey, ingressACL, egressACL); err != nil { + err = c.CreateAcls(pgName, portGroupKey, ingressACL, egressACL) + if err != nil { + klog.Error(err) return fmt.Errorf("add deny all acl to port group %s: %w", pgName, err) } return nil } +// CreateSgACL create allow acl for security group func (c *OVNNbClient) CreateSgBaseACL(sgName, direction string) error { pgName := GetSgPortGroupName(sgName) @@ -365,6 +372,7 @@ func (c *OVNNbClient) CreateSgBaseACL(sgName, direction string) error { newACL(vrrpMatch.String()) if err := c.CreateAcls(pgName, portGroupKey, acls...); err != nil { + klog.Error(err) return fmt.Errorf("add ingress acls to port group %s: %w", pgName, err) } return nil @@ -375,6 +383,7 @@ func (c *OVNNbClient) UpdateSgACL(sg *kubeovnv1.SecurityGroup, direction string) // clear acl if err := c.DeleteAcls(pgName, portGroupKey, direction, nil); err != nil { + klog.Error(err) return fmt.Errorf("delete direction '%s' acls from port group %s: %w", direction, pgName, err) } @@ -422,6 +431,7 @@ func (c *OVNNbClient) UpdateSgACL(sg *kubeovnv1.SecurityGroup, direction string) } if err := c.CreateAcls(pgName, portGroupKey, acls...); err != nil { + klog.Error(err) return fmt.Errorf("add acl to port group %s: %w", pgName, err) } @@ -430,6 +440,7 @@ func (c *OVNNbClient) UpdateSgACL(sg *kubeovnv1.SecurityGroup, direction string) func (c *OVNNbClient) UpdateLogicalSwitchACL(lsName, cidrBlock string, subnetAcls []kubeovnv1.ACL, allowEWTraffic bool) error { if err := c.DeleteAcls(lsName, logicalSwitchKey, "", map[string]string{"subnet": lsName}); err != nil { + klog.Error(err) return fmt.Errorf("delete subnet acls from %s: %w", lsName, err) } @@ -487,6 +498,7 @@ func (c *OVNNbClient) UpdateLogicalSwitchACL(lsName, cidrBlock string, subnetAcl } if err := c.CreateAcls(lsName, logicalSwitchKey, acls...); err != nil { + klog.Error(err) return fmt.Errorf("add acls to logical switch %s: %w", lsName, err) } @@ -506,6 +518,7 @@ func (c *OVNNbClient) UpdateACL(acl *ovnnb.ACL, fields ...interface{}) error { } if err = c.Transact("acl-update", op); err != nil { + klog.Error(err) return fmt.Errorf("update acl with 'direction %s priority %d match %s': %w", acl.Direction, acl.Priority, acl.Match, err) } @@ -516,6 +529,7 @@ func (c *OVNNbClient) UpdateACL(acl *ovnnb.ACL, fields ...interface{}) error { func (c *OVNNbClient) SetLogicalSwitchPrivate(lsName, cidrBlock, nodeSwitchCIDR string, allowSubnets []string) error { // clear acls if err := c.DeleteAcls(lsName, logicalSwitchKey, "", nil); err != nil { + klog.Error(err) return fmt.Errorf("clear logical switch %s acls: %w", lsName, err) } @@ -705,6 +719,7 @@ func (c *OVNNbClient) CreateBareACL(parentName, direction, priority, match, acti } if err = c.Transact("acl-create", op); err != nil { + klog.Error(err) return fmt.Errorf("create acl direction %s priority %s match %s action %s: %w", direction, priority, match, action, err) } @@ -722,6 +737,7 @@ func (c *OVNNbClient) DeleteAcls(parentName, parentType, direction string, exter } if err = c.Transact("acls-del", ops); err != nil { + klog.Error(err) return fmt.Errorf("del acls from type %s %s: %w", parentType, parentName, err) } @@ -780,6 +796,7 @@ func (c *OVNNbClient) GetACL(parent, direction, priority, match string, ignoreNo if err := c.ovsDbClient.WhereCache(func(acl *ovnnb.ACL) bool { return len(acl.ExternalIDs) != 0 && acl.ExternalIDs[aclParentKey] == parent && acl.Direction == direction && acl.Priority == intPriority && acl.Match == match }).List(ctx, &aclList); err != nil { + klog.Error(err) return nil, fmt.Errorf("get acl with 'parent %s direction %s priority %s match %s': %w", parent, direction, priority, match, err) } @@ -1346,6 +1363,7 @@ func (c *OVNNbClient) UpdateAnpRuleACLOps(pgName, asName, protocol, aclName stri strPriority := strconv.Itoa(priority) setACL, err := c.newACLWithoutCheck(pgName, direction, strPriority, m, aclAction, tier, options) if err != nil { + klog.Error(err) return nil, fmt.Errorf("new ingress acl for port group %s: %w", pgName, err) } @@ -1354,6 +1372,7 @@ func (c *OVNNbClient) UpdateAnpRuleACLOps(pgName, asName, protocol, aclName stri ops, err := c.CreateAclsOps(pgName, portGroupKey, acls...) if err != nil { + klog.Error(err) return nil, err } diff --git a/pkg/ovs/ovn-nb-address_set.go b/pkg/ovs/ovn-nb-address_set.go index 798bb74194f..1476f8c56bd 100644 --- a/pkg/ovs/ovn-nb-address_set.go +++ b/pkg/ovs/ovn-nb-address_set.go @@ -44,6 +44,7 @@ func (c *OVNNbClient) CreateAddressSet(asName string, externalIDs map[string]str } if err = c.Transact("as-add", ops); err != nil { + klog.Error(err) return fmt.Errorf("create address set %s: %w", asName, err) } @@ -78,6 +79,7 @@ func (c *OVNNbClient) AddressSetUpdateAddress(asName string, addresses ...string as.Addresses = addresses if err := c.UpdateAddressSet(as, &as.Addresses); err != nil { + klog.Error(err) return fmt.Errorf("set address set %s addresses %v: %w", asName, addresses, err) } @@ -123,6 +125,7 @@ func (c *OVNNbClient) DeleteAddressSet(asName string) error { } if err := c.Transact("as-del", op); err != nil { + klog.Error(err) return fmt.Errorf("delete address set %s: %w", asName, err) } @@ -143,6 +146,7 @@ func (c *OVNNbClient) DeleteAddressSets(externalIDs map[string]string) error { } if err := c.Transact("ass-del", op); err != nil { + klog.Error(err) return fmt.Errorf("delete address sets with external IDs %v: %w", externalIDs, err) } @@ -179,6 +183,7 @@ func (c *OVNNbClient) ListAddressSets(externalIDs map[string]string) ([]ovnnb.Ad asList := make([]ovnnb.AddressSet, 0) if err := c.WhereCache(addressSetFilter(externalIDs)).List(ctx, &asList); err != nil { + klog.Error(err) return nil, fmt.Errorf("list address set: %w", err) } diff --git a/pkg/ovs/ovn-nb-dhcp_options.go b/pkg/ovs/ovn-nb-dhcp_options.go index 5eae3b60769..8543f18bfa3 100644 --- a/pkg/ovs/ovn-nb-dhcp_options.go +++ b/pkg/ovs/ovn-nb-dhcp_options.go @@ -52,6 +52,7 @@ func (c *OVNNbClient) UpdateDHCPOptions(subnet *kubeovnv1.Subnet, mtu int) (*DHC /* delete dhcp options */ if !enableDHCP { if err := c.DeleteDHCPOptions(lsName, subnet.Spec.Protocol); err != nil { + klog.Error(err) return nil, fmt.Errorf("delete dhcp options for logical switch %s: %w", lsName, err) } return &DHCPOptionsUUIDs{}, nil @@ -136,6 +137,7 @@ func (c *OVNNbClient) updateDHCPv4Options(lsName, cidr, gateway, options string, /* create */ if err := c.CreateDHCPOptions(lsName, cidr, options); err != nil { + klog.Error(err) return "", fmt.Errorf("create dhcp options: %w", err) } @@ -189,6 +191,7 @@ func (c *OVNNbClient) updateDHCPv6Options(lsName, cidr, options string) (uuid st /* create */ if err := c.CreateDHCPOptions(lsName, cidr, options); err != nil { + klog.Error(err) return "", fmt.Errorf("create dhcp options: %w", err) } @@ -214,6 +217,7 @@ func (c *OVNNbClient) updateDHCPOptions(dhcpOpt *ovnnb.DHCPOptions, fields ...in } if err = c.Transact("dhcp-options-update", op); err != nil { + klog.Error(err) return fmt.Errorf("update dhcp options %s: %w", dhcpOpt.UUID, err) } @@ -237,6 +241,7 @@ func (c *OVNNbClient) DeleteDHCPOptionsByUUIDs(uuidList ...string) error { } if err := c.Transact("dhcp-options-del", ops); err != nil { + klog.Error(err) return fmt.Errorf("delete dhcp options %v: %w", uuidList, err) } @@ -311,6 +316,7 @@ func (c *OVNNbClient) ListDHCPOptions(needVendorFilter bool, externalIDs map[str dhcpOptList := make([]ovnnb.DHCPOptions, 0) if err := c.WhereCache(dhcpOptionsFilter(needVendorFilter, externalIDs)).List(ctx, &dhcpOptList); err != nil { + klog.Error(err) return nil, fmt.Errorf("list dhcp options with external IDs %v: %w", externalIDs, err) } diff --git a/pkg/ovs/ovn-nb-gateway_chassis.go b/pkg/ovs/ovn-nb-gateway_chassis.go index 3e41c2d453a..cb9743279be 100644 --- a/pkg/ovs/ovn-nb-gateway_chassis.go +++ b/pkg/ovs/ovn-nb-gateway_chassis.go @@ -84,6 +84,7 @@ func (c *OVNNbClient) DeleteGatewayChassises(lrpName string, chassises []string) } if err := c.Transact("gateway-chassises-delete", ops); err != nil { + klog.Error(err) return fmt.Errorf("delete gateway chassises %v from logical router port %s: %w", chassises, lrpName, err) } diff --git a/pkg/ovs/ovn-nb-load_balancer.go b/pkg/ovs/ovn-nb-load_balancer.go index b17eeff3ed4..50ae4d16a26 100644 --- a/pkg/ovs/ovn-nb-load_balancer.go +++ b/pkg/ovs/ovn-nb-load_balancer.go @@ -49,10 +49,12 @@ func (c *OVNNbClient) CreateLoadBalancer(lbName, protocol, selectFields string) } if ops, err = c.ovsDbClient.Create(lb); err != nil { + klog.Error(err) return fmt.Errorf("generate operations for creating load balancer %s: %w", lbName, err) } if err = c.Transact("lb-add", ops); err != nil { + klog.Error(err) return fmt.Errorf("create load balancer %s: %w", lbName, err) } return nil @@ -66,10 +68,12 @@ func (c *OVNNbClient) UpdateLoadBalancer(lb *ovnnb.LoadBalancer, fields ...inter ) if ops, err = c.ovsDbClient.Where(lb).Update(lb, fields...); err != nil { + klog.Error(err) return fmt.Errorf("generate operations for updating load balancer %s: %w", lb.Name, err) } if err = c.Transact("lb-update", ops); err != nil { + klog.Error(err) return fmt.Errorf("update load balancer %s: %w", lb.Name, err) } return nil @@ -125,6 +129,7 @@ func (c *OVNNbClient) LoadBalancerAddVip(lbName, vip string, backends ...string) if ops != nil { if err = c.Transact("lb-add", ops); err != nil { + klog.Error(err) return fmt.Errorf("failed to add vip %s with backends %v to load balancers %s: %w", vip, backends, lbName, err) } } @@ -177,6 +182,7 @@ func (c *OVNNbClient) LoadBalancerDeleteVip(lbName, vipEndpoint string, ignoreHe }, ) if err != nil { + klog.Error(err) return fmt.Errorf("failed to generate operations when deleting vip %s from load balancers %s: %w", vipEndpoint, lbName, err) } if len(ops) == 0 { @@ -184,6 +190,7 @@ func (c *OVNNbClient) LoadBalancerDeleteVip(lbName, vipEndpoint string, ignoreHe } if err = c.Transact("lb-add", ops); err != nil { + klog.Error(err) return fmt.Errorf("failed to delete vip %s from load balancers %s: %w", vipEndpoint, lbName, err) } return nil @@ -215,6 +222,7 @@ func (c *OVNNbClient) SetLoadBalancerAffinityTimeout(lbName string, timeout int) lb.Options = options if err = c.UpdateLoadBalancer(lb, &lb.Options); err != nil { + klog.Error(err) return fmt.Errorf("failed to set affinity timeout of lb %s to %d: %w", lbName, timeout, err) } return nil @@ -235,6 +243,7 @@ func (c *OVNNbClient) DeleteLoadBalancers(filter func(lb *ovnnb.LoadBalancer) bo return true }, ).Delete(); err != nil { + klog.Error(err) return fmt.Errorf("generate operations for delete load balancers: %w", err) } @@ -282,6 +291,7 @@ func (c *OVNNbClient) GetLoadBalancer(lbName string, ignoreNotFound bool) (*ovnn return lb.Name == lbName }, ).List(ctx, &lbList); err != nil { + klog.Error(err) return nil, fmt.Errorf("failed to list load balancer %q: %w", lbName, err) } @@ -325,6 +335,7 @@ func (c *OVNNbClient) ListLoadBalancers(filter func(lb *ovnnb.LoadBalancer) bool return true }, ).List(ctx, &lbList); err != nil { + klog.Error(err) return nil, fmt.Errorf("failed to list load balancer: %w", err) } return lbList, nil @@ -411,10 +422,12 @@ func (c *OVNNbClient) LoadBalancerAddIPPortMapping(lbName, vipEndpoint string, m } }, ); err != nil { + klog.Error(err) return fmt.Errorf("failed to generate operations when adding ip port mapping with vip %v to load balancers %s: %w", vipEndpoint, lbName, err) } if err = c.Transact("lb-add", ops); err != nil { + klog.Error(err) return fmt.Errorf("failed to add ip port mapping with vip %v to load balancers %s: %w", vipEndpoint, lbName, err) } return nil @@ -470,6 +483,7 @@ func (c *OVNNbClient) LoadBalancerDeleteIPPortMapping(lbName, vipEndpoint string } }, ); err != nil { + klog.Error(err) return fmt.Errorf("failed to generate operations when deleting ip port mapping %s from load balancers %s: %w", vipEndpoint, lbName, err) } if len(ops) == 0 { diff --git a/pkg/ovs/ovn-nb-load_balancer_health_check.go b/pkg/ovs/ovn-nb-load_balancer_health_check.go index 41a026f7951..2839d43b84e 100644 --- a/pkg/ovs/ovn-nb-load_balancer_health_check.go +++ b/pkg/ovs/ovn-nb-load_balancer_health_check.go @@ -117,10 +117,12 @@ func (c *OVNNbClient) UpdateLoadBalancerHealthCheck(lbhc *ovnnb.LoadBalancerHeal ) if op, err = c.ovsDbClient.Where(lbhc).Update(lbhc, fields...); err != nil { + klog.Error(err) return fmt.Errorf("generate operations for updating lb health check %s: %w", lbhc.Vip, err) } if err = c.Transact("lbhc-update", op); err != nil { + klog.Error(err) return fmt.Errorf("update lb health check %s: %w", lbhc.Vip, err) } @@ -138,10 +140,12 @@ func (c *OVNNbClient) DeleteLoadBalancerHealthChecks(filter func(lb *ovnnb.LoadB }, ).Delete() if err != nil { + klog.Error(err) return fmt.Errorf("generate operations for delete lb health checks: %w", err) } if err := c.Transact("lbhc-del", op); err != nil { + klog.Error(err) return fmt.Errorf("delete lb health checks : %w", err) } @@ -162,6 +166,7 @@ func (c *OVNNbClient) DeleteLoadBalancerHealthCheck(lbName, vip string) error { } if err = c.Transact("lbhc-del", op); err != nil { + klog.Error(err) return fmt.Errorf("delete lb %s: %w", lbName, err) } diff --git a/pkg/ovs/ovn-nb-logical_router.go b/pkg/ovs/ovn-nb-logical_router.go index e91b89c3884..3ed2d8ff2f6 100644 --- a/pkg/ovs/ovn-nb-logical_router.go +++ b/pkg/ovs/ovn-nb-logical_router.go @@ -19,6 +19,7 @@ import ( func (c *OVNNbClient) CreateLogicalRouter(lrName string) error { exist, err := c.LogicalRouterExists(lrName) if err != nil { + klog.Error(err) return err } @@ -39,6 +40,7 @@ func (c *OVNNbClient) CreateLogicalRouter(lrName string) error { } if err := c.Transact("lr-add", op); err != nil { + klog.Error(err) return fmt.Errorf("create logical router %s: %w", lrName, err) } @@ -54,6 +56,7 @@ func (c *OVNNbClient) UpdateLogicalRouter(lr *ovnnb.LogicalRouter, fields ...int } if err = c.Transact("lr-update", op); err != nil { + klog.Error(err) return fmt.Errorf("update logical router %s: %w", lr.Name, err) } @@ -80,6 +83,7 @@ func (c *OVNNbClient) DeleteLogicalRouter(lrName string) error { } if err := c.Transact("lr-del", op); err != nil { + klog.Error(err) return fmt.Errorf("delete logical router %s: %w", lrName, err) } @@ -96,6 +100,7 @@ func (c *OVNNbClient) GetLogicalRouter(lrName string, ignoreNotFound bool) (*ovn if err := c.ovsDbClient.WhereCache(func(lr *ovnnb.LogicalRouter) bool { return lr.Name == lrName }).List(ctx, &lrList); err != nil { + klog.Error(err) return nil, fmt.Errorf("list logical router %q: %w", lrName, err) } @@ -138,6 +143,7 @@ func (c *OVNNbClient) ListLogicalRouter(needVendorFilter bool, filter func(lr *o return true }).List(ctx, &lrList); err != nil { + klog.Error(err) return nil, fmt.Errorf("list logical router: %w", err) } @@ -182,6 +188,7 @@ func (c *OVNNbClient) LogicalRouterUpdateLoadBalancers(lrName string, op ovsdb.M } if err := c.Transact("lr-lb-update", ops); err != nil { + klog.Error(err) return fmt.Errorf("logical router %s update lbs %v: %w", lrName, lbNames, err) } diff --git a/pkg/ovs/ovn-nb-logical_router_policy.go b/pkg/ovs/ovn-nb-logical_router_policy.go index 58938f29213..58d6cd6d743 100644 --- a/pkg/ovs/ovn-nb-logical_router_policy.go +++ b/pkg/ovs/ovn-nb-logical_router_policy.go @@ -25,6 +25,7 @@ func (c *OVNNbClient) AddLogicalRouterPolicy(lrName string, priority int, match, } policyList, err := c.listLogicalRouterPoliciesByFilter(lrName, fnFilter) if err != nil { + klog.Error(err) return fmt.Errorf("get policy priority %d match %s in logical router %s: %w", priority, match, lrName, err) } @@ -44,6 +45,7 @@ func (c *OVNNbClient) AddLogicalRouterPolicy(lrName string, priority int, match, for _, uuid := range duplicate { klog.Infof("deleting lr policy by uuid %s", uuid) if err = c.DeleteLogicalRouterPolicyByUUID(lrName, uuid); err != nil { + klog.Error(err) return err } } @@ -52,6 +54,7 @@ func (c *OVNNbClient) AddLogicalRouterPolicy(lrName string, priority int, match, klog.Infof("creating lr policy with priority = %d, match = %q, action = %q, nextHops = %q", priority, match, action, nextHops) policy := c.newLogicalRouterPolicy(priority, match, action, nextHops, externalIDs) if err := c.CreateLogicalRouterPolicies(lrName, policy); err != nil { + klog.Error(err) return fmt.Errorf("add policy to logical router %s: %w", lrName, err) } } else if !maps.Equal(policyFound.ExternalIDs, externalIDs) { @@ -106,6 +109,7 @@ func (c *OVNNbClient) CreateLogicalRouterPolicies(lrName string, policies ...*ov ops = append(ops, policyAddOp...) if err = c.Transact("lr-policies-add", ops); err != nil { + klog.Error(err) return fmt.Errorf("add policies to %s: %w", lrName, err) } @@ -149,9 +153,11 @@ func (c *OVNNbClient) DeleteLogicalRouterPolicies(lrName string, priority int, e ops, err := c.LogicalRouterUpdatePolicyOp(lrName, policiesUUIDs, ovsdb.MutateOperationDelete) if err != nil { + klog.Error(err) return fmt.Errorf("generate operations for removing policy %v from logical router %s: %w", policiesUUIDs, lrName, err) } if err = c.Transact("lr-policies-del", ops); err != nil { + klog.Error(err) return fmt.Errorf("delete logical router policy %v from logical router %s: %w", policiesUUIDs, lrName, err) } return nil @@ -161,9 +167,11 @@ func (c *OVNNbClient) DeleteLogicalRouterPolicyByUUID(lrName, uuid string) error // remove policy from logical router ops, err := c.LogicalRouterUpdatePolicyOp(lrName, []string{uuid}, ovsdb.MutateOperationDelete) if err != nil { + klog.Error(err) return fmt.Errorf("generate operations for removing policy '%s' from logical router %s: %w", uuid, lrName, err) } if err = c.Transact("lr-policy-del", ops); err != nil { + klog.Error(err) return fmt.Errorf("delete logical router policy '%s' from logical router %s: %w", uuid, lrName, err) } return nil @@ -182,6 +190,7 @@ func (c *OVNNbClient) DeleteLogicalRouterPolicyByNexthop(lrName string, priority } for _, policy := range policyList { if err = c.DeleteLogicalRouterPolicyByUUID(lrName, policy.UUID); err != nil { + klog.Error(err) return err } } @@ -192,6 +201,7 @@ func (c *OVNNbClient) DeleteLogicalRouterPolicyByNexthop(lrName string, priority func (c *OVNNbClient) ClearLogicalRouterPolicy(lrName string) error { lr, err := c.GetLogicalRouter(lrName, false) if err != nil { + klog.Error(err) return fmt.Errorf("get logical router %s: %w", lrName, err) } @@ -199,9 +209,11 @@ func (c *OVNNbClient) ClearLogicalRouterPolicy(lrName string) error { lr.Policies = nil ops, err := c.UpdateLogicalRouterOp(lr, &lr.Policies) if err != nil { + klog.Error(err) return fmt.Errorf("generate operations for clear logical router %s policy: %w", lrName, err) } if err = c.Transact("lr-policy-clear", ops); err != nil { + klog.Error(err) return fmt.Errorf("clear logical router %s policy: %w", lrName, err) } @@ -221,6 +233,7 @@ func (c *OVNNbClient) GetLogicalRouterPolicy(lrName string, priority int, match } policyList, err := c.listLogicalRouterPoliciesByFilter(lrName, fnFilter) if err != nil { + klog.Error(err) return nil, fmt.Errorf("get policy priority %d match %s in logical router %s: %w", priority, match, lrName, err) } @@ -242,6 +255,7 @@ func (c *OVNNbClient) GetLogicalRouterPolicyByUUID(uuid string) (*ovnnb.LogicalR policy := &ovnnb.LogicalRouterPolicy{UUID: uuid} if err := c.Get(ctx, policy); err != nil { + klog.Error(err) return nil, err } @@ -317,9 +331,11 @@ func (c *OVNNbClient) DeleteRouterPolicy(lr *ovnnb.LogicalRouter, uuid string) e Value: []string{uuid}, }) if err != nil { + klog.Error(err) return fmt.Errorf("failed to generate delete operations for router %s: %w", uuid, err) } if err = c.Transact("lr-policy-delete", ops); err != nil { + klog.Error(err) return fmt.Errorf("failed to delete route policy %s: %w", uuid, err) } return nil @@ -339,6 +355,7 @@ func (c *OVNNbClient) listLogicalRouterPoliciesByFilter(lrName string, filter fu if errors.Is(err, client.ErrNotFound) { continue } + klog.Error(err) return nil, err } if filter == nil || filter(policy) { diff --git a/pkg/ovs/ovn-nb-logical_router_port.go b/pkg/ovs/ovn-nb-logical_router_port.go index 0a182b28594..df94b6ee939 100644 --- a/pkg/ovs/ovn-nb-logical_router_port.go +++ b/pkg/ovs/ovn-nb-logical_router_port.go @@ -460,6 +460,7 @@ func (c *OVNNbClient) AddLogicalRouterPort(lr, name, mac, networks string) error ops = append(ops, mutationOps...) klog.Infof("add vpc lrp %s, networks %s", name, networks) if err := c.Transact("lrp-add", ops); err != nil { + klog.Error(err) return fmt.Errorf("failed to create logical router port %s: %w", name, err) } return nil diff --git a/pkg/ovs/ovn-nb-logical_router_route.go b/pkg/ovs/ovn-nb-logical_router_route.go index 5ffc56af46e..fd5a393ab10 100644 --- a/pkg/ovs/ovn-nb-logical_router_route.go +++ b/pkg/ovs/ovn-nb-logical_router_route.go @@ -47,11 +47,13 @@ func (c *OVNNbClient) CreateLogicalRouterStaticRoutes(lrName string, routes ...* createRoutesOp, err := c.ovsDbClient.Create(models...) if err != nil { + klog.Error(err) return fmt.Errorf("generate operations for creating static routes: %w", err) } routeAddOp, err := c.LogicalRouterUpdateStaticRouteOp(lrName, routeUUIDs, ovsdb.MutateOperationInsert) if err != nil { + klog.Error(err) return fmt.Errorf("generate operations for adding static routes to logical router %s: %w", lrName, err) } @@ -60,6 +62,7 @@ func (c *OVNNbClient) CreateLogicalRouterStaticRoutes(lrName string, routes ...* ops = append(ops, routeAddOp...) if err = c.Transact("lr-routes-add", ops); err != nil { + klog.Error(err) return fmt.Errorf("add static routes to %s: %w", lrName, err) } @@ -112,6 +115,7 @@ func (c *OVNNbClient) AddLogicalRouterStaticRoute(lrName, routeTable, policy, ip return fmt.Errorf("failed to delete static routes from logical router %s: %w", lrName, err) } if err = c.CreateLogicalRouterStaticRoutes(lrName, toAdd...); err != nil { + klog.Error(err) return fmt.Errorf("failed to add static routes to logical router %s: %w", lrName, err) } return nil @@ -130,6 +134,7 @@ func (c *OVNNbClient) UpdateLogicalRouterStaticRoute(route *ovnnb.LogicalRouterS } if err = c.Transact("net-update", op); err != nil { + klog.Error(err) return fmt.Errorf("update logical router static route 'policy %s ip_prefix %s': %w", *route.Policy, route.IPPrefix, err) } diff --git a/pkg/ovs/ovn-nb-logical_router_test.go b/pkg/ovs/ovn-nb-logical_router_test.go index 98da230d9ef..de4299c871b 100644 --- a/pkg/ovs/ovn-nb-logical_router_test.go +++ b/pkg/ovs/ovn-nb-logical_router_test.go @@ -8,6 +8,7 @@ import ( "github.com/ovn-org/libovsdb/model" "github.com/ovn-org/libovsdb/ovsdb" "github.com/stretchr/testify/require" + "k8s.io/klog/v2" ovsclient "github.com/kubeovn/kube-ovn/pkg/ovsdb/client" "github.com/kubeovn/kube-ovn/pkg/ovsdb/ovnnb" @@ -18,6 +19,7 @@ import ( func createLogicalRouter(c *OVNNbClient, lr *ovnnb.LogicalRouter) error { op, err := c.ovsDbClient.Create(lr) if err != nil { + klog.Error(err) return err } diff --git a/pkg/ovs/ovn-nb-logical_switch.go b/pkg/ovs/ovn-nb-logical_switch.go index df48ce0d15c..c800769da4e 100644 --- a/pkg/ovs/ovn-nb-logical_switch.go +++ b/pkg/ovs/ovn-nb-logical_switch.go @@ -47,16 +47,19 @@ func (c *OVNNbClient) CreateLogicalSwitch(lsName, lrName, cidrBlock, gateway, ga fields = append(fields, &lrp.MAC) } if err := c.UpdateLogicalRouterPort(lrp, fields...); err != nil { + klog.Error(err) return fmt.Errorf("update logical router port %s", lrpName) } } else { if err := c.CreateBareLogicalSwitch(lsName); err != nil { + klog.Error(err) return fmt.Errorf("create logical switch %s", lsName) } } if needRouter { if err := c.CreateLogicalPatchPort(lsName, lrName, lspName, lrpName, networks, gatewayMAC); err != nil { + klog.Error(err) return err } } else { @@ -65,6 +68,7 @@ func (c *OVNNbClient) CreateLogicalSwitch(lsName, lrName, cidrBlock, gateway, ga } if err := c.RemoveLogicalPatchPort(lspName, lrpName); err != nil { + klog.Error(err) return fmt.Errorf("remove router type port %s and %s: %w", lspName, lrpName, err) } } @@ -97,6 +101,7 @@ func (c *OVNNbClient) CreateBareLogicalSwitch(lsName string) error { } if err := c.Transact("ls-add", op); err != nil { + klog.Error(err) return fmt.Errorf("create logical switch %s: %w", lsName, err) } @@ -144,6 +149,7 @@ func (c *OVNNbClient) LogicalSwitchDelPort(lsName, lspName string) error { } if err := c.Transact("lsp-del", ops); err != nil { + klog.Error(err) return fmt.Errorf("del port %s from logical switch %s: %w", lspName, lsName, err) } @@ -178,6 +184,7 @@ func (c *OVNNbClient) LogicalSwitchUpdateLoadBalancers(lsName string, op ovsdb.M } if err := c.Transact("ls-lb-update", ops); err != nil { + klog.Error(err) return fmt.Errorf("logical switch %s update lbs %v: %w", lsName, lbNames, err) } @@ -197,6 +204,7 @@ func (c *OVNNbClient) LogicalSwitchUpdateOtherConfig(lsName string, op ovsdb.Mut } if err := c.Transact("ls-other-config-update", ops); err != nil { + klog.Error(err) return fmt.Errorf("logical switch %s update other config %v: %w", lsName, otherConfig, err) } @@ -212,6 +220,7 @@ func (c *OVNNbClient) DeleteLogicalSwitch(lsName string) error { } if err := c.Transact("ls-del", op); err != nil { + klog.Error(err) return fmt.Errorf("delete logical switch %s: %w", lsName, err) } @@ -228,6 +237,7 @@ func (c *OVNNbClient) GetLogicalSwitch(lsName string, ignoreNotFound bool) (*ovn if err := c.ovsDbClient.WhereCache(func(ls *ovnnb.LogicalSwitch) bool { return ls.Name == lsName }).List(ctx, &lsList); err != nil { + klog.Error(err) return nil, fmt.Errorf("list switch switch %q: %w", lsName, err) } @@ -270,6 +280,7 @@ func (c *OVNNbClient) ListLogicalSwitch(needVendorFilter bool, filter func(ls *o return true }).List(ctx, &lsList); err != nil { + klog.Error(err) return nil, fmt.Errorf("list logical switch: %w", err) } diff --git a/pkg/ovs/ovn-nb-logical_switch_port.go b/pkg/ovs/ovn-nb-logical_switch_port.go index 32e49e71279..c7c4ea3a8d1 100644 --- a/pkg/ovs/ovn-nb-logical_switch_port.go +++ b/pkg/ovs/ovn-nb-logical_switch_port.go @@ -119,6 +119,7 @@ func (c *OVNNbClient) CreateLogicalSwitchPort(lsName, lspName, ip, mac, podName, } if err = c.Transact("lsp-add", append(ops, createLspOps...)); err != nil { + klog.Error(err) return fmt.Errorf("create logical switch port %s: %w", lspName, err) } @@ -148,6 +149,7 @@ func (c *OVNNbClient) CreateLocalnetLogicalSwitchPort(lsName, lspName, provider, if !reflect.DeepEqual(lsp.ExternalIDs, externalIDs) { lsp.ExternalIDs = externalIDs if err = c.UpdateLogicalSwitchPort(lsp, &lsp.ExternalIDs); err != nil { + klog.Error(err) return fmt.Errorf("failed to update external-ids of logical switch port %s: %w", lspName, err) } } @@ -178,6 +180,7 @@ func (c *OVNNbClient) CreateLocalnetLogicalSwitchPort(lsName, lspName, provider, } if err = c.Transact("lsp-add", ops); err != nil { + klog.Error(err) return fmt.Errorf("create localnet logical switch port %s: %w", lspName, err) } @@ -221,6 +224,7 @@ func (c *OVNNbClient) CreateVirtualLogicalSwitchPorts(lsName string, ips ...stri } if err := c.Transact("lsp-add", ops); err != nil { + klog.Error(err) return fmt.Errorf("create virtual logical switch ports for logical switch %s: %w", lsName, err) } @@ -256,6 +260,7 @@ func (c *OVNNbClient) CreateVirtualLogicalSwitchPort(lspName, lsName, ip string) } if err := c.Transact("lsp-add", op); err != nil { + klog.Error(err) return fmt.Errorf("create virtual logical switch port %s for logical switch %s: %w", lspName, lsName, err) } @@ -294,6 +299,7 @@ func (c *OVNNbClient) CreateBareLogicalSwitchPort(lsName, lspName, ip, mac strin } if err = c.Transact("lsp-add", ops); err != nil { + klog.Error(err) return fmt.Errorf("create logical switch port %s: %w", lspName, err) } @@ -327,6 +333,7 @@ func (c *OVNNbClient) SetLogicalSwitchPortVirtualParents(lsName, parents string, } if err := c.Transact("lsp-update", ops); err != nil { + klog.Error(err) return fmt.Errorf("set logical switch port virtual-parents %w", err) } return nil @@ -352,6 +359,7 @@ func (c *OVNNbClient) SetVirtualLogicalSwitchPortVirtualParents(lspName, parents } if err := c.Transact("lsp-update", op); err != nil { + klog.Error(err) return fmt.Errorf("set logical switch port virtual-parents %w", err) } return nil @@ -360,6 +368,7 @@ func (c *OVNNbClient) SetVirtualLogicalSwitchPortVirtualParents(lspName, parents func (c *OVNNbClient) SetLogicalSwitchPortArpProxy(lspName string, enableArpProxy bool) error { lsp, err := c.GetLogicalSwitchPort(lspName, false) if err != nil { + klog.Error(err) return fmt.Errorf("get logical switch port %s: %w", lspName, err) } if lsp.Options == nil { @@ -376,6 +385,7 @@ func (c *OVNNbClient) SetLogicalSwitchPortArpProxy(lspName string, enableArpProx return err } if err := c.Transact("lsp-update", op); err != nil { + klog.Error(err) return fmt.Errorf("failed to set logical switch port option arp_proxy %w", err) } return nil @@ -420,6 +430,7 @@ func (c *OVNNbClient) SetLogicalSwitchPortSecurity(portSecurity bool, lspName, m } if err := c.UpdateLogicalSwitchPort(lsp, &lsp.PortSecurity, &lsp.ExternalIDs); err != nil { + klog.Error(err) return fmt.Errorf("set logical switch port %s port_security %v: %w", lspName, lsp.PortSecurity, err) } @@ -443,6 +454,7 @@ func (c *OVNNbClient) SetLogicalSwitchPortExternalIDs(lspName string, externalID } if err := c.UpdateLogicalSwitchPort(lsp, &lsp.ExternalIDs); err != nil { + klog.Error(err) return fmt.Errorf("set logical switch port %s external ids %v: %w", lspName, externalIDs, err) } @@ -490,6 +502,7 @@ func (c *OVNNbClient) SetLogicalSwitchPortSecurityGroup(lsp *ovnnb.LogicalSwitch } if err := c.UpdateLogicalSwitchPort(lsp, &lsp.ExternalIDs); err != nil { + klog.Error(err) return nil, fmt.Errorf("set logical switch port %s security group %v: %w", lsp.Name, newSgs, err) } return diffSgs, nil @@ -519,6 +532,7 @@ func (c *OVNNbClient) SetLogicalSwitchPortsSecurityGroup(sgName, op string) erro /* add to or remove from sgs form port external_ids */ for _, lsp := range lsps { if _, err := c.SetLogicalSwitchPortSecurityGroup(&lsp, op, sgName); err != nil { + klog.Error(err) return fmt.Errorf("set logical switch port %s security group %s: %w", lsp.Name, sgName, err) } } @@ -540,6 +554,7 @@ func (c *OVNNbClient) EnablePortLayer2forward(lspName string) error { lsp.Addresses = append(lsp.Addresses, "unknown") if err := c.UpdateLogicalSwitchPort(lsp, &lsp.Addresses); err != nil { + klog.Error(err) return fmt.Errorf("set logical switch port %s addressed=unknown: %w", lspName, err) } @@ -569,6 +584,7 @@ func (c *OVNNbClient) SetLogicalSwitchPortVlanTag(lspName string, vlanID int) er } if err := c.UpdateLogicalSwitchPort(lsp, &lsp.Tag); err != nil { + klog.Error(err) return fmt.Errorf("set logical switch port %s tag %d: %w", lspName, vlanID, err) } @@ -615,6 +631,7 @@ func (c *OVNNbClient) DeleteLogicalSwitchPort(lspName string) error { } if err = c.Transact("lsp-del", ops); err != nil { + klog.Error(err) return fmt.Errorf("delete logical switch port %s", lspName) } @@ -640,6 +657,7 @@ func (c *OVNNbClient) DeleteLogicalSwitchPorts(externalIDs map[string]string, fi } if err := c.Transact("lsps-del", ops); err != nil { + klog.Error(err) return fmt.Errorf("del logical switch ports: %w", err) } @@ -655,6 +673,7 @@ func (c *OVNNbClient) GetLogicalSwitchPort(lspName string, ignoreNotFound bool) if ignoreNotFound && errors.Is(err, client.ErrNotFound) { return nil, nil } + klog.Error(err) return nil, fmt.Errorf("get logical switch port %s: %w", lspName, err) } @@ -683,6 +702,7 @@ func (c *OVNNbClient) ListLogicalSwitchPortsWithLegacyExternalIDs() ([]ovnnb.Log if err := c.WhereCache(func(lsp *ovnnb.LogicalSwitchPort) bool { return len(lsp.ExternalIDs) == 0 || lsp.ExternalIDs[logicalSwitchKey] == "" || lsp.ExternalIDs["vendor"] == "" }).List(ctx, &lspList); err != nil { + klog.Error(err) return nil, fmt.Errorf("failed to list logical switch ports with legacy external-ids: %w", err) } @@ -697,6 +717,7 @@ func (c *OVNNbClient) ListLogicalSwitchPorts(needVendorFilter bool, externalIDs lspList := make([]ovnnb.LogicalSwitchPort, 0) if err := c.WhereCache(logicalSwitchPortFilter(needVendorFilter, externalIDs, filter)).List(ctx, &lspList); err != nil { + klog.Error(err) return nil, fmt.Errorf("list logical switch ports: %w", err) } @@ -773,6 +794,7 @@ func (c *OVNNbClient) DeleteLogicalSwitchPortOp(lspName string) ([]ovsdb.Operati klog.Infof("delete logical switch port %s with id %s from logical switch %s", lspName, lsp.UUID, lsName) ops, err := c.LogicalSwitchUpdatePortOp(lsName, lsp.UUID, ovsdb.MutateOperationDelete) if err != nil { + klog.Error(err) return nil, fmt.Errorf("generate operations for removing port %s from logical switch %s: %w", lspName, lsName, err) } return ops, nil @@ -787,6 +809,7 @@ func (c *OVNNbClient) UpdateLogicalSwitchPortOp(lsp *ovnnb.LogicalSwitchPort, fi op, err := c.Where(lsp).Update(lsp, fields...) if err != nil { + klog.Error(err) return nil, fmt.Errorf("generate operations for updating logical switch port %s: %w", lsp.Name, err) } diff --git a/pkg/ovs/ovn-nb-logical_switch_test.go b/pkg/ovs/ovn-nb-logical_switch_test.go index a506ccaab71..4192b7f25f8 100644 --- a/pkg/ovs/ovn-nb-logical_switch_test.go +++ b/pkg/ovs/ovn-nb-logical_switch_test.go @@ -9,6 +9,7 @@ import ( "github.com/ovn-org/libovsdb/model" "github.com/ovn-org/libovsdb/ovsdb" "github.com/stretchr/testify/require" + "k8s.io/klog/v2" ovsclient "github.com/kubeovn/kube-ovn/pkg/ovsdb/client" "github.com/kubeovn/kube-ovn/pkg/ovsdb/ovnnb" @@ -18,6 +19,7 @@ import ( func createLogicalSwitch(c *OVNNbClient, ls *ovnnb.LogicalSwitch) error { op, err := c.Create(ls) if err != nil { + klog.Error(err) return err } diff --git a/pkg/ovs/ovn-nb-nat.go b/pkg/ovs/ovn-nb-nat.go index e82ce59162c..2f6d8684bcf 100644 --- a/pkg/ovs/ovn-nb-nat.go +++ b/pkg/ovs/ovn-nb-nat.go @@ -78,6 +78,7 @@ func (c *OVNNbClient) CreateNats(lrName string, nats ...*ovnnb.NAT) error { ops = append(ops, natAddOp...) if err = c.Transact("lr-nats-add", ops); err != nil { + klog.Error(err) return fmt.Errorf("add nats to %s: %w", lrName, err) } @@ -201,6 +202,7 @@ func (c *OVNNbClient) DeleteNats(lrName, natType, logicalIP string) error { return fmt.Errorf("generate operations for deleting nats from logical router %s: %w", lrName, err) } if err = c.Transact("nats-del", ops); err != nil { + klog.Error(err) return fmt.Errorf("del nats from logical router %s: %w", lrName, err) } @@ -222,6 +224,7 @@ func (c *OVNNbClient) DeleteNat(lrName, natType, externalIP, logicalIP string) e return fmt.Errorf("generate operations for deleting nat from logical router %s: %w", lrName, err) } if err = c.Transact("lr-nat-del", ops); err != nil { + klog.Error(err) return fmt.Errorf("del nat from logical router %s: %w", lrName, err) } @@ -235,6 +238,7 @@ func (c *OVNNbClient) GetNATByUUID(uuid string) (*ovnnb.NAT, error) { nat := &ovnnb.NAT{UUID: uuid} if err := c.Get(ctx, nat); err != nil { + klog.Error(err) return nil, err } diff --git a/pkg/ovs/ovn-nb-port_group.go b/pkg/ovs/ovn-nb-port_group.go index b08af2456f9..87e661ba2bb 100644 --- a/pkg/ovs/ovn-nb-port_group.go +++ b/pkg/ovs/ovn-nb-port_group.go @@ -33,10 +33,12 @@ func (c *OVNNbClient) CreatePortGroup(pgName string, externalIDs map[string]stri ops, err := c.ovsDbClient.Create(pg) if err != nil { + klog.Error(err) return fmt.Errorf("generate operations for creating port group %s: %w", pgName, err) } if err = c.Transact("pg-add", ops); err != nil { + klog.Error(err) return fmt.Errorf("create port group %s: %w", pgName, err) } @@ -60,6 +62,7 @@ func (c *OVNNbClient) PortGroupSetPorts(pgName string, ports []string) error { pg, err := c.GetPortGroup(pgName, false) if err != nil { + klog.Error(err) return fmt.Errorf("get port group %s: %w", pgName, err) } @@ -81,14 +84,17 @@ func (c *OVNNbClient) PortGroupSetPorts(pgName string, ports []string) error { insertOps, err := c.portGroupUpdatePortOp(pgName, toAdd, ovsdb.MutateOperationInsert) if err != nil { + klog.Error(err) return fmt.Errorf("failed generate operations for adding ports %v to port group %s: %w", toAdd, pgName, err) } deleteOps, err := c.portGroupUpdatePortOp(pgName, toDel, ovsdb.MutateOperationDelete) if err != nil { + klog.Error(err) return fmt.Errorf("failed generate operations for deleting ports %v from port group %s: %w", toDel, pgName, err) } if err = c.Transact("pg-ports-update", append(insertOps, deleteOps...)); err != nil { + klog.Error(err) return fmt.Errorf("port group %s set ports %v: %w", pgName, ports, err) } @@ -99,10 +105,12 @@ func (c *OVNNbClient) PortGroupSetPorts(pgName string, ports []string) error { func (c *OVNNbClient) UpdatePortGroup(pg *ovnnb.PortGroup, fields ...interface{}) error { op, err := c.Where(pg).Update(pg, fields...) if err != nil { + klog.Error(err) return fmt.Errorf("generate operations for updating port group %s: %w", pg.Name, err) } if err = c.Transact("pg-update", op); err != nil { + klog.Error(err) return fmt.Errorf("update port group %s: %w", pg.Name, err) } @@ -132,10 +140,12 @@ func (c *OVNNbClient) PortGroupUpdatePorts(pgName string, op ovsdb.Mutator, lspN ops, err := c.portGroupUpdatePortOp(pgName, lspUUIDs, op) if err != nil { + klog.Error(err) return fmt.Errorf("generate operations for port group %s update ports %v: %w", pgName, lspNames, err) } if err := c.Transact("pg-ports-update", ops); err != nil { + klog.Error(err) return fmt.Errorf("port group %s update ports %v: %w", pgName, lspNames, err) } @@ -145,6 +155,7 @@ func (c *OVNNbClient) PortGroupUpdatePorts(pgName string, op ovsdb.Mutator, lspN func (c *OVNNbClient) DeletePortGroup(pgName string) error { pg, err := c.GetPortGroup(pgName, true) if err != nil { + klog.Error(err) return fmt.Errorf("get port group %s when delete: %w", pgName, err) } @@ -160,6 +171,7 @@ func (c *OVNNbClient) DeletePortGroup(pgName string) error { } if err := c.Transact("pg-del", op); err != nil { + klog.Error(err) return fmt.Errorf("delete port group %s: %w", pgName, err) } @@ -176,6 +188,7 @@ func (c *OVNNbClient) GetPortGroup(pgName string, ignoreNotFound bool) (*ovnnb.P if ignoreNotFound && errors.Is(err, client.ErrNotFound) { return nil, nil } + klog.Error(err) return nil, fmt.Errorf("get port group %s: %w", pgName, err) } @@ -268,6 +281,7 @@ func (c *OVNNbClient) portGroupUpdateACLOp(pgName string, aclUUIDs []string, op func (c *OVNNbClient) portGroupOp(pgName string, mutationsFunc ...func(pg *ovnnb.PortGroup) *model.Mutation) ([]ovsdb.Operation, error) { pg, err := c.GetPortGroup(pgName, false) if err != nil { + klog.Error(err) return nil, fmt.Errorf("get port group %s: %w", pgName, err) } @@ -287,6 +301,7 @@ func (c *OVNNbClient) portGroupOp(pgName string, mutationsFunc ...func(pg *ovnnb ops, err := c.ovsDbClient.Where(pg).Mutate(pg, mutations...) if err != nil { + klog.Error(err) return nil, fmt.Errorf("generate operations for mutating port group %s: %w", pgName, err) } diff --git a/pkg/ovs/ovn-nb.go b/pkg/ovs/ovn-nb.go index 73bf284cfcb..7d66342db4a 100644 --- a/pkg/ovs/ovn-nb.go +++ b/pkg/ovs/ovn-nb.go @@ -30,15 +30,18 @@ func (c *OVNNbClient) CreateGatewayLogicalSwitch(lsName, lrName, provider, ip, m // delete old localnet lsp when upgrade before v1.12 oldLocalnetLspName := fmt.Sprintf("ln-%s", lsName) if err := c.DeleteLogicalSwitchPort(oldLocalnetLspName); err != nil { + klog.Error(err) return fmt.Errorf("failed to delete old localnet %s: %w", oldLocalnetLspName, err) } localnetLspName := GetLocalnetName(lsName) if err := c.CreateBareLogicalSwitch(lsName); err != nil { + klog.Error(err) return fmt.Errorf("create logical switch %s: %w", lsName, err) } if err := c.CreateLocalnetLogicalSwitchPort(lsName, localnetLspName, provider, "", vlanID); err != nil { + klog.Error(err) return fmt.Errorf("create localnet logical switch port %s: %w", localnetLspName, err) } @@ -89,11 +92,13 @@ func (c *OVNNbClient) DeleteLogicalGatewaySwitch(lsName, lrName string) error { // all corresponding logical switch port(e.g. localnet port and normal port) will be deleted when delete logical switch lsDelOp, err := c.DeleteLogicalSwitchOp(lsName) if err != nil { + klog.Error(err) return fmt.Errorf("generate operations for deleting gateway switch %s: %w", lsName, err) } lrpDelOp, err := c.DeleteLogicalRouterPortOp(lrpName) if err != nil { + klog.Error(err) return fmt.Errorf("generate operations for deleting gateway router port %s: %w", lrpName, err) } @@ -102,6 +107,7 @@ func (c *OVNNbClient) DeleteLogicalGatewaySwitch(lsName, lrName string) error { ops = append(ops, lrpDelOp...) if err = c.Transact("gw-ls-del", ops); err != nil { + klog.Error(err) return fmt.Errorf("delete gateway switch %s: %w", lsName, err) } @@ -113,16 +119,19 @@ func (c *OVNNbClient) DeleteSecurityGroup(sgName string) error { // clear acl if err := c.DeleteAcls(pgName, portGroupKey, "", nil); err != nil { + klog.Error(err) return fmt.Errorf("delete acls from port group %s: %w", pgName, err) } // clear address_set if err := c.DeleteAddressSets(map[string]string{sgKey: sgName}); err != nil { + klog.Error(err) return err } if sgName == util.DefaultSecurityGroupName { if err := c.SetLogicalSwitchPortsSecurityGroup(sgName, "remove"); err != nil { + klog.Error(err) return fmt.Errorf("clear default security group %s from logical switch ports: %w", sgName, err) } } @@ -135,6 +144,7 @@ func (c *OVNNbClient) CreateRouterPortOp(lsName, lrName, lspName, lrpName, ip, m /* do nothing if logical switch port exist */ lspExist, err := c.LogicalSwitchPortExists(lspName) if err != nil { + klog.Error(err) return nil, err } @@ -156,6 +166,7 @@ func (c *OVNNbClient) CreateRouterPortOp(lsName, lrName, lspName, lrpName, ip, m lspCreateOp, err := c.CreateLogicalSwitchPortOp(lsp, lsName) if err != nil { + klog.Error(err) return nil, err } @@ -169,6 +180,7 @@ func (c *OVNNbClient) CreateRouterPortOp(lsName, lrName, lspName, lrpName, ip, m lrpCreateOp, err := c.CreateLogicalRouterPortOp(lrp, lrName) if err != nil { + klog.Error(err) return nil, err } @@ -184,12 +196,14 @@ func (c *OVNNbClient) RemoveLogicalPatchPort(lspName, lrpName string) error { /* delete logical switch port*/ lspDelOp, err := c.DeleteLogicalSwitchPortOp(lspName) if err != nil { + klog.Error(err) return err } /* delete logical router port*/ lrpDelOp, err := c.DeleteLogicalRouterPortOp(lrpName) if err != nil { + klog.Error(err) return err } @@ -198,6 +212,7 @@ func (c *OVNNbClient) RemoveLogicalPatchPort(lspName, lrpName string) error { ops = append(ops, lrpDelOp...) if err = c.Transact("lrp-lsp-del", ops); err != nil { + klog.Error(err) return fmt.Errorf("delete logical switch port %s and delete logical router port %s: %w", lspName, lrpName, err) } diff --git a/pkg/ovs/ovn-sb-chassis.go b/pkg/ovs/ovn-sb-chassis.go index b7569f9853b..85a51034bd0 100644 --- a/pkg/ovs/ovn-sb-chassis.go +++ b/pkg/ovs/ovn-sb-chassis.go @@ -39,9 +39,11 @@ func (c *OVNSbClient) DeleteChassis(chassisName string) error { } ops, err := c.ovsDbClient.Where(chassis).Delete() if err != nil { + klog.Error(err) return fmt.Errorf("failed to generate delete chassis operations for node %s: %w", chassis.Hostname, err) } if err = c.Transact("chassis-del", ops); err != nil { + klog.Error(err) return fmt.Errorf("failed to delete chassis for node %s: %w", chassis.Hostname, err) } return nil @@ -61,6 +63,7 @@ func (c *OVNSbClient) GetChassis(chassisName string, ignoreNotFound bool) (*ovns if ignoreNotFound && errors.Is(err, client.ErrNotFound) { return nil, nil } + klog.Error(err) return nil, fmt.Errorf("failed to get chassis %s: %w", chassisName, err) } klog.V(3).Infof("get chassis: %+v", chassis) @@ -74,6 +77,7 @@ func (c *OVNSbClient) ListChassis() (*[]ovnsb.Chassis, error) { css := []ovnsb.Chassis{} if err := c.ovsDbClient.List(ctx, &css); err != nil { + klog.Error(err) return nil, fmt.Errorf("failed to list Chassis: %w", err) } return &css, nil @@ -87,6 +91,7 @@ func (c *OVNSbClient) GetAllChassisByHost(nodeName string) (*[]ovnsb.Chassis, er if err := c.ovsDbClient.WhereCache(func(chassis *ovnsb.Chassis) bool { return chassis.Hostname == nodeName }).List(ctx, &chassisList); err != nil { + klog.Error(err) return nil, fmt.Errorf("failed to list Chassis with host name=%s: %w", nodeName, err) } if len(chassisList) == 0 { @@ -110,6 +115,7 @@ func (c *OVNSbClient) GetChassisByHost(nodeName string) (*ovnsb.Chassis, error) if err := c.ovsDbClient.WhereCache(func(chassis *ovnsb.Chassis) bool { return chassis.Hostname == nodeName }).List(ctx, &chassisList); err != nil { + klog.Error(err) return nil, fmt.Errorf("failed to list Chassis with host name=%s: %w", nodeName, err) } if len(chassisList) == 0 { @@ -136,6 +142,7 @@ func (c *OVNSbClient) DeleteChassisByHost(nodeName string) error { if err := c.ovsDbClient.WhereCache(func(chassis *ovnsb.Chassis) bool { return chassis.Hostname == nodeName || (chassis.ExternalIDs != nil && chassis.ExternalIDs["node"] == nodeName) }).List(ctx, &chassisList); err != nil { + klog.Error(err) return fmt.Errorf("failed to list Chassis with host name=%s: %w", nodeName, err) } @@ -172,6 +179,7 @@ func (c *OVNSbClient) UpdateChassisTag(chassisName, nodeName string) error { // not need filter chassis by node name if we use libovsdb chassis.ExternalIDs = externalIDs if err := c.UpdateChassis(chassis, &chassis.ExternalIDs); err != nil { + klog.Error(err) return fmt.Errorf("failed to init chassis node %s: %w", nodeName, err) } } diff --git a/pkg/ovs/ovn.go b/pkg/ovs/ovn.go index 8f038457496..c1baeba2a03 100644 --- a/pkg/ovs/ovn.go +++ b/pkg/ovs/ovn.go @@ -232,6 +232,7 @@ func (c *ovsDbClient) GetEntityInfo(entity interface{}) error { err := c.Get(ctx, entity) if err != nil { + klog.Error(err) return err } diff --git a/pkg/ovs/ovs-vsctl.go b/pkg/ovs/ovs-vsctl.go index 3ebcd2ba16d..11e341f6923 100644 --- a/pkg/ovs/ovs-vsctl.go +++ b/pkg/ovs/ovs-vsctl.go @@ -221,6 +221,7 @@ func ClearPodBandwidth(podName, podNamespace, ifaceID string) error { } if err := ovsDestroy("qos", qosID); err != nil { + klog.Error(err) return err } } @@ -402,6 +403,7 @@ func ClearPortQosBinding(ifaceID string) error { for _, ifName := range interfaceList { if err = ovsClear("port", ifName, "qos"); err != nil { + klog.Error(err) return err } } diff --git a/pkg/ovs/ovs-vsctl_linux.go b/pkg/ovs/ovs-vsctl_linux.go index be4e76a262e..8143fcfb5d7 100644 --- a/pkg/ovs/ovs-vsctl_linux.go +++ b/pkg/ovs/ovs-vsctl_linux.go @@ -52,6 +52,7 @@ func SetInterfaceBandwidth(podName, podNamespace, iface, ingress, egress string) } if err = SetQosQueueBinding(podName, podNamespace, ifName, iface, queueUID, qosIfaceUIDMap); err != nil { + klog.Error(err) return err } } else { @@ -71,6 +72,7 @@ func SetInterfaceBandwidth(podName, podNamespace, iface, ingress, egress string) } if _, err := Exec("remove", "queue", queueID, "other_config", "max-rate"); err != nil { + klog.Error(err) return fmt.Errorf("failed to remove rate limit for queue in pod %v/%v, %w", podNamespace, podName, err) } } @@ -122,6 +124,7 @@ func ClearHtbQosQueue(podName, podNamespace, iface string) error { } if err := ovsDestroy("queue", queueID); err != nil { + klog.Error(err) return err } } @@ -150,6 +153,7 @@ func SetHtbQosQueueRecord(podName, podNamespace, iface string, maxRateBPS int, q if queueUID, ok := queueIfaceUIDMap[iface]; ok { if err := ovsSet("queue", queueUID, queueCommandValues...); err != nil { + klog.Error(err) return queueUID, err } } else { @@ -160,6 +164,7 @@ func SetHtbQosQueueRecord(podName, podNamespace, iface string, maxRateBPS int, q var queueID string if queueID, err = ovsCreate("queue", queueCommandValues...); err != nil { + klog.Error(err) return queueUID, err } queueIfaceUIDMap[iface] = queueID @@ -212,6 +217,7 @@ func SetQosQueueBinding(podName, podNamespace, ifName, iface, queueUID string, q } if err := ovsSet("qos", qosUID, qosCommandValues...); err != nil { + klog.Error(err) return err } } @@ -284,7 +290,6 @@ func SetNetemQos(podName, podNamespace, iface, latency, limit, loss, jitter stri latencyVal, lossVal, limitVal, jitterVal, err := getNetemQosConfig(qos) if err != nil { - klog.Error(err) klog.Errorf("failed to get other_config for qos %s: %v", qos, err) return err } diff --git a/pkg/ovs/util.go b/pkg/ovs/util.go index 15f21ab1861..b99586e21e8 100644 --- a/pkg/ovs/util.go +++ b/pkg/ovs/util.go @@ -9,6 +9,8 @@ import ( "sync/atomic" "time" + "k8s.io/klog/v2" + kubeovnv1 "github.com/kubeovn/kube-ovn/pkg/apis/kubeovn/v1" "github.com/kubeovn/kube-ovn/pkg/util" ) @@ -147,6 +149,7 @@ func (m AndACLMatch) Match() (string, error) { for _, r := range m.matches { match, err := r.Match() if err != nil { + klog.Error(err) return "", fmt.Errorf("generate match %s: %w", match, err) } matches = append(matches, match) @@ -176,6 +179,7 @@ func (m OrACLMatch) Match() (string, error) { for _, specification := range m.matches { match, err := specification.Match() if err != nil { + klog.Error(err) return "", fmt.Errorf("generate match %s: %w", match, err) }