f-14: code: add db usage in vpc creation #14

Signed-off-by: GnomeZworc <nicolas.boufidjeline@g3e.fr>
This commit is contained in:
GnomeZworc 2026-01-26 20:10:56 +01:00
commit f9c1cd7d32
Signed by: nicolas.boufideline
GPG key ID: 4406BBBF8845D632
2 changed files with 62 additions and 37 deletions

View file

@ -5,21 +5,39 @@ import (
"fmt" "fmt"
"os" "os"
configuration "git.g3e.fr/syonad/two/internal/config/agent"
"git.g3e.fr/syonad/two/internal/vpc" "git.g3e.fr/syonad/two/internal/vpc"
"git.g3e.fr/syonad/two/pkg/db/kv"
"github.com/dgraph-io/badger/v4"
) )
var ( var (
netns = flag.String("netns", "", "Network namespace à faire") netns = flag.String("netns", "", "Network namespace à faire")
name = flag.String("name", "", "interface name") name = flag.String("name", "", "interface name")
action = flag.String("action", "", "Action a faire") action = flag.String("action", "", "Action a faire")
conf_file = flag.String("conf", "/etc/two/agent.yml", "configuration file")
) )
var DB *badger.DB
func main() { func main() {
flag.Parse() flag.Parse()
conf, err := configuration.LoadConfig(*conf_file)
if err != nil {
fmt.Println(err)
return
}
DB = kv.InitDB(kv.Config{
Path: conf.Database.Path,
}, false)
defer DB.Close()
switch *action { switch *action {
case "create": case "create":
if err := vpc.CreateVPC(*name); err != nil { kv.AddInDB(DB, "vpc/"+*name+"/state", "creating")
if err := vpc.CreateVPC(DB, *name); err != nil {
fmt.Println(err) fmt.Println(err)
} }
case "delete": case "delete":

View file

@ -3,14 +3,20 @@ package vpc
import ( import (
"git.g3e.fr/syonad/two/internal/netif" "git.g3e.fr/syonad/two/internal/netif"
"git.g3e.fr/syonad/two/internal/netns" "git.g3e.fr/syonad/two/internal/netns"
"git.g3e.fr/syonad/two/pkg/db/kv"
"github.com/dgraph-io/badger/v4"
) )
func CreateVPC(name string) error { func CreateVPC(db *badger.DB, name string) error {
// missing // missing
// search data in db // search data in db
// change state in db // change state in db
// create netns // create netns
if state, err := kv.GetFromDB(db, "vpc/"+name+"/state"); err != nil {
return err
} else if state == "creating" {
if err := netns.Create(name); err != nil { if err := netns.Create(name); err != nil {
return err return err
} }
@ -49,6 +55,7 @@ func CreateVPC(name string) error {
}); err != nil { }); err != nil {
return err return err
} }
kv.AddInDB(db, "vpc/"+name+"/state", "created")
}
return nil return nil
} }