From 0b9714ce10d5a445b653f39fa2cdd6384ced86c3 Mon Sep 17 00:00:00 2001 From: GnomeZworc Date: Tue, 27 Jan 2026 22:24:47 +0100 Subject: [PATCH] f-14: code: add delete operation #14 Signed-off-by: GnomeZworc --- cmd/vpc/main.go | 9 ++++++++- internal/vpc/delete.go | 18 +++++++++++++----- 2 files changed, 21 insertions(+), 6 deletions(-) diff --git a/cmd/vpc/main.go b/cmd/vpc/main.go index 8f98a46..52d8133 100644 --- a/cmd/vpc/main.go +++ b/cmd/vpc/main.go @@ -41,9 +41,16 @@ func main() { fmt.Println(err) } case "delete": - if err := vpc.DeleteVPC(*name); err != nil { + kv.AddInDB(DB, "vpc/"+*name+"/state", "deleting") + if err := vpc.DeleteVPC(DB, *name); err != nil { fmt.Println(err) } + if state, err := kv.GetFromDB(DB, "vpc/"+*name+"/state"); err != nil { + fmt.Println(err) + os.Exit(1) + } else if state == "deleted" { + kv.DeleteInDB(DB, "vpc/"+*name) + } default: fmt.Printf("Available commande:\n - create\n - delete\n - check\n") os.Exit(1) diff --git a/internal/vpc/delete.go b/internal/vpc/delete.go index 3daea61..a05e807 100644 --- a/internal/vpc/delete.go +++ b/internal/vpc/delete.go @@ -3,15 +3,23 @@ package vpc import ( "git.g3e.fr/syonad/two/internal/netif" "git.g3e.fr/syonad/two/internal/netns" + "git.g3e.fr/syonad/two/pkg/db/kv" + + "github.com/dgraph-io/badger/v4" ) -func DeleteVPC(name string) error { - if err := netif.DeleteLink(name + "-ext"); err != nil { +func DeleteVPC(db *badger.DB, name string) error { + if state, err := kv.GetFromDB(db, "vpc/"+name+"/state"); err != nil { return err - } + } else if state == "deleting" { + if err := netif.DeleteLink(name + "-ext"); err != nil { + return err + } - if err := netns.Delete(name); err != nil { - return err + if err := netns.Delete(name); err != nil { + return err + } + kv.AddInDB(db, "vpc/"+name+"/state", "deleted") } return nil