From 465bbd14cdb7b60addc04162d211e8e455eee864 Mon Sep 17 00:00:00 2001 From: Malte Bauch <malte.bauch@stud.h-da.de> Date: Thu, 30 Mar 2023 11:45:00 +0200 Subject: [PATCH] Add `UnmarshalJSON` to plugin --- controller/interfaces/plugin/plugin.go | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/controller/interfaces/plugin/plugin.go b/controller/interfaces/plugin/plugin.go index 8e065e5f4..6835b7e73 100644 --- a/controller/interfaces/plugin/plugin.go +++ b/controller/interfaces/plugin/plugin.go @@ -1,6 +1,7 @@ package plugin import ( + "encoding/json" "fmt" "net" "os" @@ -149,6 +150,29 @@ func (lp *LoadedPlugin) UnmarshalBSON(data []byte) error { return nil } +func (lp *LoadedPlugin) UnmarshalJSON(data []byte) error { + loadedPluginHelper := new(LoadedPluginHelper) + if err := json.Unmarshal(data, loadedPluginHelper); err != nil { + return err + } + + lp.ID = loadedPluginHelper.ID + lp.Manifest = loadedPluginHelper.Manifest + lp.State = loadedPluginHelper.State + lp.ReattachConfig = hcplugin.ReattachConfig{ + Protocol: hcplugin.Protocol(loadedPluginHelper.ReattachConfig.Protocol), + ProtocolVersion: loadedPluginHelper.ReattachConfig.ProtocolVersion, + Addr: &net.UnixAddr{ + Name: loadedPluginHelper.ReattachConfig.Addr.Name, + Net: loadedPluginHelper.ReattachConfig.Addr.Net, + }, + Pid: loadedPluginHelper.ReattachConfig.Pid, + Test: loadedPluginHelper.ReattachConfig.Test, + } + + return nil +} + type LoadedPluginHelper struct { ID string `json:"id" bson:"_id"` Manifest Manifest `json:"manifest" bson:"manifest"` -- GitLab