Documentation
¶
Overview ¶
* * MIT License * * (C) Copyright 2023 Hewlett Packard Enterprise Development LP * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. *
* * MIT License * * (C) Copyright 2023 Hewlett Packard Enterprise Development LP * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. *
Index ¶
- Variables
- type Airflow
- type AllowedHardware
- type DefaultHardware
- type DeviceBay
- type DeviceType
- type HardwareBuildOut
- type HardwareType
- type HardwareTypePath
- type Identification
- type Library
- func (l *Library) GetDefaultHardwareBuildOut(deviceTypeString string, deviceOrdinal int, parentID uuid.UUID) (results []HardwareBuildOut, err error)
- func (l *Library) GetDeviceType(slug string) (DeviceType, error)
- func (l *Library) GetDeviceTypesByHardwareType(hardwareType HardwareType) []DeviceType
- func (l *Library) RegisterDeviceType(deviceType DeviceType) error
- type ProviderDefaults
- type ProviderDefaultsCSM
- type SubDeviceRole
- type WeightUnit
Constants ¶
This section is empty.
Variables ¶
var ErrDeviceTypeAlreadyExists = fmt.Errorf("device type already exists")
Functions ¶
This section is empty.
Types ¶
type AllowedHardware ¶
type AllowedHardware struct {
HardwareTypes []HardwareType `yaml:"hardware-type"`
Slug []string `yaml:"slug"`
}
type DefaultHardware ¶
type DefaultHardware struct {
Slug string `yaml:"slug"`
}
type DeviceBay ¶
type DeviceBay struct {
Name string `yaml:"name"`
Allowed *AllowedHardware `yaml:"allowed"`
Default *DefaultHardware `yaml:"default"`
}
type DeviceType ¶
type DeviceType struct {
Manufacturer string `yaml:"manufacturer"`
Model string `yaml:"model"`
HardwareType HardwareType `yaml:"hardware-type"`
Slug string `yaml:"slug"`
PartNumber *string `yaml:"part_number"`
UHeight *float64 `yaml:"u_height"`
IsFullDepth *bool `yaml:"is_full_depth"`
Weight *float64 `yaml:"weight"`
WeightUnit *WeightUnit `yaml:"weight_unit"`
FrontImage bool `yaml:"front_image"`
RearImage bool `yaml:"rear_image"`
SubDeviceRole SubDeviceRole `yaml:"subdevice_role"`
DeviceBays []DeviceBay `yaml:"device-bays"`
Identifications []Identification `yaml:"identifications"`
ProviderDefaults *ProviderDefaults `yaml:"provider_defaults"`
}
type HardwareBuildOut ¶
type HardwareBuildOut struct {
ID uuid.UUID
ParentID uuid.UUID
DeviceTypeString string
DeviceType DeviceType
OrdinalPath []int
HardwareTypePath HardwareTypePath
}
TODO needs a different name
func (*HardwareBuildOut) GetOrdinal ¶
func (hbo *HardwareBuildOut) GetOrdinal() int
func (*HardwareBuildOut) LocationPathString ¶
func (hbo *HardwareBuildOut) LocationPathString() string
type HardwareType ¶
type HardwareType string
const ( System HardwareType = "System" // Serves as a top-level object, not a child of anything, though there can be multiple systems in a domain that hardware can move between Cabinet HardwareType = "Cabinet" Chassis HardwareType = "Chassis" ChassisManagementModule HardwareType = "ChassisManagementModule" CabinetEnvironmentalController HardwareType = "CabinetEnvironmentalController" NodeBlade HardwareType = "NodeBlade" NodeCard HardwareType = "NodeCard" // TODO Change to enclosure? NodeController HardwareType = "NodeController" // A Node BMC is a child of a node card Node HardwareType = "Node" ManagementSwitchEnclosure HardwareType = "ManagementSwitchEnclosure" ManagementSwitch HardwareType = "ManagementSwitch" ManagementSwitchController HardwareType = "ManagementSwitchController" HighSpeedSwitchEnclosure HardwareType = "HighSpeedSwitchEnclosure" HighSpeedSwitch HardwareType = "HighSpeedSwitch" HighSpeedSwitchController HardwareType = "HighSpeedSwitchController" CabinetPDUController HardwareType = "CabinetPDUController" CabinetPDU HardwareType = "CabinetPDU" CoolingDistributionUnit HardwareType = "CoolingDistributionUnit" )
TODO should give a description of each of these
type HardwareTypePath ¶
type HardwareTypePath []HardwareType
func (HardwareTypePath) Key ¶
func (htp HardwareTypePath) Key() string
type Identification ¶
type Library ¶
type Library struct {
DeviceTypes map[string]DeviceType // TODO make private?
}
func NewEmbeddedLibrary ¶
func NewLibraryFromPath ¶
func (*Library) GetDefaultHardwareBuildOut ¶
func (l *Library) GetDefaultHardwareBuildOut(deviceTypeString string, deviceOrdinal int, parentID uuid.UUID) (results []HardwareBuildOut, err error)
TODO make this should work the inventory data structure
func (*Library) GetDeviceType ¶
func (l *Library) GetDeviceType(slug string) (DeviceType, error)
func (*Library) GetDeviceTypesByHardwareType ¶
func (l *Library) GetDeviceTypesByHardwareType(hardwareType HardwareType) []DeviceType
func (*Library) RegisterDeviceType ¶
func (l *Library) RegisterDeviceType(deviceType DeviceType) error
type ProviderDefaults ¶
type ProviderDefaults struct {
CSM *ProviderDefaultsCSM `yaml:"csm"`
}
type ProviderDefaultsCSM ¶
type SubDeviceRole ¶
type SubDeviceRole string
const ( SubDeviceRoleParent SubDeviceRole = "parent" SubDeviceRoleChild SubDeviceRole = "child" )
type WeightUnit ¶
type WeightUnit string
const ( WeightUnitKiloGram WeightUnit = "kg" WeightUnitGram WeightUnit = "g" WeightUnitPound WeightUnit = "lb" WeightUnitOunce WeightUnit = "oz" )
Directories
¶
| Path | Synopsis |
|---|---|
|
* * MIT License * * (C) Copyright 2023 Hewlett Packard Enterprise Development LP * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software.
|
* * MIT License * * (C) Copyright 2023 Hewlett Packard Enterprise Development LP * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. |
|
* * MIT License * * (C) Copyright 2023 Hewlett Packard Enterprise Development LP * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software.
|
* * MIT License * * (C) Copyright 2023 Hewlett Packard Enterprise Development LP * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. |