1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
|
package tasks
import (
"net/url"
"strings"
"github.com/gophercloud/gophercloud"
"github.com/gophercloud/gophercloud/openstack/utils"
)
const resourcePath = "tasks"
func rootURL(c *gophercloud.ServiceClient) string {
return c.ServiceURL(resourcePath)
}
func resourceURL(c *gophercloud.ServiceClient, taskID string) string {
return c.ServiceURL(resourcePath, taskID)
}
func listURL(c *gophercloud.ServiceClient) string {
return rootURL(c)
}
func getURL(c *gophercloud.ServiceClient, taskID string) string {
return resourceURL(c, taskID)
}
func createURL(c *gophercloud.ServiceClient) string {
return rootURL(c)
}
func nextPageURL(serviceURL, requestedNext string) (string, error) {
base, err := utils.BaseEndpoint(serviceURL)
if err != nil {
return "", err
}
requestedNextURL, err := url.Parse(requestedNext)
if err != nil {
return "", err
}
base = gophercloud.NormalizeURL(base)
nextPath := base + strings.TrimPrefix(requestedNextURL.Path, "/")
nextURL, err := url.Parse(nextPath)
if err != nil {
return "", err
}
nextURL.RawQuery = requestedNextURL.RawQuery
return nextURL.String(), nil
}
|