v0 agent final version (#90)
This commit is contained in:
parent
069fc302fe
commit
34faa8d63a
@ -17,9 +17,7 @@ import (
|
|||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/blang/semver"
|
|
||||||
"github.com/ebi-yade/altsvc-go"
|
"github.com/ebi-yade/altsvc-go"
|
||||||
"github.com/nezhahq/go-github-selfupdate/selfupdate"
|
|
||||||
"github.com/nezhahq/service"
|
"github.com/nezhahq/service"
|
||||||
ping "github.com/prometheus-community/pro-bing"
|
ping "github.com/prometheus-community/pro-bing"
|
||||||
"github.com/quic-go/quic-go/http3"
|
"github.com/quic-go/quic-go/http3"
|
||||||
@ -227,14 +225,14 @@ func run() {
|
|||||||
go monitor.UpdateIP(agentCliParam.UseIPv6CountryCode, agentCliParam.IPReportPeriod)
|
go monitor.UpdateIP(agentCliParam.UseIPv6CountryCode, agentCliParam.IPReportPeriod)
|
||||||
|
|
||||||
// 定时检查更新
|
// 定时检查更新
|
||||||
if _, err := semver.Parse(version); err == nil && !agentCliParam.DisableAutoUpdate {
|
// if _, err := semver.Parse(version); err == nil && !agentCliParam.DisableAutoUpdate {
|
||||||
doSelfUpdate(true)
|
// doSelfUpdate(true)
|
||||||
go func() {
|
// go func() {
|
||||||
for range time.Tick(20 * time.Minute) {
|
// for range time.Tick(20 * time.Minute) {
|
||||||
doSelfUpdate(true)
|
// doSelfUpdate(true)
|
||||||
}
|
// }
|
||||||
}()
|
// }()
|
||||||
}
|
// }
|
||||||
|
|
||||||
var err error
|
var err error
|
||||||
var conn *grpc.ClientConn
|
var conn *grpc.ClientConn
|
||||||
@ -383,8 +381,8 @@ func doTask(task *pb.Task) {
|
|||||||
handleTcpPingTask(task, &result)
|
handleTcpPingTask(task, &result)
|
||||||
case model.TaskTypeCommand:
|
case model.TaskTypeCommand:
|
||||||
handleCommandTask(task, &result)
|
handleCommandTask(task, &result)
|
||||||
case model.TaskTypeUpgrade:
|
// case model.TaskTypeUpgrade:
|
||||||
handleUpgradeTask(task, &result)
|
// handleUpgradeTask(task, &result)
|
||||||
case model.TaskTypeTerminalGRPC:
|
case model.TaskTypeTerminalGRPC:
|
||||||
handleTerminalTask(task)
|
handleTerminalTask(task)
|
||||||
return
|
return
|
||||||
@ -443,36 +441,36 @@ func reportState(lastReportHostInfo time.Time) time.Time {
|
|||||||
return lastReportHostInfo
|
return lastReportHostInfo
|
||||||
}
|
}
|
||||||
|
|
||||||
// doSelfUpdate 执行更新检查 如果更新成功则会结束进程
|
// // doSelfUpdate 执行更新检查 如果更新成功则会结束进程
|
||||||
func doSelfUpdate(useLocalVersion bool) {
|
// func doSelfUpdate(useLocalVersion bool) {
|
||||||
v := semver.MustParse("0.1.0")
|
// v := semver.MustParse("0.1.0")
|
||||||
if useLocalVersion {
|
// if useLocalVersion {
|
||||||
v = semver.MustParse(version)
|
// v = semver.MustParse(version)
|
||||||
}
|
// }
|
||||||
printf("检查更新: %v", v)
|
// printf("检查更新: %v", v)
|
||||||
var latest *selfupdate.Release
|
// var latest *selfupdate.Release
|
||||||
var err error
|
// var err error
|
||||||
if monitor.CachedCountryCode != "cn" && !agentCliParam.UseGiteeToUpgrade {
|
// if monitor.CachedCountryCode != "cn" && !agentCliParam.UseGiteeToUpgrade {
|
||||||
latest, err = selfupdate.UpdateSelf(v, "nezhahq/agent")
|
// latest, err = selfupdate.UpdateSelf(v, "nezhahq/agent")
|
||||||
} else {
|
// } else {
|
||||||
latest, err = selfupdate.UpdateSelfGitee(v, "naibahq/agent")
|
// latest, err = selfupdate.UpdateSelfGitee(v, "naibahq/agent")
|
||||||
}
|
// }
|
||||||
if err != nil {
|
// if err != nil {
|
||||||
printf("更新失败: %v", err)
|
// printf("更新失败: %v", err)
|
||||||
return
|
// return
|
||||||
}
|
// }
|
||||||
if !latest.Version.Equals(v) {
|
// if !latest.Version.Equals(v) {
|
||||||
printf("已经更新至: %v, 正在结束进程", latest.Version)
|
// printf("已经更新至: %v, 正在结束进程", latest.Version)
|
||||||
os.Exit(1)
|
// os.Exit(1)
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
|
|
||||||
func handleUpgradeTask(*pb.Task, *pb.TaskResult) {
|
// func handleUpgradeTask(*pb.Task, *pb.TaskResult) {
|
||||||
if agentCliParam.DisableForceUpdate {
|
// if agentCliParam.DisableForceUpdate {
|
||||||
return
|
// return
|
||||||
}
|
// }
|
||||||
doSelfUpdate(false)
|
// doSelfUpdate(false)
|
||||||
}
|
// }
|
||||||
|
|
||||||
func handleTcpPingTask(task *pb.Task, result *pb.TaskResult) {
|
func handleTcpPingTask(task *pb.Task, result *pb.TaskResult) {
|
||||||
host, port, err := net.SplitHostPort(task.GetData())
|
host, port, err := net.SplitHostPort(task.GetData())
|
||||||
|
Loading…
x
Reference in New Issue
Block a user