dim

package
v0.0.0-...-7eed66f Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 14, 2017 License: Apache-2.0 Imports: 15 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type ActionType

type ActionType string

ActionType indicates the kind of a NotificationJob

const DeleteAction ActionType = "delete"

DeleteAction indicates a NotificationJob should delete an image from the index

const PushAction ActionType = "push"

PushAction indicates a NotificationJob should add or update an image in the index

type Dim

type Dim struct {
	Docker dockerClient.Docker
}

Dim is the client type that handle all client side interaction with docker daemon

func (*Dim) AddLabel

func (d *Dim) AddLabel(parent string, labels []string, tag string) error

AddLabel applies the given labels to the parent and tag the new created image with the given tag

func (*Dim) AsIndexImage

func (d *Dim) AsIndexImage(image string) (*IndexImage, error)

AsIndexImage returns the IndexImage representation of an image metadata

func (*Dim) GetImageInfo

func (d *Dim) GetImageInfo(image string) (string, []string, error)

GetImageInfo returns the imageID and tags of an image

func (*Dim) GetImageLabels

func (d *Dim) GetImageLabels(image string) (map[string]string, error)

GetImageLabels returns all the labels of a given image

func (*Dim) PrintImageInfo

func (d *Dim) PrintImageInfo(w io.Writer, image string, tpl *template.Template) error

PrintImageInfo writes image information to the writer

func (*Dim) Pull

func (d *Dim) Pull(image string) error

Pull pulls the given image (must be fully qualified)

func (*Dim) Push

func (d *Dim) Push(image string) error

Push pushes an image to a registry

func (*Dim) Remove

func (d *Dim) Remove(image string) error

Remove deletes an image locally

func (*Dim) RemoveLabel

func (d *Dim) RemoveLabel(parent string, labels []string, tag string) error

RemoveLabel clear the given labels to image parent and applies the fiven tag to the newly bulit image. Labels cannot be deleted so their value is only reset to an empty string TODO Implement remove labels by pattern

type IndexImage

type IndexImage struct {
	ID           string
	Name         string
	FullName     string
	Tag          string
	Comment      string
	Created      time.Time
	Author       string
	Label        map[string]string
	Labels       []string
	Volumes      []string
	ExposedPorts []int
	Env          map[string]string
	Envs         []string
	Size         int64
}

IndexImage is an Image modeling for indexation

func (IndexImage) Type

func (im IndexImage) Type() string

Type implementation of bleve.Classifier interface

type IndexResults

type IndexResults struct {
	Total  uint64
	Images []*IndexImage
}

IndexResults contains all results of a given index search

type Info

type Info struct {
	// Version returns the version of dim running server side
	Version string `json:"version"`
	// Uptime returns the server uptime in nanoseconds
	Uptime string `json:"uptime"`
}

Info represents the server version endpoint payload

type NotificationJob

type NotificationJob struct {
	Action     ActionType
	Repository string
	Tag        string
	Digest     digest.Digest
}

NotificationJob stores info to reindex an image after a push or deletion

type RegistryClient

type RegistryClient interface {
	client.Registry
	NewRepository(parsedName reference.Named) (Repository, error)
	Search(query, advanced string, offset, maxResults int) (*SearchResults, error)
	WalkRepositories() <-chan Repository
	PrintImageInfo(out io.Writer, parsedName reference.Named, tpl *template.Template) error
	DeleteImage(parsedName reference.Named) error
	ServerVersion() (*Info, error)
}

RegistryClient defines method to interact with a docker registry

type RegistryImage

type RegistryImage struct {
	*image.Image
	Tag    string
	Digest string
}

RegistryImage is an Image representation from the registry

type RegistryIndex

type RegistryIndex interface {
	Build() <-chan bool
	GetImage(repository, tag string, dg digest.Digest) (*IndexImage, error)
	IndexImage(image *IndexImage)
	DeleteImage(id string)
	SearchImages(q, a string, fields []string, offset, maxResults int) (*IndexResults, error)
	Submit(job *NotificationJob)
	FindImage(id string) (*IndexImage, error)
}

RegistryIndex defines method to manage the indexation of a docker registry

type RegistryProxy

type RegistryProxy interface {
	Forwards(w http.ResponseWriter, r *http.Request)
}

RegistryProxy forwards request to a docker registry if user is granted

type Repository

type Repository interface {
	distribution.Repository
	AllTags() ([]string, error)
	Image(tag string) (img *RegistryImage, err error)
	ImageFromManifest(tagDigest digest.Digest, tag string) (img *RegistryImage, err error)
	DeleteImage(tag string) error
	WalkImages() <-chan *RegistryImage
}

Repository interface defines methods exposed by a registry repository

type SearchResult

type SearchResult struct {
	// StarCount indicates the number of stars this repository has (not supported in private registry)
	StarCount int `json:"star_count"`
	// IsOfficial is true if the result is from an official repository. (not supported in private registry)
	IsOfficial bool `json:"is_official"`
	// Name is the name of the repository
	Name string `json:"name"`
	// IsAutomated indicates whether the result is automated (not supported in private registry)
	IsAutomated bool `json:"is_automated"`
	// Description is a textual description of the repository (filled with the tag of the repo)
	Description string `json:"description"`
	// Tag identifie one version of the image
	Tag string `json:"tag"`
	// FullName stores the fully qualified name of the image
	FullName string `json:"full_name"`
	// Created is the time when the image was created
	Created time.Time `json:"created"`
	// Label is an array holding all the labels applied to  an image
	Label map[string]string `json:"label"`
	// Volumes is an array holding all volumes declared by the image
	Volumes []string `json:"volumes"`
	// Exposed port is an array containing all the ports exposed by an image
	ExposedPorts []int `json:"exposed_ports"`
	// Env is a map of all environment variables
	Env map[string]string `json:"env"`
	// Size is the size of the image
	Size int64 `json:"size"`
}

SearchResult describes a search result returned from a registry

type SearchResults

type SearchResults struct {
	// Query contains the query string that generated the search results
	Query string `json:"query"`
	// NumResults indicates the number of results the query returned
	NumResults int `json:"num_results"`
	// Results is a slice containing the actual results for the search
	Results []SearchResult `json:"results"`
}

SearchResults lists a collection search results returned from a registry

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL