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" )