dell

package
v0.1.6 Latest Latest
Warning

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

Go to latest
Published: Jul 3, 2018 License: Apache-2.0 Imports: 6 Imported by: 0

Documentation

Index

Constants

View Source
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

type BladeHyperThreading struct {
	Capable int `json:"capable"`
	Enabled int `json:"enabled"`
}

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

func (d *PsuStatus) UnmarshalJSON(data []byte) error

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

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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