From 962d38e9ddfa4a285fca8ae36f2116acc637dd40 Mon Sep 17 00:00:00 2001 From: Evan Lezar Date: Fri, 27 Jan 2023 11:38:36 +0100 Subject: [PATCH 1/2] Add nvidia-ctk system subcommand Signed-off-by: Evan Lezar --- cmd/nvidia-ctk/main.go | 2 ++ cmd/nvidia-ctk/system/system.go | 49 +++++++++++++++++++++++++++++++++ 2 files changed, 51 insertions(+) create mode 100644 cmd/nvidia-ctk/system/system.go diff --git a/cmd/nvidia-ctk/main.go b/cmd/nvidia-ctk/main.go index a8b04b64..df3617e2 100644 --- a/cmd/nvidia-ctk/main.go +++ b/cmd/nvidia-ctk/main.go @@ -23,6 +23,7 @@ import ( "github.com/NVIDIA/nvidia-container-toolkit/cmd/nvidia-ctk/hook" infoCLI "github.com/NVIDIA/nvidia-container-toolkit/cmd/nvidia-ctk/info" "github.com/NVIDIA/nvidia-container-toolkit/cmd/nvidia-ctk/runtime" + "github.com/NVIDIA/nvidia-container-toolkit/cmd/nvidia-ctk/system" "github.com/NVIDIA/nvidia-container-toolkit/internal/info" log "github.com/sirupsen/logrus" @@ -77,6 +78,7 @@ func main() { runtime.NewCommand(logger), infoCLI.NewCommand(logger), cdi.NewCommand(logger), + system.NewCommand(logger), } // Run the CLI diff --git a/cmd/nvidia-ctk/system/system.go b/cmd/nvidia-ctk/system/system.go new file mode 100644 index 00000000..721a2940 --- /dev/null +++ b/cmd/nvidia-ctk/system/system.go @@ -0,0 +1,49 @@ +/** +# Copyright (c) NVIDIA CORPORATION. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +**/ + +package system + +import ( + "github.com/NVIDIA/nvidia-container-toolkit/cmd/nvidia-ctk/runtime/configure" + "github.com/sirupsen/logrus" + "github.com/urfave/cli/v2" +) + +type command struct { + logger *logrus.Logger +} + +// NewCommand constructs a runtime command with the specified logger +func NewCommand(logger *logrus.Logger) *cli.Command { + c := command{ + logger: logger, + } + return c.build() +} + +func (m command) build() *cli.Command { + // Create the 'system' command + system := cli.Command{ + Name: "system", + Usage: "A collection of system-related utilities for the NVIDIA Container Toolkit", + } + + system.Subcommands = []*cli.Command{ + configure.NewCommand(m.logger), + } + + return &system +} From 8188400c97970f507c7978a984d3f1d9c009b207 Mon Sep 17 00:00:00 2001 From: Evan Lezar Date: Fri, 27 Jan 2023 11:41:30 +0100 Subject: [PATCH 2/2] Move create-dev-char-symlinks subcommand from hook to system Signed-off-by: Evan Lezar --- cmd/nvidia-ctk/hook/hook.go | 3 +-- .../{hook => system}/create-dev-char-symlinks/all.go | 0 .../create-dev-char-symlinks/create-dev-char-symlinks.go | 4 ++-- .../{hook => system}/create-dev-char-symlinks/existing.go | 0 cmd/nvidia-ctk/system/system.go | 4 ++-- 5 files changed, 5 insertions(+), 6 deletions(-) rename cmd/nvidia-ctk/{hook => system}/create-dev-char-symlinks/all.go (100%) rename cmd/nvidia-ctk/{hook => system}/create-dev-char-symlinks/create-dev-char-symlinks.go (98%) rename cmd/nvidia-ctk/{hook => system}/create-dev-char-symlinks/existing.go (100%) diff --git a/cmd/nvidia-ctk/hook/hook.go b/cmd/nvidia-ctk/hook/hook.go index a81f6d65..8fc403ae 100644 --- a/cmd/nvidia-ctk/hook/hook.go +++ b/cmd/nvidia-ctk/hook/hook.go @@ -18,7 +18,7 @@ package hook import ( chmod "github.com/NVIDIA/nvidia-container-toolkit/cmd/nvidia-ctk/hook/chmod" - devchar "github.com/NVIDIA/nvidia-container-toolkit/cmd/nvidia-ctk/hook/create-dev-char-symlinks" + symlinks "github.com/NVIDIA/nvidia-container-toolkit/cmd/nvidia-ctk/hook/create-symlinks" ldcache "github.com/NVIDIA/nvidia-container-toolkit/cmd/nvidia-ctk/hook/update-ldcache" "github.com/sirupsen/logrus" @@ -49,7 +49,6 @@ func (m hookCommand) build() *cli.Command { ldcache.NewCommand(m.logger), symlinks.NewCommand(m.logger), chmod.NewCommand(m.logger), - devchar.NewCommand(m.logger), } return &hook diff --git a/cmd/nvidia-ctk/hook/create-dev-char-symlinks/all.go b/cmd/nvidia-ctk/system/create-dev-char-symlinks/all.go similarity index 100% rename from cmd/nvidia-ctk/hook/create-dev-char-symlinks/all.go rename to cmd/nvidia-ctk/system/create-dev-char-symlinks/all.go diff --git a/cmd/nvidia-ctk/hook/create-dev-char-symlinks/create-dev-char-symlinks.go b/cmd/nvidia-ctk/system/create-dev-char-symlinks/create-dev-char-symlinks.go similarity index 98% rename from cmd/nvidia-ctk/hook/create-dev-char-symlinks/create-dev-char-symlinks.go rename to cmd/nvidia-ctk/system/create-dev-char-symlinks/create-dev-char-symlinks.go index bec0314e..f84734b3 100644 --- a/cmd/nvidia-ctk/hook/create-dev-char-symlinks/create-dev-char-symlinks.go +++ b/cmd/nvidia-ctk/system/create-dev-char-symlinks/create-dev-char-symlinks.go @@ -45,7 +45,7 @@ type config struct { createAll bool } -// NewCommand constructs a hook sub-command with the specified logger +// NewCommand constructs a command sub-command with the specified logger func NewCommand(logger *logrus.Logger) *cli.Command { c := command{ logger: logger, @@ -60,7 +60,7 @@ func (m command) build() *cli.Command { // Create the 'create-dev-char-symlinks' command c := cli.Command{ Name: "create-dev-char-symlinks", - Usage: "A hook to create symlinks to possible /dev/nv* devices in /dev/char", + Usage: "A utility to create symlinks to possible /dev/nv* devices in /dev/char", Before: func(c *cli.Context) error { return m.validateFlags(c, &cfg) }, diff --git a/cmd/nvidia-ctk/hook/create-dev-char-symlinks/existing.go b/cmd/nvidia-ctk/system/create-dev-char-symlinks/existing.go similarity index 100% rename from cmd/nvidia-ctk/hook/create-dev-char-symlinks/existing.go rename to cmd/nvidia-ctk/system/create-dev-char-symlinks/existing.go diff --git a/cmd/nvidia-ctk/system/system.go b/cmd/nvidia-ctk/system/system.go index 721a2940..a9f2e2ea 100644 --- a/cmd/nvidia-ctk/system/system.go +++ b/cmd/nvidia-ctk/system/system.go @@ -17,7 +17,7 @@ package system import ( - "github.com/NVIDIA/nvidia-container-toolkit/cmd/nvidia-ctk/runtime/configure" + devchar "github.com/NVIDIA/nvidia-container-toolkit/cmd/nvidia-ctk/system/create-dev-char-symlinks" "github.com/sirupsen/logrus" "github.com/urfave/cli/v2" ) @@ -42,7 +42,7 @@ func (m command) build() *cli.Command { } system.Subcommands = []*cli.Command{ - configure.NewCommand(m.logger), + devchar.NewCommand(m.logger), } return &system