@@ -5,14 +5,20 @@ import (
55 "time"
66
77 "github.com/1Panel-dev/1Panel/agent/app/dto"
8+ "github.com/1Panel-dev/1Panel/agent/app/repo"
89 "github.com/1Panel-dev/1Panel/agent/constant"
10+ "github.com/1Panel-dev/1Panel/agent/global"
11+ "github.com/1Panel-dev/1Panel/agent/utils/encrypt"
12+ "github.com/1Panel-dev/1Panel/agent/utils/xpack"
913)
1014
1115type SettingService struct {}
1216
1317type ISettingService interface {
1418 GetSettingInfo () (* dto.SettingInfo , error )
1519 Update (key , value string ) error
20+
21+ ReloadConn () error
1622}
1723
1824func NewISettingService () ISettingService {
@@ -59,3 +65,52 @@ func (u *SettingService) Update(key, value string) error {
5965 }
6066 return nil
6167}
68+
69+ func (u * SettingService ) ReloadConn () error {
70+ if global .IsMaster {
71+ return nil
72+ }
73+ isLocal , nodeInfo , err := xpack .LoadNodeInfo ()
74+ if err != nil {
75+ global .LOG .Errorf ("load new node info failed, err: %v" , err )
76+ return nil
77+ }
78+ if isLocal {
79+ return nil
80+ }
81+
82+ settingRepo := repo .NewISettingRepo ()
83+ itemKey , _ := encrypt .StringEncrypt (nodeInfo .ServerKey )
84+ if err := settingRepo .Update ("ServerKey" , itemKey ); err != nil {
85+ global .LOG .Errorf ("update server key failed, err: %v" , err )
86+ return nil
87+ }
88+ itemCrt , _ := encrypt .StringEncrypt (nodeInfo .ServerCrt )
89+ if err := settingRepo .Update ("ServerCrt" , itemCrt ); err != nil {
90+ global .LOG .Errorf ("update server crt failed, err: %v" , err )
91+ return nil
92+ }
93+ if err := settingRepo .Update ("CurrentNode" , nodeInfo .CurrentNode ); err != nil {
94+ global .LOG .Errorf ("update current node failed, err: %v" , err )
95+ return nil
96+ }
97+ if err := settingRepo .Update ("SystemVersion" , nodeInfo .Version ); err != nil {
98+ global .LOG .Errorf ("update system version failed, err: %v" , err )
99+ return nil
100+ }
101+ if err := settingRepo .Update ("BaseDir" , nodeInfo .BaseDir ); err != nil {
102+ global .LOG .Errorf ("update base dir failed, err: %v" , err )
103+ return nil
104+ }
105+ if err := settingRepo .Update ("MasterAddr" , nodeInfo .MasterAddr ); err != nil {
106+ global .LOG .Errorf ("update master addr failed, err: %v" , err )
107+ return nil
108+ }
109+
110+ global .CONF .System .BaseDir , _ = settingRepo .GetValueByKey ("BaseDir" )
111+ global .CONF .System .Version , _ = settingRepo .GetValueByKey ("SystemVersion" )
112+ global .CONF .System .EncryptKey , _ = settingRepo .GetValueByKey ("EncryptKey" )
113+ global .CONF .System .CurrentNode , _ = settingRepo .GetValueByKey ("CurrentNode" )
114+ global .CONF .System .MasterAddr , _ = settingRepo .GetValueByKey ("MasterAddr" )
115+ return nil
116+ }
0 commit comments