fix: Support 'generate_name' when saving template from guest

This commit is contained in:
rainzm
2020-06-04 18:27:41 +08:00
parent 0d759322af
commit 27f746eb26
3 changed files with 11 additions and 4 deletions
+3 -1
View File
@@ -335,6 +335,8 @@ type ConvertEsxiToKvmInput struct {
}
type GuestSaveToTemplateInput struct {
// The name of guest
// The name of guest template
Name string `json:"name"`
// The generate name of guest template
GenerateName string `json:"generate_name"`
}
+2 -2
View File
@@ -750,8 +750,8 @@ func (g *SGuest) PerformSaveTemplate(ctx context.Context, userCred mcclient.Toke
query jsonutils.JSONObject, input computeapis.GuestSaveToTemplateInput) (jsonutils.JSONObject, error) {
g.SetStatus(userCred, computeapis.VM_TEMPLATE_SAVING, "save to template")
if len(input.Name) == 0 {
input.Name = fmt.Sprintf("%s-template", g.Name)
if len(input.Name) == 0 && len(input.GenerateName) == 0 {
input.GenerateName = fmt.Sprintf("%s-template", g.Name)
}
data := jsonutils.Marshal(input).(*jsonutils.JSONDict)
if task, err := taskman.TaskManager.NewTask(ctx, "GuestSaveTemplateTask", g, userCred, data, "", "", nil); err != nil {
@@ -54,8 +54,13 @@ func (self *GuestSaveTemplateTask) OnInit(ctx context.Context, obj db.IStandalon
}
gtName, _ := self.Params.GetString("name")
genGtName, _ := self.Params.GetString("generate_name")
dict := jsonutils.NewDict()
dict.Set("name", jsonutils.NewString(gtName))
if len(genGtName) > 0 {
dict.Set("generate_name", jsonutils.NewString(genGtName))
} else {
dict.Set("name", jsonutils.NewString(gtName))
}
dict.Set("description", jsonutils.NewString(fmt.Sprintf("Save from Guest '%s'", g.Name)))
dict.Set("content", jsonutils.Marshal(ci))
session := auth.GetSession(ctx, self.UserCred, "", "")