From 68aebf085e77dbb6117b325f8d44b0a69fe23bda Mon Sep 17 00:00:00 2001 From: Malachy Byrne Date: Fri, 5 May 2023 14:13:46 +0100 Subject: [PATCH] Modified docker config format sent by frontend --- src/PanoptesFrontend/.gitignore | 2 + src/PanoptesFrontend/Data/ModuleConfig.cs | 13 +++++-- src/PanoptesFrontend/Pages/ModConfig.razor | 45 +++++++++++++++------- src/backend/cmd/main.go | 10 +++-- 4 files changed, 49 insertions(+), 21 deletions(-) create mode 100644 src/PanoptesFrontend/.gitignore diff --git a/src/PanoptesFrontend/.gitignore b/src/PanoptesFrontend/.gitignore new file mode 100644 index 0000000..1c6344d --- /dev/null +++ b/src/PanoptesFrontend/.gitignore @@ -0,0 +1,2 @@ +*.dll +*.cache diff --git a/src/PanoptesFrontend/Data/ModuleConfig.cs b/src/PanoptesFrontend/Data/ModuleConfig.cs index 72ddd2d..83541da 100644 --- a/src/PanoptesFrontend/Data/ModuleConfig.cs +++ b/src/PanoptesFrontend/Data/ModuleConfig.cs @@ -1,5 +1,10 @@ public class ModuleConfig { - public string ImageName {get; set;} - public Dictionary Environment {get; set;} = new Dictionary(); - public Dictionary Volumes {get; set;} = new Dictionary(); -} \ No newline at end of file + public string id {get; set;} + public string image {get; set;} + public string name {get; set;} + public string user {get; set;} = "1000:1000"; + public List> env {get; set;} = new List>{}; + public List> volumes {get; set;} = new List>{}; + public string urls_allowed {get; set;} = "*"; + public bool internal_access {get; set;} = true; +} diff --git a/src/PanoptesFrontend/Pages/ModConfig.razor b/src/PanoptesFrontend/Pages/ModConfig.razor index 4c7930b..bcfe846 100644 --- a/src/PanoptesFrontend/Pages/ModConfig.razor +++ b/src/PanoptesFrontend/Pages/ModConfig.razor @@ -1,5 +1,7 @@ @page "/module-config" @using System.Text.Json +@using System.Text +@using Newtonsoft.Json @using Microsoft.AspNetCore.Components.Web @using Microsoft.JSInterop @using System.Net; @@ -12,8 +14,14 @@
- - + + + + + + + +
@@ -44,11 +52,11 @@ - @foreach (var kvp in ModuleConfig.Environment) + @for (int i = 0; i < ModuleConfig.env.Count; i++) { - @kvp.Key - @kvp.Value + @ModuleConfig.env[i]["var"] + @ModuleConfig.env[i]["val"] } @@ -79,11 +87,11 @@ - @foreach (var kvp in ModuleConfig.Volumes) + @foreach (Dictionary kvp in ModuleConfig.volumes) { - @kvp.Key - @kvp.Value + @kvp["val"] + @kvp["var"] } @@ -112,14 +120,24 @@ private void AddKeyValuePair1() { - ModuleConfig.Environment.Add(Key1, Value1); + var envs = new Dictionary() + { + { "var", Key1 }, + { "val", Value1 } + }; + ModuleConfig.env.Add(envs); Key1 = ""; Value1 = ""; } private void AddKeyValuePair2() { - ModuleConfig.Volumes.Add(Key2, Value2); + var vols = new Dictionary() + { + { "var", Key2 }, + { "val", Value2 } + }; + ModuleConfig.volumes.Add(vols); Key2 = ""; Value2 = ""; } @@ -127,9 +145,10 @@ private async void SubmitForm() { // Log ModuleConfig object to console and send to backend - var config = JsonSerializer.Serialize(ModuleConfig); + var config = JsonConvert.SerializeObject(ModuleConfig); Console.WriteLine(config); - await httpService.PostAsync("http://localhost:8080/config_module", config); + var payload = new StringContent(config, Encoding.UTF8, "application/json"); + await httpService.PostAsync("http://localhost:10000/create_module", ModuleConfig); } } -} \ No newline at end of file +} diff --git a/src/backend/cmd/main.go b/src/backend/cmd/main.go index 67a97a5..f989b57 100644 --- a/src/backend/cmd/main.go +++ b/src/backend/cmd/main.go @@ -6,7 +6,7 @@ import ( "fmt" "io/ioutil" "log" - "bytes" + //"bytes" "net/http" "github.com/dgrijalva/jwt-go" "golang.org/x/crypto/bcrypt" @@ -192,10 +192,12 @@ func LogoutUser() echo.HandlerFunc { } func CreateModule(c echo.Context) error { - buf := new(bytes.Buffer) - buf.ReadFrom(c.Request().Body) var module docker.Module - json.Unmarshal(buf.Bytes(), &module) + if err := c.Bind(&module); err != nil { + panic(err) + } + s, _ := json.MarshalIndent(module, "", " ") + fmt.Println(string(s)) mod_id := docker.CreateModule(module) stmt, err := db.Prepare(`INSERT INTO Module (name, container_name) VALUES ($1, $2);`) if err != nil {