feat: optimize code

This commit is contained in:
wencaiwulue
2023-03-24 20:25:59 +08:00
parent 4d01468e1d
commit aafee9ca5d
9 changed files with 108 additions and 49 deletions

View File

@@ -4,6 +4,7 @@ import (
"context"
"encoding/json"
"fmt"
"math/rand"
"net"
"net/netip"
"net/url"
@@ -15,6 +16,7 @@ import (
"github.com/containernetworking/cni/pkg/types"
"github.com/docker/distribution/reference"
"github.com/google/gopacket/routing"
goversion "github.com/hashicorp/go-version"
netroute "github.com/libp2p/go-netroute"
miekgdns "github.com/miekg/dns"
"github.com/pkg/errors"
@@ -131,7 +133,7 @@ func (c *ConnectOptions) DoConnect() (err error) {
if err = c.dhcp.InitDHCP(ctx); err != nil {
return
}
AddCleanUpResourceHandler(c.clientset, c.Namespace, c.dhcp, c.usedIPs...)
c.addCleanUpResourceHandler()
err = c.GetCIDR(ctx)
if err != nil {
return
@@ -786,6 +788,7 @@ func (c *ConnectOptions) heartbeats() {
err := c.dhcp.ForEach(func(ip net.IP) {
go func() {
time.Sleep(time.Millisecond * time.Duration(rand.Intn(1000)))
_, _ = util.Ping(ip.String())
}()
})
@@ -938,7 +941,16 @@ func (c *ConnectOptions) UpdateImage(ctx context.Context) error {
if reference.Domain(newImg) != reference.Domain(oldImg) {
return nil
}
if oldTag.Tag() >= newTag.Tag() {
var oldVersion, newVersion *goversion.Version
oldVersion, err = goversion.NewVersion(oldTag.Tag())
if err != nil {
return nil
}
newVersion, err = goversion.NewVersion(newTag.Tag())
if err != nil {
return nil
}
if oldVersion.GreaterThanOrEqual(newVersion) {
return nil
}
@@ -985,10 +997,18 @@ func (c *ConnectOptions) SetImage(ctx context.Context) error {
if reference.Domain(newImg) != reference.Domain(oldImg) {
return nil
}
if oldTag.Tag() >= newTag.Tag() {
var oldVersion, newVersion *goversion.Version
oldVersion, err = goversion.NewVersion(oldTag.Tag())
if err != nil {
return nil
}
newVersion, err = goversion.NewVersion(newTag.Tag())
if err != nil {
return nil
}
if oldVersion.GreaterThanOrEqual(newVersion) {
return nil
}
log.Infof("found newer image %s, set image from %s to it...", config.Image, deployment.Spec.Template.Spec.Containers[0].Image)
r := c.factory.NewBuilder().