diff --git a/main.go b/main.go index 18d96c4..2c0205c 100644 --- a/main.go +++ b/main.go @@ -125,13 +125,60 @@ func powerOffOracleHandler(writer http.ResponseWriter, request *http.Request) { } } +func powerOnProliant() bool { + cmd := exec.Command("bash", "-c", "./start_proliant.sh") + err := cmd.Run() + if err == nil { + fmt.Println("Starting Proliant command succeeded") + return true + } else { + fmt.Println("Error Starting Proliant", err) + return false + } +} + +func powerOffProliant() bool { + cmd := exec.Command("bash", "-c", "./stop_proliant.sh") + err := cmd.Run() + if err == nil { + fmt.Println("Stopping Proliant command succeeded") + return true + } else { + fmt.Println("Error Stopping Proliant", err) + return false + } +} + +func powerOnProliantHandler(writer http.ResponseWriter, request *http.Request) { + result := powerOnProliant() + if result == true { + time.Sleep(10 * time.Second) + http.Redirect(writer, request, "/", 302) + } else { + // TODO: Ver como render el error + http.Redirect(writer, request, "/", 302) + } +} + +func powerOffProliantHandler(writer http.ResponseWriter, request *http.Request) { + result := powerOffProliant() + if result == true { + time.Sleep(10 * time.Second) + http.Redirect(writer, request, "/", 302) + } else { + // TODO: Ver como render el error + http.Redirect(writer, request, "/", 302) + } +} + func main() { loadTemplates() http.HandleFunc("/", indexHandler) http.HandleFunc("/power-on-oracle", powerOnOracleHandler) http.HandleFunc("/power-off-oracle", powerOffOracleHandler) - + http.HandleFunc("/power-on-proliant", powerOnProliantHandler) + http.HandleFunc("/power-off-proliant", powerOffProliantHandler) err := http.ListenAndServe(":5001", nil) if err != nil { fmt.Println(err)