|
@@ -3,32 +3,40 @@ package functions
|
|
import (
|
|
import (
|
|
"github.com/gravitl/netmaker/logger"
|
|
"github.com/gravitl/netmaker/logger"
|
|
"github.com/gravitl/netmaker/netclient/config"
|
|
"github.com/gravitl/netmaker/netclient/config"
|
|
|
|
+ "github.com/gravitl/netmaker/netclient/functions/upgrades"
|
|
"github.com/gravitl/netmaker/netclient/ncutils"
|
|
"github.com/gravitl/netmaker/netclient/ncutils"
|
|
)
|
|
)
|
|
|
|
|
|
-var updateRequired = false
|
|
|
|
-
|
|
|
|
// UpdateClientConfig - function is called on daemon start to update clientConfig if required
|
|
// UpdateClientConfig - function is called on daemon start to update clientConfig if required
|
|
// Usage : set update required to true and and update logic to function
|
|
// Usage : set update required to true and and update logic to function
|
|
func UpdateClientConfig() {
|
|
func UpdateClientConfig() {
|
|
- if !updateRequired {
|
|
|
|
- return
|
|
|
|
- }
|
|
|
|
|
|
+ defer upgrades.ReleaseUpgrades()
|
|
|
|
+
|
|
networks, _ := ncutils.GetSystemNetworks()
|
|
networks, _ := ncutils.GetSystemNetworks()
|
|
if len(networks) == 0 {
|
|
if len(networks) == 0 {
|
|
return
|
|
return
|
|
}
|
|
}
|
|
|
|
+ logger.Log(0, "updating netclient...")
|
|
for _, network := range networks {
|
|
for _, network := range networks {
|
|
cfg := config.ClientConfig{}
|
|
cfg := config.ClientConfig{}
|
|
cfg.Network = network
|
|
cfg.Network = network
|
|
cfg.ReadConfig()
|
|
cfg.ReadConfig()
|
|
//update any new fields
|
|
//update any new fields
|
|
- logger.Log(0, "updating clientConfig for network", cfg.Network)
|
|
|
|
|
|
+ configChanged := false
|
|
|
|
+ for _, u := range upgrades.Upgrades {
|
|
|
|
+ if cfg.Node.Version == u.RequiredVersion {
|
|
|
|
+ upgrades.UpgradeFunction(u.OP)(&cfg)
|
|
|
|
+ cfg.Node.Version = u.NewVersion
|
|
|
|
+ configChanged = true
|
|
|
|
+ }
|
|
|
|
+ }
|
|
//insert update logic here
|
|
//insert update logic here
|
|
- if err := config.Write(&cfg, cfg.Network); err != nil {
|
|
|
|
- logger.Log(0, "failed to update clientConfig for ", cfg.Network, err.Error())
|
|
|
|
|
|
+ if configChanged {
|
|
|
|
+ logger.Log(0, "updating clientConfig for network", cfg.Network)
|
|
|
|
+ if err := config.Write(&cfg, cfg.Network); err != nil {
|
|
|
|
+ logger.Log(0, "failed to update clientConfig for ", cfg.Network, err.Error())
|
|
|
|
+ }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- //reset so future calls will return immediately
|
|
|
|
- updateRequired = false
|
|
|
|
|
|
+ logger.Log(0, "finished updates")
|
|
}
|
|
}
|