Skip to content

Commit

Permalink
fix: try to fix windows CI
Browse files Browse the repository at this point in the history
  • Loading branch information
yasminvalim committed Apr 22, 2024
1 parent 6973cd1 commit b5512fb
Show file tree
Hide file tree
Showing 4 changed files with 36 additions and 12 deletions.
2 changes: 1 addition & 1 deletion config/shared/errors/errors.go
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,7 @@ var (
ErrInsecureProxy = errors.New("insecure plaintext HTTP proxy specified for HTTPS resources")
ErrPathConflictsSystemd = errors.New("path conflicts with systemd unit or dropin")
ErrPathAlreadyExists = errors.New("path already exists")
ErrMisslabeledDir = errors.New("parent directory path matches configured file, check path, and ensure parent directory is configured")
ErrMissLabeledDir = errors.New("parent directory path matches configured file, check path, and ensure parent directory is configured")

// Systemd section errors
ErrInvalidSystemdExt = errors.New("invalid systemd unit extension")
Expand Down
15 changes: 12 additions & 3 deletions config/v3_5_experimental/types/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,7 @@ func (cfg Config) validateParents(c path.ContextPath) report.Report {
for i, entry := range entries {
if i > 0 && isWithin(entry.Path, entries[i-1].Path) {
if entries[i-1].Field != "directories" {
r.AddOnError(c.Append("storage", entry.Field, i, "path"), errors.ErrMisslabeledDir)
r.AddOnError(c.Append("storage", entry.Field, i, "path"), errors.ErrMissLabeledDir)
return r
}
}
Expand All @@ -127,8 +127,17 @@ func addPathAndEntry(path, fieldName string, entries *[]struct{ Path, Field stri

func depth(path string) uint {
var count uint
for p := filepath.Clean(path); p != "/" && p != "."; count++ {
p = filepath.Dir(p)
cleanedPath := filepath.FromSlash(filepath.Clean(path))
sep := string(filepath.Separator)

volume := filepath.VolumeName(cleanedPath)
if volume != "" {
cleanedPath = cleanedPath[len(volume):]
}

for cleanedPath != sep && cleanedPath != "." {
cleanedPath = filepath.Dir(cleanedPath)
count++
}
return count
}
Expand Down
30 changes: 22 additions & 8 deletions config/v3_5_experimental/types/config_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@ import (

"github.com/coreos/ignition/v2/config/shared/errors"
"github.com/coreos/ignition/v2/config/util"

"github.com/coreos/vcontext/path"
"github.com/coreos/vcontext/report"
)
Expand Down Expand Up @@ -189,12 +188,12 @@ func TestConfigValidation(t *testing.T) {
in: Config{
Storage: Storage{
Files: []File{
{Node: Node{Path: "/foo/bar"}},
{Node: Node{Path: "/foo/bar/baz"}},
{Node: Node{Path: "C:\\foo\\bar"}},
{Node: Node{Path: "C:\\foo\\bar\\baz"}},
},
},
},
out: errors.ErrMisslabeledDir,
out: errors.ErrMissLabeledDir,
at: path.New("json", "storage", "files", 1, "path"),
},

Expand All @@ -210,7 +209,7 @@ func TestConfigValidation(t *testing.T) {
},
},
},
out: errors.ErrMisslabeledDir,
out: errors.ErrMissLabeledDir,
at: path.New("json", "storage", "links", 1, "path"),
},

Expand All @@ -219,14 +218,14 @@ func TestConfigValidation(t *testing.T) {
in: Config{
Storage: Storage{
Files: []File{
{Node: Node{Path: "/foo/bar"}},
{Node: Node{Path: "C:\\foo\\bar"}},
},
Directories: []Directory{
{Node: Node{Path: "/foo/bar/baz"}},
{Node: Node{Path: "C:\\foo\\bar\\baz"}},
},
},
},
out: errors.ErrMisslabeledDir,
out: errors.ErrMissLabeledDir,
at: path.New("json", "storage", "directories", 1, "path"),
},

Expand Down Expand Up @@ -333,3 +332,18 @@ func TestConfigValidation(t *testing.T) {
}
}
}

func BenchmarkValidateParents(b *testing.B) {
cfg := Config{
Storage: Storage{
Files: []File{
{Node: Node{Path: "/foo/bar"}},
{Node: Node{Path: "/foo/bar/baz"}},
},
},
}

for i := 0; i < b.N; i++ {
_ = cfg.validateParents(path.New("json"))
}
}
1 change: 1 addition & 0 deletions docs/release-notes.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ nav_order: 9
- Fix validation to catch conflicts with the parent directory of another file, link or directories
- Retry HTTP requests on Azure on status codes 404, 410, and 429


## Ignition 2.17.0 (2023-11-20)

Starting with this release, ignition-validate binaries are signed with the
Expand Down

0 comments on commit b5512fb

Please sign in to comment.