Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type ErrImageInUse ¶
type ErrImageInUse struct {
Msg string
}
func (*ErrImageInUse) Error ¶
func (e *ErrImageInUse) Error() string
type Image ¶
type Image struct {
// ID is the identifier for this layer. Usually a SHA
ID string
// SelfLink is the URL for this layer. Filled in by the runtime.
SelfLink *url.URL
// ParentLink is the URL for the parent. It's the VMDK this snapshot inherits from.
ParentLink *url.URL
// Store is the URL for the image store the image can be found on.
Store *url.URL
// Metadata associated with the image.
Metadata map[string][]byte
// Disk is the underlying disk implementation
Disk *disk.VirtualDisk
// DatastorePath is the dspath for actually using this image
// NOTE: this should be replaced by structure accessors for the data and updated storage
// interfaces that use _one_ variant of url/path for identifying images, volumes and stores.
// URL was only suggested as an existing structure that could be leveraged when object.DatastorePath
// was not available. The suggestion seems to have spawned monstruous unnecessary complexity.
DatastorePath *object.DatastorePath
}
Image is the handle to identify an image layer on the backing store. The URI namespace used to identify the Image in the storage layer has the following path scheme:
`/storage/<image store identifier, usually the vch uuid>/<image id>`
func (*Image) Parent ¶
Returns a link to the parent. Returns link to self if there is no parent
type ImageStorer ¶
type ImageStorer interface {
// CreateImageStore creates a location to store images and creates a root
// disk which serves as the parent of all layers.
//
// storeName - The name of the image store to be created. This must be
// unique.
//
// Returns the URL of the created store
CreateImageStore(op trace.Operation, storeName string) (*url.URL, error)
// DeleteImageStore is used to cleanup the image store. This can only be
// called once there are no images left in the image store.
DeleteImageStore(op trace.Operation, storeName string) error
// Gets the url to an image store via name
GetImageStore(op trace.Operation, storeName string) (*url.URL, error)
// ListImageStores lists the available image stores
ListImageStores(op trace.Operation) ([]*url.URL, error)
// WriteImage creates a new image layer from the given parent. Eg
// parentImage + newLayer = new Image built from parent
//
// parent - The parent image to create the new image from.
// ID - textual ID for the image to be written
// meta - metadata associated with the image
// sum - expected sha266 sum of the image content.
// r - the image tar to be written
WriteImage(op trace.Operation, parent *Image, ID string, meta map[string][]byte, sum string, r io.Reader) (*Image, error)
// GetImage queries the image store for the specified image.
//
// store - The image store to query name - The name of the image (optional)
// ID - textual ID for the image to be retrieved
GetImage(op trace.Operation, store *url.URL, ID string) (*Image, error)
// ListImages returns a list of Images given a list of image IDs, or all
// images in the image store if no param is passed.
ListImages(op trace.Operation, store *url.URL, IDs []string) ([]*Image, error)
// DeleteImage deletes an image from the image store. If the image is in
// use either by way of inheritance or because it's attached to a
// container, this will return an error.
DeleteImage(op trace.Operation, image *Image) (*Image, error)
// GetImageStorageUsage gets the image storage usage from the image store.
GetImageStorageUsage(op trace.Operation, storeName string) (int64, error)
// GetImageLayerStorageUsage gets the image layer storage usage from the image store.
GetImageLayerStorageUsage(op trace.Operation, storeName, ID string) (int64, error)
storage.Resolver
storage.Importer
storage.Exporter
}
ImageStorer is an interface to store images in the Image Store
Source Files
¶
- errors.go
- image.go
Click to show internal directories.
Click to hide internal directories.