"io";
//"./dbibridge";
"./benchcontroller";
+ //"dbconnector";
"fmt";
+ "json";
)
-var comin chan int;
-var comout chan int;
+type JSONStatData struct {
+ currentJob int; // 1 = nothing, 2 = have database login, 3 = createing data, 4 = running test, 5 = finished
+ currentStatus int; // percent complete
+}
-// hello world, the web server
-func ServerResponder(c *http.Conn, req *http.Request) {
- //comout <- 2;
- //comout <- 3;
- //comout <- 1;
- fmt.Printf("lk: %s %s %s\n", req.Method, req.RawURL, req.URL);
- if req.RawURL == "/" {
- mainPage(c, req);
- }
+var comin chan string;
+var cominstatus chan string;
+var comout chan string;
+
+func JSONResponder(c *http.Conn, req *http.Request)
+{
+ //stat := <- cominstatus;
- if req.RawURL == "/setup" {
- setupPage(c, req);
+ if(req.Method == "GET") {
+
+ j, _, _ := json.StringToJson("{\"status\":1, \"complete\":90}");
+
+ io.WriteString(c, fmt.Sprintf("%s\n", json.JsonToString(j)));
+ fmt.Printf("i got a get\n");
+ }
+ if(req.Method == "POST") {
+ fmt.Printf("i got a post...\n");
+ http.Redirect(c, "/", 301);
}
- // fucking go, i just wanna consume the incoming data, but it forces me to do something with it... cunt of a language
- //k := <- comin;
- //fmt.Printf("%d\n", k);
}
-func setupPage(c *http.Conn, req *http.Request)
-{
- header(c);
- io.WriteString(c, "I am a setup page");
- footer(c);
-}
-
-func mainPage(c *http.Conn, req *http.Request)
-{
- header(c);
- io.WriteString(c, "<h1>goDBHammer</h1><br>");
- io.WriteString(c, "Welcome to goDBHammer, the go based database benchmarking tool<br>");
- io.WriteString(c, "<form method=\"post\" action=\"/setup\">");
- io.WriteString(c, "<table><tr><td>Database Host</td><td><input type=\"text\" name=\"dbhost\"></td></tr>");
- io.WriteString(c, "<tr><td>Database User</td><td><input type=\"text\" name=\"dbuser\"></td></tr>");
- io.WriteString(c, "<tr><td>Database Password</td><td><input type=\"text\" name=\"dbpass\"></td></tr>");
- io.WriteString(c, "<tr><td>Database</td><td><input type=\"text\" name=\"dbname\"></td></tr>");
- io.WriteString(c, "<tr><td>Number of Clients</td><td><input type=\"text\" name=\"nthreads\"></td></tr>");
- io.WriteString(c, "<tr><td><input type=\"submit\" name=\"Setup\" value=\"Setup\"></td></tr>");
- io.WriteString(c, "</table>");
- io.WriteString(c, "</form>");
- fmt.Printf("%s\n", req.FormValue("dbhost"));
- footer(c);
-}
func header(c *http.Conn)
{
io.WriteString(c, "</body></html>");
}
-func main() {
-
- //var Dbconn *dbibridge.DBIConnection;
-
- //Dbconn = dbibridge.DBICreate();
-
- //dbibridge.DBIConnect(Dbconn, "mysql", "localhost", "root", "password", "zm");
- //dbibridge.ExecSQL(Dbconn, "create table asdf (asdf int)");
- //dbibridge.DBIDisconnect(Dbconn);
+func main()
+{
+ comin = make(chan string);
+ cominstatus = make(chan string);
+ comout = make(chan string);
- comin = make(chan int);
- comout = make(chan int);
bc := benchcontroller.CreateController();
- go benchcontroller.MainLoop(bc, comout, comin);
+ go benchcontroller.MainLoop(bc, comout, comin, cominstatus);
- http.Handle("/", http.HandlerFunc(ServerResponder));
- err := http.ListenAndServe(":12345", nil);
+ http.Handle("/", http.FileServer("./web/", "/"));
+ http.Handle("/json", http.HandlerFunc(JSONResponder));
+ err := http.ListenAndServe(":22222", nil);
if err != nil {
panic("ListenAndServe: ", err.String())
}