Fix install.device schema to allow all devices (#521)

* Fix install.device schema to allow all devices

E.g. /dev/disk/by-path/pci-0000:03:00.0-scsi-0:0:0:0

Part of https://github.com/kairos-io/kairos/issues/2906

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>

* Add test and run `go mod tidy`

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>

* Fix test

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>

---------

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>
This commit is contained in:
Dimitris Karakasilis
2024-11-08 08:03:16 +02:00
committed by GitHub
parent 617f4be9ab
commit 6a23bb6882
4 changed files with 156 additions and 147 deletions

View File

@@ -1,8 +1,6 @@
package schema_test
import (
"strings"
. "github.com/kairos-io/kairos-sdk/schema"
. "github.com/onsi/ginkgo/v2"
. "github.com/onsi/gomega"
@@ -29,6 +27,17 @@ device: auto`
})
})
Context("when device has 'special' characters", func() {
BeforeEach(func() {
yaml = `#cloud-config
device: "/dev/disk/by-path/pci-0000:03:00.0-scsi-0:0:0:0"`
})
It("succeedes", func() {
Expect(config.IsValid()).To(BeTrue(), func() string { return config.ValidationError.Error() })
})
})
Context("when device is a path", func() {
BeforeEach(func() {
yaml = `#cloud-config
@@ -48,11 +57,8 @@ device: foobar`
It("errors", func() {
Expect(config.IsValid()).NotTo(BeTrue())
Expect(
strings.Contains(config.ValidationError.Error(),
"does not match pattern '^(auto|/|(/[a-zA-Z0-9_-]+)+)$'",
),
).To(BeTrue())
Expect(config.ValidationError.Error()).
To(ContainSubstring("does not match pattern '^(auto|/dev/.+)$'"))
})
})