feat: optimize code

This commit is contained in:
wencaiwulue
2022-11-05 12:07:17 +08:00
committed by wencaiwulue
parent 86c39699e4
commit 6ca3942f4a
5 changed files with 47 additions and 37 deletions

View File

@@ -36,7 +36,8 @@ func readDatagramPacket(r io.Reader, b []byte) (*datagramPacket, error) {
return nil, err
}
dataLength := binary.BigEndian.Uint16(b[:2])
if _, err = io.ReadFull(r, b[:dataLength]); err != nil && (err != io.ErrUnexpectedEOF || err != io.EOF) {
_, err = io.ReadFull(r, b[:dataLength])
if err != nil && (err != io.ErrUnexpectedEOF || err != io.EOF) {
return nil, err
}
return &datagramPacket{DataLength: dataLength, Data: b[:dataLength]}, nil

View File

@@ -30,7 +30,8 @@ func (c *ConnectOptions) addCleanUpResourceHandler(clientset *kubernetes.Clients
<-stopChan
log.Info("prepare to exit, cleaning up")
dns.CancelDNS()
if err := c.dhcp.ReleaseIpToDHCP(c.usedIPs...); err != nil {
err := c.dhcp.ReleaseIpToDHCP(c.usedIPs...)
if err != nil {
log.Errorf("failed to release ip to dhcp, err: %v", err)
}
cancel()
@@ -54,28 +55,30 @@ func Cleanup(s os.Signal) {
// vendor/k8s.io/kubectl/pkg/polymorphichelpers/rollback.go:99
func updateServiceRefCount(serviceInterface v12.ServiceInterface, name string, increment int) {
if err := retry.OnError(retry.DefaultRetry, func(err error) bool {
return !k8serrors.IsNotFound(err)
}, func() error {
service, err := serviceInterface.Get(context.TODO(), name, v1.GetOptions{})
if err != nil {
log.Errorf("update ref-count failed, increment: %d, error: %v", increment, err)
err := retry.OnError(
retry.DefaultRetry,
func(err error) bool { return !k8serrors.IsNotFound(err) },
func() error {
service, err := serviceInterface.Get(context.TODO(), name, v1.GetOptions{})
if err != nil {
log.Errorf("update ref-count failed, increment: %d, error: %v", increment, err)
return err
}
curCount := 0
if ref := service.GetAnnotations()["ref-count"]; len(ref) > 0 {
curCount, err = strconv.Atoi(ref)
}
p, _ := json.Marshal([]interface{}{
map[string]interface{}{
"op": "replace",
"path": "/metadata/annotations/ref-count",
"value": strconv.Itoa(curCount + increment),
},
})
_, err = serviceInterface.Patch(context.TODO(), config.ConfigMapPodTrafficManager, types.JSONPatchType, p, v1.PatchOptions{})
return err
}
curCount := 0
if ref := service.GetAnnotations()["ref-count"]; len(ref) > 0 {
curCount, err = strconv.Atoi(ref)
}
p, _ := json.Marshal([]interface{}{
map[string]interface{}{
"op": "replace",
"path": "/metadata/annotations/ref-count",
"value": strconv.Itoa(curCount + increment),
},
})
_, err = serviceInterface.Patch(context.TODO(), config.ConfigMapPodTrafficManager, types.JSONPatchType, p, v1.PatchOptions{})
return err
}); err != nil {
if err != nil {
log.Errorf("update ref count error, error: %v", err)
} else {
log.Info("update ref count successfully")

View File

@@ -33,13 +33,13 @@ func NewDHCPManager(client corev1.ConfigMapInterface, namespace string, cidr *ne
// todo optimize dhcp, using mac address, ip and deadline as unit
func (d *DHCPManager) InitDHCP() error {
configMap, err := d.client.Get(context.Background(), config.ConfigMapPodTrafficManager, metav1.GetOptions{})
if err == nil && configMap != nil {
if err == nil {
if _, found := configMap.Data[config.KeyEnvoy]; !found {
_, err = d.client.Patch(
context.Background(),
configMap.Name,
types.MergePatchType,
[]byte(fmt.Sprintf("{\"data\":{\"%s\":\"%s\"}}", config.KeyEnvoy, "")),
[]byte(fmt.Sprintf(`{"data":{"%s":"%s"}}`, config.KeyEnvoy, "")),
metav1.PatchOptions{},
)
return err
@@ -121,7 +121,8 @@ func (d *DHCPManager) updateDHCPConfigMap(f func(*ipallocator.Range) error) erro
if err != nil {
return err
}
if err = dhcp.Restore(d.cidr, []byte(cm.Data[config.KeyDHCP])); err != nil {
err = dhcp.Restore(d.cidr, []byte(cm.Data[config.KeyDHCP]))
if err != nil {
return err
}
if err = f(dhcp); err != nil {

View File

@@ -77,22 +77,26 @@ func InjectVPNAndEnvoySidecar(factory cmdutil.Factory, clientset v12.ConfigMapIn
b, _ := json.Marshal(restorePatch)
mesh.AddMeshContainer(templateSpec, nodeID, c)
helper := pkgresource.NewHelper(object.Client, object.Mapping)
ps := []P{{
Op: "replace",
Path: "/" + strings.Join(append(path, "spec"), "/"),
Value: templateSpec.Spec,
}, {
Op: "replace",
Path: "/metadata/annotations/probe",
Value: b,
}}
ps := []P{
{
Op: "replace",
Path: "/" + strings.Join(append(path, "spec"), "/"),
Value: templateSpec.Spec,
},
{
Op: "replace",
Path: "/metadata/annotations/probe",
Value: b,
},
}
bytes, err := json.Marshal(append(ps, removePatch...))
if err != nil {
return err
}
_, err = helper.Patch(object.Namespace, object.Name, types.JSONPatchType, bytes, &metav1.PatchOptions{})
if err != nil {
log.Warnf("error while remove probe of resource: %s %s, ignore, err: %v", object.Mapping.GroupVersionKind.GroupKind().String(), object.Name, err)
log.Warnf("error while path resource: %s %s, err: %v", object.Mapping.GroupVersionKind.GroupKind().String(), object.Name, err)
return err
}
RollbackFuncList = append(RollbackFuncList, func() {

View File

@@ -311,7 +311,8 @@ func Ping(targetIP string) (bool, error) {
if err != nil {
return false, nil
}
if _, err = conn.WriteTo(data, &net.IPAddr{IP: net.ParseIP(targetIP)}); err != nil {
_, err = conn.WriteTo(data, &net.IPAddr{IP: net.ParseIP(targetIP)})
if err != nil {
return false, err
}
@@ -486,7 +487,7 @@ func IsPortListening(port int) bool {
if err != nil {
return true
} else {
listener.Close()
_ = listener.Close()
return false
}
}