Adding no-reboot capability + clean-up

Labstation requires that reboots be done after provisioning is complete
due to synchronization issues; as such we add the capability to noop
dut reboot in those cases via command line arg. Also general clean-up.

BUG=None
TEST=unit

Change-Id: I8e4cea7841a35988889c201440bf07617b016f4d
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/dev-util/+/3027288
Reviewed-by: Jaques Clapauch <jaquesc@google.com>
Reviewed-by: C Shapiro <shapiroc@chromium.org>
Commit-Queue: Jaques Clapauch <jaquesc@google.com>
Tested-by: Jaques Clapauch <jaquesc@google.com>
Auto-Submit: Jaques Clapauch <jaquesc@google.com>
diff --git a/src/chromiumos/test/provision/cmd/provisionserver/bootstrap/services/ashservice/ashservice.go b/src/chromiumos/test/provision/cmd/provisionserver/bootstrap/services/ashservice/ashservice.go
index 3fcc3d0..622e4b9 100644
--- a/src/chromiumos/test/provision/cmd/provisionserver/bootstrap/services/ashservice/ashservice.go
+++ b/src/chromiumos/test/provision/cmd/provisionserver/bootstrap/services/ashservice/ashservice.go
@@ -22,7 +22,7 @@
 // File specific consts
 const (
 	autotestDir      = "/usr/local/autotest/deps/chrome_test/test_src/out/Release/"
-	stagingDirectory = "/tmp/_tls_chrome_deploy"
+	stagingDirectory = "/tmp/_provisioning_service_chrome_deploy"
 	targetDir        = "/opt/google/chrome"
 	tastDir          = "/usr/local/libexec/chrome-binary-tests/"
 )
@@ -76,7 +76,7 @@
 
 func NewAshService(dutName string, dutClient api.DutServiceClient, wiringConn *grpc.ClientConn, req *api.InstallAshRequest) AshService {
 	service := AshService{
-		connection: services.NewServiceAdapter(dutName, dutClient, wiringConn),
+		connection: services.NewServiceAdapter(dutName, dutClient, wiringConn, false /*noRebot*/),
 		imagePath:  req.AshImagePath,
 	}
 
diff --git a/src/chromiumos/test/provision/cmd/provisionserver/bootstrap/services/crosservice/crosservice.go b/src/chromiumos/test/provision/cmd/provisionserver/bootstrap/services/crosservice/crosservice.go
index 37009c5..449c359 100644
--- a/src/chromiumos/test/provision/cmd/provisionserver/bootstrap/services/crosservice/crosservice.go
+++ b/src/chromiumos/test/provision/cmd/provisionserver/bootstrap/services/crosservice/crosservice.go
@@ -28,9 +28,9 @@
 	dlcSpecs          []*api.InstallCrosRequest_DLCSpec
 }
 
-func NewCrOSService(dutName string, dutClient api.DutServiceClient, wiringConn *grpc.ClientConn, req *api.InstallCrosRequest) CrOSService {
+func NewCrOSService(dutName string, dutClient api.DutServiceClient, wiringConn *grpc.ClientConn, noReboot bool, req *api.InstallCrosRequest) CrOSService {
 	return CrOSService{
-		connection:        services.NewServiceAdapter(dutName, dutClient, wiringConn),
+		connection:        services.NewServiceAdapter(dutName, dutClient, wiringConn, noReboot),
 		imagePath:         req.CrosImagePath,
 		preserverStateful: req.PreserveStateful,
 		dlcSpecs:          req.DlcSpecs,
diff --git a/src/chromiumos/test/provision/cmd/provisionserver/bootstrap/services/lacrosservice/lacrosservice.go b/src/chromiumos/test/provision/cmd/provisionserver/bootstrap/services/lacrosservice/lacrosservice.go
index 06298dd..f85ee74 100644
--- a/src/chromiumos/test/provision/cmd/provisionserver/bootstrap/services/lacrosservice/lacrosservice.go
+++ b/src/chromiumos/test/provision/cmd/provisionserver/bootstrap/services/lacrosservice/lacrosservice.go
@@ -31,7 +31,7 @@
 
 func NewLaCrOSService(dutName string, dutClient api.DutServiceClient, wiringConn *grpc.ClientConn, req *api.InstallLacrosRequest) (LaCrOSService, error) {
 	service := LaCrOSService{
-		connection: services.NewServiceAdapter(dutName, dutClient, wiringConn),
+		connection: services.NewServiceAdapter(dutName, dutClient, wiringConn, false /*noReboot*/),
 		imagePath:  req.LacrosImagePath,
 	}
 
diff --git a/src/chromiumos/test/provision/cmd/provisionserver/bootstrap/services/serviceadapterinterface.go b/src/chromiumos/test/provision/cmd/provisionserver/bootstrap/services/serviceadapterinterface.go
index b4fdc37..ea3f12e 100644
--- a/src/chromiumos/test/provision/cmd/provisionserver/bootstrap/services/serviceadapterinterface.go
+++ b/src/chromiumos/test/provision/cmd/provisionserver/bootstrap/services/serviceadapterinterface.go
@@ -32,13 +32,15 @@
 	dutName    string
 	dutClient  api.DutServiceClient
 	wiringConn *grpc.ClientConn
+	noReboot   bool
 }
 
-func NewServiceAdapter(dutName string, dutClient api.DutServiceClient, wiringConn *grpc.ClientConn) ServiceAdapter {
+func NewServiceAdapter(dutName string, dutClient api.DutServiceClient, wiringConn *grpc.ClientConn, noReboot bool) ServiceAdapter {
 	return ServiceAdapter{
 		dutName:    dutName,
 		dutClient:  dutClient,
 		wiringConn: wiringConn,
+		noReboot:   noReboot,
 	}
 }
 
@@ -67,6 +69,10 @@
 
 // Restart restarts a DUT
 func (s ServiceAdapter) Restart(ctx context.Context) error {
+	if s.noReboot {
+		return nil
+	}
+
 	req := api.RestartRequest{
 		Args: []string{},
 	}
diff --git a/src/chromiumos/test/provision/cmd/provisionserver/main.go b/src/chromiumos/test/provision/cmd/provisionserver/main.go
index a4b4c8d..2eb94af 100644
--- a/src/chromiumos/test/provision/cmd/provisionserver/main.go
+++ b/src/chromiumos/test/provision/cmd/provisionserver/main.go
@@ -49,8 +49,9 @@
 	os.Exit(func() int {
 		version := flag.Bool("version", false, "print version and exit.")
 		dutServiceAddress := flag.String("dut-service-address", "", "grcp address for dut-service.")
-		dutName := flag.String("dut-name", "", "The name of the DUT to be interfaced with.")
+		dutName := flag.String("dut-name", "", "the name of the DUT to be interfaced with.")
 		wiringAddress := flag.String("wiring-address", "", "wiring address TLW.")
+		noReboot := flag.Bool("no-reboot", false, "don't reboot DUT after install (labstation-specific).")
 		flag.Parse()
 
 		if *version {
@@ -96,7 +97,7 @@
 		}
 		defer wiringConn.Close()
 
-		server, err := newProvisionServer(l, logger, *dutName, dutConn, wiringConn)
+		server, err := newProvisionServer(l, logger, *dutName, dutConn, wiringConn, *noReboot)
 		if err != nil {
 			logger.Fatalln("Failed to start provisionservice server: ", err)
 		}
diff --git a/src/chromiumos/test/provision/cmd/provisionserver/provisionserver.go b/src/chromiumos/test/provision/cmd/provisionserver/provisionserver.go
index fcf4bd7..ee92d60 100644
--- a/src/chromiumos/test/provision/cmd/provisionserver/provisionserver.go
+++ b/src/chromiumos/test/provision/cmd/provisionserver/provisionserver.go
@@ -34,10 +34,11 @@
 	dutName    string
 	dutClient  api.DutServiceClient
 	wiringConn *grpc.ClientConn
+	noReboot   bool
 }
 
 // newProvisionServer creates a new provision service server to listen to rpc requests.
-func newProvisionServer(l net.Listener, logger *log.Logger, dutName string, conn *grpc.ClientConn, wiringConn *grpc.ClientConn) (*grpc.Server, error) {
+func newProvisionServer(l net.Listener, logger *log.Logger, dutName string, conn *grpc.ClientConn, wiringConn *grpc.ClientConn, noReboot bool) (*grpc.Server, error) {
 	s := &ProvisionServer{
 		Manager:    lro.New(),
 		logger:     logger,
@@ -61,7 +62,7 @@
 func (s *ProvisionServer) InstallCros(ctx context.Context, req *api.InstallCrosRequest) (*longrunning.Operation, error) {
 	s.logger.Println("Received api.InstallCrosRequest: ", *req)
 	op := s.Manager.NewOperation()
-	cs := crosservice.NewCrOSService(s.dutName, s.dutClient, s.wiringConn, req)
+	cs := crosservice.NewCrOSService(s.dutName, s.dutClient, s.wiringConn, s.noReboot, req)
 	response := api.InstallCrosResponse{}
 	if s.provision(ctx, &cs, op) == nil {
 		response.Outcome = &api.InstallCrosResponse_Success{}
diff --git a/src/chromiumos/test/provision/cmd/provisionserver/provisionserver_test.go b/src/chromiumos/test/provision/cmd/provisionserver/provisionserver_test.go
index 9ee6d18..9502e25 100644
--- a/src/chromiumos/test/provision/cmd/provisionserver/provisionserver_test.go
+++ b/src/chromiumos/test/provision/cmd/provisionserver/provisionserver_test.go
@@ -532,10 +532,10 @@
 	st := as.GetFirstState()
 
 	gomock.InOrder(
-		sam.EXPECT().DeleteDirectory(gomock.Any(), gomock.Eq("/tmp/_tls_chrome_deploy")).Return(nil),
-		sam.EXPECT().CreateDirectories(gomock.Any(), gomock.Eq([]string{"/tmp/_tls_chrome_deploy"})).Return(nil),
+		sam.EXPECT().DeleteDirectory(gomock.Any(), gomock.Eq("/tmp/_provisioning_service_chrome_deploy")).Return(nil),
+		sam.EXPECT().CreateDirectories(gomock.Any(), gomock.Eq([]string{"/tmp/_provisioning_service_chrome_deploy"})).Return(nil),
 		sam.EXPECT().CopyData(gomock.Any(), "path/to/image").Return("image_url", nil),
-		sam.EXPECT().RunCmd(gomock.Any(), "", []string{"curl", "image_url", "|", "tar", "--ignore-command-error", "--overwrite", "--preserve-permissions", "--directory=/tmp/_tls_chrome_deploy", "-xf", "-"}).Return("", nil),
+		sam.EXPECT().RunCmd(gomock.Any(), "", []string{"curl", "image_url", "|", "tar", "--ignore-command-error", "--overwrite", "--preserve-permissions", "--directory=/tmp/_provisioning_service_chrome_deploy", "-xf", "-"}).Return("", nil),
 		sam.EXPECT().CreateDirectories(gomock.Any(), gomock.Eq([]string{"/opt/google/chrome", "/usr/local/autotest/deps/chrome_test/test_src/out/Release/", "/usr/local/libexec/chrome-binary-tests/"})).Return(nil),
 		sam.EXPECT().RunCmd(gomock.Any(), "stop", []string{"ui"}).Return("", nil),
 		sam.EXPECT().RunCmd(gomock.Any(), "lsof", []string{"/opt/google/chrome/chrome"}).Return("", errors.New("chrome is in use!")),
@@ -556,42 +556,42 @@
 
 	gomock.InOrder(
 		sam.EXPECT().RunCmd(gomock.Any(), "mount", []string{"-o", "remount,rw", "/"}).Return("", nil),
-		sam.EXPECT().PathExists(gomock.Any(), gomock.Eq("/tmp/_tls_chrome_deploy/ash_shell")).Return(true, nil),
-		sam.EXPECT().RunCmd(gomock.Any(), "rsync", []string{"-av", "/tmp/_tls_chrome_deploy/ash_shell", "/opt/google/chrome"}).Return("", nil),
+		sam.EXPECT().PathExists(gomock.Any(), gomock.Eq("/tmp/_provisioning_service_chrome_deploy/ash_shell")).Return(true, nil),
+		sam.EXPECT().RunCmd(gomock.Any(), "rsync", []string{"-av", "/tmp/_provisioning_service_chrome_deploy/ash_shell", "/opt/google/chrome"}).Return("", nil),
 		// For all items after we make them exist so we don't need to double every item (we assume that the test isn't breakable here):
-		sam.EXPECT().PathExists(gomock.Any(), gomock.Eq("/tmp/_tls_chrome_deploy/aura_demo")).Return(false, nil),
-		sam.EXPECT().PathExists(gomock.Any(), gomock.Eq("/tmp/_tls_chrome_deploy/chrome")).Return(false, nil),
-		sam.EXPECT().PathExists(gomock.Any(), gomock.Eq("/tmp/_tls_chrome_deploy/chrome-wrapper")).Return(false, nil),
-		sam.EXPECT().PathExists(gomock.Any(), gomock.Eq("/tmp/_tls_chrome_deploy/chrome.pak")).Return(false, nil),
-		sam.EXPECT().PathExists(gomock.Any(), gomock.Eq("/tmp/_tls_chrome_deploy/chrome_100_percent.pak")).Return(false, nil),
-		sam.EXPECT().PathExists(gomock.Any(), gomock.Eq("/tmp/_tls_chrome_deploy/chrome_200_percent.pak")).Return(false, nil),
-		sam.EXPECT().PathExists(gomock.Any(), gomock.Eq("/tmp/_tls_chrome_deploy/content_shell")).Return(false, nil),
-		sam.EXPECT().PathExists(gomock.Any(), gomock.Eq("/tmp/_tls_chrome_deploy/content_shell.pak")).Return(false, nil),
+		sam.EXPECT().PathExists(gomock.Any(), gomock.Eq("/tmp/_provisioning_service_chrome_deploy/aura_demo")).Return(false, nil),
+		sam.EXPECT().PathExists(gomock.Any(), gomock.Eq("/tmp/_provisioning_service_chrome_deploy/chrome")).Return(false, nil),
+		sam.EXPECT().PathExists(gomock.Any(), gomock.Eq("/tmp/_provisioning_service_chrome_deploy/chrome-wrapper")).Return(false, nil),
+		sam.EXPECT().PathExists(gomock.Any(), gomock.Eq("/tmp/_provisioning_service_chrome_deploy/chrome.pak")).Return(false, nil),
+		sam.EXPECT().PathExists(gomock.Any(), gomock.Eq("/tmp/_provisioning_service_chrome_deploy/chrome_100_percent.pak")).Return(false, nil),
+		sam.EXPECT().PathExists(gomock.Any(), gomock.Eq("/tmp/_provisioning_service_chrome_deploy/chrome_200_percent.pak")).Return(false, nil),
+		sam.EXPECT().PathExists(gomock.Any(), gomock.Eq("/tmp/_provisioning_service_chrome_deploy/content_shell")).Return(false, nil),
+		sam.EXPECT().PathExists(gomock.Any(), gomock.Eq("/tmp/_provisioning_service_chrome_deploy/content_shell.pak")).Return(false, nil),
 		// Testing this one specifically as it should map to the designated folder rather than the top-most:
-		sam.EXPECT().PathExists(gomock.Any(), gomock.Eq("/tmp/_tls_chrome_deploy/extensions/")).Return(true, nil),
-		sam.EXPECT().RunCmd(gomock.Any(), "rsync", []string{"-av", "/tmp/_tls_chrome_deploy/extensions/", "/opt/google/chrome/extensions"}).Return("", nil),
-		sam.EXPECT().PathExists(gomock.Any(), gomock.Eq("/tmp/_tls_chrome_deploy/lib/*.so")).Return(false, nil),
-		sam.EXPECT().PathExists(gomock.Any(), gomock.Eq("/tmp/_tls_chrome_deploy/libffmpegsumo.so")).Return(false, nil),
-		sam.EXPECT().PathExists(gomock.Any(), gomock.Eq("/tmp/_tls_chrome_deploy/libpdf.so")).Return(false, nil),
-		sam.EXPECT().PathExists(gomock.Any(), gomock.Eq("/tmp/_tls_chrome_deploy/libppGoogleNaClPluginChrome.so")).Return(false, nil),
-		sam.EXPECT().PathExists(gomock.Any(), gomock.Eq("/tmp/_tls_chrome_deploy/libosmesa.so")).Return(false, nil),
-		sam.EXPECT().PathExists(gomock.Any(), gomock.Eq("/tmp/_tls_chrome_deploy/libwidevinecdmadapter.so")).Return(false, nil),
-		sam.EXPECT().PathExists(gomock.Any(), gomock.Eq("/tmp/_tls_chrome_deploy/libwidevinecdm.so")).Return(false, nil),
-		sam.EXPECT().PathExists(gomock.Any(), gomock.Eq("/tmp/_tls_chrome_deploy/locales/")).Return(false, nil),
-		sam.EXPECT().PathExists(gomock.Any(), gomock.Eq("/tmp/_tls_chrome_deploy/nacl_helper_bootstrap")).Return(false, nil),
-		sam.EXPECT().PathExists(gomock.Any(), gomock.Eq("/tmp/_tls_chrome_deploy/nacl_irt_*.nexe")).Return(false, nil),
-		sam.EXPECT().PathExists(gomock.Any(), gomock.Eq("/tmp/_tls_chrome_deploy/nacl_helper")).Return(false, nil),
-		sam.EXPECT().PathExists(gomock.Any(), gomock.Eq("/tmp/_tls_chrome_deploy/resources/")).Return(false, nil),
-		sam.EXPECT().PathExists(gomock.Any(), gomock.Eq("/tmp/_tls_chrome_deploy/resources.pak")).Return(false, nil),
-		sam.EXPECT().PathExists(gomock.Any(), gomock.Eq("/tmp/_tls_chrome_deploy/xdg-settings")).Return(false, nil),
-		sam.EXPECT().PathExists(gomock.Any(), gomock.Eq("/tmp/_tls_chrome_deploy/*.png")).Return(false, nil),
+		sam.EXPECT().PathExists(gomock.Any(), gomock.Eq("/tmp/_provisioning_service_chrome_deploy/extensions/")).Return(true, nil),
+		sam.EXPECT().RunCmd(gomock.Any(), "rsync", []string{"-av", "/tmp/_provisioning_service_chrome_deploy/extensions/", "/opt/google/chrome/extensions"}).Return("", nil),
+		sam.EXPECT().PathExists(gomock.Any(), gomock.Eq("/tmp/_provisioning_service_chrome_deploy/lib/*.so")).Return(false, nil),
+		sam.EXPECT().PathExists(gomock.Any(), gomock.Eq("/tmp/_provisioning_service_chrome_deploy/libffmpegsumo.so")).Return(false, nil),
+		sam.EXPECT().PathExists(gomock.Any(), gomock.Eq("/tmp/_provisioning_service_chrome_deploy/libpdf.so")).Return(false, nil),
+		sam.EXPECT().PathExists(gomock.Any(), gomock.Eq("/tmp/_provisioning_service_chrome_deploy/libppGoogleNaClPluginChrome.so")).Return(false, nil),
+		sam.EXPECT().PathExists(gomock.Any(), gomock.Eq("/tmp/_provisioning_service_chrome_deploy/libosmesa.so")).Return(false, nil),
+		sam.EXPECT().PathExists(gomock.Any(), gomock.Eq("/tmp/_provisioning_service_chrome_deploy/libwidevinecdmadapter.so")).Return(false, nil),
+		sam.EXPECT().PathExists(gomock.Any(), gomock.Eq("/tmp/_provisioning_service_chrome_deploy/libwidevinecdm.so")).Return(false, nil),
+		sam.EXPECT().PathExists(gomock.Any(), gomock.Eq("/tmp/_provisioning_service_chrome_deploy/locales/")).Return(false, nil),
+		sam.EXPECT().PathExists(gomock.Any(), gomock.Eq("/tmp/_provisioning_service_chrome_deploy/nacl_helper_bootstrap")).Return(false, nil),
+		sam.EXPECT().PathExists(gomock.Any(), gomock.Eq("/tmp/_provisioning_service_chrome_deploy/nacl_irt_*.nexe")).Return(false, nil),
+		sam.EXPECT().PathExists(gomock.Any(), gomock.Eq("/tmp/_provisioning_service_chrome_deploy/nacl_helper")).Return(false, nil),
+		sam.EXPECT().PathExists(gomock.Any(), gomock.Eq("/tmp/_provisioning_service_chrome_deploy/resources/")).Return(false, nil),
+		sam.EXPECT().PathExists(gomock.Any(), gomock.Eq("/tmp/_provisioning_service_chrome_deploy/resources.pak")).Return(false, nil),
+		sam.EXPECT().PathExists(gomock.Any(), gomock.Eq("/tmp/_provisioning_service_chrome_deploy/xdg-settings")).Return(false, nil),
+		sam.EXPECT().PathExists(gomock.Any(), gomock.Eq("/tmp/_provisioning_service_chrome_deploy/*.png")).Return(false, nil),
 
-		sam.EXPECT().PathExists(gomock.Any(), gomock.Eq("/tmp/_tls_chrome_deploy/*test")).Return(true, nil),
-		sam.EXPECT().RunCmd(gomock.Any(), "rsync", []string{"-av", "/tmp/_tls_chrome_deploy/*test", "/usr/local/autotest/deps/chrome_test/test_src/out/Release"}).Return("", nil),
-		sam.EXPECT().PathExists(gomock.Any(), gomock.Eq("/tmp/_tls_chrome_deploy/*test")).Return(true, nil),
-		sam.EXPECT().RunCmd(gomock.Any(), "rsync", []string{"-av", "/tmp/_tls_chrome_deploy/*test", "/usr/local/libexec/chrome-binary-tests"}).Return("", nil),
-		sam.EXPECT().PathExists(gomock.Any(), gomock.Eq("/tmp/_tls_chrome_deploy/*tests")).Return(false, nil),
-		sam.EXPECT().PathExists(gomock.Any(), gomock.Eq("/tmp/_tls_chrome_deploy/*tests")).Return(false, nil),
+		sam.EXPECT().PathExists(gomock.Any(), gomock.Eq("/tmp/_provisioning_service_chrome_deploy/*test")).Return(true, nil),
+		sam.EXPECT().RunCmd(gomock.Any(), "rsync", []string{"-av", "/tmp/_provisioning_service_chrome_deploy/*test", "/usr/local/autotest/deps/chrome_test/test_src/out/Release"}).Return("", nil),
+		sam.EXPECT().PathExists(gomock.Any(), gomock.Eq("/tmp/_provisioning_service_chrome_deploy/*test")).Return(true, nil),
+		sam.EXPECT().RunCmd(gomock.Any(), "rsync", []string{"-av", "/tmp/_provisioning_service_chrome_deploy/*test", "/usr/local/libexec/chrome-binary-tests"}).Return("", nil),
+		sam.EXPECT().PathExists(gomock.Any(), gomock.Eq("/tmp/_provisioning_service_chrome_deploy/*tests")).Return(false, nil),
+		sam.EXPECT().PathExists(gomock.Any(), gomock.Eq("/tmp/_provisioning_service_chrome_deploy/*tests")).Return(false, nil),
 	)
 
 	if err := st.Execute(ctx); err != nil {
@@ -604,7 +604,7 @@
 	gomock.InOrder(
 		sam.EXPECT().RunCmd(gomock.Any(), "killall", []string{"-HUP", "dbus-daemon"}).Return("", nil),
 		sam.EXPECT().RunCmd(gomock.Any(), "start", []string{"ui"}).Return("", nil),
-		sam.EXPECT().DeleteDirectory(gomock.Any(), gomock.Eq("/tmp/_tls_chrome_deploy")).Return(nil),
+		sam.EXPECT().DeleteDirectory(gomock.Any(), gomock.Eq("/tmp/_provisioning_service_chrome_deploy")).Return(nil),
 	)
 
 	if err := st.Execute(ctx); err != nil {
@@ -636,10 +636,10 @@
 	st := as.GetFirstState()
 
 	gomock.InOrder(
-		sam.EXPECT().DeleteDirectory(gomock.Any(), gomock.Eq("/tmp/_tls_chrome_deploy")).Return(nil),
-		sam.EXPECT().CreateDirectories(gomock.Any(), gomock.Eq([]string{"/tmp/_tls_chrome_deploy"})).Return(nil),
+		sam.EXPECT().DeleteDirectory(gomock.Any(), gomock.Eq("/tmp/_provisioning_service_chrome_deploy")).Return(nil),
+		sam.EXPECT().CreateDirectories(gomock.Any(), gomock.Eq([]string{"/tmp/_provisioning_service_chrome_deploy"})).Return(nil),
 		sam.EXPECT().CopyData(gomock.Any(), "path/to/image").Return("image_url", nil),
-		sam.EXPECT().RunCmd(gomock.Any(), "", []string{"curl", "image_url", "|", "tar", "--ignore-command-error", "--overwrite", "--preserve-permissions", "--directory=/tmp/_tls_chrome_deploy", "-xf", "-"}).Return("", nil),
+		sam.EXPECT().RunCmd(gomock.Any(), "", []string{"curl", "image_url", "|", "tar", "--ignore-command-error", "--overwrite", "--preserve-permissions", "--directory=/tmp/_provisioning_service_chrome_deploy", "-xf", "-"}).Return("", nil),
 		sam.EXPECT().CreateDirectories(gomock.Any(), gomock.Eq([]string{"/opt/google/chrome", "/usr/local/autotest/deps/chrome_test/test_src/out/Release/", "/usr/local/libexec/chrome-binary-tests/"})).Return(nil),
 		sam.EXPECT().RunCmd(gomock.Any(), "stop", []string{"ui"}).Return("", nil),
 	)