X-Git-Url: https://git.josue.xyz/?p=VSCPweb%2F.git;a=blobdiff_plain;f=main.go;h=bfa0f362a02375c016c5262d07e23f5177761eee;hp=99d2c10b69e18ff5fffd9d3e3fba2eee4de33e9b;hb=HEAD;hpb=d157928db87858f4b263066f971ffe2e9e4ccf7e diff --git a/main.go b/main.go deleted file mode 100644 index 99d2c10..0000000 --- a/main.go +++ /dev/null @@ -1,127 +0,0 @@ -package main - -import ( - "fmt" - "net/http" - - "github.com/go-chi/chi/v5" - "github.com/go-chi/chi/v5/middleware" -) - -func main() { - - -//Creation of the router: - //r main router for VSCP web application - r := chi.NewRouter() - //logging enables as a middleware - r.Use(middleware.Logger) - //a middleware to check if the server is alive - r.Use(middleware.Heartbeat("/ping")) - //a profiler to check healt of server - r.Mount("/debug", middleware.Profiler()) - //recover from panics and send a 500 internal error - r.Use(middleware.Recoverer) - //personalized 404 - r.NotFound(genericHandler404) - //personalized 405 - r.MethodNotAllowed(genericHandler405) - -//example: - //example of a get function and its handler - r.Get("/example/{first}/{second:[0-9]+}", exampleHandler) - -//Creating subrouters: - //healthRouter check on the health of nodes or main server - healthRouter := chi.NewRouter() - //controllerRouter Agnostic openVswitch controller bridge - controllerRouter := chi.NewRouter() - //managementRouter Start, stop, monitoring of the core (mininet) - managementRouter := chi.NewRouter() - //mininetApiRouter Interface with the virtual environment inside the core (mininet) - mininetApiRouter := chi.NewRouter() - //might want to check https://go-chi.io/#/pages/routing?id=routing-groups - //in order to make groups where you have other middleware like authentication - -//////////////////////////////////possible routing///////////////////////////// - //r.Connect(pattern string, h http.HandlerFunc) - //r.Delete(pattern string, h http.HandlerFunc) - //r.Get(pattern string, h http.HandlerFunc) - //r.Head(pattern string, h http.HandlerFunc) - //r.Options(pattern string, h http.HandlerFunc) - //r.Patch(pattern string, h http.HandlerFunc) - //r.Post(pattern string, h http.HandlerFunc) - //r.Put(pattern string, h http.HandlerFunc) - //r.Trace(pattern string, h http.HandlerFunc) -/////////////////////////////////////////////////////////////////////////////// - - //r.Get("/", ) - //r.Get("/access", ) - //r.Get("/stats", ) - //r.Get("/topology", ) - //r.Get("/health", ) - //r.Get("/free", )//probably do this with server side or sockets - //r.Get("/flowdel", )//this is an external request - //r.Get("/mpstat", ) - //r.Get("/ifstat", ) - //r.Get("/showtemp", ) - //r.Get("/gettopo", ) - //r.Get("/net", ) - //r.Get("/rpiping", )//workerping - //r.Get("/nodes", ) - //r.Get("/statusnodes", ) - //r.Get("/intfs", ) - //r.Get("/iperf", ) - //r.Get("/pingall", ) - //r.Get("/placement", ) - //r.Get("/getvsorcdata", ) - //r.Get("/getcontrollerdata", ) - //r.Get("/resetflows", ) - //r.Get("/listswitch", ) - //r.Get("/status", ) - //r.Get("/tablestatus", ) - //r.Get("/portsdesc", ) - //r.Get("/portsstat", ) - //r.Get("/startcontroller", ) - //r.Get("/startcontrollerrouter", ) - //r.Get("/stopcontroller", ) - //r.Get("/sendcommand", ) - //r.Get("/cancel", ) - //r.Get("/startvsorc", ) - //r.Get("/stopvsorc", ) - //http.Handle("/", r) - -//Mounting all of the subrouters: - r.Mount("/health", healthRouter) - r.Mount("/controller", controllerRouter) - r.Mount("/management", managementRouter) - r.Mount("/virtualAPI", mininetApiRouter) - -//staring up the server - http.ListenAndServe(":8000", r) -} - - - - - - - - - -//genericHandler404 is the universal 404 response of this front end -func genericHandler404(w http.ResponseWriter, r *http.Request){ - w.WriteHeader(404) - w.Write([]byte("route does not exist")) -} -//genericHandler405 is the universal 405 response of this front end -func genericHandler405(w http.ResponseWriter, r *http.Request){ - w.WriteHeader(405) - w.Write([]byte("Method not valid")) -} -func exampleHandler(w http.ResponseWriter, r *http.Request) { - var1 := chi.URLParam(r, "first") - var2 := chi.URLParam(r, "second") - w.WriteHeader(http.StatusOK) - fmt.Fprintf(w, "First: %v\nSecond: %v", var1, var2) -}