Skip to content

Commit f7004ac

Browse files
committed
[no-relnote] Define struct for csv-specific options
Signed-off-by: Evan Lezar <elezar@nvidia.com>
1 parent 5f72b2e commit f7004ac

File tree

4 files changed

+23
-14
lines changed

4 files changed

+23
-14
lines changed

pkg/nvcdi/lib-csv.go

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -33,14 +33,28 @@ import (
3333
"github.com/NVIDIA/nvidia-container-toolkit/internal/discover"
3434
"github.com/NVIDIA/nvidia-container-toolkit/internal/edits"
3535
"github.com/NVIDIA/nvidia-container-toolkit/internal/platform-support/tegra"
36+
"github.com/NVIDIA/nvidia-container-toolkit/internal/platform-support/tegra/csv"
3637
)
3738

38-
type csvlib nvcdilib
39+
type csvOptions struct {
40+
Files []string
41+
IgnorePatterns []string
42+
}
3943

44+
type csvlib nvcdilib
4045
type mixedcsvlib nvcdilib
4146

4247
var _ deviceSpecGeneratorFactory = (*csvlib)(nil)
4348

49+
// asCSVLib sets any CSV-specific defaults and casts the nvcdilib instance as a
50+
// *csvlib.
51+
func (l *nvcdilib) asCSVLib() *csvlib {
52+
if len(l.csv.Files) == 0 {
53+
l.csv.Files = csv.DefaultFileList()
54+
}
55+
return (*csvlib)(l)
56+
}
57+
4458
// DeviceSpecGenerators creates a set of generators for the specified set of
4559
// devices.
4660
// If NVML is not available or the disable-multiple-csv-devices feature flag is
@@ -171,7 +185,7 @@ func (l *csvDeviceGenerator) deviceNodeDiscoverer() (discover.Discover, error) {
171185

172186
func (l *csvDeviceGenerator) deviceNodeMountSpecs() tegra.MountSpecPathsByTyper {
173187
mountSpecs := tegra.Transform(
174-
tegra.MountSpecsFromCSVFiles(l.logger, l.csvFiles...),
188+
tegra.MountSpecsFromCSVFiles(l.logger, l.csv.Files...),
175189
// We remove non-device nodes.
176190
tegra.OnlyDeviceNodes(),
177191
)
@@ -388,10 +402,10 @@ func isIntegratedGPU(d nvml.Device) (bool, error) {
388402
func (l *csvlib) driverDiscoverer() (discover.Discover, error) {
389403
mountSpecs := tegra.Transform(
390404
tegra.Transform(
391-
tegra.MountSpecsFromCSVFiles(l.logger, l.csvFiles...),
405+
tegra.MountSpecsFromCSVFiles(l.logger, l.csv.Files...),
392406
tegra.WithoutDeviceNodes(),
393407
),
394-
tegra.IgnoreSymlinkMountSpecsByPattern(l.csvIgnorePatterns...),
408+
tegra.IgnoreSymlinkMountSpecsByPattern(l.csv.IgnorePatterns...),
395409
)
396410
driverDiscoverer, err := tegra.New(
397411
tegra.WithLogger(l.logger),

pkg/nvcdi/lib-csv_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -188,7 +188,7 @@ func TestDeviceSpecGenerators(t *testing.T) {
188188

189189
tc.lib.driverRoot = driverRoot
190190
tc.lib.devRoot = driverRoot
191-
tc.lib.csvFiles = []string{
191+
tc.lib.csv.Files = []string{
192192
filepath.Join(driverRoot, "/etc/nvidia-container-runtime/host-files-for-container.d/devices.csv"),
193193
filepath.Join(driverRoot, "/etc/nvidia-container-runtime/host-files-for-container.d/drivers.csv"),
194194
}

pkg/nvcdi/lib.go

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@ import (
2727
"github.com/NVIDIA/nvidia-container-toolkit/internal/logger"
2828
"github.com/NVIDIA/nvidia-container-toolkit/internal/lookup/root"
2929
"github.com/NVIDIA/nvidia-container-toolkit/internal/nvsandboxutils"
30-
"github.com/NVIDIA/nvidia-container-toolkit/internal/platform-support/tegra/csv"
3130
"github.com/NVIDIA/nvidia-container-toolkit/pkg/nvcdi/transform"
3231
)
3332

@@ -45,8 +44,7 @@ type nvcdilib struct {
4544
configSearchPaths []string
4645
librarySearchPaths []string
4746

48-
csvFiles []string
49-
csvIgnorePatterns []string
47+
csv csvOptions
5048

5149
vendor string
5250
class string
@@ -115,10 +113,7 @@ func New(opts ...Option) (Interface, error) {
115113
var factory deviceSpecGeneratorFactory
116114
switch l.resolveMode() {
117115
case ModeCSV:
118-
if len(l.csvFiles) == 0 {
119-
l.csvFiles = csv.DefaultFileList()
120-
}
121-
factory = (*csvlib)(l)
116+
factory = l.asCSVLib()
122117
case ModeManagement:
123118
if l.vendor == "" {
124119
l.vendor = "management.nvidia.com"

pkg/nvcdi/options.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -131,14 +131,14 @@ func WithMergedDeviceOptions(opts ...transform.MergedDeviceOption) Option {
131131
// WithCSVFiles sets the CSV files for the library
132132
func WithCSVFiles(csvFiles []string) Option {
133133
return func(o *nvcdilib) {
134-
o.csvFiles = csvFiles
134+
o.csv.Files = csvFiles
135135
}
136136
}
137137

138138
// WithCSVIgnorePatterns sets the ignore patterns for entries in the CSV files.
139139
func WithCSVIgnorePatterns(csvIgnorePatterns []string) Option {
140140
return func(o *nvcdilib) {
141-
o.csvIgnorePatterns = csvIgnorePatterns
141+
o.csv.IgnorePatterns = csvIgnorePatterns
142142
}
143143
}
144144

0 commit comments

Comments
 (0)