Documentation ¶
Overview ¶
Package aggregates manages information about the host aggregates in the OpenStack cloud.
Example of Create Aggregate
createOpts := aggregates.CreateOpts{ Name: "name", AvailabilityZone: "london", } aggregate, err := aggregates.Create(computeClient, createOpts).Extract() if err != nil { panic(err) } fmt.Printf("%+v\n", aggregate)
Example of Show Aggregate Details
aggregateID := 42 aggregate, err := aggregates.Get(computeClient, aggregateID).Extract() if err != nil { panic(err) } fmt.Printf("%+v\n", aggregate)
Example of Delete Aggregate
aggregateID := 32 err := aggregates.Delete(computeClient, aggregateID).ExtractErr() if err != nil { panic(err) }
Example of Update Aggregate
aggregateID := 42 opts := aggregates.UpdateOpts{ Name: "new_name", AvailabilityZone: "nova2", } aggregate, err := aggregates.Update(computeClient, aggregateID, opts).Extract() if err != nil { panic(err) } fmt.Printf("%+v\n", aggregate)
Example of Retrieving list of all aggregates
allPages, err := aggregates.List(computeClient).AllPages() if err != nil { panic(err) } allAggregates, err := aggregates.ExtractAggregates(allPages) if err != nil { panic(err) } for _, aggregate := range allAggregates { fmt.Printf("%+v\n", aggregate) }
Example of Add Host
aggregateID := 22 opts := aggregates.AddHostOpts{ Host: "newhost-cmp1", } aggregate, err := aggregates.AddHost(computeClient, aggregateID, opts).Extract() if err != nil { panic(err) } fmt.Printf("%+v\n", aggregate)
Example of Remove Host
aggregateID := 22 opts := aggregates.RemoveHostOpts{ Host: "newhost-cmp1", } aggregate, err := aggregates.RemoveHost(computeClient, aggregateID, opts).Extract() if err != nil { panic(err) } fmt.Printf("%+v\n", aggregate)
Example of Create or Update Metadata
aggregateID := 22 opts := aggregates.SetMetadata{ Metadata: map[string]string{"key": "value"}, } aggregate, err := aggregates.SetMetadata(computeClient, aggregateID, opts).Extract() if err != nil { panic(err) } fmt.Printf("%+v\n", aggregate)
Index ¶
- func List(client *gophercloud.ServiceClient) pagination.Pager
- type ActionResult
- func AddHost(client *gophercloud.ServiceClient, aggregateID int, opts AddHostOpts) (r ActionResult)
- func RemoveHost(client *gophercloud.ServiceClient, aggregateID int, opts RemoveHostOpts) (r ActionResult)
- func SetMetadata(client *gophercloud.ServiceClient, aggregateID int, opts SetMetadataOpts) (r ActionResult)
- type AddHostOpts
- type Aggregate
- type AggregatesPage
- type CreateOpts
- type CreateResult
- type DeleteResult
- type GetResult
- type RemoveHostOpts
- type SetMetadataOpts
- type UpdateOpts
- type UpdateResult
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func List ¶
func List(client *gophercloud.ServiceClient) pagination.Pager
List makes a request against the API to list aggregates.
Types ¶
type ActionResult ¶
type ActionResult struct {
// contains filtered or unexported fields
}
func AddHost ¶
func AddHost(client *gophercloud.ServiceClient, aggregateID int, opts AddHostOpts) (r ActionResult)
AddHost makes a request against the API to add host to a specific aggregate.
func RemoveHost ¶
func RemoveHost(client *gophercloud.ServiceClient, aggregateID int, opts RemoveHostOpts) (r ActionResult)
RemoveHost makes a request against the API to remove host from a specific aggregate.
func SetMetadata ¶
func SetMetadata(client *gophercloud.ServiceClient, aggregateID int, opts SetMetadataOpts) (r ActionResult)
SetMetadata makes a request against the API to set metadata to a specific aggregate.
type AddHostOpts ¶
type AddHostOpts struct { // The name of the host. Host string `json:"host" required:"true"` }
func (AddHostOpts) ToAggregatesAddHostMap ¶
func (opts AddHostOpts) ToAggregatesAddHostMap() (map[string]interface{}, error)
type Aggregate ¶
type Aggregate struct { // The availability zone of the host aggregate. AvailabilityZone string `json:"availability_zone"` // A list of host ids in this aggregate. Hosts []string `json:"hosts"` // The ID of the host aggregate. ID int `json:"id"` // Metadata key and value pairs associate with the aggregate. Metadata map[string]string `json:"metadata"` // Name of the aggregate. Name string `json:"name"` // The date and time when the resource was created. CreatedAt time.Time `json:"-"` // The date and time when the resource was updated, // if the resource has not been updated, this field will show as null. UpdatedAt time.Time `json:"-"` // The date and time when the resource was deleted, // if the resource has not been deleted yet, this field will be null. DeletedAt time.Time `json:"-"` // A boolean indicates whether this aggregate is deleted or not, // if it has not been deleted, false will appear. Deleted bool `json:"deleted"` }
Aggregate represents a host aggregate in the OpenStack cloud.
func ExtractAggregates ¶
func ExtractAggregates(p pagination.Page) ([]Aggregate, error)
ExtractAggregates interprets a page of results as a slice of Aggregates.
func (*Aggregate) UnmarshalJSON ¶
UnmarshalJSON to override default
type AggregatesPage ¶
type AggregatesPage struct {
pagination.SinglePageBase
}
AggregatesPage represents a single page of all Aggregates from a List request.
func (AggregatesPage) IsEmpty ¶
func (page AggregatesPage) IsEmpty() (bool, error)
IsEmpty determines whether or not a page of Aggregates contains any results.
type CreateOpts ¶
type CreateOpts struct { // The name of the host aggregate. Name string `json:"name" required:"true"` // The availability zone of the host aggregate. // You should use a custom availability zone rather than // the default returned by the os-availability-zone API. // The availability zone must not include ‘:’ in its name. AvailabilityZone string `json:"availability_zone,omitempty"` }
func (CreateOpts) ToAggregatesCreateMap ¶
func (opts CreateOpts) ToAggregatesCreateMap() (map[string]interface{}, error)
type CreateResult ¶
type CreateResult struct {
// contains filtered or unexported fields
}
func Create ¶
func Create(client *gophercloud.ServiceClient, opts CreateOpts) (r CreateResult)
Create makes a request against the API to create an aggregate.
type DeleteResult ¶
type DeleteResult struct {
gophercloud.ErrResult
}
func Delete ¶
func Delete(client *gophercloud.ServiceClient, aggregateID int) (r DeleteResult)
Delete makes a request against the API to delete an aggregate.
type GetResult ¶
type GetResult struct {
// contains filtered or unexported fields
}
func Get ¶
func Get(client *gophercloud.ServiceClient, aggregateID int) (r GetResult)
Get makes a request against the API to get details for a specific aggregate.
type RemoveHostOpts ¶
type RemoveHostOpts struct { // The name of the host. Host string `json:"host" required:"true"` }
func (RemoveHostOpts) ToAggregatesRemoveHostMap ¶
func (opts RemoveHostOpts) ToAggregatesRemoveHostMap() (map[string]interface{}, error)
type SetMetadataOpts ¶
type SetMetadataOpts struct {
Metadata map[string]interface{} `json:"metadata" required:"true"`
}
func (SetMetadataOpts) ToSetMetadataMap ¶
func (opts SetMetadataOpts) ToSetMetadataMap() (map[string]interface{}, error)
type UpdateOpts ¶
type UpdateOpts struct { // The name of the host aggregate. Name string `json:"name,omitempty"` // The availability zone of the host aggregate. // You should use a custom availability zone rather than // the default returned by the os-availability-zone API. // The availability zone must not include ‘:’ in its name. AvailabilityZone string `json:"availability_zone,omitempty"` }
func (UpdateOpts) ToAggregatesUpdateMap ¶
func (opts UpdateOpts) ToAggregatesUpdateMap() (map[string]interface{}, error)
type UpdateResult ¶
type UpdateResult struct {
// contains filtered or unexported fields
}
func Update ¶
func Update(client *gophercloud.ServiceClient, aggregateID int, opts UpdateOpts) (r UpdateResult)
Update makes a request against the API to update a specific aggregate.