diff --git a/.forgejo/workflows/prerelease.yml b/.forgejo/workflows/prerelease.yml index 8003e82..ed635e9 100644 --- a/.forgejo/workflows/prerelease.yml +++ b/.forgejo/workflows/prerelease.yml @@ -37,7 +37,6 @@ jobs: - metadata - metacli - agent - - vpc - dhcp - subnet uses: ./.forgejo/workflows/build.yml diff --git a/cmd/vpc/main.go b/cmd/vpc/main.go deleted file mode 100644 index e73f7e9..0000000 --- a/cmd/vpc/main.go +++ /dev/null @@ -1,65 +0,0 @@ -package main - -import ( - "flag" - "fmt" - "os" - - configuration "git.g3e.fr/syonad/two/internal/config/agent" - "git.g3e.fr/syonad/two/internal/vpc" - "git.g3e.fr/syonad/two/pkg/db/kv" - "github.com/dgraph-io/badger/v4" -) - -var ( - netns = flag.String("netns", "", "Network namespace à faire") - name = flag.String("name", "", "interface name") - action = flag.String("action", "", "Action a faire") - conf_file = flag.String("conf", "/etc/two/agent.yml", "configuration file") -) - -var DB *badger.DB - -func main() { - 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 { - case "create": - kv.AddInDB(DB, "vpc/"+*name+"/state", "creating") - if err := vpc.CreateVPC(DB, *name); err != nil { - fmt.Println(err) - } - case "delete": - 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) - } - case "check": - if state, err := kv.GetFromDB(DB, "vpc/"+*name+"/state"); err != nil { - os.Exit(1) - } else if state != "created" { - os.Exit(1) - } - default: - fmt.Printf("Available commande:\n - create\n - delete\n - check\n") - os.Exit(1) - } - os.Exit(0) -} diff --git a/internal/dispatcher/subnet_commands.go b/internal/dispatcher/subnet_commands.go index d8ef8e3..b23949e 100644 --- a/internal/dispatcher/subnet_commands.go +++ b/internal/dispatcher/subnet_commands.go @@ -1,6 +1,14 @@ package dispatcher -import "github.com/dgraph-io/badger/v4" +import ( + "fmt" + "os" + "strconv" + + "git.g3e.fr/syonad/two/internal/subnet" + "git.g3e.fr/syonad/two/pkg/db/kv" + "github.com/dgraph-io/badger/v4" +) type CreateSubnetCommand struct { Name string @@ -12,8 +20,13 @@ type CreateSubnetCommand struct { } func (c CreateSubnetCommand) Execute(db *badger.DB) error { - // TODO: brancher internal/subnet/create.go - return nil + kv.AddInDB(db, "subnet/"+c.Name+"/state", "creating") + kv.AddInDB(db, "subnet/"+c.Name+"/vpc", c.VPC) + kv.AddInDB(db, "subnet/"+c.Name+"/vxlan_id", strconv.Itoa(c.VxlanID)) + kv.AddInDB(db, "subnet/"+c.Name+"/local_ip", c.LocalIP) + kv.AddInDB(db, "subnet/"+c.Name+"/gateway_ip", c.GatewayIP) + kv.AddInDB(db, "subnet/"+c.Name+"/cidr", c.CIDR) + return subnet.CreateSubnet(db, c.Name) } type DeleteSubnetCommand struct { @@ -21,6 +34,16 @@ type DeleteSubnetCommand struct { } func (c DeleteSubnetCommand) Execute(db *badger.DB) error { - // TODO: brancher internal/subnet/delete.go + kv.AddInDB(db, "subnet/"+c.Name+"/state", "deleting") + if err := subnet.DeleteSubnet(db, c.Name); err != nil { + fmt.Println(err) + os.Exit(1) + } + if state, err := kv.GetFromDB(db, "subnet/"+c.Name+"/state"); err != nil { + fmt.Println(err) + os.Exit(1) + } else if state == "deleted" { + kv.DeleteInDB(db, "subnet/"+c.Name) + } return nil }