diff --git a/goKMS/qkdnManager/server.go b/goKMS/qkdnManager/server.go index 405f1a7c3da1badd955bedac41157cde5b6f51b5..c91cd81924e5a1c68ca72c1e0c6e0e90096b6c8c 100644 --- a/goKMS/qkdnManager/server.go +++ b/goKMS/qkdnManager/server.go @@ -9,7 +9,6 @@ import ( "code.fbi.h-da.de/danet/quant/goKMS/config" "code.fbi.h-da.de/danet/quant/goKMS/kms" - "code.fbi.h-da.de/danet/quant/goKMS/kms/peers" "github.com/google/uuid" "github.com/sirupsen/logrus" ) @@ -27,7 +26,7 @@ var endpoints = map[string]string{ qkdInterface: "/qkdInterface", interCKMSInterface: "/interCKMSInterface", akmsInterface: "/akmsInterface", - setKeyStore: "/setKeyStore", + setKeyStore: "/set_key_store", } type QkdnManagerServer struct { @@ -182,23 +181,21 @@ func (qs *QkdnManagerServer) handleHttpAkmsInterface(w http.ResponseWriter, r *h func (qs *QkdnManagerServer) handleSetKeyStore(w http.ResponseWriter, r *http.Request) { logrus.Debugf("Handler for SetKeyStore got request from: %s", r.RemoteAddr) - err := r.ParseForm() - if err != nil { - http.Error(w, err.Error(), http.StatusBadRequest) - return + var parsedRequest struct { + KeyFillLevel int `json:"key_fill_level"` + PeerIDs []string `json:"peer_ids"` + Fetch bool `json:"fetch"` } - keyFillLevel := r.Form.Get("KeyFillLevel") - peerIDs, ok := r.Form["PeerIds"] - if !ok { - http.Error(w, fmt.Sprintf("No peer IDs provided."), http.StatusBadRequest) + err := json.NewDecoder(r.Body).Decode(&parsedRequest) + if err != nil { + http.Error(w, err.Error(), http.StatusBadRequest) return } - fetch := r.Form.Get("Fetch") - logrus.Debugf("KeyFillLevel: %s, PeerIDs: %v, Fetch: %s", keyFillLevel, peerIDs, fetch) + logrus.Debugf("KeyFillLevel: %d, PeerIDs: %v, Fetch: %t", parsedRequest.KeyFillLevel, parsedRequest.PeerIDs, parsedRequest.Fetch) - for _, peerID := range peerIDs { + for _, peerID := range parsedRequest.PeerIDs { peerUUID, err := uuid.Parse(peerID) if err != nil { http.Error(w, err.Error(), http.StatusBadRequest) @@ -209,17 +206,13 @@ func (qs *QkdnManagerServer) handleSetKeyStore(w http.ResponseWriter, r *http.Re http.Error(w, err.Error(), http.StatusBadRequest) return } - eqm, ok := peer.QuantumModule().(*peers.ETSI014HTTPQuantumModule) - if !ok { - http.Error(w, fmt.Sprintf("QuantumModule is not of Type ETSI014"), http.StatusBadRequest) - return - } - if fetch == "true" { + eqm := peer.QuantumModule() + if parsedRequest.Fetch == true { if err := eqm.Initialize(); err != nil { http.Error(w, fmt.Sprintf("Failed to restart fetching for quantum module of peer: %s", peerID), http.StatusBadRequest) return } - } else if fetch == "false" { + } else if parsedRequest.Fetch == false { eqm.SetActive(false) if err := peer.ResetKeyStore(qs.kms.GetID().String()); err != nil { eqm.SetActive(true)