moved from mysql to sqlite for the agents database
This commit is contained in:
parent
43847559ac
commit
ca7da7fc62
9
main.go
9
main.go
|
@ -70,6 +70,9 @@ func init() {
|
|||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
|
||||
// Agents database
|
||||
db = database.InitSQLiteDB("/tmp/gontrol_agents.db")
|
||||
}
|
||||
|
||||
func renderTemplate(w http.ResponseWriter, tmpl string, data interface{}) {
|
||||
|
@ -289,6 +292,8 @@ func main() {
|
|||
// sqlite3 has been initialized in init()
|
||||
defer logger.CloseDB()
|
||||
|
||||
defer db.Close()
|
||||
|
||||
var cfg Config
|
||||
readEnv(&cfg)
|
||||
|
||||
|
@ -310,8 +315,8 @@ func main() {
|
|||
webMux.Handle("/static/", http.FileServer(http.FS(staticFiles)))
|
||||
webMux.HandleFunc("/proxyAgent", proxyAgentHandler)
|
||||
|
||||
db = database.InitDB (cfg.Database.Username, cfg.Database.Password, cfg.Database.Host, cfg.Database.Port, cfg.Database.Name)
|
||||
defer db.Close()
|
||||
// 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.Sprintf("Server instance: %s", name)
|
||||
|
|
|
@ -55,7 +55,8 @@ func CreateAgent(db *sql.DB, w http.ResponseWriter, r * http.Request) (http.Resp
|
|||
// initalContact := r.FormValue("initialContact")
|
||||
// lastContact := r.FormValue("lastContact")
|
||||
|
||||
query := "INSERT INTO agents (agentId, agentName, agentType, IPv4Address, addPort, initialContact, lastContact) VALUES (?, ?, ?, ?, ?, NOW(), NOW())"
|
||||
// query := "INSERT INTO agents (agentId, agentName, agentType, IPv4Address, addPort, initialContact, lastContact) VALUES (?, ?, ?, ?, ?, NOW(), NOW())"
|
||||
query := "INSERT INTO agents (agentId, agentName, agentType, IPv4Address, addPort, initialContact, lastContact) VALUES (?, ?, ?, ?, ?, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP)"
|
||||
_, err = db.Exec(query, agentId, agentName, agentType, IPv4Address, addPort)
|
||||
if err != nil {
|
||||
log.Printf("Database err is: %s", err)
|
||||
|
|
|
@ -1,26 +1,76 @@
|
|||
package database
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
// "fmt"
|
||||
"log"
|
||||
"database/sql"
|
||||
_ "github.com/go-sql-driver/mysql"
|
||||
_ "github.com/mattn/go-sqlite3"
|
||||
)
|
||||
|
||||
var (
|
||||
Agent_db *sql.DB
|
||||
|
||||
)
|
||||
|
||||
|
||||
func InitDB (dbUser string, dbPassword string, dbHost string, dbPort int16, dbName string ) *sql.DB {
|
||||
var db *sql.DB
|
||||
/* This is the connection initializer for 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
|
||||
// }
|
||||
|
||||
func InitSQLiteDB(dbPath string) *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)
|
||||
Agent_db, err = sql.Open("sqlite3", dbPath)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
log.Println("Error opening DB: %w", err)
|
||||
}
|
||||
|
||||
if err = db.Ping(); err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
log.Println("Connected to database")
|
||||
// CreateTableQuery := `CREATE TABLE IF NOT EXISTS logs (
|
||||
// id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
// message TEXT,
|
||||
// timestamp DATETIME DEFAULT CURRENT_TIMESTAMP,
|
||||
// level TEXT
|
||||
// );`
|
||||
|
||||
return db
|
||||
// id TEXT PRIMARY KEY DEFAULT (lower(hex(randomblob(16)))),
|
||||
CreateTableQuery :=`CREATE TABLE IF NOT EXISTS agents (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
agentId INTEGER UNIQUE,
|
||||
agentType TEXT,
|
||||
agentName TEXT,
|
||||
IPv4Address TEXT,
|
||||
initialContact datetime,
|
||||
lastContact datetime,
|
||||
addPort TEXT
|
||||
);`
|
||||
|
||||
_, err = Agent_db.Exec(CreateTableQuery)
|
||||
if err != nil {
|
||||
log.Println("Error creating table: %w", err)
|
||||
}
|
||||
|
||||
return Agent_db
|
||||
}
|
||||
|
||||
func CloseDB() {
|
||||
if Agent_db != nil {
|
||||
err := Agent_db.Close()
|
||||
if err != nil {
|
||||
log.Println("Error closing database: %v", err)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue