provider-kairos/internal/provider/challenge.go
Itxaka f7d5d81013
⬆️ Bump deps to use kairos-sdk (#299)
First time bumping the provider, be gentle

Signed-off-by: Itxaka <itxaka.garcia@spectrocloud.com>

---------

Signed-off-by: Itxaka <itxaka.garcia@spectrocloud.com>
2023-03-31 14:31:54 +02:00

39 lines
889 B
Go

package provider
import (
"encoding/json"
"github.com/kairos-io/kairos-sdk/bus"
"github.com/kairos-io/kairos/v2/pkg/config"
providerConfig "github.com/kairos-io/provider-kairos/internal/provider/config"
"github.com/mudler/go-nodepair"
"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 := ""
if cfg.P2P != nil && cfg.P2P.NetworkToken != "" {
tk = cfg.P2P.NetworkToken
}
if tk == "" {
tk = nodepair.GenerateToken()
}
return pluggable.EventResponse{
Data: tk,
}
}