Skip to content

Commit a5ce202

Browse files
refac: refactor and clean up install config generator
Co-authored-by: OliverTrautvetter <OliverTrautvetter@users.noreply.github.com>
1 parent f31da46 commit a5ce202

File tree

5 files changed

+146
-170
lines changed

5 files changed

+146
-170
lines changed

cli/cmd/init_install_config.go

Lines changed: 12 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ package cmd
55

66
import (
77
"fmt"
8-
"io"
98
"strings"
109

1110
csio "github.com/codesphere-cloud/cs-go/pkg/io"
@@ -164,10 +163,10 @@ func (c *InitInstallConfigCmd) InitInstallConfig(icg installer.InstallConfigMana
164163
return fmt.Errorf("failed to collect configuration interactively: %w", err)
165164
}
166165
} else {
167-
c.updateConfigFromOpts(icg.GetConfig())
166+
c.updateConfigFromOpts(icg.GetInstallConfig())
168167
}
169168

170-
if err := icg.Validate(); err != nil {
169+
if err := icg.ValidateInstallConfig(); err != nil {
171170
return fmt.Errorf("configuration validation failed: %w", err)
172171
}
173172

@@ -216,47 +215,28 @@ func (c *InitInstallConfigCmd) printSuccessMessage() {
216215
func (c *InitInstallConfigCmd) validateOnly(icg installer.InstallConfigManager) error {
217216
fmt.Printf("Validating configuration files...\n")
218217

219-
fmt.Printf("Reading config file: %s\n", c.Opts.ConfigFile)
220-
err := icg.LoadConfigFromFile(c.Opts.ConfigFile)
218+
fmt.Printf("Reading install config file: %s\n", c.Opts.ConfigFile)
219+
err := icg.LoadInstallConfigFromFile(c.Opts.ConfigFile)
221220
if err != nil {
222221
return fmt.Errorf("failed to load config file: %w", err)
223222
}
224223

225-
err = icg.Validate()
226-
if err != nil {
227-
return fmt.Errorf("configuration validation failed: %w", err)
224+
errors := icg.ValidateInstallConfig()
225+
if len(errors) > 0 {
226+
return fmt.Errorf("install config validation failed: %s", strings.Join(errors, ", "))
228227
}
229228

230-
var errors []string
231229
if c.Opts.VaultFile != "" {
232230
fmt.Printf("Reading vault file: %s\n", c.Opts.VaultFile)
233-
vaultFile, err := c.FileWriter.Open(c.Opts.VaultFile)
231+
err := icg.LoadVaultFromFile(c.Opts.VaultFile)
234232
if err != nil {
235-
fmt.Printf("Warning: Could not open vault file: %v\n", err)
236-
} else {
237-
defer util.CloseFileIgnoreError(vaultFile)
238-
239-
vaultData, err := io.ReadAll(vaultFile)
240-
if err != nil {
241-
errors = append(errors, fmt.Sprintf("failed to read vault.yaml: %v", err))
242-
} else {
243-
vault := &files.InstallVault{}
244-
if err := vault.Unmarshal(vaultData); err != nil {
245-
errors = append(errors, fmt.Sprintf("failed to parse vault.yaml: %v", err))
246-
} else {
247-
vaultErrors := installer.ValidateVault(vault)
248-
errors = append(errors, vaultErrors...)
249-
}
250-
}
233+
return fmt.Errorf("failed to load vault file: %w", err)
251234
}
252-
}
253235

254-
if len(errors) > 0 {
255-
fmt.Println("Validation failed:")
256-
for _, err := range errors {
257-
fmt.Printf(" - %s\n", err)
236+
vaultErrors := icg.ValidateVault()
237+
if len(vaultErrors) > 0 {
238+
return fmt.Errorf("vault validation errors: %s", strings.Join(vaultErrors, ", "))
258239
}
259-
return fmt.Errorf("configuration validation failed with %d error(s)", len(errors))
260240
}
261241

262242
fmt.Println("Configuration is valid!")

cli/cmd/init_install_config_interactive_test.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ var _ = Describe("Interactive profile usage", func() {
2222
err := icg.ApplyProfile("dev")
2323
Expect(err).NotTo(HaveOccurred())
2424

25-
config := icg.GetConfig()
25+
config := icg.GetInstallConfig()
2626

2727
// Verify that profile values are set correctly
2828
Expect(config.Datacenter.ID).To(Equal(1))
@@ -111,10 +111,10 @@ var _ = Describe("Interactive profile usage", func() {
111111
Expect(err).NotTo(HaveOccurred())
112112

113113
// Verify config content
114-
err = icg.LoadConfigFromFile(configFile.Name())
114+
err = icg.LoadInstallConfigFromFile(configFile.Name())
115115
Expect(err).NotTo(HaveOccurred())
116116

117-
config := icg.GetConfig()
117+
config := icg.GetInstallConfig()
118118
Expect(config.Datacenter.Name).To(Equal("dev"))
119119
Expect(config.Codesphere.Domain).To(Equal("codesphere.local"))
120120
})
@@ -127,7 +127,7 @@ var _ = Describe("Interactive profile usage", func() {
127127
err := icg.ApplyProfile("production")
128128
Expect(err).NotTo(HaveOccurred())
129129

130-
config := icg.GetConfig()
130+
config := icg.GetInstallConfig()
131131

132132
// Verify production-specific values
133133
Expect(config.Datacenter.Name).To(Equal("production"))

cli/cmd/init_install_config_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ var _ = Describe("ApplyProfile", func() {
2323
Expect(err).To(HaveOccurred())
2424
} else {
2525
Expect(err).NotTo(HaveOccurred())
26-
config := icg.GetConfig()
26+
config := icg.GetInstallConfig()
2727
Expect(config.Datacenter.Name).To(Equal(checkDatacenterName))
2828
}
2929
},
@@ -41,7 +41,7 @@ var _ = Describe("ApplyProfile", func() {
4141

4242
err := icg.ApplyProfile("dev")
4343
Expect(err).NotTo(HaveOccurred())
44-
config := icg.GetConfig()
44+
config := icg.GetInstallConfig()
4545
Expect(config.Datacenter.ID).To(Equal(1))
4646
Expect(config.Datacenter.Name).To(Equal("dev"))
4747
Expect(config.Postgres.Mode).To(Equal("install"))

0 commit comments

Comments
 (0)