Skip to content

Commit 569109b

Browse files
committed
fix(backup): inventory in schedule's task param
1 parent d67ecf7 commit 569109b

File tree

8 files changed

+39
-12
lines changed

8 files changed

+39
-12
lines changed

api/projects/schedules.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ func GetSchedule(w http.ResponseWriter, r *http.Request) {
4343
func GetProjectSchedules(w http.ResponseWriter, r *http.Request) {
4444
project := helpers.GetFromContext(r, "project").(db.Project)
4545

46-
tplSchedules, err := helpers.Store(r).GetProjectSchedules(project.ID)
46+
tplSchedules, err := helpers.Store(r).GetProjectSchedules(project.ID, false)
4747
if err != nil {
4848
helpers.WriteError(w, err)
4949
return

db/Store.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -391,7 +391,7 @@ type AnsibleTaskRepository interface {
391391
// ScheduleManager handles schedule-related operations
392392
type ScheduleManager interface {
393393
GetSchedules() ([]Schedule, error)
394-
GetProjectSchedules(projectID int) ([]ScheduleWithTpl, error)
394+
GetProjectSchedules(projectID int, includeTaskParams bool) ([]ScheduleWithTpl, error)
395395
GetTemplateSchedules(projectID int, templateID int, onlyCommitCheckers bool) ([]Schedule, error)
396396
CreateSchedule(schedule Schedule) (Schedule, error)
397397
UpdateSchedule(schedule Schedule) error

db/TaskParams.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ type TaskParams struct {
1515
Version *string `db:"version" json:"version,omitempty"`
1616

1717
InventoryID *int `db:"inventory_id" json:"inventory_id,omitempty" backup:"-"`
18-
InventoryName *string `db:"-" json:"-" backup:"inventory_name,omitempty"`
18+
InventoryName *string `db:"-" json:"-" backup:"inventory_name"`
1919

2020
Params MapStringAnyField `db:"params" json:"params,omitempty"`
2121
}

db/bolt/schedule.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ func (d *BoltDb) getProjectSchedules(projectID int, filter func(referringObj db.
3434
return
3535
}
3636

37-
func (d *BoltDb) GetProjectSchedules(projectID int) (schedules []db.ScheduleWithTpl, err error) {
37+
func (d *BoltDb) GetProjectSchedules(projectID int, includeTaskParams bool) (schedules []db.ScheduleWithTpl, err error) {
3838
schedules = []db.ScheduleWithTpl{}
3939

4040
orig, err := d.getProjectSchedules(projectID, func(s db.Schedule) bool {

db/sql/schedule.go

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -144,12 +144,28 @@ func (d *SqlDb) GetSchedules() (schedules []db.Schedule, err error) {
144144
return
145145
}
146146

147-
func (d *SqlDb) GetProjectSchedules(projectID int) (schedules []db.ScheduleWithTpl, err error) {
147+
func (d *SqlDb) GetProjectSchedules(projectID int, includeTaskParams bool) (schedules []db.ScheduleWithTpl, err error) {
148148
_, err = d.selectAll(&schedules,
149149
"SELECT ps.*, pt.name as tpl_name FROM project__schedule ps "+
150150
"JOIN project__template pt ON pt.id = ps.template_id "+
151151
"WHERE ps.repository_id IS NULL AND ps.project_id=?",
152152
projectID)
153+
154+
if includeTaskParams {
155+
for i := range schedules {
156+
if schedules[i].TaskParamsID == nil {
157+
continue
158+
}
159+
160+
var taskParams db.TaskParams
161+
err = d.getObject(projectID, db.TaskParamsProps, *schedules[i].TaskParamsID, &taskParams)
162+
if err != nil {
163+
return nil, err
164+
}
165+
schedules[i].TaskParams = &taskParams
166+
}
167+
}
168+
153169
return
154170
}
155171

services/project/backup.go

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -164,12 +164,15 @@ func (b *BackupDB) load(projectID int, store db.Store) (err error) {
164164
return
165165
}
166166

167-
schedules, err := store.GetSchedules()
167+
schedules, err := store.GetProjectSchedules(projectID, true)
168168
if err != nil {
169169
return
170170
}
171171

172-
b.schedules = getSchedulesByProject(projectID, schedules)
172+
for _, s := range schedules {
173+
b.schedules = append(b.schedules, s.Schedule)
174+
}
175+
//b.schedules = getSchedulesByProject(projectID, schedules)
173176

174177
b.meta, err = store.GetProject(projectID)
175178
if err != nil {
@@ -224,6 +227,10 @@ func (b *BackupDB) format() (*BackupFormat, error) {
224227
o,
225228
*tplName,
226229
}
230+
231+
if o.TaskParams != nil && o.TaskParams.InventoryID != nil {
232+
schedules[i].TaskParams.InventoryName, _ = findNameByID[db.Inventory](*o.TaskParams.InventoryID, b.inventories)
233+
}
227234
}
228235

229236
keys := make([]BackupAccessKey, len(b.keys))

services/project/restore.go

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -76,12 +76,19 @@ func (e BackupSchedule) Restore(store db.Store, b *BackupDB) error {
7676
}
7777
v.TemplateID = tpl.ID
7878

79-
newView, err := store.CreateSchedule(v)
79+
if v.TaskParams != nil {
80+
inv := findEntityByName[db.Inventory](e.TaskParams.InventoryName, b.inventories)
81+
if inv != nil {
82+
v.TaskParams.InventoryID = &inv.ID
83+
}
84+
}
85+
86+
newSchedule, err := store.CreateSchedule(v)
8087
if err != nil {
8188
return err
8289
}
8390

84-
b.schedules = append(b.schedules, newView)
91+
b.schedules = append(b.schedules, newSchedule)
8592
return nil
8693
}
8794

services/schedules/SchedulePool.go

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -103,10 +103,7 @@ func (r ScheduleRunner) Run() {
103103
return
104104
}
105105

106-
schedule.TaskParams.CreateTask()
107-
108106
task := schedule.TaskParams.CreateTask()
109-
110107
task.TemplateID = schedule.TemplateID
111108
task.ScheduleID = &schedule.ID
112109

0 commit comments

Comments
 (0)