Documentation
¶
Index ¶
Constants ¶
const ( // PullStatusDownloading represents downloading status. PullStatusDownloading = "downloading" // PullStatusWaiting represents waiting status. PullStatusWaiting = "waiting" // PullStatusResolving represents resolving status. PullStatusResolving = "resolving" // PullStatusResolved represents resolved status. PullStatusResolved = "resolved" // PullStatusExists represents exist status. PullStatusExists = "exists" // PullStatusDone represents done status. PullStatusDone = "done" // PushStatusUploading represents uploading status. PushStatusUploading = "uploading" )
Variables ¶
This section is empty.
Functions ¶
func ProcessStatus ¶
func ProcessStatus(short bool, msg JSONMessage) string
ProcessStatus returns the status of download or upload image
NOTE: if the stdout is not terminal, it should only show the reference and status without progress bar.
func PushProcess ¶
func PushProcess(ctx context.Context, ongoing *PushJobs, stream *JSONStream)
PushProcess translates upload progress to json stream
Types ¶
type Formater ¶
type Formater interface {
// BeginWrite write some data at the stream beginning.
BeginWrite() ([]byte, error)
// EndWrite write some data at the stream ending.
EndWrite() ([]byte, error)
// Write write a object be serialized.
Write(o interface{}) ([]byte, error)
}
Formater define the data's format via stream transfer.
type JSONError ¶
type JSONError struct {
Code int `json:"code,omitempty"`
Message string `json:"message,omitempty"`
}
JSONError wraps a concrete Code and Message as error.
type JSONMessage ¶
type JSONMessage struct {
ID string `json:"id,omitempty"`
Status string `json:"status,omitempty"`
Detail *ProgressDetail `json:"progressDetail,omitempty"`
Error *JSONError `json:"errorDetail,omitempty"`
ErrorMessage string `json:"error,omitempty"`
StartedAt time.Time `json:"started_at,omitempty"`
UpdatedAt time.Time `json:"updated_at,omitempty"`
}
JSONMessage defines a message struct for jsonstream. It describes id, status, progress detail, started and updated.
type JSONStream ¶
type JSONStream struct {
// contains filtered or unexported fields
}
JSONStream represents a stream transfer, the data be encoded with json.
func New ¶
func New(out io.Writer, f Formater) *JSONStream
New creates a 'JSONStream' instance and use a goroutine to recv/send data.
func (*JSONStream) WriteObject ¶
func (s *JSONStream) WriteObject(obj interface{}) error
WriteObject writes a object to client via stream tranfer.
type ProgressDetail ¶
ProgressDetail represents the status.
type PushJobs ¶
type PushJobs struct {
// contains filtered or unexported fields
}
PushJobs defines a job in upload progress
func NewPushJobs ¶
func NewPushJobs(tracker docker.StatusTracker) *PushJobs
NewPushJobs news a PushJobs