adding server handling
This commit is contained in:
parent
29e1a09219
commit
5c14017a78
@ -33,7 +33,7 @@ func GetOS(db *sql.DB) ([]OS, error) {
|
||||
return oses, err
|
||||
}
|
||||
|
||||
func GetOSbyID(db *sql.DB, id string) (OS, error) {
|
||||
func GetOSbyID(db *sql.DB, id int64) (OS, error) {
|
||||
var os OS
|
||||
if err := db.QueryRow("SELECT * FROM dashboard_os where id = ?", id).Scan(&os.ID, &os.Distribution, &os.Version, &os.End_of_support); err != nil {
|
||||
if err == sql.ErrNoRows {
|
||||
|
||||
57
Database/server.go
Normal file
57
Database/server.go
Normal file
@ -0,0 +1,57 @@
|
||||
package database
|
||||
|
||||
import (
|
||||
"database/sql"
|
||||
"log"
|
||||
)
|
||||
|
||||
type Server struct {
|
||||
ID int `json:"id"`
|
||||
Hostname string `json:"hostname"`
|
||||
Os_id int `json:"os_id"`
|
||||
}
|
||||
|
||||
func GetServersList(db *sql.DB) ([]Server, error) {
|
||||
var servers []Server
|
||||
rows, err := db.Query("SELECT * FROM dashboard_server")
|
||||
if err != nil {
|
||||
log.Println("Error querying servers list", err)
|
||||
}
|
||||
defer rows.Close()
|
||||
|
||||
for rows.Next() {
|
||||
var s Server
|
||||
err := rows.Scan(&s.ID, &s.Hostname, &s.Os_id)
|
||||
if err != nil {
|
||||
log.Println("Error building servers list", err)
|
||||
}
|
||||
servers = append(servers, s)
|
||||
}
|
||||
return servers, err
|
||||
}
|
||||
|
||||
func GetServersbyID(db *sql.DB, id int64) Server {
|
||||
var s Server
|
||||
rows := db.QueryRow("SELECT * FROM dashboard_server WHERE id = ?", id)
|
||||
rows.Scan(&s.ID, &s.Hostname, &s.Os_id)
|
||||
return s
|
||||
}
|
||||
|
||||
func GetServersbyOS(db *sql.DB, id int) ([]Server, error) {
|
||||
var servers []Server
|
||||
rows, err := db.Query("SELECT * FROM dashboard_server WHERE os_id = ?", id)
|
||||
if err != nil {
|
||||
log.Println("Error querying servers list by os_id", err)
|
||||
}
|
||||
defer rows.Close()
|
||||
|
||||
for rows.Next() {
|
||||
var s Server
|
||||
err := rows.Scan(&s.ID, &s.Hostname, &s.Os_id)
|
||||
if err != nil {
|
||||
log.Println("Error building servers list", err)
|
||||
}
|
||||
servers = append(servers, s)
|
||||
}
|
||||
return servers, err
|
||||
}
|
||||
@ -6,6 +6,7 @@ import (
|
||||
"io"
|
||||
"log"
|
||||
"net/http"
|
||||
"strconv"
|
||||
"time"
|
||||
|
||||
"github.com/gorilla/mux"
|
||||
@ -41,7 +42,12 @@ func GetOSbyID(w http.ResponseWriter, r *http.Request) {
|
||||
params := mux.Vars(r)
|
||||
db_conn := db.GetDatabaseConnection()
|
||||
defer db_conn.Close()
|
||||
os, err = db.GetOSbyID(db_conn, params["id"])
|
||||
id, err := strconv.ParseInt(params["id"], 10, 64)
|
||||
if err != nil {
|
||||
log.Println("Error converting ID", err)
|
||||
status = 500
|
||||
}
|
||||
os, err = db.GetOSbyID(db_conn, int64(id))
|
||||
if err != nil {
|
||||
log.Println("Error getting OS")
|
||||
status = 500
|
||||
|
||||
52
Http/server.go
Normal file
52
Http/server.go
Normal file
@ -0,0 +1,52 @@
|
||||
package http
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
db "infra-dashboard/Database"
|
||||
"log"
|
||||
"net/http"
|
||||
"strconv"
|
||||
"time"
|
||||
|
||||
"github.com/gorilla/mux"
|
||||
)
|
||||
|
||||
func GetServersList(w http.ResponseWriter, r *http.Request) {
|
||||
var list []db.Server
|
||||
var err error
|
||||
|
||||
t := time.Now()
|
||||
status := 200
|
||||
|
||||
db_conn := db.GetDatabaseConnection()
|
||||
defer db_conn.Close()
|
||||
list, err = db.GetServersList(db_conn)
|
||||
if err != nil {
|
||||
log.Println("Error getting OS list")
|
||||
status = 500
|
||||
}
|
||||
logRequest(t, r, status)
|
||||
w.Header().Set("Content-Type", "application/json")
|
||||
json.NewEncoder(w).Encode(list)
|
||||
}
|
||||
|
||||
func GetServersbyID(w http.ResponseWriter, r *http.Request) {
|
||||
var server db.Server
|
||||
var err error
|
||||
|
||||
t := time.Now()
|
||||
status := 200
|
||||
|
||||
params := mux.Vars(r)
|
||||
id, err := strconv.ParseInt(params["id"], 10, 32)
|
||||
if err != nil {
|
||||
log.Println("Error converting ID", err)
|
||||
status = 500
|
||||
}
|
||||
db_conn := db.GetDatabaseConnection()
|
||||
defer db_conn.Close()
|
||||
server = db.GetServersbyID(db_conn, int64(id))
|
||||
logRequest(t, r, status)
|
||||
w.Header().Set("Content-Type", "application/json")
|
||||
json.NewEncoder(w).Encode(server)
|
||||
}
|
||||
3
main.go
3
main.go
@ -34,5 +34,8 @@ func main() {
|
||||
router.HandleFunc("/os/distribution", h.GetDistributionList).Methods("GET")
|
||||
router.HandleFunc("/os/distribution/{distribution:[a-zA-Z]+}/versions", h.GetVersionsByDistributionList).Methods("GET")
|
||||
|
||||
router.HandleFunc("/servers", h.GetServersList).Methods("GET")
|
||||
router.HandleFunc("/server/{id:[0-9]+}", h.GetServersbyID).Methods("GET")
|
||||
|
||||
log.Fatal(http.ListenAndServe(":8080", router))
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user