From b0d187bb12a200579aa4ff4648861ba6ade50c91 Mon Sep 17 00:00:00 2001 From: Zexi Li Date: Wed, 10 Jul 2024 16:15:22 +0800 Subject: [PATCH] fix(baremetal): some tasks don't implement IServerBaseDeployTask interface (#20784) --- pkg/baremetal/tasks/basedeploy.go | 12 ++++++------ pkg/baremetal/tasks/create.go | 4 +++- pkg/baremetal/tasks/deploy.go | 6 +++++- pkg/baremetal/tasks/destroy.go | 6 +++++- pkg/baremetal/tasks/rebuild.go | 7 +++++-- pkg/baremetal/tasks/reprepare.go | 2 ++ 6 files changed, 26 insertions(+), 11 deletions(-) diff --git a/pkg/baremetal/tasks/basedeploy.go b/pkg/baremetal/tasks/basedeploy.go index d81dd6afb3..60a3ac4fe0 100644 --- a/pkg/baremetal/tasks/basedeploy.go +++ b/pkg/baremetal/tasks/basedeploy.go @@ -32,8 +32,8 @@ type IServerBaseDeployTask interface { IPXEBootTask RemoveEFIOSEntry() bool - DoDeploys(term *ssh.Client) (jsonutils.JSONObject, error) - PostDeploys(term *ssh.Client) error + DoDeploys(ctx context.Context, term *ssh.Client) (jsonutils.JSONObject, error) + PostDeploys(ctx context.Context, term *ssh.Client) error } type SBaremetalServerBaseDeployTask struct { @@ -85,11 +85,11 @@ func (self *SBaremetalServerBaseDeployTask) RemoveEFIOSEntry() bool { return false } -func (self *SBaremetalServerBaseDeployTask) DoDeploys(_ *ssh.Client) (jsonutils.JSONObject, error) { +func (self *SBaremetalServerBaseDeployTask) DoDeploys(ctx context.Context, _ *ssh.Client) (jsonutils.JSONObject, error) { return nil, nil } -func (self *SBaremetalServerBaseDeployTask) PostDeploys(_ *ssh.Client) error { +func (self *SBaremetalServerBaseDeployTask) PostDeploys(_ context.Context, _ *ssh.Client) error { return nil } @@ -102,7 +102,7 @@ func (self *SBaremetalServerBaseDeployTask) OnPXEBoot(ctx context.Context, term } } - result, err := self.IServerBaseDeployTask().DoDeploys(term) + result, err := self.IServerBaseDeployTask().DoDeploys(ctx, term) if err != nil { return errors.Wrap(err, "Do deploy") } @@ -119,7 +119,7 @@ func (self *SBaremetalServerBaseDeployTask) OnPXEBoot(ctx context.Context, term return errors.Wrap(err, "Sync disk") } - if err := self.IServerBaseDeployTask().PostDeploys(term); err != nil { + if err := self.IServerBaseDeployTask().PostDeploys(ctx, term); err != nil { return errors.Wrap(err, "post deploy") } diff --git a/pkg/baremetal/tasks/create.go b/pkg/baremetal/tasks/create.go index 5b944e1f3b..eec7063781 100644 --- a/pkg/baremetal/tasks/create.go +++ b/pkg/baremetal/tasks/create.go @@ -25,6 +25,8 @@ import ( "yunion.io/x/onecloud/pkg/util/ssh" ) +var _ IServerBaseDeployTask = new(SBaremetalServerCreateTask) + type SBaremetalServerCreateTask struct { SBaremetalServerBaseDeployTask } @@ -94,7 +96,7 @@ func doPoweroff(term *ssh.Client) error { return nil } -func (self *SBaremetalServerCreateTask) PostDeploys(term *ssh.Client) error { +func (self *SBaremetalServerCreateTask) PostDeploys(ctx context.Context, term *ssh.Client) error { if self.Baremetal.HasBMC() { return doPoweroff(term) } diff --git a/pkg/baremetal/tasks/deploy.go b/pkg/baremetal/tasks/deploy.go index 2bb4f2c425..7b6c6f067e 100644 --- a/pkg/baremetal/tasks/deploy.go +++ b/pkg/baremetal/tasks/deploy.go @@ -15,6 +15,8 @@ package tasks import ( + "context" + "yunion.io/x/jsonutils" "yunion.io/x/pkg/errors" @@ -22,6 +24,8 @@ import ( "yunion.io/x/onecloud/pkg/util/ssh" ) +var _ IServerBaseDeployTask = new(SBaremetalServerDeployTask) + type SBaremetalServerDeployTask struct { SBaremetalServerBaseDeployTask } @@ -48,7 +52,7 @@ func (self *SBaremetalServerDeployTask) RemoveEFIOSEntry() bool { return false } -func (self *SBaremetalServerDeployTask) DoDeploys(term *ssh.Client) (jsonutils.JSONObject, error) { +func (self *SBaremetalServerDeployTask) DoDeploys(ctx context.Context, term *ssh.Client) (jsonutils.JSONObject, error) { tool, err := self.Baremetal.GetServer().NewConfigedSSHPartitionTool(term) if err != nil { return nil, errors.Wrap(err, "NewConfigedSSHPartitionTool") diff --git a/pkg/baremetal/tasks/destroy.go b/pkg/baremetal/tasks/destroy.go index 172f7cf69d..e5c7f966fc 100644 --- a/pkg/baremetal/tasks/destroy.go +++ b/pkg/baremetal/tasks/destroy.go @@ -15,6 +15,8 @@ package tasks import ( + "context" + "yunion.io/x/jsonutils" "yunion.io/x/log" @@ -22,6 +24,8 @@ import ( "yunion.io/x/onecloud/pkg/util/ssh" ) +var _ IServerBaseDeployTask = new(SBaremetalServerDestroyTask) + type SBaremetalServerDestroyTask struct { SBaremetalServerBaseDeployTask } @@ -48,7 +52,7 @@ func (self *SBaremetalServerDestroyTask) RemoveEFIOSEntry() bool { return true } -func (self *SBaremetalServerDestroyTask) DoDeploys(term *ssh.Client) (jsonutils.JSONObject, error) { +func (self *SBaremetalServerDestroyTask) DoDeploys(ctx context.Context, term *ssh.Client) (jsonutils.JSONObject, error) { if err := self.Baremetal.GetServer().DoEraseDisk(term); err != nil { log.Errorf("Delete server do erase disk: %v", err) } diff --git a/pkg/baremetal/tasks/rebuild.go b/pkg/baremetal/tasks/rebuild.go index ccba0cfe4c..14f71ccd32 100644 --- a/pkg/baremetal/tasks/rebuild.go +++ b/pkg/baremetal/tasks/rebuild.go @@ -15,6 +15,7 @@ package tasks import ( + "context" "fmt" "yunion.io/x/jsonutils" @@ -24,6 +25,8 @@ import ( "yunion.io/x/onecloud/pkg/util/ssh" ) +var _ IServerBaseDeployTask = new(SBaremetalServerRebuildTask) + type SBaremetalServerRebuildTask struct { SBaremetalServerBaseDeployTask } @@ -50,7 +53,7 @@ func (self *SBaremetalServerRebuildTask) RemoveEFIOSEntry() bool { return true } -func (self *SBaremetalServerRebuildTask) DoDeploys(term *ssh.Client) (jsonutils.JSONObject, error) { +func (self *SBaremetalServerRebuildTask) DoDeploys(ctx context.Context, term *ssh.Client) (jsonutils.JSONObject, error) { tool, err := self.Baremetal.GetServer().NewConfigedSSHPartitionTool(term) if err != nil { return nil, errors.Wrap(err, "NewConfigedSSHPartitionTool") @@ -73,7 +76,7 @@ func (self *SBaremetalServerRebuildTask) DoDeploys(term *ssh.Client) (jsonutils. return data, nil } -func (self *SBaremetalServerRebuildTask) PostDeploys(term *ssh.Client) error { +func (self *SBaremetalServerRebuildTask) PostDeploys(ctx context.Context, term *ssh.Client) error { if self.Baremetal.HasBMC() { return doPoweroff(term) } diff --git a/pkg/baremetal/tasks/reprepare.go b/pkg/baremetal/tasks/reprepare.go index ba0635131d..744d9020fc 100644 --- a/pkg/baremetal/tasks/reprepare.go +++ b/pkg/baremetal/tasks/reprepare.go @@ -23,6 +23,8 @@ import ( "yunion.io/x/onecloud/pkg/util/ssh" ) +var _ IServerBaseDeployTask = new(SBaremetalReprepareTask) + type SBaremetalReprepareTask struct { SBaremetalServerBaseDeployTask }