mirror of
https://github.com/bmc-toolbox/bmclib.git
synced 2025-06-03 05:14:43 +00:00
Add constants
This commit is contained in:
parent
ded545e135
commit
742da048b5
95
constants/constants.go
Normal file
95
constants/constants.go
Normal file
@ -0,0 +1,95 @@
|
|||||||
|
package constants
|
||||||
|
|
||||||
|
import "strings"
|
||||||
|
|
||||||
|
const (
|
||||||
|
// Unknown is the constant that defines unknown things
|
||||||
|
Unknown = "Unknown"
|
||||||
|
|
||||||
|
// Vendor constants
|
||||||
|
|
||||||
|
// HP is the constant that defines the vendor HP
|
||||||
|
HP = "HP"
|
||||||
|
// Dell is the constant that defines the vendor Dell
|
||||||
|
Dell = "Dell"
|
||||||
|
// Supermicro is the constant that defines the vendor Supermicro
|
||||||
|
Supermicro = "Supermicro"
|
||||||
|
// Cloudline is the constant that defines the cloudlines
|
||||||
|
Cloudline = "Cloudline"
|
||||||
|
// Quanta is the contant to identify Quanta hardware
|
||||||
|
Quanta = "Quanta"
|
||||||
|
// Quanta is the contant to identify Intel hardware
|
||||||
|
Intel = "Intel"
|
||||||
|
|
||||||
|
// Redfish firmware apply at constants
|
||||||
|
// FirmwareApplyImmediate sets the firmware to be installed immediately after upload
|
||||||
|
FirmwareApplyImmediate = "Immediate"
|
||||||
|
//FirmwareApplyOnReset sets the firmware to be install on device power cycle/reset
|
||||||
|
FirmwareApplyOnReset = "OnReset"
|
||||||
|
|
||||||
|
// Firmware install states returned by bmclib provider FirmwareInstallStatus implementations
|
||||||
|
//
|
||||||
|
// The redfish from the redfish spec are exposed as a smaller set of bmclib states for callers
|
||||||
|
// https://www.dmtf.org/sites/default/files/standards/documents/DSP2046_2020.3.pdf
|
||||||
|
|
||||||
|
// FirmwareInstallInitializing indicates the device is performing init actions to install the update
|
||||||
|
// this covers the redfish states - 'starting', 'downloading'
|
||||||
|
// no action is required from the callers part in this state
|
||||||
|
FirmwareInstallInitializing = "initializing"
|
||||||
|
|
||||||
|
// FirmwareInstallQueued indicates the device has queued the update, but has not started the update task yet
|
||||||
|
// this covers the redfish states - 'pending', 'new'
|
||||||
|
// no action is required from the callers part in this state
|
||||||
|
FirmwareInstallQueued = "queued"
|
||||||
|
|
||||||
|
// FirmwareInstallRunner indicates the device is installing the update
|
||||||
|
// this covers the redfish states - 'running', 'stopping', 'cancelling'
|
||||||
|
// no action is required from the callers part in this state
|
||||||
|
FirmwareInstallRunning = "running"
|
||||||
|
|
||||||
|
// FirmwareInstallComplete indicates the device completed the firmware install
|
||||||
|
// this covers the redfish state - 'complete'
|
||||||
|
FirmwareInstallComplete = "complete"
|
||||||
|
|
||||||
|
// FirmwareInstallFailed indicates the firmware install failed
|
||||||
|
// this covers the redfish states - 'interrupted', 'killed', 'exception', 'cancelled', 'suspended'
|
||||||
|
FirmwareInstallFailed = "failed"
|
||||||
|
|
||||||
|
// FirmwareInstallPowerCycleHost indicates the firmware install requires a host power cycle
|
||||||
|
FirmwareInstallPowerCyleHost = "powercycle-host"
|
||||||
|
|
||||||
|
// FirmwareInstallPowerCycleBMC indicates the firmware install requires a BMC power cycle
|
||||||
|
FirmwareInstallPowerCycleBMC = "powercycle-bmc"
|
||||||
|
|
||||||
|
FirmwareInstallUnknown = "unknown"
|
||||||
|
|
||||||
|
// device BIOS/UEFI POST code bmclib identifiers
|
||||||
|
POSTStateBootINIT = "boot-init/pxe"
|
||||||
|
POSTStateUEFI = "uefi"
|
||||||
|
POSTStateOS = "grub/os"
|
||||||
|
POSTCodeUnknown = "unknown"
|
||||||
|
)
|
||||||
|
|
||||||
|
// ListSupportedVendors returns a list of supported vendors
|
||||||
|
func ListSupportedVendors() []string {
|
||||||
|
return []string{HP, Dell, Supermicro}
|
||||||
|
}
|
||||||
|
|
||||||
|
// VendorFromProductName attempts to identify the vendor from the given productname
|
||||||
|
func VendorFromProductName(productName string) string {
|
||||||
|
n := strings.ToLower(productName)
|
||||||
|
switch {
|
||||||
|
case strings.Contains(n, "intel"):
|
||||||
|
return Intel
|
||||||
|
case strings.Contains(n, "dell"):
|
||||||
|
return Dell
|
||||||
|
case strings.Contains(n, "supermicro"):
|
||||||
|
return Supermicro
|
||||||
|
case strings.Contains(n, "cloudline"):
|
||||||
|
return Cloudline
|
||||||
|
case strings.Contains(n, "quanta"):
|
||||||
|
return Quanta
|
||||||
|
default:
|
||||||
|
return productName
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user