Documentation ¶
Overview ¶
Package tasks enables management and retrieval of tasks from the OpenStack Imageservice.
Example to List Tasks
listOpts := tasks.ListOpts{ Owner: "424e7cf0243c468ca61732ba45973b3e", } allPages, err := tasks.List(imagesClient, listOpts).AllPages() if err != nil { panic(err) } allTasks, err := tasks.ExtractTasks(allPages) if err != nil { panic(err) } for _, task := range allTasks { fmt.Printf("%+v\n", task) }
Example to Get a Task
task, err := tasks.Get(imagesClient, "1252f636-1246-4319-bfba-c47cde0efbe0").Extract() if err != nil { panic(err) } fmt.Printf("%+v\n", task)
Example to Create a Task
createOpts := tasks.CreateOpts{ Type: "import", Input: map[string]interface{}{ "image_properties": map[string]interface{}{ "container_format": "bare", "disk_format": "raw", }, "import_from_format": "raw", "import_from": "https://cloud-images.ubuntu.com/bionic/current/bionic-server-cloudimg-amd64.img", }, } task, err := tasks.Create(imagesClient, createOpts).Extract() if err != nil { panic(err) } fmt.Printf("%+v\n", task)
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func List ¶
func List(c *gophercloud.ServiceClient, opts ListOptsBuilder) pagination.Pager
List returns a Pager which allows you to iterate over a collection of the tasks.
Types ¶
type CreateOpts ¶
type CreateOpts struct { Type string `json:"type" required:"true"` Input map[string]interface{} `json:"input"` }
CreateOpts specifies parameters of a new Imageservice task.
func (CreateOpts) ToTaskCreateMap ¶
func (opts CreateOpts) ToTaskCreateMap() (map[string]interface{}, error)
ToTaskCreateMap constructs a request body from CreateOpts.
type CreateOptsBuilder ¶
CreateOptsBuilder allows to add additional parameters to the Create request.
type CreateResult ¶
type CreateResult struct {
// contains filtered or unexported fields
}
CreateResult represents the result of a Create operation. Call its Extract method to interpret it as a Task.
func Create ¶
func Create(client *gophercloud.ServiceClient, opts CreateOptsBuilder) (r CreateResult)
Create requests the creation of a new Imageservice task on the server.
type GetResult ¶
type GetResult struct {
// contains filtered or unexported fields
}
GetResult represents the result of a Get operation. Call its Extract method to interpret it as a Task.
func Get ¶
func Get(c *gophercloud.ServiceClient, taskID string) (r GetResult)
Get retrieves a specific Imageservice task based on its ID.
type ListOpts ¶
type ListOpts struct { // Integer value for the limit of values to return. Limit int `q:"limit"` // ID of the task at which you want to set a marker. Marker string `q:"marker"` // SortDir allows to select sort direction. // It can be "asc" or "desc" (default). SortDir string `q:"sort_dir"` // SortKey allows to sort by one of the following tTask attributes: // - created_at // - expires_at // - status // - type // - updated_at // Default is created_at. SortKey string `q:"sort_key"` // ID filters on the identifier of the task. ID string `json:"id"` // Type filters on the type of the task. Type string `json:"type"` // Status filters on the status of the task. Status TaskStatus `q:"status"` }
ListOpts allows the filtering and sorting of paginated collections through the OpenStack Imageservice tasks API.
func (ListOpts) ToTaskListQuery ¶
ToTaskListQuery formats a ListOpts into a query string.
type ListOptsBuilder ¶
ListOptsBuilder allows extensions to add additional parameters to the List request.
type Task ¶
type Task struct { // ID is a unique identifier of the task. ID string `json:"id"` // Type represents the type of the task. Type string `json:"type"` // Status represents current status of the task. // You can use the TaskStatus custom type to unmarshal raw JSON response into // the pre-defined valid task status. Status string `json:"status"` // Input represents different parameters for the task. Input map[string]interface{} `json:"input"` // Result represents task result details. Result map[string]interface{} `json:"result"` // Owner is a unique identifier of the task owner. Owner string `json:"owner"` // Message represents human-readable message that is usually populated // on task failure. Message string `json:"message"` // ExpiresAt contains the timestamp of when the task will become a subject of // removal. ExpiresAt time.Time `json:"expires_at"` // CreatedAt contains the task creation timestamp. CreatedAt time.Time `json:"created_at"` // UpdatedAt contains the latest timestamp of when the task was updated. UpdatedAt time.Time `json:"updated_at"` // Self contains URI for the task. Self string `json:"self"` // Schema the path to the JSON-schema that represent the task. Schema string `json:"schema"` }
Task represents a single task of the OpenStack Image service.
func ExtractTasks ¶
func ExtractTasks(r pagination.Page) ([]Task, error)
ExtractTasks interprets the results of a single page from a List() call, producing a slice of Task entities.
type TaskPage ¶
type TaskPage struct { pagination.LinkedPageBase // contains filtered or unexported fields }
TaskPage represents the results of a List request.
func (TaskPage) NextPageURL ¶
NextPageURL uses the response's embedded link reference to navigate to the next page of results.
type TaskStatus ¶
type TaskStatus string
TaskStatus represents valid task status. You can use this type to compare the actual status of a task to a one of the pre-defined statuses.
const ( // TaskStatusPending represents status of the pending task. TaskStatusPending TaskStatus = "pending" // TaskStatusProcessing represents status of the processing task. TaskStatusProcessing TaskStatus = "processing" // TaskStatusSuccess represents status of the success task. TaskStatusSuccess TaskStatus = "success" // TaskStatusFailure represents status of the failure task. TaskStatusFailure TaskStatus = "failure" )