mirror of
https://github.com/edgelesssys/constellation.git
synced 2025-09-26 11:34:20 -04:00
cli: use Semver type to represent microservice versions (#2125)
Previously we used strings to pass microservice versions. This invited bugs due to missing input validation.
This commit is contained in:
parent
2d3999440d
commit
1d5a8283e0
35 changed files with 612 additions and 318 deletions
|
@ -14,41 +14,42 @@ import (
|
|||
|
||||
"github.com/edgelesssys/constellation/v2/internal/constants"
|
||||
"github.com/edgelesssys/constellation/v2/internal/logger"
|
||||
"github.com/edgelesssys/constellation/v2/internal/semver"
|
||||
"helm.sh/helm/v3/pkg/action"
|
||||
"helm.sh/helm/v3/pkg/cli"
|
||||
)
|
||||
|
||||
func servicesVersion(t *testing.T) (string, error) {
|
||||
func servicesVersion(t *testing.T) (semver.Semver, error) {
|
||||
t.Helper()
|
||||
log := logger.NewTest(t)
|
||||
settings := cli.New()
|
||||
settings.KubeConfig = "constellation-admin.conf"
|
||||
actionConfig := &action.Configuration{}
|
||||
if err := actionConfig.Init(settings.RESTClientGetter(), constants.HelmNamespace, "secret", log.Infof); err != nil {
|
||||
return "", fmt.Errorf("initializing config: %w", err)
|
||||
return semver.Semver{}, fmt.Errorf("initializing config: %w", err)
|
||||
}
|
||||
|
||||
return currentVersion(actionConfig, "constellation-services")
|
||||
}
|
||||
|
||||
func currentVersion(cfg *action.Configuration, release string) (string, error) {
|
||||
func currentVersion(cfg *action.Configuration, release string) (semver.Semver, error) {
|
||||
action := action.NewList(cfg)
|
||||
action.Filter = release
|
||||
rel, err := action.Run()
|
||||
if err != nil {
|
||||
return "", err
|
||||
return semver.Semver{}, err
|
||||
}
|
||||
|
||||
if len(rel) == 0 {
|
||||
return "", fmt.Errorf("release %s not found", release)
|
||||
return semver.Semver{}, fmt.Errorf("release %s not found", release)
|
||||
}
|
||||
if len(rel) > 1 {
|
||||
return "", fmt.Errorf("multiple releases found for %s", release)
|
||||
return semver.Semver{}, fmt.Errorf("multiple releases found for %s", release)
|
||||
}
|
||||
|
||||
if rel[0] == nil || rel[0].Chart == nil || rel[0].Chart.Metadata == nil {
|
||||
return "", fmt.Errorf("received invalid release %s", release)
|
||||
return semver.Semver{}, fmt.Errorf("received invalid release %s", release)
|
||||
}
|
||||
|
||||
return rel[0].Chart.Metadata.Version, nil
|
||||
return semver.New(rel[0].Chart.Metadata.Version)
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue