diff --git a/agent-go/status/Disk.go b/agent-go/status/Disk.go index 11df2f1..6e24af0 100644 --- a/agent-go/status/Disk.go +++ b/agent-go/status/Disk.go @@ -1,6 +1,7 @@ package status import ( + "agent-go/utils" "fmt" "github.com/shirou/gopsutil/v3/disk" "time" @@ -12,6 +13,10 @@ type DiskStatus struct { //LogicalDisk []disk.PartitionStat } +type DiskInfo struct { + DiskPartition []disk.PartitionStat +} + func GetDiskStatus() *DiskStatus { ds := &DiskStatus{} @@ -31,6 +36,22 @@ func GetDiskStatus() *DiskStatus { return ds } +func GetDiskInfo() (*DiskInfo, error) { + + partitionStats, err := disk.Partitions(true) + if err != nil { + log.ErrorF("[GetDiskInfo] - get disk partition info error ! => %v", err) + return nil, err + } + + d := &DiskInfo{} + for _, partitionStat := range partitionStats { + utils.BeautifulPrint(partitionStat) + } + + return d, nil +} + func CalculateDiskIO() { // Get initial disk IO counters diff --git a/agent-go/status/Disk_test.go b/agent-go/status/Disk_test.go index 64215a1..db79f0c 100644 --- a/agent-go/status/Disk_test.go +++ b/agent-go/status/Disk_test.go @@ -1,6 +1,7 @@ package status import ( + "agent-go/utils" "encoding/json" "fmt" "testing" @@ -19,3 +20,14 @@ func TestGetDiskStatus(t *testing.T) { fmt.Println(string(marshalIndent)) } + +func TestGetDiskInfo(t *testing.T) { + + diskInfo, err := GetDiskInfo() + if err != nil { + t.Errorf("get disk info error ! => %v", err) + } + + utils.BeautifulPrint(diskInfo) + +}