mirror of
https://github.com/kairos-io/kairos-agent.git
synced 2025-09-13 21:20:47 +00:00
Add test and remove debugging logs
Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>
This commit is contained in:
@@ -3,13 +3,14 @@ package agent
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"github.com/jaypipes/ghw/pkg/block"
|
||||
"github.com/kairos-io/kairos-agent/v2/pkg/constants"
|
||||
"os"
|
||||
"path/filepath"
|
||||
|
||||
"github.com/jaypipes/ghw/pkg/block"
|
||||
"github.com/kairos-io/kairos-agent/v2/pkg/constants"
|
||||
|
||||
"github.com/kairos-io/kairos-agent/v2/pkg/config"
|
||||
"github.com/kairos-io/kairos-agent/v2/pkg/utils/fs"
|
||||
fsutils "github.com/kairos-io/kairos-agent/v2/pkg/utils/fs"
|
||||
v1mock "github.com/kairos-io/kairos-agent/v2/tests/mocks"
|
||||
"github.com/twpayne/go-vfs"
|
||||
"github.com/twpayne/go-vfs/vfst"
|
||||
@@ -196,7 +197,7 @@ var _ = Describe("RunInstall", func() {
|
||||
|
||||
It("runs the install", func() {
|
||||
Skip("Not ready yet")
|
||||
err = RunInstall(options)
|
||||
err = RunInstall(options, "") // TODO
|
||||
Expect(err).ToNot(HaveOccurred())
|
||||
})
|
||||
})
|
||||
|
@@ -60,6 +60,11 @@ func Upgrade(
|
||||
return err
|
||||
}
|
||||
|
||||
err = upgradeSpec.Sanitize()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
upgradeAction := action.NewUpgradeAction(c, upgradeSpec)
|
||||
|
||||
err = upgradeAction.Run()
|
||||
@@ -105,9 +110,9 @@ func determineUpgradeImage(version string) (*v1.ImageSource, error) {
|
||||
return v1.NewSrcFromURI(fmt.Sprintf("%s:%s", registry, version))
|
||||
}
|
||||
|
||||
// generateUpgradeConf creates a kairos configuration for `--source` and `--recovery`
|
||||
// generateConfForCLIArgs creates a kairos configuration for `--source` and `--recovery`
|
||||
// command line arguments. It will be added to the rest of the configurations.
|
||||
func generateUpgradeConf(source string, upgradeRecovery bool) (string, error) {
|
||||
func generateConfForCLIArgs(source string, upgradeRecovery bool) (string, error) {
|
||||
upgrade := map[string](map[string]interface{}){
|
||||
"upgrade": {},
|
||||
}
|
||||
@@ -193,13 +198,13 @@ func findLatestVersion(preReleases, force bool) (string, error) {
|
||||
}
|
||||
|
||||
func generateUpgradeSpec(version, source string, force, strictValidations bool, dirs []string, preReleases, upgradeRecovery bool) (*v1.UpgradeSpec, *config.Config, error) {
|
||||
upgradeConf, err := generateUpgradeConf(source, upgradeRecovery)
|
||||
cliConf, err := generateConfForCLIArgs(source, upgradeRecovery)
|
||||
if err != nil {
|
||||
return nil, nil, err
|
||||
}
|
||||
|
||||
c, err := config.Scan(collector.Directories(dirs...),
|
||||
collector.Readers(strings.NewReader(upgradeConf)),
|
||||
collector.Readers(strings.NewReader(cliConf)),
|
||||
collector.StrictValidation(strictValidations))
|
||||
if err != nil {
|
||||
return nil, nil, err
|
||||
@@ -218,11 +223,5 @@ func generateUpgradeSpec(version, source string, force, strictValidations bool,
|
||||
return nil, nil, err
|
||||
}
|
||||
|
||||
// Sanitize
|
||||
err = upgradeSpec.Sanitize()
|
||||
if err != nil {
|
||||
return nil, nil, err
|
||||
}
|
||||
|
||||
return upgradeSpec, c, nil
|
||||
}
|
||||
|
47
internal/agent/upgrade_test.go
Normal file
47
internal/agent/upgrade_test.go
Normal file
@@ -0,0 +1,47 @@
|
||||
package agent
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
"path"
|
||||
|
||||
. "github.com/onsi/ginkgo/v2"
|
||||
. "github.com/onsi/gomega"
|
||||
)
|
||||
|
||||
var _ = Describe("generateUpgradeSpec", func() {
|
||||
When("there are command line arguments", func() {
|
||||
var configDir string
|
||||
var upgradeRecovery bool
|
||||
|
||||
BeforeEach(func() {
|
||||
upgradeRecovery = false
|
||||
configDir, err := os.MkdirTemp("", "upgrade-test")
|
||||
Expect(err).ToNot(HaveOccurred())
|
||||
|
||||
config := fmt.Sprintf(`upgrade:
|
||||
recovery: %t
|
||||
recovery-system:
|
||||
uri: oci://image-in-conf
|
||||
`, upgradeRecovery)
|
||||
|
||||
configFilePath := path.Join(configDir, "config.yaml")
|
||||
err = os.WriteFile(configFilePath, []byte(config), os.ModePerm)
|
||||
Expect(err).ToNot(HaveOccurred())
|
||||
})
|
||||
|
||||
AfterEach(func() {
|
||||
os.RemoveAll(configDir)
|
||||
})
|
||||
|
||||
It("overrides kairos config yaml values", func() {
|
||||
spec, _, err := generateUpgradeSpec("", "oci:myimage", false, false,
|
||||
[]string{}, false, !upgradeRecovery)
|
||||
|
||||
Expect(err).ToNot(HaveOccurred())
|
||||
Expect(spec.Active.Source.String()).To(Equal("oci://myimage:latest"))
|
||||
Expect(spec.Recovery.Source.String()).To(Equal("oci://myimage:latest"))
|
||||
Expect(spec.RecoveryUpgrade).To(Equal(!upgradeRecovery))
|
||||
})
|
||||
})
|
||||
})
|
@@ -544,8 +544,6 @@ func ReadUpgradeSpecFromConfig(c *Config) (*v1.UpgradeSpec, error) {
|
||||
|
||||
// ReadSpecFromCloudConfig returns a v1.Spec for the given spec
|
||||
func ReadSpecFromCloudConfig(r *Config, spec string) (v1.Spec, error) {
|
||||
fmt.Printf("litter.Sdump(r) before = %+v\n", litter.Sdump(r))
|
||||
|
||||
var sp v1.Spec
|
||||
var err error
|
||||
|
||||
@@ -563,8 +561,6 @@ func ReadSpecFromCloudConfig(r *Config, spec string) (v1.Spec, error) {
|
||||
return nil, fmt.Errorf("failed initializing spec: %v", err)
|
||||
}
|
||||
|
||||
fmt.Printf("litter.Sdump(sp) before = %+v\n", litter.Sdump(sp))
|
||||
|
||||
// Load the config into viper from the raw cloud config string
|
||||
ccString, err := r.String()
|
||||
if err != nil {
|
||||
@@ -582,10 +578,6 @@ func ReadSpecFromCloudConfig(r *Config, spec string) (v1.Spec, error) {
|
||||
r.Logger.Warnf("error unmarshalling %s Spec: %s", spec, err)
|
||||
}
|
||||
|
||||
fmt.Println("---------------------------------")
|
||||
fmt.Printf("litter.Sdump(sp) after = %+v\n", litter.Sdump(sp))
|
||||
fmt.Println("---------------------------------")
|
||||
|
||||
r.Logger.Debugf("Loaded %s spec: %s", spec, litter.Sdump(sp))
|
||||
return sp, nil
|
||||
}
|
||||
|
Reference in New Issue
Block a user