mirror of
https://github.com/NVIDIA/nvidia-container-toolkit
synced 2025-06-26 18:18:24 +00:00
Set minimum version on save
Signed-off-by: Evan Lezar <elezar@nvidia.com>
This commit is contained in:
@@ -39,6 +39,8 @@ type builder struct {
|
||||
mergedDeviceOptions []transform.MergedDeviceOption
|
||||
noSimplify bool
|
||||
permissions os.FileMode
|
||||
|
||||
transformOnSave transform.Transformer
|
||||
}
|
||||
|
||||
// newBuilder creates a new spec builder with the supplied options
|
||||
@@ -47,15 +49,23 @@ func newBuilder(opts ...Option) *builder {
|
||||
for _, opt := range opts {
|
||||
opt(s)
|
||||
}
|
||||
|
||||
if s.raw != nil {
|
||||
s.noSimplify = true
|
||||
vendor, class := parser.ParseQualifier(s.raw.Kind)
|
||||
s.vendor = vendor
|
||||
s.class = class
|
||||
if s.vendor == "" {
|
||||
s.vendor = vendor
|
||||
}
|
||||
if s.class == "" {
|
||||
s.class = class
|
||||
}
|
||||
if s.version == "" || s.version == DetectMinimumVersion {
|
||||
s.version = s.raw.Version
|
||||
}
|
||||
}
|
||||
|
||||
if s.version == "" {
|
||||
s.version = DetectMinimumVersion
|
||||
if s.version == "" || s.version == DetectMinimumVersion {
|
||||
s.transformOnSave = &setMinimumRequiredVersion{}
|
||||
s.version = cdi.CurrentVersion
|
||||
}
|
||||
if s.vendor == "" {
|
||||
s.vendor = "nvidia.com"
|
||||
@@ -83,13 +93,8 @@ func (o *builder) Build() (*spec, error) {
|
||||
ContainerEdits: o.edits,
|
||||
}
|
||||
}
|
||||
|
||||
if raw.Version == DetectMinimumVersion {
|
||||
minVersion, err := cdi.MinimumRequiredVersion(raw)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("failed to get minimum required CDI spec version: %v", err)
|
||||
}
|
||||
raw.Version = minVersion
|
||||
if raw.Version == "" {
|
||||
raw.Version = o.version
|
||||
}
|
||||
|
||||
if !o.noSimplify {
|
||||
@@ -110,11 +115,11 @@ func (o *builder) Build() (*spec, error) {
|
||||
}
|
||||
|
||||
s := spec{
|
||||
Spec: raw,
|
||||
format: o.format,
|
||||
permissions: o.permissions,
|
||||
Spec: raw,
|
||||
format: o.format,
|
||||
permissions: o.permissions,
|
||||
transformOnSave: o.transformOnSave,
|
||||
}
|
||||
|
||||
return &s, nil
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user