firmware-provisioning: add to common.provision
Actually call firmware provisioning in the common.go provision struct
BUG=None
TEST=Not yet
Change-Id: I2eb0d232e13b86b50a9a4f380bd7880f83b1bb34
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/dev-util/+/3255615
Reviewed-by: Jaques Clapauch <jaquesc@google.com>
Commit-Queue: Sergey Frolov <sfrolov@google.com>
Tested-by: Sergey Frolov <sfrolov@google.com>
diff --git a/src/chromiumos/test/provision/cmd/provisionserver/common.go b/src/chromiumos/test/provision/cmd/provisionserver/common.go
index c59fabf..ddf1c6f 100644
--- a/src/chromiumos/test/provision/cmd/provisionserver/common.go
+++ b/src/chromiumos/test/provision/cmd/provisionserver/common.go
@@ -23,6 +23,7 @@
"chromiumos/test/provision/cmd/provisionserver/bootstrap/services"
"chromiumos/test/provision/cmd/provisionserver/bootstrap/services/ashservice"
"chromiumos/test/provision/cmd/provisionserver/bootstrap/services/crosservice"
+ "chromiumos/test/provision/cmd/provisionserver/bootstrap/services/firmwareservice"
"chromiumos/test/provision/cmd/provisionserver/bootstrap/services/lacrosservice"
)
@@ -168,13 +169,22 @@
}
// installFirmware installs requested firmware to the DUT.
-//
-// TODO(shapiroc): Implement this
func (s *provision) installFirmware(ctx context.Context, req *api.InstallFirmwareRequest, op *longrunning.Operation) (*api.InstallFailure, error) {
s.logger.Println("Received api.InstallFirmwareRequest: ", *req)
- return &api.InstallFailure{
- Reason: api.InstallFailure_REASON_PROVISIONING_FAILED,
- }, fmt.Errorf("not implemented")
+ ls, err := firmwareservice.NewFirmwareService(s.dutName, s.dutClient, s.wiringConn, req)
+ if err != nil {
+ fr := &api.InstallFailure{
+ Reason: api.InstallFailure_REASON_PROVISIONING_FAILED,
+ }
+ s.setNewOperationError(
+ op,
+ codes.Aborted,
+ fmt.Sprintf("pre-provision: failed setup: %s", err),
+ fr.Reason.String(),
+ )
+ return fr, err
+ }
+ return s.execute(ctx, ls, op)
}
// execute effectively acts as a state transition runner for each of the