mirror of
https://github.com/yunionio/cloudpods.git
synced 2026-09-24 16:03:43 +08:00
Automatic merge from release/2.2.0 -> release/2.3.0
* commit '32598e4f5d75b7745d788561b714fc909f46d461': 修正:伪删除虚拟机的时候,如果虚拟机停机失败,会真删除虚拟机 Add baremetal agent support
This commit is contained in:
@@ -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
|
||||
})
|
||||
}
|
||||
@@ -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)
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
Reference in New Issue
Block a user