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

/*
*
@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
}