mirror of
https://github.com/kairos-io/provider-kairos.git
synced 2025-08-16 22:46:41 +00:00
36 lines
687 B
Go
36 lines
687 B
Go
|
package provider
|
||
|
|
||
|
import (
|
||
|
"encoding/json"
|
||
|
|
||
|
"github.com/c3os-io/c3os/pkg/utils"
|
||
|
"github.com/google/go-containerregistry/pkg/crane"
|
||
|
"github.com/mudler/go-pluggable"
|
||
|
)
|
||
|
|
||
|
func eventError(err error) pluggable.EventResponse {
|
||
|
return pluggable.EventResponse{Error: err.Error()}
|
||
|
}
|
||
|
|
||
|
func ListVersions(e *pluggable.Event) pluggable.EventResponse {
|
||
|
registry, err := utils.OSRelease("IMAGE_REPO")
|
||
|
if err != nil {
|
||
|
return eventError(err)
|
||
|
}
|
||
|
tags, err := crane.ListTags(registry)
|
||
|
if err != nil {
|
||
|
return eventError(err)
|
||
|
}
|
||
|
|
||
|
versions, err := json.Marshal(tags)
|
||
|
resp := &pluggable.EventResponse{
|
||
|
Data: string(versions),
|
||
|
}
|
||
|
|
||
|
if err != nil {
|
||
|
resp.Error = err.Error()
|
||
|
}
|
||
|
|
||
|
return *resp
|
||
|
}
|