mirror of
https://github.com/davidallendj/magellan.git
synced 2025-12-20 11:37:01 -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,
|
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
|
// collect bmc information asynchronously
|
||||||
var wg sync.WaitGroup
|
var wg sync.WaitGroup
|
||||||
wg.Add(q.Threads)
|
wg.Add(q.Threads)
|
||||||
|
|
@ -144,12 +154,6 @@ func CollectAll(probeStates *[]ScannedResult, l *log.Logger, q *QueryParams) err
|
||||||
q.Host = ps.Host
|
q.Host = ps.Host
|
||||||
q.Port = ps.Port
|
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
|
node.NodeBMC += 1
|
||||||
|
|
||||||
// data to be sent to smd
|
// 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
|
var rm map[string]json.RawMessage
|
||||||
|
|
||||||
// inventories
|
// inventories
|
||||||
inventory, err := CollectInventory(client, q)
|
inventory, err := CollectInventory(bmclibClient, q)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
l.Log.Errorf("could not query inventory (%v:%v): %v", q.Host, q.Port, err)
|
l.Log.Errorf("could not query inventory (%v:%v): %v", q.Host, q.Port, err)
|
||||||
}
|
}
|
||||||
json.Unmarshal(inventory, &rm)
|
json.Unmarshal(inventory, &rm)
|
||||||
data["Inventory"] = rm["Inventory"]
|
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
|
||||||
chassis, err := CollectChassis(c, q)
|
chassis, err := CollectChassis(c, q)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
@ -345,7 +344,6 @@ func CollectInventory(client *bmclib.Client, q *QueryParams) ([]byte, error) {
|
||||||
ctxCancel()
|
ctxCancel()
|
||||||
return nil, fmt.Errorf("could not open client: %v", err)
|
return nil, fmt.Errorf("could not open client: %v", err)
|
||||||
}
|
}
|
||||||
defer client.Close(ctx)
|
|
||||||
|
|
||||||
inventory, err := client.Inventory(ctx)
|
inventory, err := client.Inventory(ctx)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
@ -377,7 +375,6 @@ func CollectPowerState(client *bmclib.Client, q *QueryParams) ([]byte, error) {
|
||||||
ctxCancel()
|
ctxCancel()
|
||||||
return nil, fmt.Errorf("could not open client: %v", err)
|
return nil, fmt.Errorf("could not open client: %v", err)
|
||||||
}
|
}
|
||||||
defer client.Close(ctx)
|
|
||||||
|
|
||||||
powerState, err := client.GetPowerState(ctx)
|
powerState, err := client.GetPowerState(ctx)
|
||||||
if err != nil {
|
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, "", " ")
|
b, err := json.MarshalIndent(data, "", " ")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("could not marshal JSON: %v", err)
|
return nil, fmt.Errorf("could not marshal JSON: %v", err)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue