Documentation ¶
Index ¶
- Constants
- Variables
- func AddRequiredHeadersToRedirectedRequests(req *http.Request, via []*http.Request) error
- func HTTPRequestFactory(metaHeaders map[string][]string) *utils.HTTPRequestFactory
- func IndexServerAddress() string
- func IsSecure(hostname string, insecureRegistries []string) bool
- func Login(authConfig *AuthConfig, factory *utils.HTTPRequestFactory) (string, error)
- func ResolveRepositoryName(reposName string) (string, string, error)
- func SaveConfig(configFile *ConfigFile) error
- type APIVersion
- type AuthConfig
- type ConfigFile
- type Endpoint
- type FSLayer
- type ImgData
- type ManifestData
- type ManifestHistory
- type RegistryInfo
- type RepositoryData
- type SearchResult
- type SearchResults
- type Service
- type Session
- func (r *Session) GetAuthConfig(withPasswd bool) *AuthConfig
- func (r *Session) GetRemoteHistory(imgID, registry string, token []string) ([]string, error)
- func (r *Session) GetRemoteImageJSON(imgID, registry string, token []string) ([]byte, int, error)
- func (r *Session) GetRemoteImageLayer(imgID, registry string, token []string, imgSize int64) (io.ReadCloser, error)
- func (r *Session) GetRemoteTags(registries []string, repository string, token []string) (map[string]string, error)
- func (r *Session) GetRepositoryData(remote string) (*RepositoryData, error)
- func (r *Session) GetV2ImageBlob(imageName, sumType, sum string, blobWrtr io.Writer, token []string) error
- func (r *Session) GetV2ImageBlobReader(imageName, sumType, sum string, token []string) (io.ReadCloser, int64, error)
- func (r *Session) GetV2ImageManifest(imageName, tagName string, token []string) ([]byte, error)
- func (r *Session) GetV2RemoteTags(imageName string, token []string) ([]string, error)
- func (r *Session) GetV2Version(token []string) (*RegistryInfo, error)
- func (r *Session) LookupRemoteImage(imgID, registry string, token []string) bool
- func (r *Session) PostV2ImageMountBlob(imageName, sumType, sum string, token []string) (bool, error)
- func (r *Session) PushImageChecksumRegistry(imgData *ImgData, registry string, token []string) error
- func (r *Session) PushImageJSONIndex(remote string, imgList []*ImgData, validate bool, regs []string) (*RepositoryData, error)
- func (r *Session) PushImageJSONRegistry(imgData *ImgData, jsonRaw []byte, registry string, token []string) error
- func (r *Session) PushImageLayerRegistry(imgID string, layer io.Reader, registry string, token []string, jsonRaw []byte) (checksum string, checksumPayload string, err error)
- func (r *Session) PushRegistryTag(remote, revision, tag, registry string, token []string) error
- func (r *Session) PutV2ImageBlob(imageName, sumType string, blobRdr io.Reader, token []string) (serverChecksum string, err error)
- func (r *Session) PutV2ImageManifest(imageName, tagName string, manifestRdr io.Reader, token []string) error
- func (r *Session) SearchRepositories(term string) (*SearchResults, error)
- type TimeoutType
Constants ¶
const ( // Where we store the config file CONFIGFILE = ".dockercfg" // Only used for user auth + account creation INDEXSERVER = "https://index.docker.io/v1/" REGISTRYSERVER = "https://registry-1.docker.io/v1/" )
const ( APIVersion1 = iota + 1 APIVersion2 )
Variables ¶
var ( ErrAlreadyExists = errors.New("Image already exists") ErrInvalidRepositoryName = errors.New("Invalid repository name (ex: \"registry.domain.tld/myrepos\")") ErrDoesNotExist = errors.New("Image does not exist") )
var (
ErrConfigFileMissing = errors.New("The Auth config file is missing")
)
Functions ¶
func AddRequiredHeadersToRedirectedRequests ¶ added in v0.12.0
func HTTPRequestFactory ¶ added in v0.11.0
func HTTPRequestFactory(metaHeaders map[string][]string) *utils.HTTPRequestFactory
func IndexServerAddress ¶ added in v0.10.0
func IndexServerAddress() string
func IsSecure ¶ added in v1.3.1
IsSecure returns false if the provided hostname is part of the list of insecure registries. Insecure registries accept HTTP and/or accept HTTPS with certificates from unknown CAs.
func Login ¶ added in v0.10.0
func Login(authConfig *AuthConfig, factory *utils.HTTPRequestFactory) (string, error)
try to register/login to the registry server
func ResolveRepositoryName ¶ added in v0.5.0
Resolves a repository name to a hostname + name
func SaveConfig ¶ added in v0.10.0
func SaveConfig(configFile *ConfigFile) error
save the auth config
Types ¶
type APIVersion ¶ added in v1.3.0
type APIVersion int
var DefaultAPIVersion APIVersion = APIVersion1
func (APIVersion) String ¶ added in v1.3.0
func (av APIVersion) String() string
type AuthConfig ¶ added in v0.10.0
type ConfigFile ¶ added in v0.10.0
type ConfigFile struct { Configs map[string]AuthConfig `json:"configs,omitempty"` // contains filtered or unexported fields }
func LoadConfig ¶ added in v0.10.0
func LoadConfig(rootPath string) (*ConfigFile, error)
load up the auth config information and return values FIXME: use the internal golang config parser
func (*ConfigFile) ResolveAuthConfig ¶ added in v0.10.0
func (config *ConfigFile) ResolveAuthConfig(hostname string) AuthConfig
this method matches a auth configuration to a server address or a url
type Endpoint ¶ added in v1.3.0
type Endpoint struct { URL *url.URL Version APIVersion // contains filtered or unexported fields }
func NewEndpoint ¶ added in v1.3.0
func (Endpoint) Ping ¶ added in v1.3.0
func (e Endpoint) Ping() (RegistryInfo, error)
func (Endpoint) String ¶ added in v1.3.0
Get the formated URL for the root of this registry Endpoint
func (Endpoint) VersionString ¶ added in v1.3.0
func (e Endpoint) VersionString(version APIVersion) string
type ManifestData ¶ added in v1.3.0
type ManifestHistory ¶ added in v1.3.0
type ManifestHistory struct {
V1Compatibility string `json:"v1Compatibility"`
}
type RegistryInfo ¶ added in v0.11.0
type RepositoryData ¶
type SearchResult ¶ added in v0.6.6
type SearchResults ¶
type SearchResults struct { Query string `json:"query"` NumResults int `json:"num_results"` Results []SearchResult `json:"results"` }
type Service ¶ added in v0.11.0
type Service struct {
// contains filtered or unexported fields
}
Service exposes registry capabilities in the standard Engine interface. Once installed, it extends the engine with the following calls:
'auth': Authenticate against the public registry 'search': Search for images on the public registry 'pull': Download images from any registry (TODO) 'push': Upload images to any registry (TODO)
func NewService ¶ added in v0.11.0
NewService returns a new instance of Service ready to be installed no an engine.
func (*Service) Auth ¶ added in v0.11.0
Auth contacts the public registry with the provided credentials, and returns OK if authentication was sucessful. It can be used to verify the validity of a client's credentials.
func (*Service) Search ¶ added in v0.11.0
Search queries the public registry for images matching the specified search terms, and returns the results.
Argument syntax: search TERM
Option environment:
'authConfig': json-encoded credentials to authenticate against the registry. The search extends to images only accessible via the credentials. 'metaHeaders': extra HTTP headers to include in the request to the registry. The headers should be passed as a json-encoded dictionary.
Output:
Results are sent as a collection of structured messages (using engine.Table). Each result is sent as a separate message. Results are ordered by number of stars on the public registry.
type Session ¶ added in v1.2.0
type Session struct {
// contains filtered or unexported fields
}
func NewSession ¶ added in v1.2.0
func NewSession(authConfig *AuthConfig, factory *utils.HTTPRequestFactory, endpoint *Endpoint, timeout bool) (r *Session, err error)
func (*Session) GetAuthConfig ¶ added in v1.2.0
func (r *Session) GetAuthConfig(withPasswd bool) *AuthConfig
func (*Session) GetRemoteHistory ¶ added in v1.2.0
Retrieve the history of a given image from the Registry. Return a list of the parent's json (requested image included)
func (*Session) GetRemoteImageJSON ¶ added in v1.2.0
Retrieve an image from the Registry.
func (*Session) GetRemoteImageLayer ¶ added in v1.2.0
func (*Session) GetRemoteTags ¶ added in v1.2.0
func (*Session) GetRepositoryData ¶ added in v1.2.0
func (r *Session) GetRepositoryData(remote string) (*RepositoryData, error)
func (*Session) GetV2ImageBlob ¶ added in v1.3.0
func (*Session) GetV2ImageBlobReader ¶ added in v1.3.0
func (*Session) GetV2ImageManifest ¶ added in v1.3.0
- Check if TarSum of each layer exists /v2/ 1.a) if 200, continue 1.b) if 300, then push the 1.c) if anything else, err
- PUT the created/signed manifest
func (*Session) GetV2RemoteTags ¶ added in v1.3.0
Given a repository name, returns a json array of string tags
func (*Session) GetV2Version ¶ added in v1.3.0
func (r *Session) GetV2Version(token []string) (*RegistryInfo, error)
func (*Session) LookupRemoteImage ¶ added in v1.2.0
Check if an image exists in the Registry TODO: This method should return the errors instead of masking them and returning false
func (*Session) PostV2ImageMountBlob ¶ added in v1.3.0
func (r *Session) PostV2ImageMountBlob(imageName, sumType, sum string, token []string) (bool, error)
- Succeeded to mount for this image scope - Failed with no error (So continue to Push the Blob) - Failed with error
func (*Session) PushImageChecksumRegistry ¶ added in v1.2.0
func (*Session) PushImageJSONIndex ¶ added in v1.2.0
func (*Session) PushImageJSONRegistry ¶ added in v1.2.0
func (r *Session) PushImageJSONRegistry(imgData *ImgData, jsonRaw []byte, registry string, token []string) error
Push a local image to the registry
func (*Session) PushImageLayerRegistry ¶ added in v1.2.0
func (*Session) PushRegistryTag ¶ added in v1.2.0
push a tag on the registry. Remote has the format '<user>/<repo>
func (*Session) PutV2ImageBlob ¶ added in v1.3.0
func (r *Session) PutV2ImageBlob(imageName, sumType string, blobRdr io.Reader, token []string) (serverChecksum string, err error)
Push the image to the server for storage. 'layer' is an uncompressed reader of the blob to be pushed. The server will generate it's own checksum calculation.
func (*Session) PutV2ImageManifest ¶ added in v1.3.0
func (r *Session) PutV2ImageManifest(imageName, tagName string, manifestRdr io.Reader, token []string) error
Finally Push the (signed) manifest of the blobs we've just pushed
func (*Session) SearchRepositories ¶ added in v1.2.0
func (r *Session) SearchRepositories(term string) (*SearchResults, error)
type TimeoutType ¶ added in v1.2.0
type TimeoutType uint32
const ( NoTimeout TimeoutType = iota ReceiveTimeout ConnectTimeout )