Documentation ¶
Index ¶
- Constants
- type Blade
- type BladeHyperThreading
- type BladeMemory
- type BladeMemoryEndpoint
- type BladeProcessor
- type BladeProcessorEndpoint
- type CMC
- type CMCSlotMacWwn
- type CMCStatus
- type CMCTemp
- type CMCWWN
- type CMCWWNBlade
- type Chassis
- type ChassisGroupMemberHealthBlob
- type ChassisStatus
- type ChassisTemp
- type HwDetection
- type IDracApplication
- type IDracAuth
- type IDracComponent
- type IDracDevice
- type IDracHealthStatus
- type IDracInventory
- type IDracLicense
- type IDracPowerData
- type IDracPowermonitordata
- type IDracPresentReading
- type IDracProperty
- type IDracPsSensor
- type IDracPsSensorList
- type IDracReading
- type IDracRoot
- type IDracTemp
- type Nic
- type PsuData
- type PsuStatus
- type SVMInventory
- type SystemServerOS
Constants ¶
const ( // VendorID represents the id of the vendor across all packages VendorID = devices.Dell )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Blade ¶
type Blade struct { BladeTemperature string `json:"bladeTemperature"` BladePresent int `json:"bladePresent"` IdracURL string `json:"idracURL"` BladeLogDescription string `json:"bladeLogDescription"` StorageNumDrives int `json:"storageNumDrives"` BladeCPUInfo string `json:"bladeCpuInfo"` Nics map[string]*Nic `json:"nic"` BladeMasterSlot int `json:"bladeMasterSlot"` BladeUSCVer string `json:"bladeUSCVer"` BladeSvcTag string `json:"bladeSvcTag"` BladeBIOSver string `json:"bladeBIOSver"` ActualPwrConsump int `json:"actualPwrConsump"` BladePowerState int `json:"bladePowerStatus"` IsStorageBlade int `json:"isStorageBlade"` BladeModel string `json:"bladeModel"` BladeName string `json:"bladeName"` BladeSerialNum string `json:"bladeSerialNum"` }
Blade contains all the blade information
type BladeHyperThreading ¶
BladeHyperThreading contains the hyperthread information
type BladeMemory ¶
type BladeMemory struct { Capacity int `json:"capacity"` ErrCorrection int `json:"err_correction"` MaxCapacity int `json:"max_capacity"` SlotsAvailable int `json:"slots_available"` SlotsUsed int `json:"slots_used"` }
BladeMemory is part of the payload returned by "https://$ip/sysmgmt/2012/server/memory"
type BladeMemoryEndpoint ¶
type BladeMemoryEndpoint struct {
Memory *BladeMemory `json:"Memory"`
}
BladeMemoryEndpoint is the struct used to collect data from "https://$ip/sysmgmt/2012/server/memory" when passing the header X_SYSMGMT_OPTIMIZE:true
type BladeProcessor ¶
type BladeProcessor struct { Brand string `json:"brand"` CoreCount int `json:"core_count"` CurrentSpeed int `json:"current_speed"` DeviceDescription string `json:"device_description"` HyperThreading []*BladeHyperThreading `json:"hyperThreading"` }
BladeProcessor contains the processor data information
type BladeProcessorEndpoint ¶
type BladeProcessorEndpoint struct {
Proccessors map[string]*BladeProcessor `json:"Processor"`
}
BladeProcessorEndpoint is the struct used to collect data from "https://$ip/sysmgmt/2012/server/processor" when passing the header X_SYSMGMT_OPTIMIZE:true
type CMC ¶
type CMC struct {
Chassis *Chassis `json:"0"`
}
CMC is the entry of the json exposed by dell We don't need to use an maps[string] with Chassis, because we don't have clusters
type CMCSlotMacWwn ¶
type CMCSlotMacWwn struct {
SlotMacWwnList map[int]CMCWWNBlade `json:"-"`
}
CMCSlotMacWwn contains index of blade by position inside of the chassis
func (*CMCSlotMacWwn) UnmarshalJSON ¶
func (d *CMCSlotMacWwn) UnmarshalJSON(data []byte) error
UnmarshalJSON custom unmarshalling for this "special" data structure
type CMCStatus ¶
type CMCStatus struct {
CMCActiveError string `json:"cmcActiveError"`
}
CMCStatus brings the information about the cmc status itself we will use it to know if the chassis has errors
type CMCTemp ¶
type CMCTemp struct {
ChassisTemp *ChassisTemp `json:"1"`
}
CMCTemp is the entry of the json exposed by dell when reading the temp metrics
type CMCWWN ¶
type CMCWWN struct {
SlotMacWwn CMCSlotMacWwn `json:"slot_mac_wwn"`
}
CMCWWN is the structure used to render the data when querying /json?method=blades-wwn-info
type CMCWWNBlade ¶
type CMCWWNBlade struct { BladeSlotName string `json:"bladeSlotName"` IsNotDoubleHeight struct { IsInstalled string `json:"isInstalled"` PortFMAC string `json:"portFMAC"` IsSelected int `json:"isSelected"` //flexaddress enabled/disabled } `json:"is_not_double_height"` }
CMCWWNBlade contains the blade structure used by CMCWWN
type Chassis ¶
type Chassis struct {
ChassisGroupMemberHealthBlob *ChassisGroupMemberHealthBlob `json:"ChassisGroupMemberHealthBlob"`
}
Chassis groups all the interresting stuff we will ready from the chassis
type ChassisGroupMemberHealthBlob ¶
type ChassisGroupMemberHealthBlob struct { Blades map[string]*Blade `json:"blades_status"` PsuStatus *PsuStatus `json:"psu_status"` ChassisStatus *ChassisStatus `json:"chassis_status"` CMCStatus *CMCStatus `json:"cmc_status"` }
ChassisGroupMemberHealthBlob has a collection of metrics from the chassis, psu and blades
type ChassisStatus ¶
type ChassisStatus struct { ROCmcFwVersionString string `json:"RO_cmc_fw_version_string"` ROChassisServiceTag string `json:"RO_chassis_service_tag"` ROChassisProductname string `json:"RO_chassis_productname"` CHASSISName string `json:"CHASSIS_name"` }
ChassisStatus expose the basic information that identify the chassis
type ChassisTemp ¶
type ChassisTemp struct { TempHealth int `json:"TempHealth"` TempUpperCriticalThreshold int `json:"TempUpperCriticalThreshold"` TempSensorID int `json:"TempSensorID"` TempCurrentValue int `json:"TempCurrentValue"` TempLowerCriticalThreshold int `json:"TempLowerCriticalThreshold"` TempPresence int `json:"TempPresence"` TempSensorName string `json:"TempSensorName"` }
ChassisTemp is where the chassis thermal data is kept
type HwDetection ¶
type HwDetection struct { AimGetProp struct { Hostname string `json:"hostname"` GuiStrTitleBar string `json:"gui_str_title_bar"` OEMHostName string `json:"OEMHostName"` FwVersion string `json:"fwVersion"` SysDesc string `json:"sysDesc"` Status string `json:"status"` } `json:"aimGetProp"` }
HwDetection used to render the content of session?aimGetProp=hostname,gui_str_title_bar,OEMHostName,fwVersion,sysDesc
type IDracApplication ¶
type IDracApplication struct { Display string `xml:" display,attr"` Version string `xml:" version,attr"` }
IDracApplication contains the name of the device and it's version
type IDracAuth ¶
type IDracAuth struct { Status string `xml:"status"` AuthResult int `xml:"authResult" json:"authResult"` ForwardURL string `xml:"forwardUrl"` ErrorMsg string `xml:"errorMsg"` }
IDracAuth is the struct used to verify the iDrac authentication
type IDracComponent ¶
type IDracComponent struct { Classname string `xml:" Classname,attr"` Key string `xml:" Key,attr"` Properties []*IDracProperty `xml:" PROPERTY,omitempty"` }
IDracComponent holds the information from each component detected by the iDrac
type IDracDevice ¶
type IDracDevice struct { Display string `xml:" display,attr"` Application *IDracApplication `xml:" Application"` }
IDracDevice contains the list of devices and their information
type IDracHealthStatus ¶
type IDracHealthStatus struct {
HealthStatus []int `json:"healthStatus"`
}
IDracHealthStatus contains the list of component status rendered from iDrac http://$ip/sysmgmt/2016/server/extended_health
type IDracInventory ¶
type IDracInventory struct { Version string `xml:" version,attr"` Component []*IDracComponent `xml:" Component,omitempty"` }
IDracInventory contains the whole hardware inventory exposed thru https://$ip/sysmgmt/2012/server/inventory/hardware
type IDracLicense ¶
type IDracLicense struct { License struct { VConsole int `json:"VCONSOLE"` } `json:"License"` }
IDracLicense is the struct used to collect data from "https://$ip/sysmgmt/2012/server/license" and it contains the license information for the bmc
type IDracPowerData ¶
type IDracPowerData struct { Root struct { Powermonitordata struct { PresentReading struct { Reading struct { Reading float64 `json:"reading,string"` } `json:"reading"` } `json:"presentReading"` } `json:"powermonitordata"` } `json:"root"` }
IDracPowerData contains the power usage data from iDrac http://$ip/sysmgmt/2015/server/sensor/power
type IDracPowermonitordata ¶
type IDracPowermonitordata struct {
PresentReading *IDracPresentReading `xml:"presentReading,omitempty"`
}
IDracPowermonitordata contains the power consumption data for the iDrac
type IDracPresentReading ¶
type IDracPresentReading struct {
Reading *IDracReading `xml:" reading,omitempty"`
}
IDracPresentReading contains the present reading data
type IDracProperty ¶
type IDracProperty struct { Name string `xml:" NAME,attr"` Type string `xml:" TYPE,attr"` DisplayValue string `xml:" DisplayValue,omitempty"` Value string `xml:" VALUE,omitempty"` }
IDracProperty is the property of each component exposed to iDrac
type IDracPsSensor ¶
type IDracPsSensor struct { FwVersion string `xml:" fwVersion,omitempty"` InputWattage int `xml:" inputWattage,omitempty"` MaxWattage int `xml:" maxWattage,omitempty"` Name string `xml:" name,omitempty"` SensorHealth int `xml:" sensorHealth,omitempty"` SensorStatus int `xml:" sensorStatus,omitempty"` }
IDracPsSensor contains the information regarding the psu devices
type IDracPsSensorList ¶
type IDracPsSensorList struct { }
IDracPsSensorList contains a list of psu sensors
type IDracReading ¶
type IDracReading struct { ProbeName string `xml:" probeName,omitempty"` Reading string `xml:" reading"` }
IDracReading is used to express the power data
type IDracRoot ¶
type IDracRoot struct { BiosVer string `xml:"biosVer"` FwVersion string `xml:"fwVersion"` SysDesc string `xml:"sysDesc"` Powermonitordata *IDracPowermonitordata `xml:"powermonitordata,omitempty"` PsSensorList []*IDracPsSensor `xml:"psSensorList>sensor,omitempty"` }
IDracRoot is the structure used to render the data when querying -> https://$ip/data?get
type IDracTemp ¶
type IDracTemp struct { Statistics string `json:"Statistics"` Temperatures struct { IDRACEmbedded1SystemBoardInletTemp struct { MaxFailure int `json:"max_failure"` MaxWarning int `json:"max_warning"` MaxWarningSettable int `json:"max_warning_settable"` MinFailure int `json:"min_failure"` MinWarning int `json:"min_warning"` MinWarningSettable int `json:"min_warning_settable"` Name string `json:"name"` Reading int `json:"reading"` SensorStatus int `json:"sensor_status"` } `json:"iDRAC.Embedded.1#SystemBoardInletTemp"` } `json:"Temperatures"` IsFreshAirCompliant int `json:"is_fresh_air_compliant"` }
IDracTemp contains the data structure to render the thermal data from iDrac http://$ip/sysmgmt/2012/server/temperature
type Nic ¶
type Nic struct { BladeNicName string `json:"bladeNicName"` BladeNicVer string `json:"bladeNicVer"` }
Nic is the nic we have on a servers
type PsuData ¶
type PsuData struct { PsuPosition string `json:"-"` PsuCapacity int `json:"psuCapacity"` PsuPresent int `json:"psuPresent"` PsuActiveError string `json:"psuActiveError"` PsuHealth int `json:"psuHealth"` PsuAcCurrent string `json:"psuAcCurrent"` PsuAcVolts string `json:"psuAcVolts"` }
PsuData contains information of the psu
type PsuStatus ¶
type PsuStatus struct { AcPower string `json:"acPower"` PsuCount int64 `json:"psuCount"` Psus []PsuData `json:"-"` }
PsuStatus contains the information and power usage of the psus
func (*PsuStatus) UnmarshalJSON ¶
UnmarshalJSON custom unmarshalling for this "special" data structure
type SVMInventory ¶
type SVMInventory struct {
Device []*IDracDevice `xml:"Device"`
}
SVMInventory is the struct used to collect data from "https://$ip/sysmgmt/2012/server/inventory/software"
type SystemServerOS ¶
type SystemServerOS struct { SystemServerOS struct { HostName string `json:"HostName"` OSName string `json:"OSName"` OSVersion string `json:"OSVersion"` } `json:"system.ServerOS"` }
SystemServerOS contains the hostname, os name and os version