Add test and remove debugging logs

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>
This commit is contained in:
Dimitris Karakasilis
2023-09-28 15:08:16 +03:00
parent 968812dfbb
commit c58efaa623
4 changed files with 61 additions and 22 deletions

View File

@@ -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())
})
})

View File

@@ -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
}

View 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))
})
})
})

View File

@@ -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
}