mirror of
https://github.com/NVIDIA/nvidia-container-toolkit
synced 2025-06-26 18:18:24 +00:00
Specify library search paths for CSV CDI spec generation
Signed-off-by: Evan Lezar <elezar@nvidia.com>
This commit is contained in:
@@ -28,7 +28,7 @@ import (
|
||||
// newDiscovererFromCSVFiles creates a discoverer for the specified CSV files. A logger is also supplied.
|
||||
// The constructed discoverer is comprised of a list, with each element in the list being associated with a
|
||||
// single CSV files.
|
||||
func newDiscovererFromCSVFiles(logger logger.Interface, files []string, driverRoot string, nvidiaCTKPath string) (discover.Discover, error) {
|
||||
func newDiscovererFromCSVFiles(logger logger.Interface, files []string, driverRoot string, nvidiaCTKPath string, librarySearchPaths []string) (discover.Discover, error) {
|
||||
if len(files) == 0 {
|
||||
logger.Warningf("No CSV files specified")
|
||||
return discover.None{}, nil
|
||||
@@ -51,7 +51,12 @@ func newDiscovererFromCSVFiles(logger logger.Interface, files []string, driverRo
|
||||
)
|
||||
|
||||
// Libraries and symlinks use the same locator.
|
||||
symlinkLocator := lookup.NewSymlinkLocator(lookup.WithLogger(logger), lookup.WithRoot(driverRoot))
|
||||
searchPaths := append(librarySearchPaths, "/")
|
||||
symlinkLocator := lookup.NewSymlinkLocator(
|
||||
lookup.WithLogger(logger),
|
||||
lookup.WithRoot(driverRoot),
|
||||
lookup.WithSearchPaths(searchPaths...),
|
||||
)
|
||||
libraries := discover.NewMounts(
|
||||
logger,
|
||||
symlinkLocator,
|
||||
|
||||
@@ -25,10 +25,11 @@ import (
|
||||
)
|
||||
|
||||
type tegraOptions struct {
|
||||
logger logger.Interface
|
||||
csvFiles []string
|
||||
driverRoot string
|
||||
nvidiaCTKPath string
|
||||
logger logger.Interface
|
||||
csvFiles []string
|
||||
driverRoot string
|
||||
nvidiaCTKPath string
|
||||
librarySearchPaths []string
|
||||
}
|
||||
|
||||
// Option defines a functional option for configuring a Tegra discoverer.
|
||||
@@ -41,7 +42,7 @@ func New(opts ...Option) (discover.Discover, error) {
|
||||
opt(o)
|
||||
}
|
||||
|
||||
csvDiscoverer, err := newDiscovererFromCSVFiles(o.logger, o.csvFiles, o.driverRoot, o.nvidiaCTKPath)
|
||||
csvDiscoverer, err := newDiscovererFromCSVFiles(o.logger, o.csvFiles, o.driverRoot, o.nvidiaCTKPath, o.librarySearchPaths)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("failed to create CSV discoverer: %v", err)
|
||||
}
|
||||
@@ -98,3 +99,10 @@ func WithNVIDIACTKPath(nvidiaCTKPath string) Option {
|
||||
o.nvidiaCTKPath = nvidiaCTKPath
|
||||
}
|
||||
}
|
||||
|
||||
// WithLibrarySearchPaths sets the library search paths for the discoverer.
|
||||
func WithLibrarySearchPaths(librarySearchPaths ...string) Option {
|
||||
return func(o *tegraOptions) {
|
||||
o.librarySearchPaths = librarySearchPaths
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user