bmclib/client_test.go
Jacob Weinstock a24f9330ff Merge from master, fix metadata;
metadata was returning duplicates. This commit
fixes that.

Signed-off-by: Jacob Weinstock <jakobweinstock@gmail.com>
2021-03-25 13:55:11 -06:00

60 lines
1.3 KiB
Go

package bmclib
import (
"context"
"testing"
"time"
"github.com/bmc-toolbox/bmclib/bmc"
"github.com/bmc-toolbox/bmclib/logging"
)
func TestBMC(t *testing.T) {
t.Skip("needs ipmitool and real ipmi server")
ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
defer cancel()
host := "127.0.0.1"
port := "623"
user := "ADMIN"
pass := "ADMIN"
log := logging.DefaultLogger()
cl := NewClient(host, port, user, pass, WithLogger(log))
cl.Registry.Drivers = cl.Registry.FilterForCompatible(ctx)
var metadata bmc.Metadata
var err error
cl.Registry.Drivers, err = cl.Open(ctx, &metadata)
if err != nil {
t.Fatal(err)
}
defer cl.Close(ctx)
t.Logf("%+v", metadata)
cl.Registry.Drivers = cl.Registry.PreferDriver("dummy")
state, err := cl.GetPowerState(ctx, &metadata)
if err != nil {
t.Fatal(err)
}
t.Log(state)
t.Logf("%+v", metadata)
cl.Registry.Drivers = cl.Registry.PreferDriver("ipmitool")
// if you pass in a the metadata as a pointer to any function
// it will be updated with details about the call. name of the provider
// that successfully execute and providers attempted.
state, err = cl.GetPowerState(ctx, &metadata)
if err != nil {
t.Fatal(err)
}
t.Log(state)
t.Logf("%+v", metadata)
users, err := cl.ReadUsers(ctx)
if err != nil {
t.Fatal(err)
}
t.Log(users)
t.Fatal()
}