Automatic merge from release/2.2.0 -> release/2.3.0

* commit '32598e4f5d75b7745d788561b714fc909f46d461':
  修正:伪删除虚拟机的时候,如果虚拟机停机失败,会真删除虚拟机
  Add baremetal agent support
This commit is contained in:
邱剑
2018-09-29 12:32:30 +08:00
3 changed files with 54 additions and 3 deletions
+31
View File
@@ -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
})
}
+8 -3
View File
@@ -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)
}