2022-09-08 13:39:26 +00:00
|
|
|
package hook
|
|
|
|
|
|
|
|
import (
|
2023-07-10 12:39:48 +00:00
|
|
|
"github.com/kairos-io/kairos-agent/v2/pkg/config"
|
2023-07-24 10:28:59 +00:00
|
|
|
v1 "github.com/kairos-io/kairos-agent/v2/pkg/types/v1"
|
|
|
|
"github.com/kairos-io/kairos-sdk/utils"
|
|
|
|
"time"
|
2022-09-08 13:39:26 +00:00
|
|
|
)
|
|
|
|
|
|
|
|
type Lifecycle struct{}
|
|
|
|
|
2024-03-07 14:11:51 +00:00
|
|
|
func (s Lifecycle) Run(c config.Config, spec v1.Spec) error {
|
|
|
|
c.Logger.Logger.Debug().Msg("Running Lifecycle hook")
|
2023-12-05 14:46:11 +00:00
|
|
|
if spec.ShouldReboot() {
|
2023-07-24 10:28:59 +00:00
|
|
|
time.Sleep(5)
|
2022-09-08 13:39:26 +00:00
|
|
|
utils.Reboot()
|
|
|
|
}
|
|
|
|
|
2023-12-05 14:46:11 +00:00
|
|
|
if spec.ShouldShutdown() {
|
2023-07-24 10:28:59 +00:00
|
|
|
time.Sleep(5)
|
2022-09-08 13:39:26 +00:00
|
|
|
utils.PowerOFF()
|
|
|
|
}
|
2024-03-07 14:11:51 +00:00
|
|
|
c.Logger.Logger.Debug().Msg("Finish Lifecycle hook")
|
2022-09-08 13:39:26 +00:00
|
|
|
return nil
|
|
|
|
}
|