| package drivers |
| |
| import ( |
| "gerrit.mcp.mirantis.net/debian/gophercloud.git" |
| "gerrit.mcp.mirantis.net/debian/gophercloud.git/pagination" |
| ) |
| |
| type driverResult struct { |
| gophercloud.Result |
| } |
| |
| // Extract interprets any driverResult as a Driver, if possible. |
| func (r driverResult) Extract() (*Driver, error) { |
| var s Driver |
| err := r.ExtractInto(&s) |
| return &s, err |
| } |
| |
| func (r driverResult) ExtractInto(v interface{}) error { |
| return r.Result.ExtractIntoStructPtr(v, "") |
| } |
| |
| func ExtractDriversInto(r pagination.Page, v interface{}) error { |
| return r.(DriverPage).Result.ExtractIntoSlicePtr(v, "drivers") |
| } |
| |
| // Driver represents a driver in the OpenStack Bare Metal API. |
| type Driver struct { |
| // Name and Identifier of the driver |
| Name string `json:"name"` |
| |
| // A list of active hosts that support this driver |
| Hosts []string `json:"hosts"` |
| |
| // Type of this driver (“classic” or “dynamic”) |
| Type string `json:"type"` |
| |
| // The default bios interface used for a node with a dynamic driver, |
| // if no bios interface is specified for the node. |
| DefaultBiosInterface string `json:"default_bios_interface"` |
| |
| // The default boot interface used for a node with a dynamic driver, |
| // if no boot interface is specified for the node. |
| DefaultBootInterface string `json:"default_boot_interface"` |
| |
| // The default console interface used for a node with a dynamic driver, |
| // if no console interface is specified for the node. |
| DefaultConsoleInterface string `json:"default_console_interface"` |
| |
| // The default deploy interface used for a node with a dynamic driver, |
| // if no deploy interface is specified for the node. |
| DefaultDeployInterface string `json:"default_deploy_interface"` |
| |
| // The default inspection interface used for a node with a dynamic driver, |
| // if no inspection interface is specified for the node. |
| DefaultInspectInterface string `json:"default_inspect_interface"` |
| |
| // The default management interface used for a node with a dynamic driver, |
| // if no management interface is specified for the node. |
| DefaultManagementInterface string `json:"default_management_interface"` |
| |
| // The default network interface used for a node with a dynamic driver, |
| // if no network interface is specified for the node. |
| DefaultNetworkInterface string `json:"default_network_interface"` |
| |
| // The default power interface used for a node with a dynamic driver, |
| // if no power interface is specified for the node. |
| DefaultPowerInterface string `json:"default_power_interface"` |
| |
| // The default RAID interface used for a node with a dynamic driver, |
| // if no RAID interface is specified for the node. |
| DefaultRaidInterface string `json:"default_raid_interface"` |
| |
| // The default rescue interface used for a node with a dynamic driver, |
| // if no rescue interface is specified for the node. |
| DefaultRescueInterface string `json:"default_rescue_interface"` |
| |
| // The default storage interface used for a node with a dynamic driver, |
| // if no storage interface is specified for the node. |
| DefaultStorageInterface string `json:"default_storage_interface"` |
| |
| // The default vendor interface used for a node with a dynamic driver, |
| // if no vendor interface is specified for the node. |
| DefaultVendorInterface string `json:"default_vendor_interface"` |
| |
| // The enabled bios interfaces for this driver. |
| EnabledBiosInterfaces []string `json:"enabled_bios_interfaces"` |
| |
| // The enabled boot interfaces for this driver. |
| EnabledBootInterfaces []string `json:"enabled_boot_interfaces"` |
| |
| // The enabled console interfaces for this driver. |
| EnabledConsoleInterface []string `json:"enabled_console_interfaces"` |
| |
| // The enabled deploy interfaces for this driver. |
| EnabledDeployInterfaces []string `json:"enabled_deploy_interfaces"` |
| |
| // The enabled inspection interfaces for this driver. |
| EnabledInspectInterfaces []string `json:"enabled_inspect_interfaces"` |
| |
| // The enabled management interfaces for this driver. |
| EnabledManagementInterfaces []string `json:"enabled_management_interfaces"` |
| |
| // The enabled network interfaces for this driver. |
| EnabledNetworkInterfaces []string `json:"enabled_network_interfaces"` |
| |
| // The enabled power interfaces for this driver. |
| EnabledPowerInterfaces []string `json:"enabled_power_interfaces"` |
| |
| // The enabled rescue interfaces for this driver. |
| EnabledRescueInterfaces []string `json:"enabled_rescue_interfaces"` |
| |
| // The enabled RAID interfaces for this driver. |
| EnabledRaidInterfaces []string `json:"enabled_raid_interfaces"` |
| |
| // The enabled storage interfaces for this driver. |
| EnabledStorageInterfaces []string `json:"enabled_storage_interfaces"` |
| |
| // The enabled vendor interfaces for this driver. |
| EnabledVendorInterfaces []string `json:"enabled_vendor_interfaces"` |
| |
| //A list of relative links. Includes the self and bookmark links. |
| Links []interface{} `json:"links"` |
| |
| // A list of links to driver properties. |
| Properties []interface{} `json:"properties"` |
| } |
| |
| // DriverPage abstracts the raw results of making a ListDrivers() request |
| // against the API. |
| type DriverPage struct { |
| pagination.LinkedPageBase |
| } |
| |
| // IsEmpty returns true if a page contains no Driver results. |
| func (r DriverPage) IsEmpty() (bool, error) { |
| s, err := ExtractDrivers(r) |
| return len(s) == 0, err |
| } |
| |
| // NextPageURL uses the response's embedded link reference to navigate to the |
| // next page of results. |
| func (r DriverPage) NextPageURL() (string, error) { |
| var s struct { |
| Links []gophercloud.Link `json:"drivers_links"` |
| } |
| err := r.ExtractInto(&s) |
| if err != nil { |
| return "", err |
| } |
| return gophercloud.ExtractNextURL(s.Links) |
| } |
| |
| // ExtractDrivers interprets the results of a single page from ListDrivers() |
| // call, producing a slice of Driver entities. |
| func ExtractDrivers(r pagination.Page) ([]Driver, error) { |
| var s []Driver |
| err := ExtractDriversInto(r, &s) |
| return s, err |
| } |
| |
| // GetDriverResult is the response from a Get operation. |
| // Call its Extract method to interpret it as a Driver. |
| type GetDriverResult struct { |
| driverResult |
| } |
| |
| // DriverProperties represents driver properties in the OpenStack Bare Metal API. |
| type DriverProperties map[string]interface{} |
| |
| // Extract interprets any GetPropertiesResult as DriverProperties, if possible. |
| func (r GetPropertiesResult) Extract() (*DriverProperties, error) { |
| var s DriverProperties |
| err := r.ExtractInto(&s) |
| return &s, err |
| } |
| |
| // GetPropertiesResult is the response from a GetDriverProperties operation. |
| // Call its Extract method to interpret it as DriverProperties. |
| type GetPropertiesResult struct { |
| gophercloud.Result |
| } |
| |
| // DiskProperties represents driver disk properties in the OpenStack Bare Metal API. |
| type DiskProperties map[string]interface{} |
| |
| // Extract interprets any GetDiskPropertiesResult as DiskProperties, if possible. |
| func (r GetDiskPropertiesResult) Extract() (*DiskProperties, error) { |
| var s DiskProperties |
| err := r.ExtractInto(&s) |
| return &s, err |
| } |
| |
| // GetDiskPropertiesResult is the response from a GetDriverDiskProperties operation. |
| // Call its Extract method to interpret it as DiskProperties. |
| type GetDiskPropertiesResult struct { |
| gophercloud.Result |
| } |