"io";
//"./dbibridge";
"./benchcontroller";
+ //"dbconnector";
"fmt";
+ "json";
)
+type JSONStatData struct {
+ currentJob int; // 1 = nothing, 2 = have database login, 3 = createing data, 4 = running test, 5 = finished
+ currentStatus int; // percent complete
+}
+
var comin chan string;
+var cominstatus chan string;
var comout chan string;
+func JSONResponder(c *http.Conn, req *http.Request)
+{
+ //stat := <- cominstatus;
+
+ j, _, _ := json.StringToJson("{\"somestring\":\"somevalue\"}");
+
+ io.WriteString(c, fmt.Sprintf("%s\n", json.JsonToString(j)));
+
+ /*if ret {
+ fmt.Printf("err was true\n");
+ } else {
+ fmt.Printf("err was false\n");
+ }*/
+
+ //fmt.Printf("errto %s\n", errto);
+
+}
+
+
// hello world, the web server
func ServerResponder(c *http.Conn, req *http.Request) {
//comout <- 2;
func beginPage(c *http.Conn, req *http.Request)
{
- header(c);
- io.WriteString(c, "<h1>Starting hammer</h1>");
- //dbhost := req.FormValue("dbhost");
- //dbuser := req.FormValue("dbuser");
- //dbpass := req.FormValue("dbpass");
- //dbname := req.FormValue("dbname");
- //nthreads := req.FormValue("nthreads");
- //dbmult := req.FormValue("dbmult");
-
- footer(c);
+
+ if req.Method != "GET" {
+ http.Redirect(c, "/begin", 301);
+ } else {
+ header(c);
+ io.WriteString(c, "<h1>Starting hammer</h1>");
+ //dbhost := req.FormValue("dbhost");
+ //dbuser := req.FormValue("dbuser");
+ //dbpass := req.FormValue("dbpass");
+ //dbname := req.FormValue("dbname");
+ //nthreads := req.FormValue("nthreads");
+ //dbmult := req.FormValue("dbmult");
+ comout <- "begin:setup";
+
+ footer(c);
+ }
}
dbname := req.FormValue("dbname");
nthreads := req.FormValue("nthreads");
dbmult := req.FormValue("dbmult");
+ var dbtype string;
io.WriteString(c, "You are trying to perform a benchmark with the following values:<br>");
io.WriteString(c, "<table border=\"1\">");
io.WriteString(c, "<input type=\"submit\" name=\"Begin\" value=\"Begin\">");
io.WriteString(c, "</form>");
+ dbtype = "mysql";
+
footer(c);
- comout <- fmt.Sprintf("configure:%s:%s:%s:%s:%s:%s", dbhost, dbuser, dbpass, dbname, dbmult, nthreads);
+ comout <- fmt.Sprintf("configure:%s:%s:%s:%s:%s:%s:%s", dbtype, dbhost, dbuser, dbpass, dbname, dbmult, nthreads);
}
func main()
{
comin = make(chan string);
+ cominstatus = make(chan string);
comout = make(chan string);
+
bc := benchcontroller.CreateController();
- go benchcontroller.MainLoop(bc, comout, comin);
+ go benchcontroller.MainLoop(bc, comout, comin, cominstatus);
- http.Handle("/", http.HandlerFunc(ServerResponder));
+ http.Handle("/", http.FileServer("./web", "/web"));
+ http.Handle("/json", http.HandlerFunc(JSONResponder));
err := http.ListenAndServe(":22222", nil);
if err != nil {
panic("ListenAndServe: ", err.String())