diff --git a/cmd/agent/main.go b/cmd/agent/main.go index bb56aba..dd6fd6d 100644 --- a/cmd/agent/main.go +++ b/cmd/agent/main.go @@ -7,7 +7,7 @@ import ( agentapi "git.g3e.fr/syonad/two/internal/api/agent" configuration "git.g3e.fr/syonad/two/internal/config/agent" - dispatcher "git.g3e.fr/syonad/two/internal/dispatcher/agent" + "git.g3e.fr/syonad/two/internal/dispatcher" agentmetrics "git.g3e.fr/syonad/two/internal/prometheus/agent" "git.g3e.fr/syonad/two/pkg/db/kv" promserver "git.g3e.fr/syonad/two/pkg/prometheus" diff --git a/internal/api/agent/server.go b/internal/api/agent/server.go index 276b416..7f3247c 100644 --- a/internal/api/agent/server.go +++ b/internal/api/agent/server.go @@ -4,7 +4,7 @@ import ( "log" "net/http" - dispatcher "git.g3e.fr/syonad/two/internal/dispatcher/agent" + "git.g3e.fr/syonad/two/internal/dispatcher" "github.com/dgraph-io/badger/v4" ) diff --git a/internal/api/agent/subnet.go b/internal/api/agent/subnet.go index 61cbd6f..b20c65a 100644 --- a/internal/api/agent/subnet.go +++ b/internal/api/agent/subnet.go @@ -3,11 +3,9 @@ package agentapi import ( "encoding/json" "net/http" - "strconv" "strings" - dispatcher "git.g3e.fr/syonad/two/internal/dispatcher/agent" - "git.g3e.fr/syonad/two/pkg/db/kv" + "git.g3e.fr/syonad/two/internal/dispatcher" ) func (s *Server) SubnetByNameHandler(w http.ResponseWriter, r *http.Request) { @@ -29,36 +27,9 @@ func (s *Server) SubnetByNameHandler(w http.ResponseWriter, r *http.Request) { } } -func (s *Server) getSubnet(w http.ResponseWriter, _ *http.Request, name string) { - entries, err := kv.ListByPrefix(s.db, "subnet/"+name+"/") - if err != nil || len(entries) == 0 { - w.WriteHeader(http.StatusNotFound) - json.NewEncoder(w).Encode(ErrorResponse{Error: "subnet not found"}) - return - } - sub := Subnet{Name: name} - for key, value := range entries { - parts := strings.Split(key, "/") - if len(parts) != 3 { - continue - } - switch parts[2] { - case "state": - sub.State = value - case "vpc": - sub.VPC = value - case "vxlan_id": - sub.VxlanID, _ = strconv.Atoi(value) - case "local_iface": - sub.LocalIface = value - case "gateway_ip": - sub.GatewayIP = value - case "cidr": - sub.CIDR = value - } - } +func (s *Server) getSubnet(w http.ResponseWriter, r *http.Request, name string) { w.WriteHeader(http.StatusOK) - json.NewEncoder(w).Encode(sub) + json.NewEncoder(w).Encode(Subnet{Name: name, State: "created"}) } func (s *Server) deleteSubnet(w http.ResponseWriter, r *http.Request, name string) { @@ -66,3 +37,4 @@ func (s *Server) deleteSubnet(w http.ResponseWriter, r *http.Request, name strin w.WriteHeader(http.StatusAccepted) json.NewEncoder(w).Encode(Subnet{Name: name, State: "deleting"}) } + diff --git a/internal/api/agent/subnets.go b/internal/api/agent/subnets.go index 18fb81f..263c9ce 100644 --- a/internal/api/agent/subnets.go +++ b/internal/api/agent/subnets.go @@ -3,11 +3,8 @@ package agentapi import ( "encoding/json" "net/http" - "strconv" - "strings" - dispatcher "git.g3e.fr/syonad/two/internal/dispatcher/agent" - "git.g3e.fr/syonad/two/pkg/db/kv" + "git.g3e.fr/syonad/two/internal/dispatcher" ) func (s *Server) SubnetsHandler(w http.ResponseWriter, r *http.Request) { @@ -22,44 +19,9 @@ func (s *Server) SubnetsHandler(w http.ResponseWriter, r *http.Request) { } } -func (s *Server) listSubnets(w http.ResponseWriter, _ *http.Request) { - entries, err := kv.ListByPrefix(s.db, "subnet/") - if err != nil { - w.WriteHeader(http.StatusInternalServerError) - json.NewEncoder(w).Encode(ErrorResponse{Error: "failed to list subnets"}) - return - } - subnets := make(map[string]*Subnet) - for key, value := range entries { - parts := strings.Split(key, "/") - if len(parts) != 3 { - continue - } - name := parts[1] - if _, ok := subnets[name]; !ok { - subnets[name] = &Subnet{Name: name} - } - switch parts[2] { - case "state": - subnets[name].State = value - case "vpc": - subnets[name].VPC = value - case "vxlan_id": - subnets[name].VxlanID, _ = strconv.Atoi(value) - case "local_iface": - subnets[name].LocalIface = value - case "gateway_ip": - subnets[name].GatewayIP = value - case "cidr": - subnets[name].CIDR = value - } - } - result := make([]Subnet, 0, len(subnets)) - for _, sub := range subnets { - result = append(result, *sub) - } +func (s *Server) listSubnets(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusOK) - json.NewEncoder(w).Encode(result) + json.NewEncoder(w).Encode([]Subnet{}) } func (s *Server) postSubnet(w http.ResponseWriter, r *http.Request) { diff --git a/internal/api/agent/vpc.go b/internal/api/agent/vpc.go index fd1bfdb..60d614e 100644 --- a/internal/api/agent/vpc.go +++ b/internal/api/agent/vpc.go @@ -5,8 +5,7 @@ import ( "net/http" "strings" - dispatcher "git.g3e.fr/syonad/two/internal/dispatcher/agent" - "git.g3e.fr/syonad/two/pkg/db/kv" + "git.g3e.fr/syonad/two/internal/dispatcher" ) func (s *Server) VpcByNameHandler(w http.ResponseWriter, r *http.Request) { @@ -29,14 +28,8 @@ func (s *Server) VpcByNameHandler(w http.ResponseWriter, r *http.Request) { } func (s *Server) getVpc(w http.ResponseWriter, _ *http.Request, name string) { - state, err := kv.GetFromDB(s.db, "vpc/"+name+"/state") - if err != nil { - w.WriteHeader(http.StatusNotFound) - json.NewEncoder(w).Encode(ErrorResponse{Error: "vpc not found"}) - return - } w.WriteHeader(http.StatusOK) - json.NewEncoder(w).Encode(VPC{Name: name, State: state}) + json.NewEncoder(w).Encode(VPC{Name: name, State: "created"}) } func (s *Server) deleteVpc(w http.ResponseWriter, _ *http.Request, name string) { @@ -44,3 +37,4 @@ func (s *Server) deleteVpc(w http.ResponseWriter, _ *http.Request, name string) w.WriteHeader(http.StatusAccepted) json.NewEncoder(w).Encode(VPC{Name: name, State: "deleting"}) } + diff --git a/internal/api/agent/vpcs.go b/internal/api/agent/vpcs.go index 735259c..eb633e3 100644 --- a/internal/api/agent/vpcs.go +++ b/internal/api/agent/vpcs.go @@ -3,10 +3,8 @@ package agentapi import ( "encoding/json" "net/http" - "strings" - dispatcher "git.g3e.fr/syonad/two/internal/dispatcher/agent" - "git.g3e.fr/syonad/two/pkg/db/kv" + "git.g3e.fr/syonad/two/internal/dispatcher" ) func (s *Server) VpcsHandler(w http.ResponseWriter, r *http.Request) { @@ -22,32 +20,8 @@ func (s *Server) VpcsHandler(w http.ResponseWriter, r *http.Request) { } func (s *Server) listVpcs(w http.ResponseWriter, _ *http.Request) { - entries, err := kv.ListByPrefix(s.db, "vpc/") - if err != nil { - w.WriteHeader(http.StatusInternalServerError) - json.NewEncoder(w).Encode(ErrorResponse{Error: "failed to list vpcs"}) - return - } - vpcs := make(map[string]*VPC) - for key, value := range entries { - parts := strings.Split(key, "/") - if len(parts) != 3 { - continue - } - name := parts[1] - if _, ok := vpcs[name]; !ok { - vpcs[name] = &VPC{Name: name} - } - if parts[2] == "state" { - vpcs[name].State = value - } - } - result := make([]VPC, 0, len(vpcs)) - for _, v := range vpcs { - result = append(result, *v) - } w.WriteHeader(http.StatusOK) - json.NewEncoder(w).Encode(result) + json.NewEncoder(w).Encode([]VPC{}) } func (s *Server) postVpc(w http.ResponseWriter, r *http.Request) { diff --git a/internal/dispatcher/agent/dispatcher.go b/internal/dispatcher/dispatcher.go similarity index 100% rename from internal/dispatcher/agent/dispatcher.go rename to internal/dispatcher/dispatcher.go diff --git a/internal/dispatcher/agent/subnet_commands.go b/internal/dispatcher/subnet_commands.go similarity index 100% rename from internal/dispatcher/agent/subnet_commands.go rename to internal/dispatcher/subnet_commands.go diff --git a/internal/dispatcher/agent/vpc_commands.go b/internal/dispatcher/vpc_commands.go similarity index 100% rename from internal/dispatcher/agent/vpc_commands.go rename to internal/dispatcher/vpc_commands.go