fix: support downgrade/upgrade for unknown versions

This commit is contained in:
decentral1se 2021-10-15 09:57:36 +02:00
parent e820e0219d
commit 0615c3f745
No known key found for this signature in database
GPG Key ID: 5E2EF5A63E3718CC
2 changed files with 49 additions and 37 deletions

View File

@ -62,10 +62,6 @@ data beforehand - see "abra app backup <app>" for more.
logrus.Fatal(err)
}
if deployedVersion == "" {
logrus.Fatalf("failed to determine version of deployed '%s'", app.Name)
}
if !isDeployed {
logrus.Fatalf("'%s' is not deployed?", app.Name)
}
@ -76,22 +72,30 @@ data beforehand - see "abra app backup <app>" for more.
}
var availableDowngrades []string
for _, version := range versions {
parsedDeployedVersion, err := tagcmp.Parse(deployedVersion)
if err != nil {
logrus.Fatal(err)
}
parsedVersion, err := tagcmp.Parse(version)
if err != nil {
logrus.Fatal(err)
}
if parsedVersion != parsedDeployedVersion && parsedVersion.IsLessThan(parsedDeployedVersion) {
availableDowngrades = append(availableDowngrades, version)
}
if deployedVersion == "" {
deployedVersion = "unknown"
availableDowngrades = versions
logrus.Warnf("failed to determine version of deployed '%s'", app.Name)
}
if len(availableDowngrades) == 0 {
logrus.Fatal("no available downgrades, you're on latest")
if deployedVersion != "unknown" {
for _, version := range versions {
parsedDeployedVersion, err := tagcmp.Parse(deployedVersion)
if err != nil {
logrus.Fatal(err)
}
parsedVersion, err := tagcmp.Parse(version)
if err != nil {
logrus.Fatal(err)
}
if parsedVersion != parsedDeployedVersion && parsedVersion.IsLessThan(parsedDeployedVersion) {
availableDowngrades = append(availableDowngrades, version)
}
}
if len(availableDowngrades) == 0 {
logrus.Fatal("no available downgrades, you're on latest")
}
}
// FIXME: jeezus golang why do you not have a list reverse function

View File

@ -54,10 +54,6 @@ data beforehand - see "abra app backup <app>" for more.
logrus.Fatal(err)
}
if deployedVersion == "" {
logrus.Fatalf("failed to determine version of deployed '%s'", app.Name)
}
if !isDeployed {
logrus.Fatalf("'%s' is not deployed?", app.Name)
}
@ -67,23 +63,35 @@ data beforehand - see "abra app backup <app>" for more.
logrus.Fatal(err)
}
var availableUpgrades []string
for _, version := range versions {
parsedDeployedVersion, err := tagcmp.Parse(deployedVersion)
if err != nil {
logrus.Fatal(err)
}
parsedVersion, err := tagcmp.Parse(version)
if err != nil {
logrus.Fatal(err)
}
if parsedVersion.IsGreaterThan(parsedDeployedVersion) {
availableUpgrades = append(availableUpgrades, version)
}
if len(versions) == 0 {
logrus.Fatalf("no versions available '%s' in recipe catalogue?", app.Type)
}
if len(availableUpgrades) == 0 {
logrus.Fatal("no available upgrades, you're on latest")
var availableUpgrades []string
if deployedVersion == "" {
deployedVersion = "unknown"
availableUpgrades = versions
logrus.Warnf("failed to determine version of deployed '%s'", app.Name)
}
if deployedVersion != "unknown" {
for _, version := range versions {
parsedDeployedVersion, err := tagcmp.Parse(deployedVersion)
if err != nil {
logrus.Fatal(err)
}
parsedVersion, err := tagcmp.Parse(version)
if err != nil {
logrus.Fatal(err)
}
if parsedVersion.IsGreaterThan(parsedDeployedVersion) {
availableUpgrades = append(availableUpgrades, version)
}
}
if len(availableUpgrades) == 0 {
logrus.Fatal("no available upgrades, you're on latest")
}
}
var chosenUpgrade string