Move IPC discoverer into DriverDiscoverer

This simplifies the construction of the required common edits
when constructing a CDI specification.

Signed-off-by: Evan Lezar <elezar@nvidia.com>
This commit is contained in:
Evan Lezar 2023-02-07 12:16:58 +01:00
parent 076eed7eb4
commit 97008f2db6
2 changed files with 7 additions and 16 deletions

View File

@ -41,12 +41,18 @@ func NewDriverDiscoverer(logger *logrus.Logger, driverRoot string, nvidiaCTKPath
return nil, fmt.Errorf("failed to create discoverer for driver libraries: %v", err) return nil, fmt.Errorf("failed to create discoverer for driver libraries: %v", err)
} }
ipcs, err := discover.NewIPCDiscoverer(logger, driverRoot)
if err != nil {
return nil, fmt.Errorf("failed to create discoverer for IPC sockets: %v", err)
}
firmwares := NewDriverFirmwareDiscoverer(logger, driverRoot, version) firmwares := NewDriverFirmwareDiscoverer(logger, driverRoot, version)
binaries := NewDriverBinariesDiscoverer(logger, driverRoot) binaries := NewDriverBinariesDiscoverer(logger, driverRoot)
d := discover.Merge( d := discover.Merge(
libraries, libraries,
ipcs,
firmwares, firmwares,
binaries, binaries,
) )

View File

@ -232,19 +232,6 @@ func (m command) generateSpec(driverRoot string, nvidiaCTKPath string, namer dev
deviceSpecs = append(deviceSpecs, allDevice) deviceSpecs = append(deviceSpecs, allDevice)
allEdits := edits.NewContainerEdits()
ipcs, err := discover.NewIPCDiscoverer(m.logger, driverRoot)
if err != nil {
return nil, fmt.Errorf("failed to create discoverer for IPC sockets: %v", err)
}
ipcEdits, err := edits.FromDiscoverer(ipcs)
if err != nil {
return nil, fmt.Errorf("failed to create container edits for IPC sockets: %v", err)
}
allEdits.Append(ipcEdits)
common, err := NewCommonDiscoverer(m.logger, driverRoot, nvidiaCTKPath, nvmllib) common, err := NewCommonDiscoverer(m.logger, driverRoot, nvidiaCTKPath, nvmllib)
if err != nil { if err != nil {
return nil, fmt.Errorf("failed to create discoverer for common entities: %v", err) return nil, fmt.Errorf("failed to create discoverer for common entities: %v", err)
@ -260,14 +247,12 @@ func (m command) generateSpec(driverRoot string, nvidiaCTKPath string, namer dev
return nil, fmt.Errorf("failed to create container edits for common entities: %v", err) return nil, fmt.Errorf("failed to create container edits for common entities: %v", err)
} }
allEdits.Append(commonEdits)
// We construct the spec and determine the minimum required version based on the specification. // We construct the spec and determine the minimum required version based on the specification.
spec := specs.Spec{ spec := specs.Spec{
Version: "NOT_SET", Version: "NOT_SET",
Kind: "nvidia.com/gpu", Kind: "nvidia.com/gpu",
Devices: deviceSpecs, Devices: deviceSpecs,
ContainerEdits: *allEdits.ContainerEdits, ContainerEdits: *commonEdits.ContainerEdits,
} }
minVersion, err := cdi.MinimumRequiredVersion(&spec) minVersion, err := cdi.MinimumRequiredVersion(&spec)