func New(ctx context.Context, host string, username string, password string, log logr.Logger) (*IDrac8, error) {
	sshClient, err := sshclient.New(host, username, password)
	if err != nil {
		return nil, err
	}
	return &IDrac8{ip: host, username: username, password: password, sshClient: sshClient, ctx: ctx, log: log}, err
}
New returns a new IDrac8 ready to be used
package idrac8
import (
	"bytes"
	"context"
	"encoding/json"
	"encoding/xml"
	"fmt"
	"io/ioutil"
	"net/http"
	"net/http/httputil"
	"net/url"
	"strconv"
	"strings"
	"github.com/bmc-toolbox/bmclib/devices"
	"github.com/bmc-toolbox/bmclib/errors"
	"github.com/bmc-toolbox/bmclib/internal/httpclient"
	"github.com/bmc-toolbox/bmclib/internal/sshclient"
	"github.com/bmc-toolbox/bmclib/providers/dell"
	"github.com/go-logr/logr"
)
const (
	BMCType = "idrac8"
)
type IDrac8 struct {
	ip             string
	username       string
	password       string
	httpClient     *http.Client
	sshClient      *sshclient.SSHClient
	st1            string
	st2            string
	iDracInventory *dell.IDracInventory
	ctx            context.Context
	log            logr.Logger
}