MCPcopy Create free account
hub / github.com/devnullvoid/pvetui / GetNodeDisks

Method GetNodeDisks

pkg/api/node_disks.go:39–67  ·  view source on GitHub ↗

GetNodeDisks retrieves the list of disks for a specific node.

(nodeName string)

Source from the content-addressed store, hash-verified

37
38// GetNodeDisks retrieves the list of disks for a specific node.
39func (c *Client) GetNodeDisks(nodeName string) ([]NodeDisk, error) {
40 var res map[string]interface{}
41 // include-partitions=0 (default) to get physical disks.
42 if err := c.GetWithCache(fmt.Sprintf("/nodes/%s/disks/list", nodeName), &res, NodeDataTTL); err != nil {
43 return nil, fmt.Errorf("failed to get node disks: %w", err)
44 }
45
46 data, ok := res["data"].([]interface{})
47 if !ok {
48 return nil, fmt.Errorf("invalid disk response format")
49 }
50
51 var disks []NodeDisk
52 for _, item := range data {
53 if dData, ok := item.(map[string]interface{}); ok {
54 disk := NodeDisk{
55 DevPath: getString(dData, "devpath"),
56 Health: getString(dData, "health"),
57 Model: getString(dData, "model"),
58 Serial: getString(dData, "serial"),
59 Type: getString(dData, "type"),
60 Used: getString(dData, "used"),
61 Size: int64(getFloat(dData, "size")),
62 }
63 disks = append(disks, disk)
64 }
65 }
66 return disks, nil
67}
68
69// GetNodeDiskSmart retrieves the SMART status for a specific disk on a node.
70func (c *Client) GetNodeDiskSmart(nodeName, diskPath string) (*SmartStatus, error) {

Callers 3

TestGetNodeDisksFunction · 0.95
RefreshNodeDataMethod · 0.95

Calls 3

GetWithCacheMethod · 0.95
getStringFunction · 0.85
getFloatFunction · 0.85

Tested by 1

TestGetNodeDisksFunction · 0.76