mirror of
https://github.com/kairos-io/kairos-agent.git
synced 2025-09-14 21:51:00 +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 (
|
import (
|
||||||
"context"
|
"context"
|
||||||
"fmt"
|
"fmt"
|
||||||
"github.com/jaypipes/ghw/pkg/block"
|
|
||||||
"github.com/kairos-io/kairos-agent/v2/pkg/constants"
|
|
||||||
"os"
|
"os"
|
||||||
"path/filepath"
|
"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/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"
|
v1mock "github.com/kairos-io/kairos-agent/v2/tests/mocks"
|
||||||
"github.com/twpayne/go-vfs"
|
"github.com/twpayne/go-vfs"
|
||||||
"github.com/twpayne/go-vfs/vfst"
|
"github.com/twpayne/go-vfs/vfst"
|
||||||
@@ -196,7 +197,7 @@ var _ = Describe("RunInstall", func() {
|
|||||||
|
|
||||||
It("runs the install", func() {
|
It("runs the install", func() {
|
||||||
Skip("Not ready yet")
|
Skip("Not ready yet")
|
||||||
err = RunInstall(options)
|
err = RunInstall(options, "") // TODO
|
||||||
Expect(err).ToNot(HaveOccurred())
|
Expect(err).ToNot(HaveOccurred())
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
@@ -60,6 +60,11 @@ func Upgrade(
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
err = upgradeSpec.Sanitize()
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
upgradeAction := action.NewUpgradeAction(c, upgradeSpec)
|
upgradeAction := action.NewUpgradeAction(c, upgradeSpec)
|
||||||
|
|
||||||
err = upgradeAction.Run()
|
err = upgradeAction.Run()
|
||||||
@@ -105,9 +110,9 @@ func determineUpgradeImage(version string) (*v1.ImageSource, error) {
|
|||||||
return v1.NewSrcFromURI(fmt.Sprintf("%s:%s", registry, version))
|
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.
|
// 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 := map[string](map[string]interface{}){
|
||||||
"upgrade": {},
|
"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) {
|
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 {
|
if err != nil {
|
||||||
return nil, nil, err
|
return nil, nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
c, err := config.Scan(collector.Directories(dirs...),
|
c, err := config.Scan(collector.Directories(dirs...),
|
||||||
collector.Readers(strings.NewReader(upgradeConf)),
|
collector.Readers(strings.NewReader(cliConf)),
|
||||||
collector.StrictValidation(strictValidations))
|
collector.StrictValidation(strictValidations))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, nil, err
|
return nil, nil, err
|
||||||
@@ -218,11 +223,5 @@ func generateUpgradeSpec(version, source string, force, strictValidations bool,
|
|||||||
return nil, nil, err
|
return nil, nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
// Sanitize
|
|
||||||
err = upgradeSpec.Sanitize()
|
|
||||||
if err != nil {
|
|
||||||
return nil, nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
return upgradeSpec, c, nil
|
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
|
// ReadSpecFromCloudConfig returns a v1.Spec for the given spec
|
||||||
func ReadSpecFromCloudConfig(r *Config, spec string) (v1.Spec, error) {
|
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 sp v1.Spec
|
||||||
var err error
|
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)
|
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
|
// Load the config into viper from the raw cloud config string
|
||||||
ccString, err := r.String()
|
ccString, err := r.String()
|
||||||
if err != nil {
|
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)
|
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))
|
r.Logger.Debugf("Loaded %s spec: %s", spec, litter.Sdump(sp))
|
||||||
return sp, nil
|
return sp, nil
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user