2022-08-10 18:55:20 +02:00
|
|
|
package provider
|
|
|
|
|
|
|
|
import (
|
|
|
|
"encoding/json"
|
|
|
|
|
2023-03-31 14:31:54 +02:00
|
|
|
"github.com/kairos-io/kairos-sdk/bus"
|
2022-08-10 18:55:20 +02:00
|
|
|
|
2023-07-10 18:10:33 +02:00
|
|
|
"github.com/kairos-io/kairos-agent/v2/pkg/config"
|
2023-07-03 21:07:41 +02:00
|
|
|
providerConfig "github.com/kairos-io/provider-kairos/v2/internal/provider/config"
|
2022-08-10 18:55:20 +02:00
|
|
|
|
2023-05-04 19:53:20 +03:00
|
|
|
"github.com/kairos-io/go-nodepair"
|
2022-08-10 18:55:20 +02:00
|
|
|
"github.com/mudler/go-pluggable"
|
|
|
|
)
|
|
|
|
|
|
|
|
func Challenge(e *pluggable.Event) pluggable.EventResponse {
|
|
|
|
p := &bus.EventPayload{}
|
|
|
|
err := json.Unmarshal([]byte(e.Data), p)
|
|
|
|
if err != nil {
|
|
|
|
return ErrorEvent("Failed reading JSON input: %s input '%s'", err.Error(), e.Data)
|
|
|
|
}
|
|
|
|
|
|
|
|
cfg := &providerConfig.Config{}
|
|
|
|
err = config.FromString(p.Config, cfg)
|
|
|
|
if err != nil {
|
|
|
|
return ErrorEvent("Failed reading JSON input: %s input '%s'", err.Error(), p.Config)
|
|
|
|
}
|
|
|
|
|
|
|
|
tk := ""
|
2022-12-09 16:00:28 +01:00
|
|
|
if cfg.P2P != nil && cfg.P2P.NetworkToken != "" {
|
|
|
|
tk = cfg.P2P.NetworkToken
|
2022-08-10 18:55:20 +02:00
|
|
|
}
|
|
|
|
if tk == "" {
|
|
|
|
tk = nodepair.GenerateToken()
|
|
|
|
}
|
|
|
|
return pluggable.EventResponse{
|
|
|
|
Data: tk,
|
|
|
|
}
|
|
|
|
}
|