diff --git a/cmd/pdu-collect.go b/cmd/pdu-collect.go index 883a149..55a9e2e 100644 --- a/cmd/pdu-collect.go +++ b/cmd/pdu-collect.go @@ -22,7 +22,6 @@ func transformToSMDFormat(inventory *pdu.PDUInventory) []map[string]any { log.Warn().Msgf("could not parse outlet ID format for '%s', skipping outlet", outlet.ID) continue } - letterPart = outlet.ID[:splitIndex] numberPart = outlet.ID[splitIndex:] @@ -30,14 +29,15 @@ func transformToSMDFormat(inventory *pdu.PDUInventory) []map[string]any { if len(letterPart) > 1 { pValue = int(unicode.ToUpper(rune(letterPart[1])) - 'A') } - - newIDSuffix := fmt.Sprintf("p%dv%s", pValue, numberPart) + + idSuffix := fmt.Sprintf("p%dv%s", pValue, numberPart) rawOutlet := map[string]any{ - "id": newIDSuffix, // Pass the newly formatted suffix to SMD + "original_id": outlet.ID, + "id_suffix": idSuffix, "name": outlet.Name, "state": outlet.PowerState, - "socket_type": "Cx", // This seems to be static + "socket_type": outlet.SocketType, } smdOutlets = append(smdOutlets, rawOutlet) } diff --git a/pkg/jaws/pdu-crawler.go b/pkg/jaws/pdu-crawler.go index 6cb3161..03bf441 100644 --- a/pkg/jaws/pdu-crawler.go +++ b/pkg/jaws/pdu-crawler.go @@ -25,6 +25,7 @@ type JawsOutlet struct { ID string `json:"id"` Name string `json:"name"` State string `json:"state"` + SocketType string `json:"socket_type"` Current float32 `json:"current"` Voltage float32 `json:"voltage"` ActivePower int `json:"active_power"` @@ -85,6 +86,7 @@ func CrawlPDU(config CrawlerConfig) (*pdu.PDUInventory, error) { ID: rawOutlet.ID, Name: rawOutlet.Name, PowerState: rawOutlet.State, + SocketType: rawOutlet.SocketType, } inventory.Outlets = append(inventory.Outlets, outlet) } diff --git a/pkg/pdu/pdu-inventory.go b/pkg/pdu/pdu-inventory.go index 3b0441d..71e956a 100644 --- a/pkg/pdu/pdu-inventory.go +++ b/pkg/pdu/pdu-inventory.go @@ -4,6 +4,7 @@ type PDUOutlet struct { ID string `json:"id"` // e.g., "35" or "BA35" Name string `json:"name"` // e.g., "Link1_Outlet_35" PowerState string `json:"power_state"` // e.g., "ON" or "OFF" + SocketType string `json:"socket_type"` } type PDUInventory struct {