tools/eksDistroBuildToolingOpsTools/pkg/dependencyUpdater/etcd.go (63 lines of code) (raw):
package dependencyUpdater
import (
"fmt"
"github.com/aws/eks-distro-build-tooling/tools/eksDistroBuildToolingOpsTools/pkg/eksDistroRelease"
)
const (
etcdName = "etcd"
)
func NewEtcdDependencyUpdater(releases []*eksDistroRelease.Release) Dependency {
return &EtcdUpdater{
updaters: etcdUpdaters(releases),
etcdInfo: etcdConsumerInfo(),
}
}
type EtcdUpdater struct {
updaters []Updater
etcdInfo DependencyInfo
}
func (b EtcdUpdater) Updaters() []Updater {
return b.updaters
}
func (b EtcdUpdater) UpdateAll() error {
for _, u := range b.Updaters() {
err := u.Update()
if err != nil {
return err
}
}
return nil
}
func (b EtcdUpdater) Info() DependencyInfo {
return b.etcdInfo
}
func etcdConsumerInfo() DependencyInfo {
return DependencyInfo{
Name: etcdName,
}
}
func etcdUpdaters(releases []*eksDistroRelease.Release) []Updater {
var updaters []Updater
updaters = append(updaters, etcdGithubUpdaters(releases)...)
return updaters
}
func etcdGithubUpdaters(releases []*eksDistroRelease.Release) []Updater {
var updaters []Updater
for _, r := range releases {
updaters = append(updaters, &etcdGithubUpdater {
eksDistroRelease: r,
})
}
return updaters
}
type etcdGithubUpdater struct {
eksDistroRelease *eksDistroRelease.Release
}
func (g *etcdGithubUpdater) Update() error {
//implement updater here
fmt.Printf("Etcd dependency update stub invoked for EKS D release \n Major: %d\n Minor: %d\n Patch: %d\n Release: %d\n",
g.eksDistroRelease.KubernetesMajorVersion(),
g.eksDistroRelease.KubernetesMinorVersion(),
g.eksDistroRelease.KubernetesPatchVersion(),
g.eksDistroRelease.ReleaseNumber())
return nil
}