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
|
return oses, err
|
||||||
}
|
}
|
||||||
|
|
||||||
func GetOSbyID(db *sql.DB, id string) (OS, error) {
|
func GetOSbyID(db *sql.DB, id int64) (OS, error) {
|
||||||
var os OS
|
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 := 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 {
|
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"
|
"io"
|
||||||
"log"
|
"log"
|
||||||
"net/http"
|
"net/http"
|
||||||
|
"strconv"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/gorilla/mux"
|
"github.com/gorilla/mux"
|
||||||
@ -41,7 +42,12 @@ func GetOSbyID(w http.ResponseWriter, r *http.Request) {
|
|||||||
params := mux.Vars(r)
|
params := mux.Vars(r)
|
||||||
db_conn := db.GetDatabaseConnection()
|
db_conn := db.GetDatabaseConnection()
|
||||||
defer db_conn.Close()
|
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 {
|
if err != nil {
|
||||||
log.Println("Error getting OS")
|
log.Println("Error getting OS")
|
||||||
status = 500
|
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", h.GetDistributionList).Methods("GET")
|
||||||
router.HandleFunc("/os/distribution/{distribution:[a-zA-Z]+}/versions", h.GetVersionsByDistributionList).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))
|
log.Fatal(http.ListenAndServe(":8080", router))
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user