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 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82
|
package images
import (
"strings"
"github.com/rackspace/gophercloud"
)
// `listURL` is a pure function. `listURL(c)` is a URL for which a GET
// request will respond with a list of images in the service `c`.
func listURL(c *gophercloud.ServiceClient) string {
return c.ServiceURL("images")
}
func createURL(c *gophercloud.ServiceClient) string {
return c.ServiceURL("images")
}
// `imageURL(c,i)` is the URL for the image identified by ID `i` in
// the service `c`.
func imageURL(c *gophercloud.ServiceClient, imageID string) string {
return c.ServiceURL("images", imageID)
}
// `getURL(c,i)` is a URL for which a GET request will respond with
// information about the image identified by ID `i` in the service
// `c`.
func getURL(c *gophercloud.ServiceClient, imageID string) string {
return imageURL(c, imageID)
}
func updateURL(c *gophercloud.ServiceClient, imageID string) string {
return imageURL(c, imageID)
}
func deleteURL(c *gophercloud.ServiceClient, imageID string) string {
return imageURL(c, imageID)
}
// `imageDataURL(c,i)` is the URL for the binary image data for the
// image identified by ID `i` in the service `c`.
func imageDataURL(c *gophercloud.ServiceClient, imageID string) string {
return c.ServiceURL("images", imageID, "file")
}
func getDataURL(c *gophercloud.ServiceClient, imageID string) string {
return imageDataURL(c, imageID)
}
func updateDataURL(c *gophercloud.ServiceClient, imageID string) string {
return imageDataURL(c, imageID)
}
func imageTagURL(c *gophercloud.ServiceClient, imageID string, tag string) string {
return c.ServiceURL("images", imageID, "tags", tag)
}
func createTagURL(c *gophercloud.ServiceClient, imageID string, tag string) string {
return imageTagURL(c, imageID, tag)
}
func deleteTagURL(c *gophercloud.ServiceClient, imageID string, tag string) string {
return imageTagURL(c, imageID, tag)
}
func imageMembersURL(c *gophercloud.ServiceClient, imageID string) string {
return c.ServiceURL("images", imageID, "members")
}
func reactivateImageURL(c *gophercloud.ServiceClient, imageID string) string {
return c.ServiceURL("images", imageID, "actions", "reactivate")
}
func deactivateImageURL(c *gophercloud.ServiceClient, imageID string) string {
return c.ServiceURL("images", imageID, "actions", "deactivate")
}
// builds next page full url based on current url
func nextPageURL(currentURL string, next string) string {
base := currentURL[:strings.Index(currentURL, "/images")]
return base + next
}
|