Skip to content

Commit 1ff42ed

Browse files
committed
move minimal version check to spces-go/ValidateVersion
1 parent 84217ed commit 1ff42ed

File tree

3 files changed

+12
-14
lines changed

3 files changed

+12
-14
lines changed

pkg/cdi/spec.go

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -209,18 +209,9 @@ func MinimumRequiredVersion(spec *cdi.Spec) (string, error) {
209209

210210
// Validate the Spec.
211211
func (s *Spec) validate() (map[string]*Device, error) {
212-
if err := cdi.ValidateVersion(s.Version); err != nil {
212+
if err := cdi.ValidateVersion(s.Spec); err != nil {
213213
return nil, err
214214
}
215-
216-
minVersion, err := cdi.MinimumRequiredVersion(s.Spec)
217-
if err != nil {
218-
return nil, fmt.Errorf("could not determine minimum required version: %v", err)
219-
}
220-
if cdi.NewVersion(minVersion).IsGreaterThan(cdi.NewVersion(s.Version)) {
221-
return nil, fmt.Errorf("the spec version must be at least v%v", minVersion)
222-
}
223-
224215
if err := ValidateVendorName(s.vendor); err != nil {
225216
return nil, err
226217
}

pkg/cdi/spec_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -525,7 +525,7 @@ func specType(content []byte) string {
525525
}
526526

527527
func TestCurrentVersionIsValid(t *testing.T) {
528-
require.NoError(t, cdi.ValidateVersion(cdi.CurrentVersion))
528+
require.NoError(t, cdi.ValidateVersion(&cdi.Spec{Version: cdi.CurrentVersion}))
529529
}
530530

531531
func TestRequiredVersion(t *testing.T) {

specs-go/version.go

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -59,9 +59,16 @@ var validSpecVersions = requiredVersionMap{
5959
}
6060

6161
// ValidateVersion checks whether the specified spec version is supported.
62-
func ValidateVersion(version string) error {
63-
if !validSpecVersions.isValidVersion(version) {
64-
return fmt.Errorf("invalid version %q", version)
62+
func ValidateVersion(spec *Spec) error {
63+
if !validSpecVersions.isValidVersion(spec.Version) {
64+
return fmt.Errorf("invalid version %q", spec.Version)
65+
}
66+
minVersion, err := MinimumRequiredVersion(spec)
67+
if err != nil {
68+
return fmt.Errorf("could not determine minimum required version: %v", err)
69+
}
70+
if newVersion(minVersion).IsGreaterThan(newVersion(spec.Version)) {
71+
return fmt.Errorf("the spec version must be at least v%v", minVersion)
6572
}
6673
return nil
6774
}

0 commit comments

Comments
 (0)