From db2e21250588d0ecc236248ec20907e217223dcc Mon Sep 17 00:00:00 2001 From: Joel Rebello Date: Mon, 29 Apr 2024 16:19:33 +0200 Subject: [PATCH] internal/install: fix install cli command for recent runner changes This was broken because of changes to the way the firwmare install is planned. --- internal/install/install.go | 17 +++++++++++------ internal/install/task_handler.go | 24 +++++++++++------------- 2 files changed, 22 insertions(+), 19 deletions(-) diff --git a/internal/install/install.go b/internal/install/install.go index 95d9210c..c844bad9 100644 --- a/internal/install/install.go +++ b/internal/install/install.go @@ -46,6 +46,14 @@ func (i *Installer) Install(ctx context.Context, params *Params) { taskParams := &rctypes.FirmwareInstallTaskParameters{ ForceInstall: params.Force, DryRun: params.DryRun, + Firmwares: []rctypes.Firmware{ + { + Component: params.Component, + Version: params.Version, + Models: []string{params.Model}, + Vendor: params.Vendor, + }, + }, } task, err := model.NewTask(uuid.New(), taskParams) @@ -53,6 +61,7 @@ func (i *Installer) Install(ctx context.Context, params *Params) { i.logger.Fatal(err) } + task.Parameters.DryRun = params.DryRun task.Asset = &model.Asset{ BmcAddress: net.ParseIP(params.BmcAddr), BmcUsername: params.User, @@ -75,12 +84,8 @@ func (i *Installer) Install(ctx context.Context, params *Params) { func (i *Installer) runTask(ctx context.Context, params *Params, task *model.Task, le *logrus.Entry) { h := &handler{ - fwFile: params.File, - fwComponent: params.Component, - fwVersion: params.Version, - model: params.Model, - vendor: params.Vendor, - onlyPlan: params.OnlyPlan, + fwFile: params.File, + onlyPlan: params.OnlyPlan, taskCtx: &runner.TaskHandlerContext{ Task: task, Publisher: nil, diff --git a/internal/install/task_handler.go b/internal/install/task_handler.go index 74baafa0..1aa1850d 100644 --- a/internal/install/task_handler.go +++ b/internal/install/task_handler.go @@ -21,13 +21,9 @@ var ( // // The handler is instantiated to run a single task type handler struct { - taskCtx *runner.TaskHandlerContext - fwFile string - fwComponent string - fwVersion string - model string - vendor string - onlyPlan bool + taskCtx *runner.TaskHandlerContext + fwFile string + onlyPlan bool } func (t *handler) Initialize(ctx context.Context) error { @@ -66,11 +62,13 @@ func (t *handler) Query(ctx context.Context) error { func (t *handler) PlanActions(ctx context.Context) error { t.taskCtx.Logger.Debug("create the plan") + param := t.taskCtx.Task.Parameters.Firmwares[0] + firmware := &model.Firmware{ - Component: t.fwComponent, - Version: t.fwVersion, - Models: []string{t.model}, - Vendor: t.vendor, + Component: param.Component, + Vendor: param.Vendor, + Models: []string{param.Vendor}, + Version: param.Version, } actionCtx := &runner.ActionHandlerContext{ @@ -85,8 +83,8 @@ func (t *handler) PlanActions(ctx context.Context) error { if err != nil { return err } - // Setting this causes the action SM to not download the file - // FirmwareTempFile: t.fwFile,\ + + action.FirmwareTempFile = t.fwFile //nolint:errcheck // SetState never returns an error action.SetState(model.StatePending)