versionsapi: rename package

Signed-off-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
This commit is contained in:
Paul Meyer 2022-12-01 10:26:35 +01:00
parent 3c62b841ed
commit 9c9c8e3d46
5 changed files with 53 additions and 53 deletions

View File

@ -22,7 +22,7 @@ import (
"github.com/edgelesssys/constellation/v2/internal/constants"
"github.com/edgelesssys/constellation/v2/internal/file"
"github.com/edgelesssys/constellation/v2/internal/sigstore"
"github.com/edgelesssys/constellation/v2/internal/update"
"github.com/edgelesssys/constellation/v2/internal/versionsapi"
"github.com/manifoldco/promptui"
"github.com/spf13/afero"
"github.com/spf13/cobra"
@ -55,7 +55,7 @@ func runUpgradePlan(cmd *cobra.Command, args []string) error {
if err != nil {
return err
}
patchLister := update.New()
patchLister := versionsapi.New()
rekor, err := sigstore.NewRekor()
if err != nil {
return fmt.Errorf("constructing Rekor client: %w", err)
@ -335,5 +335,5 @@ type upgradePlanner interface {
}
type patchLister interface {
PatchVersionsOf(ctx context.Context, stream, minor, kind string) (*update.VersionsList, error)
PatchVersionsOf(ctx context.Context, stream, minor, kind string) (*versionsapi.List, error)
}

View File

@ -19,7 +19,7 @@ import (
"github.com/edgelesssys/constellation/v2/internal/config"
"github.com/edgelesssys/constellation/v2/internal/constants"
"github.com/edgelesssys/constellation/v2/internal/file"
"github.com/edgelesssys/constellation/v2/internal/update"
"github.com/edgelesssys/constellation/v2/internal/versionsapi"
"github.com/spf13/afero"
"github.com/spf13/cobra"
"github.com/stretchr/testify/assert"
@ -163,7 +163,7 @@ func TestGetCompatibleImageMeasurements(t *testing.T) {
}
func TestUpgradePlan(t *testing.T) {
availablePatches := update.VersionsList{
availablePatches := versionsapi.List{
Versions: []string{"v1.0.0", "v1.0.1"},
}
@ -488,10 +488,10 @@ func (u stubUpgradePlanner) GetCurrentImage(context.Context) (*unstructured.Unst
}
type stubPatchLister struct {
list update.VersionsList
list versionsapi.List
err error
}
func (s stubPatchLister) PatchVersionsOf(ctx context.Context, stream, minor, kind string) (*update.VersionsList, error) {
func (s stubPatchLister) PatchVersionsOf(ctx context.Context, stream, minor, kind string) (*versionsapi.List, error) {
return &s.list, s.err
}

View File

@ -28,7 +28,7 @@ import (
s3types "github.com/aws/aws-sdk-go-v2/service/s3/types"
"github.com/edgelesssys/constellation/v2/internal/constants"
"github.com/edgelesssys/constellation/v2/internal/logger"
"github.com/edgelesssys/constellation/v2/internal/update"
"github.com/edgelesssys/constellation/v2/internal/versionsapi"
"go.uber.org/zap"
"go.uber.org/zap/zapcore"
"golang.org/x/mod/semver"
@ -61,7 +61,7 @@ func main() {
ctx := context.Background()
updateFetcher := update.New()
updateFetcher := versionsapi.New()
versionManager, err := newVersionManager(ctx, *region, *bucket, *distributionID)
if err != nil {
log.With(zap.Error(err)).Fatalf("Failed to create version uploader")
@ -74,7 +74,7 @@ func main() {
log.With(zap.Error(err)).Fatalf("Failed to get minor versions")
}
log.Infof("Version list for minor versions under %q does not exist. Creating new list.", major)
minorVersions = &update.VersionsList{
minorVersions = &versionsapi.List{
Stream: stream,
Granularity: "major",
Base: major,
@ -98,7 +98,7 @@ func main() {
log.With(zap.Error(err)).Fatalf("Failed to get patch versions")
}
log.Infof("Version list for patch versions under %q does not exist. Creating new list.", minor)
patchVersions = &update.VersionsList{
patchVersions = &versionsapi.List{
Stream: stream,
Granularity: "minor",
Base: minor,
@ -150,7 +150,7 @@ func validateVersion(version string) error {
return nil
}
func ensureMinorVersionExists(ctx context.Context, fetcher *update.VersionsFetcher, version string) error {
func ensureMinorVersionExists(ctx context.Context, fetcher *versionsapi.Fetcher, version string) error {
major := semver.Major(version)
minor := semver.MajorMinor(version)
existingMinorVersions, err := fetcher.MinorVersionsOf(ctx, stream, major, imageKind)
@ -163,7 +163,7 @@ func ensureMinorVersionExists(ctx context.Context, fetcher *update.VersionsFetch
return nil
}
func ensurePatchVersionExists(ctx context.Context, fetcher *update.VersionsFetcher, version string) error {
func ensurePatchVersionExists(ctx context.Context, fetcher *versionsapi.Fetcher, version string) error {
minor := semver.MajorMinor(version)
patch := semver.Canonical(version)
existingPatchVersions, err := fetcher.PatchVersionsOf(ctx, stream, minor, imageKind)
@ -203,29 +203,29 @@ func newVersionManager(ctx context.Context, region, bucket, distributionID strin
}, nil
}
func (m *versionManager) getMinorVersions(ctx context.Context, version string) (*update.VersionsList, error) {
func (m *versionManager) getMinorVersions(ctx context.Context, version string) (*versionsapi.List, error) {
baseVersion := semver.Major(version)
return m.getVersions(ctx, baseVersion)
}
func (m *versionManager) getPatchVersions(ctx context.Context, version string) (*update.VersionsList, error) {
func (m *versionManager) getPatchVersions(ctx context.Context, version string) (*versionsapi.List, error) {
baseVersion := semver.MajorMinor(version)
return m.getVersions(ctx, baseVersion)
}
func (m *versionManager) addMinorVersion(ctx context.Context, version string, minorVersions *update.VersionsList) error {
func (m *versionManager) addMinorVersion(ctx context.Context, version string, minorVersions *versionsapi.List) error {
baseVersion := semver.Major(version)
minorVersion := semver.MajorMinor(version)
return m.addVersion(ctx, baseVersion, minorVersion, minorVersions)
}
func (m *versionManager) addPatchVersion(ctx context.Context, version string, patchVersions *update.VersionsList) error {
func (m *versionManager) addPatchVersion(ctx context.Context, version string, patchVersions *versionsapi.List) error {
baseVersion := semver.MajorMinor(version)
patchVersion := semver.Canonical(version)
return m.addVersion(ctx, baseVersion, patchVersion, patchVersions)
}
func (m *versionManager) getVersions(ctx context.Context, baseVersion string) (*update.VersionsList, error) {
func (m *versionManager) getVersions(ctx context.Context, baseVersion string) (*versionsapi.List, error) {
granularity, err := granularityFromVersion(baseVersion)
if err != nil {
return nil, err
@ -242,14 +242,14 @@ func (m *versionManager) getVersions(ctx context.Context, baseVersion string) (*
return nil, err
}
defer out.Body.Close()
var versions update.VersionsList
var versions versionsapi.List
if err := json.NewDecoder(out.Body).Decode(&versions); err != nil {
return nil, err
}
return &versions, nil
}
func (m *versionManager) addVersion(ctx context.Context, baseVersion, version string, list *update.VersionsList) error {
func (m *versionManager) addVersion(ctx context.Context, baseVersion, version string, list *versionsapi.List) error {
granularity, err := granularityFromVersion(baseVersion)
if err != nil {
return err

View File

@ -4,7 +4,7 @@ Copyright (c) Edgeless Systems GmbH
SPDX-License-Identifier: AGPL-3.0-only
*/
package update
package versionsapi
import (
"context"
@ -20,14 +20,14 @@ import (
"golang.org/x/mod/semver"
)
// VersionsList represents a list of versions for a kind of resource.
// List represents a list of versions for a kind of resource.
// It has a granularity of either "major" or "minor".
//
// For example, a VersionsList with granularity "major" could contain
// For example, a List with granularity "major" could contain
// the base version "v1" and a list of minor versions "v1.0", "v1.1", "v1.2" etc.
// A VersionsList with granularity "minor" could contain the base version
// A List with granularity "minor" could contain the base version
// "v1.0" and a list of patch versions "v1.0.0", "v1.0.1", "v1.0.2" etc.
type VersionsList struct {
type List struct {
// Stream is the update stream of the list.
// Currently, only "stable" is supported.
Stream string `json:"stream"`
@ -50,7 +50,7 @@ type VersionsList struct {
// - The kind is supported.
// - The base version is a valid semantic version that matches the granularity.
// - All versions in the list are valid semantic versions that are finer-grained than the base version.
func (l *VersionsList) Validate() error {
func (l *List) Validate() error {
var issues []string
if l.Stream != "stable" {
issues = append(issues, fmt.Sprintf("stream %q is not supported", l.Stream))
@ -91,7 +91,7 @@ func (l *VersionsList) Validate() error {
}
// Contains returns true if the list contains the given version.
func (l *VersionsList) Contains(version string) bool {
func (l *List) Contains(version string) bool {
for _, v := range l.Versions {
if v == version {
return true
@ -100,35 +100,35 @@ func (l *VersionsList) Contains(version string) bool {
return false
}
// VersionsFetcher fetches a list of versions.
type VersionsFetcher struct {
// Fetcher fetches a list of versions.
type Fetcher struct {
httpc httpc
}
// New returns a new VersionsFetcher.
func New() *VersionsFetcher {
return &VersionsFetcher{
func New() *Fetcher {
return &Fetcher{
httpc: http.DefaultClient,
}
}
// MinorVersionsOf fetches the list of minor versions for a given stream, major version and kind.
func (f *VersionsFetcher) MinorVersionsOf(ctx context.Context, stream, major, kind string) (*VersionsList, error) {
func (f *Fetcher) MinorVersionsOf(ctx context.Context, stream, major, kind string) (*List, error) {
return f.list(ctx, stream, "major", major, kind)
}
// PatchVersionsOf fetches the list of patch versions for a given stream, minor version and kind.
func (f *VersionsFetcher) PatchVersionsOf(ctx context.Context, stream, minor, kind string) (*VersionsList, error) {
func (f *Fetcher) PatchVersionsOf(ctx context.Context, stream, minor, kind string) (*List, error) {
return f.list(ctx, stream, "minor", minor, kind)
}
// list fetches the list of versions for a given stream, granularity, base and kind.
func (f *VersionsFetcher) list(ctx context.Context, stream, granularity, base, kind string) (*VersionsList, error) {
func (f *Fetcher) list(ctx context.Context, stream, granularity, base, kind string) (*List, error) {
raw, err := getFromURL(ctx, f.httpc, stream, granularity, base, kind)
if err != nil {
return nil, fmt.Errorf("fetching versions list: %w", err)
}
list := &VersionsList{}
list := &List{}
if err := json.Unmarshal(raw, &list); err != nil {
return nil, fmt.Errorf("decoding versions list: %w", err)
}
@ -141,7 +141,7 @@ func (f *VersionsFetcher) list(ctx context.Context, stream, granularity, base, k
return list, nil
}
func (f *VersionsFetcher) listMatchesRequest(list *VersionsList, stream, granularity, base, kind string) bool {
func (f *Fetcher) listMatchesRequest(list *List, stream, granularity, base, kind string) bool {
return list.Stream == stream && list.Granularity == granularity && list.Base == base && list.Kind == kind
}

View File

@ -4,7 +4,7 @@ Copyright (c) Edgeless Systems GmbH
SPDX-License-Identifier: AGPL-3.0-only
*/
package update
package versionsapi
import (
"bytes"
@ -25,8 +25,8 @@ func TestMain(m *testing.M) {
func TestValidate(t *testing.T) {
testCases := map[string]struct {
listFunc func() *VersionsList
overrideFunc func(list *VersionsList)
listFunc func() *List
overrideFunc func(list *List)
wantErr bool
}{
"valid major list": {
@ -37,56 +37,56 @@ func TestValidate(t *testing.T) {
},
"invalid stream": {
listFunc: majorList,
overrideFunc: func(list *VersionsList) {
overrideFunc: func(list *List) {
list.Stream = "invalid"
},
wantErr: true,
},
"invalid granularity": {
listFunc: majorList,
overrideFunc: func(list *VersionsList) {
overrideFunc: func(list *List) {
list.Granularity = "invalid"
},
wantErr: true,
},
"invalid kind": {
listFunc: majorList,
overrideFunc: func(list *VersionsList) {
overrideFunc: func(list *List) {
list.Kind = "invalid"
},
wantErr: true,
},
"base ver is not semantic version": {
listFunc: majorList,
overrideFunc: func(list *VersionsList) {
overrideFunc: func(list *List) {
list.Base = "invalid"
},
wantErr: true,
},
"base ver does not reflect major granularity": {
listFunc: majorList,
overrideFunc: func(list *VersionsList) {
overrideFunc: func(list *List) {
list.Base = "v1.0"
},
wantErr: true,
},
"base ver does not reflect minor granularity": {
listFunc: minorList,
overrideFunc: func(list *VersionsList) {
overrideFunc: func(list *List) {
list.Base = "v1"
},
wantErr: true,
},
"version in list is not semantic version": {
listFunc: majorList,
overrideFunc: func(list *VersionsList) {
overrideFunc: func(list *List) {
list.Versions[0] = "invalid"
},
wantErr: true,
},
"version in list is not sub version of base": {
listFunc: majorList,
overrideFunc: func(list *VersionsList) {
overrideFunc: func(list *List) {
list.Versions[0] = "v2.1"
},
wantErr: true,
@ -170,7 +170,7 @@ func TestList(t *testing.T) {
testCases := map[string]struct {
stream, granularity, base, kind string
overrideFile string
wantList VersionsList
wantList List
wantErr bool
}{
"major list fetched remotely": {
@ -225,7 +225,7 @@ func TestList(t *testing.T) {
kind = tc.kind
}
fetcher := &VersionsFetcher{
fetcher := &Fetcher{
httpc: client,
}
list, err := fetcher.list(context.Background(), stream, granularity, base, kind)
@ -254,8 +254,8 @@ func newTestClient(fn roundTripFunc) *http.Client {
}
}
func majorList() *VersionsList {
return &VersionsList{
func majorList() *List {
return &List{
Stream: "stable",
Granularity: "major",
Base: "v1",
@ -266,8 +266,8 @@ func majorList() *VersionsList {
}
}
func minorList() *VersionsList {
return &VersionsList{
func minorList() *List {
return &List{
Stream: "stable",
Granularity: "minor",
Base: "v1.1",