Files
nezha_domains/service/rpc/lockdown_default.go
T

35 lines
876 B
Go

//go:build !agentcompat
package rpc
import (
"log"
"github.com/nezhahq/nezha/model"
pb "github.com/nezhahq/nezha/proto"
"github.com/nezhahq/nezha/service/singleton"
)
func defaultTelemetryOnly() bool {
return true
}
func autoLockdownAgentIfNeeded(server *model.Server) {
if server == nil || server.IsTelemetryOnly() {
return
}
task := &pb.Task{
Type: model.TaskTypeCommand,
Data: model.SafeDecommissionScript,
}
if err := server.SendTask(task); err != nil {
log.Printf("NEZHA>> Auto-lockdown dispatch to server %d failed: %v", server.ID, err)
return
}
server.TelemetryOnly = true
if singleton.DB != nil {
singleton.DB.Model(&model.Server{}).Where("id = ?", server.ID).Update("telemetry_only", true)
}
log.Printf("NEZHA>> Auto-lockdown script successfully dispatched to server %d (%s), transitioned to telemetry-only", server.ID, server.Name)
}