forked from toolshed/abra
		
	refactor: move secret- and config-gathering to separate file
This commit is contained in:
		@ -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
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user