redfish

package
v0.10.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 24, 2025 License: Apache-2.0 Imports: 8 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Client

type Client struct {
	// contains filtered or unexported fields
}

Client represents a RedFish API client

func NewClient

func NewClient(endpoint, username, password string, verifySSL bool, timeout time.Duration) (*Client, error)

NewClient creates a new RedFish client

func (*Client) DeployISO

func (c *Client) DeployISO(isoPath string) (*DeploymentStatus, error)

DeployISO deploys an ISO image to the target system

func (*Client) GetDeploymentStatus

func (c *Client) GetDeploymentStatus() (*DeploymentStatus, error)

GetDeploymentStatus retrieves the current status of the deployment

func (*Client) GetSystemInfo

func (c *Client) GetSystemInfo() (*SystemInfo, error)

GetSystemInfo retrieves basic system information

type DMTFClient

type DMTFClient struct {
	*GenericClient
}

DMTFClient implements DMTF RedFish operations

func NewDMTFClient

func NewDMTFClient(endpoint, username, password string, verifySSL bool, timeout time.Duration) (*DMTFClient, error)

NewDMTFClient creates a new DMTF RedFish client

func (*DMTFClient) GetDeploymentStatus

func (c *DMTFClient) GetDeploymentStatus() (*DeploymentStatus, error)

GetDeploymentStatus retrieves the current status of the DMTF deployment

type DeploymentStatus

type DeploymentStatus struct {
	State     string    `json:"State"`
	Message   string    `json:"Message"`
	Progress  int       `json:"Progress"`
	StartTime time.Time `json:"StartTime"`
	EndTime   time.Time `json:"EndTime,omitempty"`
}

DeploymentStatus represents the status of an ISO deployment

type GenericClient

type GenericClient struct {
	// contains filtered or unexported fields
}

GenericClient implements generic RedFish operations This would work with tools like: https://github.com/openstack/sushy-tools

func NewGenericClient

func NewGenericClient(endpoint, username, password string, verifySSL bool, timeout time.Duration) (*GenericClient, error)

NewGenericClient creates a new generic RedFish client

func (*GenericClient) DeployISO

func (c *GenericClient) DeployISO(isoPath string) (*DeploymentStatus, error)

DeployISO implements generic ISO deployment

func (*GenericClient) GetDeploymentStatus

func (c *GenericClient) GetDeploymentStatus() (*DeploymentStatus, error)

GetDeploymentStatus retrieves the current status of the generic deployment

func (*GenericClient) GetSystemInfo

func (c *GenericClient) GetSystemInfo() (*SystemInfo, error)

GetSystemInfo retrieves generic system information

type HPEClient

type HPEClient struct {
	// contains filtered or unexported fields
}

HPEClient implements HPE iLO-specific RedFish operations

func NewHPEClient

func NewHPEClient(endpoint, username, password string, verifySSL bool, timeout time.Duration) (*HPEClient, error)

NewHPEClient creates a new HPE iLO RedFish client

func (*HPEClient) DeployISO

func (c *HPEClient) DeployISO(isoPath string) (*DeploymentStatus, error)

DeployISO implements HPE iLO-specific ISO deployment

func (*HPEClient) GetDeploymentStatus

func (c *HPEClient) GetDeploymentStatus() (*DeploymentStatus, error)

GetDeploymentStatus retrieves the current status of the HPE iLO deployment

func (*HPEClient) GetSystemInfo

func (c *HPEClient) GetSystemInfo() (*SystemInfo, error)

GetSystemInfo retrieves HPE iLO-specific system information

type Session

type Session struct {
	Token     string
	ExpiresAt time.Time
	Location  string
}

Session represents a RedFish session

type SuperMicroClient

type SuperMicroClient struct {
	// contains filtered or unexported fields
}

SuperMicroClient implements vendor-specific RedFish operations for SuperMicro hardware

func NewSuperMicroClient

func NewSuperMicroClient(endpoint, username, password string, verifySSL bool, timeout time.Duration) (*SuperMicroClient, error)

NewSuperMicroClient creates a new SuperMicro RedFish client

func (*SuperMicroClient) DeployISO

func (c *SuperMicroClient) DeployISO(isoPath string) (*DeploymentStatus, error)

DeployISO implements SuperMicro-specific ISO deployment

func (*SuperMicroClient) GetDeploymentStatus

func (c *SuperMicroClient) GetDeploymentStatus() (*DeploymentStatus, error)

GetDeploymentStatus retrieves the current status of the SuperMicro deployment

func (*SuperMicroClient) GetSystemInfo

func (c *SuperMicroClient) GetSystemInfo() (*SystemInfo, error)

GetSystemInfo retrieves SuperMicro-specific system information

type SystemInfo

type SystemInfo struct {
	ID             string `json:"Id"`
	Name           string `json:"Name"`
	Model          string `json:"Model"`
	Manufacturer   string `json:"Manufacturer"`
	SerialNumber   string `json:"SerialNumber"`
	MemorySize     int    `json:"MemorySummaryTotalSystemMemoryGiB"`
	ProcessorCount int    `json:"ProcessorSummaryCount"`
}

SystemInfo represents basic system information

type VendorClient

type VendorClient interface {
	// GetSystemInfo retrieves basic system information
	GetSystemInfo() (*SystemInfo, error)
	// DeployISO deploys an ISO image to the target system
	DeployISO(isoPath string) (*DeploymentStatus, error)
	// GetDeploymentStatus retrieves the current status of the deployment
	GetDeploymentStatus() (*DeploymentStatus, error)
}

VendorClient interface defines vendor-specific RedFish operations

func NewVendorClient

func NewVendorClient(vendor VendorType, baseURL, username, password string, verifySSL bool, timeout time.Duration) (VendorClient, error)

NewVendorClient creates a new vendor-specific RedFish client

type VendorType

type VendorType string

VendorType represents the type of hardware vendor

const (
	VendorGeneric    VendorType = "generic"
	VendorSuperMicro VendorType = "supermicro"
	VendorHPE        VendorType = "ilo"
	VendorDMTF       VendorType = "dmtf"
)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL