mirror of
https://github.com/davidallendj/magellan.git
synced 2025-12-20 03:27:03 -07:00
Moved clients out of goroutine to be reused through collection process
This commit is contained in:
parent
7a1c799910
commit
b610eda4d8
1 changed files with 12 additions and 15 deletions
|
|
@ -130,6 +130,16 @@ func CollectAll(probeStates *[]ScannedResult, l *log.Logger, q *QueryParams) err
|
|||
NodeBMC: -1,
|
||||
}
|
||||
|
||||
bmclibClient, err := NewClient(l, q)
|
||||
if err != nil {
|
||||
l.Log.Errorf("could not make client: %v", err)
|
||||
}
|
||||
|
||||
c, err := connectGofish(q)
|
||||
if err != nil {
|
||||
l.Log.Errorf("could not connect to bmc (%v:%v): %v", q.Host, q.Port, err)
|
||||
}
|
||||
|
||||
// collect bmc information asynchronously
|
||||
var wg sync.WaitGroup
|
||||
wg.Add(q.Threads)
|
||||
|
|
@ -144,12 +154,6 @@ func CollectAll(probeStates *[]ScannedResult, l *log.Logger, q *QueryParams) err
|
|||
q.Host = ps.Host
|
||||
q.Port = ps.Port
|
||||
|
||||
client, err := NewClient(l, q)
|
||||
if err != nil {
|
||||
l.Log.Errorf("could not make client: %v", err)
|
||||
continue
|
||||
}
|
||||
|
||||
node.NodeBMC += 1
|
||||
|
||||
// data to be sent to smd
|
||||
|
|
@ -168,18 +172,13 @@ func CollectAll(probeStates *[]ScannedResult, l *log.Logger, q *QueryParams) err
|
|||
var rm map[string]json.RawMessage
|
||||
|
||||
// inventories
|
||||
inventory, err := CollectInventory(client, q)
|
||||
inventory, err := CollectInventory(bmclibClient, q)
|
||||
if err != nil {
|
||||
l.Log.Errorf("could not query inventory (%v:%v): %v", q.Host, q.Port, err)
|
||||
}
|
||||
json.Unmarshal(inventory, &rm)
|
||||
data["Inventory"] = rm["Inventory"]
|
||||
|
||||
c, err := connectGofish(q)
|
||||
if err != nil {
|
||||
l.Log.Errorf("could not connect to bmc (%v:%v): %v", q.Host, q.Port, err)
|
||||
}
|
||||
|
||||
// chassis
|
||||
chassis, err := CollectChassis(c, q)
|
||||
if err != nil {
|
||||
|
|
@ -345,7 +344,6 @@ func CollectInventory(client *bmclib.Client, q *QueryParams) ([]byte, error) {
|
|||
ctxCancel()
|
||||
return nil, fmt.Errorf("could not open client: %v", err)
|
||||
}
|
||||
defer client.Close(ctx)
|
||||
|
||||
inventory, err := client.Inventory(ctx)
|
||||
if err != nil {
|
||||
|
|
@ -377,7 +375,6 @@ func CollectPowerState(client *bmclib.Client, q *QueryParams) ([]byte, error) {
|
|||
ctxCancel()
|
||||
return nil, fmt.Errorf("could not open client: %v", err)
|
||||
}
|
||||
defer client.Close(ctx)
|
||||
|
||||
powerState, err := client.GetPowerState(ctx)
|
||||
if err != nil {
|
||||
|
|
@ -545,7 +542,7 @@ func CollectSystems(c *gofish.APIClient, q *QueryParams) ([]byte, error) {
|
|||
})
|
||||
}
|
||||
|
||||
data := map[string]any{"Systems": temp }
|
||||
data := map[string]any{"Systems": temp}
|
||||
b, err := json.MarshalIndent(data, "", " ")
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("could not marshal JSON: %v", err)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue