Skip to content

Commit

Permalink
fix: Support 'generate_name' when saving template from guest
Browse files Browse the repository at this point in the history
  • Loading branch information
rainzm committed Jun 4, 2020
1 parent 0d75932 commit 27f746e
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 4 deletions.
4 changes: 3 additions & 1 deletion pkg/apis/compute/guests.go
Original file line number Diff line number Diff line change
Expand Up @@ -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"`
}
4 changes: 2 additions & 2 deletions pkg/compute/models/guest_template.go
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand Down
7 changes: 6 additions & 1 deletion pkg/compute/tasks/guest_save_template_task.go
Original file line number Diff line number Diff line change
Expand Up @@ -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, "", "")
Expand Down

0 comments on commit 27f746e

Please sign in to comment.