mirror of
https://github.com/kairos-io/kairos-agent.git
synced 2025-08-13 14:05:49 +00:00
Simplify code and fix tests
Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>
This commit is contained in:
parent
9a06c5a2a7
commit
00597f5ecf
@ -19,6 +19,7 @@ package action_test
|
|||||||
import (
|
import (
|
||||||
"bytes"
|
"bytes"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"os"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
|
|
||||||
sdkTypes "github.com/kairos-io/kairos-sdk/types"
|
sdkTypes "github.com/kairos-io/kairos-sdk/types"
|
||||||
@ -76,6 +77,16 @@ var _ = Describe("Runtime Actions", func() {
|
|||||||
agentConfig.WithImageExtractor(extractor),
|
agentConfig.WithImageExtractor(extractor),
|
||||||
agentConfig.WithPlatform("linux/amd64"),
|
agentConfig.WithPlatform("linux/amd64"),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
source := v1.NewFileSrc(createDummyFile(10))
|
||||||
|
config.Install.Recovery = v1.Image{
|
||||||
|
File: "",
|
||||||
|
Size: constants.ImgSize,
|
||||||
|
Label: constants.ActiveLabel,
|
||||||
|
FS: constants.LinuxImgFs,
|
||||||
|
MountPoint: constants.TransitionDir,
|
||||||
|
Source: source,
|
||||||
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
AfterEach(func() {
|
AfterEach(func() {
|
||||||
@ -623,3 +634,28 @@ var _ = Describe("Runtime Actions", func() {
|
|||||||
})
|
})
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
|
func createDummyFile(sizeMb int64) string {
|
||||||
|
fileSize := int64(sizeMb * 1024 * 1024)
|
||||||
|
|
||||||
|
tmpFile, err := os.CreateTemp("", "dummyfile_*.tmp")
|
||||||
|
Expect(err).ToNot(HaveOccurred())
|
||||||
|
defer tmpFile.Close()
|
||||||
|
|
||||||
|
dummyData := []byte("1234567890ABCDEF")
|
||||||
|
dummyLength := int64(len(dummyData))
|
||||||
|
|
||||||
|
var written int64
|
||||||
|
for written < fileSize {
|
||||||
|
bytesToWrite := dummyLength
|
||||||
|
if written+bytesToWrite > fileSize {
|
||||||
|
bytesToWrite = fileSize - written
|
||||||
|
}
|
||||||
|
n, err := tmpFile.Write(dummyData[:bytesToWrite])
|
||||||
|
Expect(err).ToNot(HaveOccurred())
|
||||||
|
|
||||||
|
written += int64(n)
|
||||||
|
}
|
||||||
|
|
||||||
|
return tmpFile.Name()
|
||||||
|
}
|
||||||
|
@ -277,16 +277,11 @@ func NewUpgradeSpec(cfg *Config) (*v1.UpgradeSpec, error) {
|
|||||||
recMnt = constants.TransitionDir
|
recMnt = constants.TransitionDir
|
||||||
}
|
}
|
||||||
|
|
||||||
upgradeRecoverySystemUri, err := cfg.Query("upgrade.\"recovery-system\".uri")
|
recoverySrc := cfg.Install.Recovery.Source
|
||||||
upgradeRecoverySystemUri = strings.TrimRight(upgradeRecoverySystemUri, "\n")
|
if recoverySrc == nil {
|
||||||
if err != nil {
|
recoverySrc = v1.NewEmptySrc()
|
||||||
return nil, fmt.Errorf("failed to found recovery upgrade source: %w", err)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
recoverySrc, err := v1.NewSrcFromURI(upgradeRecoverySystemUri)
|
|
||||||
if err != nil {
|
|
||||||
return nil, fmt.Errorf("failed to parse recovery upgrade source uri: %w", err)
|
|
||||||
}
|
|
||||||
recovery = v1.Image{
|
recovery = v1.Image{
|
||||||
File: filepath.Join(ep.Recovery.MountPoint, "cOS", constants.TransitionImgFile),
|
File: filepath.Join(ep.Recovery.MountPoint, "cOS", constants.TransitionImgFile),
|
||||||
Size: constants.ImgSize,
|
Size: constants.ImgSize,
|
||||||
@ -301,25 +296,23 @@ func NewUpgradeSpec(cfg *Config) (*v1.UpgradeSpec, error) {
|
|||||||
if ep.State.MountPoint == "" {
|
if ep.State.MountPoint == "" {
|
||||||
ep.State.MountPoint = constants.StateDir
|
ep.State.MountPoint = constants.StateDir
|
||||||
}
|
}
|
||||||
upgradeSystemUri, err := cfg.Query("upgrade.system.uri")
|
|
||||||
upgradeSystemUri = strings.TrimRight(upgradeSystemUri, "\n")
|
systemSrc := cfg.Install.Active.Source
|
||||||
|
if systemSrc == nil {
|
||||||
|
systemSrc = v1.NewEmptySrc()
|
||||||
|
}
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("failed to found upgrade source: %w", err)
|
return nil, fmt.Errorf("failed to found upgrade source: %w", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
src, err := v1.NewSrcFromURI(upgradeSystemUri)
|
|
||||||
if err != nil {
|
|
||||||
return nil, fmt.Errorf("failed to parse upgrade source uri: %w", err)
|
|
||||||
}
|
|
||||||
|
|
||||||
active = v1.Image{
|
active = v1.Image{
|
||||||
File: filepath.Join(ep.State.MountPoint, "cOS", constants.TransitionImgFile),
|
File: filepath.Join(ep.State.MountPoint, "cOS", constants.TransitionImgFile),
|
||||||
Size: constants.ImgSize,
|
Size: constants.ImgSize,
|
||||||
Label: constants.ActiveLabel,
|
Label: constants.ActiveLabel,
|
||||||
FS: constants.LinuxImgFs,
|
FS: constants.LinuxImgFs,
|
||||||
MountPoint: constants.TransitionDir,
|
MountPoint: constants.TransitionDir,
|
||||||
Source: src,
|
Source: systemSrc,
|
||||||
}
|
}
|
||||||
|
|
||||||
passive = v1.Image{
|
passive = v1.Image{
|
||||||
|
Loading…
Reference in New Issue
Block a user