Skip to content

Commit d6f7ff8

Browse files
committed
Adapt code and unit tests
Signed-off-by: David Cassany <[email protected]>
1 parent de17184 commit d6f7ff8

File tree

3 files changed

+14
-19
lines changed

3 files changed

+14
-19
lines changed

cmd/config/config.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -300,7 +300,7 @@ func ReadUpgradeSpec(r *v1.RunConfig, flags *pflag.FlagSet) (*v1.UpgradeSpec, er
300300
return nil, fmt.Errorf("failed sanitizing upgrade spec: %v", err)
301301
}
302302

303-
err = config.ReconcileUpgradeSpec(upgrade)
303+
err = config.ReconcileUpgradeSpec(r, upgrade)
304304
r.Logger.Debugf("Loaded upgrade UpgradeSpec: %s", litter.Sdump(upgrade))
305305
return upgrade, err
306306
}

cmd/config/config_test.go

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -61,9 +61,7 @@ var _ = Describe("Config", Label("config"), func() {
6161

6262
up, err := ReadUpgradeSpec(cfg, nil)
6363
Expect(err).Should(HaveOccurred(), litter.Sdump(cfg))
64-
65-
Expect(up.GrubDefEntry).To(Equal("so"))
66-
Expect(up.Active.Size).To(Equal(uint(2000)), litter.Sdump(up))
64+
Expect(up).To(BeNil())
6765

6866
inst, err := ReadInstallSpec(cfg, nil)
6967
Expect(err).Should(HaveOccurred(), litter.Sdump(cfg))
@@ -438,7 +436,7 @@ var _ = Describe("Config", Label("config"), func() {
438436
ghwTest.CreateDevices()
439437
defer ghwTest.Clean()
440438

441-
err := os.Setenv("ELEMENTAL_UPGRADE_RECOVERY", "true")
439+
Expect(os.Setenv("ELEMENTAL_UPGRADE_RECOVERY", "true")).To(Succeed())
442440
spec, err := ReadUpgradeSpec(cfg, nil)
443441
Expect(err).ShouldNot(HaveOccurred())
444442
// Overwrites recovery-system image, flags have priority over files and env vars

pkg/config/config.go

Lines changed: 11 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ package config
1818

1919
import (
2020
"fmt"
21-
"os/exec"
2221
"path/filepath"
2322
"runtime"
2423
"strings"
@@ -597,34 +596,34 @@ func NewBuildConfig(opts ...GenericOptions) *v1.BuildConfig {
597596

598597
// ReconcileUpgradeSpec will check current mounts which may differ from elemental disovery from /sys/block tree
599598
// as this skips multipathed devices which may be in use.
600-
func ReconcileUpgradeSpec(spec *v1.UpgradeSpec) error {
599+
func ReconcileUpgradeSpec(r *v1.RunConfig, spec *v1.UpgradeSpec) error {
601600
if spec.Partitions.State != nil {
602-
if err := reconcilePartition(spec.Partitions.State); err != nil {
601+
if err := reconcilePartition(r, spec.Partitions.State); err != nil {
603602
return err
604603
}
605604
}
606605
if spec.Partitions.Recovery != nil {
607-
if err := reconcilePartition(spec.Partitions.Recovery); err != nil {
606+
if err := reconcilePartition(r, spec.Partitions.Recovery); err != nil {
608607
return err
609608
}
610609
}
611610

612611
if spec.Partitions.Persistent != nil {
613-
if err := reconcilePartition(spec.Partitions.Persistent); err != nil {
612+
if err := reconcilePartition(r, spec.Partitions.Persistent); err != nil {
614613
return err
615614
}
616615
}
617616

618617
if spec.Partitions.OEM != nil {
619-
if err := reconcilePartition(spec.Partitions.OEM); err != nil {
618+
if err := reconcilePartition(r, spec.Partitions.OEM); err != nil {
620619
return err
621620
}
622621
}
623622
return nil
624623
}
625624

626-
func reconcilePartition(part *v1.Partition) error {
627-
discoveredMountDiskBytes, err := execBlkid(part.FilesystemLabel)
625+
func reconcilePartition(r *v1.RunConfig, part *v1.Partition) error {
626+
discoveredMountDiskBytes, err := execBlkid(r, part.FilesystemLabel)
628627
if err != nil {
629628
return fmt.Errorf("error discovering current partition using label %s: %w", part.FilesystemLabel, err)
630629
}
@@ -636,12 +635,10 @@ func reconcilePartition(part *v1.Partition) error {
636635
}
637636
return nil
638637
}
639-
func execBlkid(name string) ([]byte, error) {
640-
path, err := exec.LookPath("blkid")
641-
if err != nil {
642-
return nil, err
638+
func execBlkid(r *v1.RunConfig, name string) ([]byte, error) {
639+
if ok := r.Config.Runner.CommandExists("blkid"); ok {
640+
return r.Config.Runner.Run("blkid", "-L", name)
643641
}
644642

645-
blkidCmd := exec.Command(path, "-L", name)
646-
return blkidCmd.Output()
643+
return []byte{}, fmt.Errorf("blkid not found")
647644
}

0 commit comments

Comments
 (0)