mirror of
				https://github.com/NVIDIA/nvidia-container-toolkit
				synced 2025-06-26 18:18:24 +00:00 
			
		
		
		
	Return low-level runtime if subcommand is not create
This also removes a test that invokes nvidia-container-runtime run --bundle expecting an error. This test is no longer valid since this command line is forwared to runc where the error should be detected. Signed-off-by: Evan Lezar <elezar@nvidia.com>
This commit is contained in:
		
							parent
							
								
									49f4bb3198
								
							
						
					
					
						commit
						9d2363e12e
					
				| @ -80,11 +80,6 @@ func TestBadInput(t *testing.T) { | ||||
| 		t.Fatal(err) | ||||
| 	} | ||||
| 
 | ||||
| 	cmdRun := exec.Command(nvidiaRuntime, "run", "--bundle") | ||||
| 	t.Logf("executing: %s\n", strings.Join(cmdRun.Args, " ")) | ||||
| 	output, err := cmdRun.CombinedOutput() | ||||
| 	require.Errorf(t, err, "runtime should return an error", "output=%v", string(output)) | ||||
| 
 | ||||
| 	cmdCreate := exec.Command(nvidiaRuntime, "create", "--bundle") | ||||
| 	t.Logf("executing: %s\n", strings.Join(cmdCreate.Args, " ")) | ||||
| 	err = cmdCreate.Run() | ||||
|  | ||||
| @ -33,10 +33,6 @@ const ( | ||||
| 
 | ||||
| // newNVIDIAContainerRuntime is a factory method that constructs a runtime based on the selected configuration and specified logger
 | ||||
| func newNVIDIAContainerRuntime(logger *logrus.Logger, cfg *config.Config, argv []string) (oci.Runtime, error) { | ||||
| 	ociSpec, err := oci.NewSpec(logger, argv) | ||||
| 	if err != nil { | ||||
| 		return nil, fmt.Errorf("error constructing OCI specification: %v", err) | ||||
| 	} | ||||
| 
 | ||||
| 	lowLevelRuntimeCandidates := []string{dockerRuncExecutableName, runcExecutableName} | ||||
| 	lowLevelRuntime, err := oci.NewLowLevelRuntime(logger, lowLevelRuntimeCandidates) | ||||
| @ -44,7 +40,17 @@ func newNVIDIAContainerRuntime(logger *logrus.Logger, cfg *config.Config, argv [ | ||||
| 		return nil, fmt.Errorf("error constructing low-level runtime: %v", err) | ||||
| 	} | ||||
| 
 | ||||
| 	specModifier, err := newSpecModifier(logger, cfg, ociSpec) | ||||
| 	if !oci.HasCreateSubcommand(argv) { | ||||
| 		logger.Debugf("Skipping modifier for non-create subcommand") | ||||
| 		return lowLevelRuntime, nil | ||||
| 	} | ||||
| 
 | ||||
| 	ociSpec, err := oci.NewSpec(logger, argv) | ||||
| 	if err != nil { | ||||
| 		return nil, fmt.Errorf("error constructing OCI specification: %v", err) | ||||
| 	} | ||||
| 
 | ||||
| 	specModifier, err := newSpecModifier(logger, cfg, ociSpec, argv) | ||||
| 	if err != nil { | ||||
| 		return nil, fmt.Errorf("failed to construct OCI spec modifier: %v", err) | ||||
| 	} | ||||
| @ -61,7 +67,7 @@ func newNVIDIAContainerRuntime(logger *logrus.Logger, cfg *config.Config, argv [ | ||||
| } | ||||
| 
 | ||||
| // newSpecModifier is a factory method that creates constructs an OCI spec modifer based on the provided config.
 | ||||
| func newSpecModifier(logger *logrus.Logger, cfg *config.Config, ociSpec oci.Spec) (oci.SpecModifier, error) { | ||||
| func newSpecModifier(logger *logrus.Logger, cfg *config.Config, ociSpec oci.Spec, argv []string) (oci.SpecModifier, error) { | ||||
| 	if !cfg.NVIDIAContainerRuntimeConfig.Experimental { | ||||
| 		return modifier.NewStableRuntimeModifier(logger), nil | ||||
| 	} | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user