tracked images endpoint

feature/ui
Karolis Rusenas 2019-04-28 17:03:52 +01:00
parent 39d6dd6c73
commit a70718576d
3 changed files with 44 additions and 12 deletions

View File

@ -0,0 +1,31 @@
package http
import "net/http"
type trackedImage struct {
Image string `json:"image"`
Trigger string `json:"trigger"`
PollSchedule string `json:"poll_schedule"`
Provider string `json:"provider"`
Namespace string `json:"namespace"`
Policy string `json:"policy"`
}
func (s *TriggerServer) trackedHandler(resp http.ResponseWriter, req *http.Request) {
trackedImages, err := s.providers.TrackedImages()
var imgs []trackedImage
for _, img := range trackedImages {
imgs = append(imgs, trackedImage{
Image: img.Image.Name(),
Trigger: img.Trigger.String(),
PollSchedule: img.PollSchedule,
Provider: img.Provider,
Namespace: img.Namespace,
Policy: img.Policy.Name(),
})
}
response(&imgs, 200, err, resp, req)
}

View File

@ -13,22 +13,23 @@ type Credentials struct {
// TrackedImage - tracked image data+metadata
type TrackedImage struct {
Image *image.Reference
Trigger TriggerType
PollSchedule string
Provider string
Namespace string
Secrets []string
Meta map[string]string // metadata supplied by providers
Image *image.Reference `json:"image"`
Trigger TriggerType `json:"trigger"`
PollSchedule string `json:"poll_schedule"`
Provider string `json:"provider"`
Namespace string `json:"namespace"`
Secrets []string `json:"secrets"`
Meta map[string]string `json:"meta"` // metadata supplied by providers
// a list of pre-release tags, ie: 1.0.0-dev, 1.5.0-prod get translated into
// dev, prod
// combined semver tags
Tags []string
Policy Policy
Tags []string `json:"tags"`
Policy Policy `json:"policy"`
}
type Policy interface {
ShouldUpdate(current, new string) (bool, error)
Name() string
}
func (i TrackedImage) String() string {

View File

@ -6,9 +6,9 @@ import (
// Reference is an opaque object that include identifier such as a name, tag, repository, registry, etc...
type Reference struct {
named Named
tag string
scheme string // registry scheme, i.e. http, https
named Named `json:"named"`
tag string `json:"tag"`
scheme string `json:"scheme"` // registry scheme, i.e. http, https
}
func (r Reference) String() string {