mirror of
https://github.com/NVIDIA/nvidia-container-toolkit
synced 2025-06-26 18:18:24 +00:00
Minor rework of disabled hooks
Some checks failed
Some checks failed
Signed-off-by: Evan Lezar <elezar@nvidia.com>
This commit is contained in:
@@ -37,12 +37,25 @@ type Interface interface {
|
||||
GetDeviceSpecsByID(...string) ([]specs.Device, error)
|
||||
}
|
||||
|
||||
// HookName is an alias for the discover.HookName type.
|
||||
// A HookName represents one of the predefined NVIDIA CDI hooks.
|
||||
type HookName = discover.HookName
|
||||
|
||||
// Aliases for the discover.HookName constants.
|
||||
const (
|
||||
HookEnableCudaCompat = discover.HookEnableCudaCompat
|
||||
HookCreateSymlinks = discover.HookCreateSymlinks
|
||||
HookUpdateLDCache = discover.HookUpdateLDCache
|
||||
// AllHooks is a special hook name that allows all hooks to be matched.
|
||||
AllHooks = discover.AllHooks
|
||||
|
||||
// A CreateSymlinksHook is used to create symlinks in the container.
|
||||
CreateSymlinksHook = discover.CreateSymlinksHook
|
||||
// An EnableCudaCompatHook is used to enabled CUDA Forward Compatibility.
|
||||
// Added in v1.17.5
|
||||
EnableCudaCompatHook = discover.EnableCudaCompatHook
|
||||
// An UpdateLDCacheHook is used to update the ldcache in the container.
|
||||
UpdateLDCacheHook = discover.UpdateLDCacheHook
|
||||
|
||||
// Deprecated: Use CreateSymlinksHook instead.
|
||||
HookCreateSymlinks = CreateSymlinksHook
|
||||
// Deprecated: Use EnableCudaCompatHook instead.
|
||||
HookEnableCudaCompat = EnableCudaCompatHook
|
||||
// Deprecated: Use UpdateLDCacheHook instead.
|
||||
HookUpdateLDCache = UpdateLDCacheHook
|
||||
)
|
||||
|
||||
@@ -135,7 +135,7 @@ func (m nvidiaSMISimlinkHook) Hooks() ([]discover.Hook, error) {
|
||||
}
|
||||
link := "/usr/bin/nvidia-smi"
|
||||
links := []string{fmt.Sprintf("%s::%s", target, link)}
|
||||
symlinkHook := m.hookCreator.Create(HookCreateSymlinks, links...)
|
||||
symlinkHook := m.hookCreator.Create(CreateSymlinksHook, links...)
|
||||
|
||||
return symlinkHook.Hooks()
|
||||
}
|
||||
|
||||
@@ -29,7 +29,7 @@ import (
|
||||
|
||||
func TestNvidiaSMISymlinkHook(t *testing.T) {
|
||||
logger, _ := testlog.NewNullLogger()
|
||||
hookCreator := discover.NewHookCreator("nvidia-cdi-hook")
|
||||
hookCreator := discover.NewHookCreator()
|
||||
|
||||
errMounts := errors.New("mounts error")
|
||||
|
||||
@@ -93,7 +93,7 @@ func TestNvidiaSMISymlinkHook(t *testing.T) {
|
||||
expectedHooks: []discover.Hook{
|
||||
{
|
||||
Lifecycle: "createContainer",
|
||||
Path: "nvidia-cdi-hook",
|
||||
Path: "/usr/bin/nvidia-cdi-hook",
|
||||
Args: []string{"nvidia-cdi-hook", "create-symlinks",
|
||||
"--link", "nvidia-smi::/usr/bin/nvidia-smi"},
|
||||
},
|
||||
@@ -113,7 +113,7 @@ func TestNvidiaSMISymlinkHook(t *testing.T) {
|
||||
expectedHooks: []discover.Hook{
|
||||
{
|
||||
Lifecycle: "createContainer",
|
||||
Path: "nvidia-cdi-hook",
|
||||
Path: "/usr/bin/nvidia-cdi-hook",
|
||||
Args: []string{"nvidia-cdi-hook", "create-symlinks",
|
||||
"--link", "/some/path/nvidia-smi::/usr/bin/nvidia-smi"},
|
||||
},
|
||||
@@ -133,7 +133,7 @@ func TestNvidiaSMISymlinkHook(t *testing.T) {
|
||||
expectedHooks: []discover.Hook{
|
||||
{
|
||||
Lifecycle: "createContainer",
|
||||
Path: "nvidia-cdi-hook",
|
||||
Path: "/usr/bin/nvidia-cdi-hook",
|
||||
Args: []string{"nvidia-cdi-hook", "create-symlinks",
|
||||
"--link", "/some/path/nvidia-smi::/usr/bin/nvidia-smi"},
|
||||
},
|
||||
|
||||
@@ -172,7 +172,10 @@ func New(opts ...Option) (Interface, error) {
|
||||
}
|
||||
|
||||
// create hookCreator
|
||||
l.hookCreator = discover.NewHookCreator(l.nvidiaCDIHookPath, discover.WithDisabledHooks(l.disabledHooks...))
|
||||
l.hookCreator = discover.NewHookCreator(
|
||||
discover.WithNVIDIACDIHookPath(l.nvidiaCDIHookPath),
|
||||
discover.WithDisabledHooks(l.disabledHooks...),
|
||||
)
|
||||
|
||||
w := wrapper{
|
||||
Interface: lib,
|
||||
|
||||
@@ -161,10 +161,6 @@ func WithLibrarySearchPaths(paths []string) Option {
|
||||
// This option can be specified multiple times for each hook.
|
||||
func WithDisabledHook[T string | HookName](hook T) Option {
|
||||
return func(o *nvcdilib) {
|
||||
if hook == "all" {
|
||||
o.disabledHooks = discover.AllHooks
|
||||
} else {
|
||||
o.disabledHooks = append(o.disabledHooks, discover.HookName(hook))
|
||||
}
|
||||
o.disabledHooks = append(o.disabledHooks, discover.HookName(hook))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -61,18 +61,9 @@ func (d *deviceFolderPermissions) Hooks() ([]discover.Hook, error) {
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("failed to get device subfolders: %v", err)
|
||||
}
|
||||
if len(folders) == 0 {
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
args := []string{"--mode", "755"}
|
||||
for _, folder := range folders {
|
||||
args = append(args, "--path", folder)
|
||||
}
|
||||
|
||||
hook := d.hookCreator.Create("chmod", args...)
|
||||
|
||||
return []discover.Hook{*hook}, nil
|
||||
//nolint:staticcheck // The ChmodHook is deprecated and will be removed in a future release.
|
||||
return d.hookCreator.Create(discover.ChmodHook, folders...).Hooks()
|
||||
}
|
||||
|
||||
func (d *deviceFolderPermissions) getDeviceSubfolders() ([]string, error) {
|
||||
|
||||
Reference in New Issue
Block a user