Skip to content

Commit c1fda15

Browse files
committed
fixup! [no-relnote] Switch to package installs for e2e tests
Signed-off-by: Evan Lezar <[email protected]>
1 parent f46e59d commit c1fda15

File tree

1 file changed

+21
-5
lines changed

1 file changed

+21
-5
lines changed

tests/e2e/installer.go

Lines changed: 21 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ package e2e
1919
import (
2020
"bytes"
2121
"fmt"
22+
"strings"
2223
"text/template"
2324
)
2425

@@ -35,7 +36,7 @@ set -xe
3536
3637
cd {{.CacheDir}}/packages/ubuntu18.04/amd64
3738
38-
dpkg -i libnvidia-container1_*_amd64.deb \
39+
{{if .WithSudo }}sudo {{end}}dpkg -i libnvidia-container1_*_amd64.deb \
3940
libnvidia-container-tools_*_amd64.deb \
4041
nvidia-container-toolkit-base_*_amd64.deb \
4142
nvidia-container-toolkit_*_amd64.deb
@@ -81,7 +82,7 @@ func NewToolkitInstaller(opts ...installerOption) (*ToolkitInstaller, error) {
8182
// PrepareCache ensures that the installer (package) cache is created on the runner.
8283
// The can be used to ensure that docker is not REQUIRED in an inner container.
8384
func (i *ToolkitInstaller) PrepareCache(runner Runner) (string, string, error) {
84-
renderedScript, err := i.renderScript(prepareInstallerCacheTemplate)
85+
renderedScript, err := i.renderScript(prepareInstallerCacheTemplate, false)
8586
if err != nil {
8687
return "", "", err
8788
}
@@ -90,24 +91,39 @@ func (i *ToolkitInstaller) PrepareCache(runner Runner) (string, string, error) {
9091
}
9192

9293
func (i *ToolkitInstaller) Install(runner Runner) (string, string, error) {
93-
renderedScript, err := i.renderScript(installFromImageTemplate)
94+
uid, _, err := runner.Run("id -u")
95+
if err != nil {
96+
return "", "", err
97+
}
98+
withSudo := false
99+
if strings.TrimSpace(uid) != "0" {
100+
withSudo = true
101+
}
102+
renderedScript, err := i.renderScript(installFromImageTemplate, withSudo)
94103
if err != nil {
95104
return "", "", err
96105
}
97106

98107
return runner.Run(renderedScript)
99108
}
100109

101-
func (i *ToolkitInstaller) renderScript(scriptTemplate string) (string, error) {
110+
func (i *ToolkitInstaller) renderScript(scriptTemplate string, withSudo bool) (string, error) {
102111
// Parse the combined template
103112
tmpl, err := template.New("template").Parse(scriptTemplate)
104113
if err != nil {
105114
return "", fmt.Errorf("error parsing template: %w", err)
106115
}
107116

117+
templateInfo := struct {
118+
*ToolkitInstaller
119+
WithSudo bool
120+
}{
121+
ToolkitInstaller: i,
122+
WithSudo: withSudo,
123+
}
108124
// Execute the template
109125
var renderedScript bytes.Buffer
110-
err = tmpl.Execute(&renderedScript, i)
126+
err = tmpl.Execute(&renderedScript, templateInfo)
111127
if err != nil {
112128
return "", fmt.Errorf("error executing template: %w", err)
113129
}

0 commit comments

Comments
 (0)