You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
51 lines
1.0 KiB
51 lines
1.0 KiB
/*
|
|
*
|
|
@author: sre
|
|
@date: 2023/11/19 0019
|
|
@desc: todo
|
|
*
|
|
*/
|
|
package main
|
|
|
|
import (
|
|
"github.com/gocarina/gocsv"
|
|
"os"
|
|
)
|
|
|
|
// Monitor for output
|
|
type Monitor struct {
|
|
IP string `csv:"ip"`
|
|
Port string `csv:"port"`
|
|
CPUCore int `csv:"cpu_core"`
|
|
CPUUsage float64 `csv:"cpu_usage"`
|
|
MemTotal float64 `csv:"mem_total"`
|
|
MemUsage float64 `csv:"mem_usage"`
|
|
NodeLoad1 float64 `csv:"node_load1"`
|
|
NodeLoad5 float64 `csv:"node_load5"`
|
|
NodeLoad15 float64 `csv:"node_load15"`
|
|
ERROR string `csv:"error"`
|
|
}
|
|
|
|
// Host for input
|
|
type Host struct {
|
|
IP string `csv:"ip"`
|
|
Port string `csv:"port"`
|
|
}
|
|
|
|
func GetHostListFromCSV() ([]*Host, error) {
|
|
hostssFile, err := os.OpenFile(INPUTFILE, os.O_RDWR|os.O_CREATE, os.ModePerm)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
defer hostssFile.Close()
|
|
|
|
hosts := []*Host{}
|
|
|
|
if err := gocsv.UnmarshalFile(hostssFile, &hosts); err != nil { // Load hosts from file
|
|
//if err := gocsv.UnmarshalBytes(CSVDATA, &hosts); err != nil { // Load hosts from file
|
|
return nil, err
|
|
}
|
|
return hosts, nil
|
|
|
|
}
|