fix: manage multiple version showing edge cases
continuous-integration/drone/push Build is passing Details

This commit is contained in:
decentral1se 2021-10-08 10:50:48 +02:00
parent dde8afcd43
commit c764243f3a
No known key found for this signature in database
GPG Key ID: 5E2EF5A63E3718CC
2 changed files with 25 additions and 7 deletions

View File

@ -91,12 +91,19 @@ can take some time.
stackName = app.Env["STACK_NAME"]
}
var version string
if status, ok := statuses[stackName]; ok {
version = status["version"]
tableRow = append(tableRow, status["status"], version)
status := "unknown"
version := "unknown"
if statusMeta, ok := statuses[stackName]; ok {
if currentVersion, exists := statusMeta["version"]; exists {
version = currentVersion
}
if statusMeta["status"] != "" {
status = statusMeta["status"]
}
tableRow = append(tableRow, status, version)
} else {
tableRow = append(tableRow, "unknown")
tableRow = append(tableRow, status, version)
}
var newUpdates []string
@ -104,13 +111,19 @@ can take some time.
if err != nil {
logrus.Fatal(err)
}
for _, update := range updates {
if update != version {
newUpdates = append(newUpdates, update)
}
}
if len(newUpdates) == 0 {
tableRow = append(tableRow, "none, on latest")
if version == "unknown" {
tableRow = append(tableRow, "unknown")
} else {
tableRow = append(tableRow, "none, on latest")
}
} else {
// FIXME: jeezus golang why do you not have a list reverse function
for i, j := 0, len(newUpdates)-1; i < j; i, j = i+1, j-1 {

View File

@ -299,8 +299,8 @@ func GetAppStatuses(appFiles AppFiles) (map[string]map[string]string, error) {
for range servers {
status := <-ch
result := make(map[string]string)
for _, service := range status.Services {
result := make(map[string]string)
name := service.Spec.Labels[convert.LabelNamespace]
if _, ok := statuses[name]; !ok {
@ -310,6 +310,11 @@ func GetAppStatuses(appFiles AppFiles) (map[string]map[string]string, error) {
labelKey := fmt.Sprintf("coop-cloud.%s.version", name)
if version, ok := service.Spec.Labels[labelKey]; ok {
result["version"] = version
} else {
//FIXME: we only need to check containers with the version label not
// every single container and then skip when we see no label perf gains
// to be had here
continue
}
statuses[name] = result