diff --git a/cmd/climc/shell/baremetalagents.go b/cmd/climc/shell/baremetalagents.go new file mode 100644 index 0000000000..e5ff84b2cd --- /dev/null +++ b/cmd/climc/shell/baremetalagents.go @@ -0,0 +1,31 @@ +package shell + +import ( + "yunion.io/x/jsonutils" + "yunion.io/x/onecloud/pkg/mcclient" + "yunion.io/x/onecloud/pkg/mcclient/modules" + "yunion.io/x/onecloud/pkg/mcclient/options" +) + +func init() { + type BaremetalAgentListOptions struct { + options.BaseListOptions + } + R(&BaremetalAgentListOptions{}, "baremetal-agent-list", "List baremetal agent", func(s *mcclient.ClientSession, args *BaremetalAgentListOptions) error { + var params *jsonutils.JSONDict + { + var err error + params, err = args.BaseListOptions.Params() + if err != nil { + return err + + } + } + result, err := modules.Baremetalagents.List(s, params) + if err != nil { + return err + } + printList(result, modules.Baremetalagents.GetColumns(s)) + return nil + }) +} diff --git a/pkg/compute/tasks/guest_delete_task.go b/pkg/compute/tasks/guest_delete_task.go index 6fc8aaf32a..b54095f3bc 100644 --- a/pkg/compute/tasks/guest_delete_task.go +++ b/pkg/compute/tasks/guest_delete_task.go @@ -62,12 +62,17 @@ func (self *GuestDeleteTask) OnEipDissociateComplete(ctx context.Context, obj db } } log.Debugf("XXXXXXX Do real delete on guest ... XXXXXXX") - self.OnGuestStopCompleteFailed(ctx, guest, data) + self.doStartDeleteGuest(ctx, guest) } -func (self *GuestDeleteTask) OnGuestStopCompleteFailed(ctx context.Context, obj db.IStandaloneModel, data jsonutils.JSONObject) { +func (self *GuestDeleteTask) OnGuestStopCompleteFailed(ctx context.Context, obj db.IStandaloneModel, err jsonutils.JSONObject) { guest := obj.(*models.SGuest) - guest.SetStatus(self.UserCred, models.VM_DELETING, "delete anyway") + self.OnFailed(ctx, guest, err) +} + +func (self *GuestDeleteTask) doStartDeleteGuest(ctx context.Context, obj db.IStandaloneModel) { + guest := obj.(*models.SGuest) + guest.SetStatus(self.UserCred, models.VM_DELETING, "delete server after stop") db.OpsLog.LogEvent(guest, db.ACT_DELOCATING, nil, self.UserCred) self.StartDeleteGuest(ctx, guest) } diff --git a/pkg/mcclient/modules/mod_baremetalagents.go b/pkg/mcclient/modules/mod_baremetalagents.go new file mode 100644 index 0000000000..7050e8f65d --- /dev/null +++ b/pkg/mcclient/modules/mod_baremetalagents.go @@ -0,0 +1,15 @@ +package modules + +var ( + Baremetalagents ResourceManager +) + +func init() { + Baremetalagents = NewComputeManager( + "baremetalagent", + "baremetalagents", + []string{"ID", "Name", "Access_ip", "Manager_URI", "Status"}, + []string{}, + ) + registerCompute(&Baremetalagents) +}