2022-07-04 22:39:34 +02:00
|
|
|
package main
|
|
|
|
|
|
|
|
import (
|
|
|
|
machine "github.com/c3os-io/c3os/internal/machine"
|
2022-07-16 20:47:55 +00:00
|
|
|
"github.com/c3os-io/c3os/internal/provider"
|
|
|
|
providerConfig "github.com/c3os-io/c3os/internal/provider/config"
|
2022-07-04 22:39:34 +02:00
|
|
|
config "github.com/c3os-io/c3os/pkg/config"
|
|
|
|
)
|
|
|
|
|
|
|
|
func rotate(configDir []string, newToken, apiAddress, rootDir string, restart bool) error {
|
|
|
|
if err := config.ReplaceToken(configDir, newToken); err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
|
2022-07-07 16:57:38 +00:00
|
|
|
c, err := config.Scan(config.Directories(configDir...))
|
2022-07-04 22:39:34 +02:00
|
|
|
if err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
|
2022-07-16 20:47:55 +00:00
|
|
|
providerCfg := &providerConfig.Config{}
|
|
|
|
err = c.Unmarshal(providerCfg)
|
|
|
|
if err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
|
|
|
|
err = provider.SetupVPN(machine.EdgeVPNDefaultInstance, apiAddress, rootDir, false, providerCfg)
|
2022-07-04 22:39:34 +02:00
|
|
|
if err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
|
|
|
|
if restart {
|
|
|
|
svc, err := machine.EdgeVPN(machine.EdgeVPNDefaultInstance, rootDir)
|
|
|
|
if err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
|
|
|
|
return svc.Restart()
|
|
|
|
}
|
|
|
|
return nil
|
|
|
|
}
|