diff --git a/agents/agent.go b/agents/agent.go index df5baa1..5d6b6c4 100644 --- a/agents/agent.go +++ b/agents/agent.go @@ -60,7 +60,6 @@ func registerAgent(agentName, agentId, agentIp, agentType string) error { return nil } - func connectToWebSocket(agentName, agentId, agentIp, agentType string) error { wsURL := fmt.Sprintf("ws://%s/data?agentName=%s&agentId=%s&IPv4Address=%s&agentType=%s", webSocketAddr, url.QueryEscape(agentName), url.QueryEscape(agentId), url.QueryEscape(agentIp), url.QueryEscape(agentType)) var err error diff --git a/main.go b/main.go index 8b69190..04de929 100644 --- a/main.go +++ b/main.go @@ -15,6 +15,7 @@ import ( "syscall" "gontrol/src/randomname" + "gontrol/src/server/database" api "gontrol/src/server/api" websocketserver "gontrol/src/server/websocket" @@ -53,19 +54,19 @@ func init() { tmpl, _ = template.ParseGlob("templates/*.html") } -func initDB (dbUser string, dbPassword string, dbHost string, dbPort int16, dbName string ) { - var err error - dbOpen := fmt.Sprintf("%s:%s@(%s:%d)/%s?parseTime=true", dbUser,dbPassword, dbHost, dbPort, dbName) - db, err = sql.Open("mysql", dbOpen) - if err != nil { - log.Fatal(err) - } +// func initDB (dbUser string, dbPassword string, dbHost string, dbPort int16, dbName string ) { +// var err error +// dbOpen := fmt.Sprintf("%s:%s@(%s:%d)/%s?parseTime=true", dbUser,dbPassword, dbHost, dbPort, dbName) +// db, err = sql.Open("mysql", dbOpen) +// if err != nil { +// log.Fatal(err) +// } - if err = db.Ping(); err != nil { - log.Fatal(err) - } - log.Println("Connected to database") -} +// if err = db.Ping(); err != nil { +// log.Fatal(err) +// } +// log.Println("Connected to database") +// } func renderTemplate(w http.ResponseWriter, tmpl string, data interface{}) { t, err := template.ParseFiles(tmpl) @@ -134,7 +135,6 @@ func getAgentIds(w http.ResponseWriter, r *http.Request) { return } - func main() { var cfg Config @@ -154,7 +154,8 @@ func main() { webMux.HandleFunc("/agentIds", getAgentIds) webMux.HandleFunc("/agents/{agentId}", agentsHandler) - initDB (cfg.Database.Username, cfg.Database.Password, cfg.Database.Host, cfg.Database.Port, cfg.Database.Name) + // initDB (cfg.Database.Username, cfg.Database.Password, cfg.Database.Host, cfg.Database.Port, cfg.Database.Name) + db = database.InitDB (cfg.Database.Username, cfg.Database.Password, cfg.Database.Host, cfg.Database.Port, cfg.Database.Name) defer db.Close() name := randomname.GenerateRandomName() fmt.Println(name) diff --git a/src/server/api/agentApi.go b/src/server/api/agentApi.go index 0db1c16..2f12685 100644 --- a/src/server/api/agentApi.go +++ b/src/server/api/agentApi.go @@ -164,6 +164,6 @@ func GetAgentIds(db *sql.DB, w http.ResponseWriter, r *http.Request) { agentIds = append(agentIds, strconv.Itoa(id)) } - w.Header().Set("Content-Type", "application/json") + // ocket.go.Header().Set("Content-Type", "application/json") json.NewEncoder(w).Encode(agentIds) } diff --git a/src/server/database/database.go b/src/server/database/database.go index e69de29..c4d5757 100644 --- a/src/server/database/database.go +++ b/src/server/database/database.go @@ -0,0 +1,26 @@ +package database + +import ( + "fmt" + "log" + "database/sql" + _ "github.com/go-sql-driver/mysql" +) + + +func InitDB (dbUser string, dbPassword string, dbHost string, dbPort int16, dbName string ) *sql.DB { + var db *sql.DB + var err error + dbOpen := fmt.Sprintf("%s:%s@(%s:%d)/%s?parseTime=true", dbUser,dbPassword, dbHost, dbPort, dbName) + db, err = sql.Open("mysql", dbOpen) + if err != nil { + log.Fatal(err) + } + + if err = db.Ping(); err != nil { + log.Fatal(err) + } + log.Println("Connected to database") + + return db +} diff --git a/src/server/webapp/webapp.go b/src/server/webapp/webapp.go new file mode 100644 index 0000000..e69de29 diff --git a/src/server/websocket/websocketServer.go b/src/server/websocket/websocketServer.go index 8cb8961..db08b9d 100644 --- a/src/server/websocket/websocketServer.go +++ b/src/server/websocket/websocketServer.go @@ -38,6 +38,9 @@ var getAgentNames http.HandlerFunc = func(w http.ResponseWriter, r *http.Request agentSocketsMutex.Unlock() w.Header().Set("Content-Type", "application/json") + w.Header().Set("Access-Control-Allow-Origin", "*") + w.Header().Set("Access-Control-Allow-Methods", "GET, POST, OPTIONS") + w.Header().Set("Access-Control-Allow-Headers", "Content-Type") json.NewEncoder(w).Encode(agentNames) } diff --git a/templates/index.html b/templates/index.html index 7c87835..4e12b85 100644 --- a/templates/index.html +++ b/templates/index.html @@ -9,14 +9,6 @@ g2: gommand & gontrol - @@ -60,6 +85,7 @@

Agents

+
@@ -80,13 +106,6 @@

                 
- - - - - - -
diff --git a/templates/partials/agent_list.html b/templates/partials/agent_list.html index f065ffc..b08f196 100644 --- a/templates/partials/agent_list.html +++ b/templates/partials/agent_list.html @@ -5,8 +5,9 @@ Name Type IPv4 Address - Initial Contact - Last Contact + + + Status Actions @@ -17,8 +18,11 @@ {{.AgentName}} {{.AgentType}} {{.IPv4Address}} - {{.InitialContact}} - {{.LastContact}} + + + + +