Documentation ¶
Overview ¶
Package schedulerhints extends the server create request with the ability to specify additional parameters which determine where the server will be created in the OpenStack cloud.
Example to Add a Server to a Server Group
schedulerHints := schedulerhints.SchedulerHints{ Group: "servergroup-uuid", } serverCreateOpts := servers.CreateOpts{ Name: "server_name", ImageRef: "image-uuid", FlavorRef: "flavor-uuid", } createOpts := schedulerhints.CreateOptsExt{ CreateOptsBuilder: serverCreateOpts, SchedulerHints: schedulerHints, } server, err := servers.Create(computeClient, createOpts).Extract() if err != nil { panic(err) }
Example to Place Server B on a Different Host than Server A
schedulerHints := schedulerhints.SchedulerHints{ DifferentHost: []string{ "server-a-uuid", } } serverCreateOpts := servers.CreateOpts{ Name: "server_b", ImageRef: "image-uuid", FlavorRef: "flavor-uuid", } createOpts := schedulerhints.CreateOptsExt{ CreateOptsBuilder: serverCreateOpts, SchedulerHints: schedulerHints, } server, err := servers.Create(computeClient, createOpts).Extract() if err != nil { panic(err) }
Example to Place Server B on the Same Host as Server A
schedulerHints := schedulerhints.SchedulerHints{ SameHost: []string{ "server-a-uuid", } } serverCreateOpts := servers.CreateOpts{ Name: "server_b", ImageRef: "image-uuid", FlavorRef: "flavor-uuid", } createOpts := schedulerhints.CreateOptsExt{ CreateOptsBuilder: serverCreateOpts, SchedulerHints: schedulerHints, } server, err := servers.Create(computeClient, createOpts).Extract() if err != nil { panic(err) }
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type CreateOptsBuilder ¶
type CreateOptsBuilder interface {
ToServerSchedulerHintsCreateMap() (map[string]interface{}, error)
}
CreateOptsBuilder builds the scheduler hints into a serializable format.
type CreateOptsExt ¶
type CreateOptsExt struct { servers.CreateOptsBuilder // SchedulerHints provides a set of hints to the scheduler. SchedulerHints CreateOptsBuilder }
CreateOptsExt adds a SchedulerHints option to the base CreateOpts.
func (CreateOptsExt) ToServerCreateMap ¶
func (opts CreateOptsExt) ToServerCreateMap() (map[string]interface{}, error)
ToServerCreateMap adds the SchedulerHints option to the base server creation options.
type SchedulerHints ¶
type SchedulerHints struct { // Group specifies a Server Group to place the instance in. Group string // DifferentHost will place the instance on a compute node that does not // host the given instances. DifferentHost []string // SameHost will place the instance on a compute node that hosts the given // instances. SameHost []string // Query is a conditional statement that results in compute nodes able to // host the instance. Query []interface{} // TargetCell specifies a cell name where the instance will be placed. TargetCell string `json:"target_cell,omitempty"` // BuildNearHostIP specifies a subnet of compute nodes to host the instance. BuildNearHostIP string // AdditionalProperies are arbitrary key/values that are not validated by nova. AdditionalProperties map[string]interface{} // Specifies whether the ECS is created on a Dedicated Host (DeH) or in a shared pool. Tenancy string `json:"tenancy,omitempty"` // DedicatedHostID specifies a DeH ID. DedicatedHostID string `json:"dedicated_host_id,omitempty"` }
SchedulerHints represents a set of scheduling hints that are passed to the OpenStack scheduler.
func (SchedulerHints) ToServerSchedulerHintsCreateMap ¶
func (opts SchedulerHints) ToServerSchedulerHintsCreateMap() (map[string]interface{}, error)
ToServerSchedulerHintsMap builds the scheduler hints into a serializable format.