refactor: move secret- and config-gathering to separate file

This commit is contained in:
3wc
2025-09-02 12:15:17 -04:00
parent 745651e962
commit 8e8f7715a2
2 changed files with 74 additions and 67 deletions

View File

@ -4,7 +4,6 @@ import (
"context"
"errors"
"fmt"
"sort"
"strings"
"coopcloud.tech/abra/cli/internal"
@ -198,66 +197,17 @@ checkout as-is. Recipe commit hashes are also supported as values for
}
// Gather secrets
secStats, err := secret.PollSecretsStatus(cl, app)
secretInfo, err := deploy.GatherSecretsForDeploy(cl, app)
if err != nil {
log.Fatal(err)
}
var secretInfo []string
// Sort secrets to ensure reproducible output
sort.Slice(secStats, func(i, j int) bool {
return secStats[i].LocalName < secStats[j].LocalName
})
for _, secStat := range secStats {
secretInfo = append(secretInfo, fmt.Sprintf("%s: %s", secStat.LocalName, secStat.Version))
}
// Gather configs
// Get current configs from existing deployment
currentConfigNames, err := deploy.GetConfigNamesForStack(cl, app)
configInfo, err := deploy.GatherConfigsForDeploy(cl, app, compose, abraShEnv)
if err != nil {
log.Fatal(err)
}
log.Infof("Config names: %v", currentConfigNames)
// Create map of current config base names to versions
currentConfigs := make(map[string]string)
for _, configName := range currentConfigNames {
baseName, version := client.GetConfigNameAndVersion(configName, app.StackName())
currentConfigs[baseName] = version
}
log.Infof("Configs: %v", currentConfigs)
// Get new configs from the compose specification
newConfigs := compose.Configs
var configInfo []string
for configName := range newConfigs {
log.Debugf("Searching abra.sh for version for %s", configName)
versionKey := strings.ToUpper(configName) + "_VERSION"
newVersion, exists := abraShEnv[versionKey]
if !exists {
log.Warnf("No version found for config %s", configName)
configInfo = append(configInfo, fmt.Sprintf("%s: ? (missing version)", configName))
continue
}
if currentVersion, exists := currentConfigs[configName]; exists {
if currentVersion == newVersion {
configInfo = append(configInfo, fmt.Sprintf("%s: %s (unchanged)", configName, newVersion))
} else {
configInfo = append(configInfo, fmt.Sprintf("%s: %s → %s", configName, currentVersion, newVersion))
}
} else {
configInfo = append(configInfo, fmt.Sprintf("%s: %s (new)", configName, newVersion))
}
}
// Gather images
var imageInfo []string