add snapshots list api
This commit is contained in:
		
							parent
							
								
									05054be795
								
							
						
					
					
						commit
						a1ba422429
					
				
							
								
								
									
										18
									
								
								api.go
									
									
									
									
									
								
							
							
						
						
									
										18
									
								
								api.go
									
									
									
									
									
								
							@ -50,6 +50,24 @@ func ApiSnapshotDel(c *gin.Context) {
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func ApiSnapshotList(c *gin.Context) {
 | 
					func ApiSnapshotList(c *gin.Context) {
 | 
				
			||||||
 | 
						if app, ok := cfg.apps[c.Param("app")]; ok {
 | 
				
			||||||
 | 
							if snapshots, err := app.Snapshots(); err != nil {
 | 
				
			||||||
 | 
								c.JSON(http.StatusInternalServerError, gin.H{
 | 
				
			||||||
 | 
									"message": "error",
 | 
				
			||||||
 | 
									"error":   err,
 | 
				
			||||||
 | 
								})
 | 
				
			||||||
 | 
							} else {
 | 
				
			||||||
 | 
								c.JSON(http.StatusOK, gin.H{
 | 
				
			||||||
 | 
									"message":   "done",
 | 
				
			||||||
 | 
									"snapshots": snapshots,
 | 
				
			||||||
 | 
								})
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						} else {
 | 
				
			||||||
 | 
							c.JSON(http.StatusInternalServerError, gin.H{
 | 
				
			||||||
 | 
								"message": "error",
 | 
				
			||||||
 | 
								"error":   "no app found",
 | 
				
			||||||
 | 
							})
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
	c.JSON(http.StatusInternalServerError, gin.H{
 | 
						c.JSON(http.StatusInternalServerError, gin.H{
 | 
				
			||||||
		"message": "error",
 | 
							"message": "error",
 | 
				
			||||||
		"error":   "not implemented",
 | 
							"error":   "not implemented",
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										78
									
								
								app.go
									
									
									
									
									
								
							
							
						
						
									
										78
									
								
								app.go
									
									
									
									
									
								
							@ -503,7 +503,7 @@ func (a *App) Transfer() error {
 | 
				
			|||||||
	return nil
 | 
						return nil
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func (a *App) Boxes() []*Box {
 | 
					func (a *App) AllBoxes() []*Box {
 | 
				
			||||||
	log.WithFields(log.Fields{"app": a.name}).Debugf("starting")
 | 
						log.WithFields(log.Fields{"app": a.name}).Debugf("starting")
 | 
				
			||||||
	defer log.WithFields(log.Fields{"app": a.name}).Debugf("done")
 | 
						defer log.WithFields(log.Fields{"app": a.name}).Debugf("done")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -534,6 +534,33 @@ func (a *App) Boxes() []*Box {
 | 
				
			|||||||
	return bx
 | 
						return bx
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func (a *App) SourceBoxes() []*Box {
 | 
				
			||||||
 | 
						log.WithFields(log.Fields{"app": a.name}).Debugf("starting")
 | 
				
			||||||
 | 
						defer log.WithFields(log.Fields{"app": a.name}).Debugf("done")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						bm := make(map[string]struct{})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						for _, s := range a.sources {
 | 
				
			||||||
 | 
							bm[s.Box()] = struct{}{}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						for _, b := range a.before {
 | 
				
			||||||
 | 
							bm[b.Box()] = struct{}{}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						for _, af := range a.after {
 | 
				
			||||||
 | 
							bm[af.Box()] = struct{}{}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						bx := make([]*Box, 0)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						for n := range bm {
 | 
				
			||||||
 | 
							bx = append(bx, cfg.box[n])
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						return bx
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func (a *App) RunStandaloneTime(now time.Time) error {
 | 
					func (a *App) RunStandaloneTime(now time.Time) error {
 | 
				
			||||||
	log.WithFields(log.Fields{"app": a.name}).Debugf("starting")
 | 
						log.WithFields(log.Fields{"app": a.name}).Debugf("starting")
 | 
				
			||||||
	defer log.WithFields(log.Fields{"app": a.name}).Debugf("done")
 | 
						defer log.WithFields(log.Fields{"app": a.name}).Debugf("done")
 | 
				
			||||||
@ -548,7 +575,7 @@ func (a *App) RunStandaloneTime(now time.Time) error {
 | 
				
			|||||||
	cfgRun = true
 | 
						cfgRun = true
 | 
				
			||||||
	defer func() { cfgRun = false }()
 | 
						defer func() { cfgRun = false }()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	boxes := a.Boxes()
 | 
						boxes := a.AllBoxes()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	var wg sync.WaitGroup
 | 
						var wg sync.WaitGroup
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -593,7 +620,7 @@ func (a *App) RunStandaloneSchedule(name string) error {
 | 
				
			|||||||
	cfgRun = true
 | 
						cfgRun = true
 | 
				
			||||||
	defer func() { cfgRun = false }()
 | 
						defer func() { cfgRun = false }()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	boxes := a.Boxes()
 | 
						boxes := a.AllBoxes()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	var wg sync.WaitGroup
 | 
						var wg sync.WaitGroup
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -614,3 +641,48 @@ func (a *App) RunStandaloneSchedule(name string) error {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	return a.RunSchedule(name, time.Now())
 | 
						return a.RunSchedule(name, time.Now())
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func (a *App) Snapshots() ([]string, error) {
 | 
				
			||||||
 | 
						log.WithFields(log.Fields{"app": a.name}).Debugf("starting")
 | 
				
			||||||
 | 
						defer log.WithFields(log.Fields{"app": a.name}).Debugf("done")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						CfgLock()
 | 
				
			||||||
 | 
						defer CfgUnlock()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						cfgRun = true
 | 
				
			||||||
 | 
						defer func() { cfgRun = false }()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						boxes := a.SourceBoxes()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						var wg sync.WaitGroup
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						// Open boxes
 | 
				
			||||||
 | 
						for _, b := range boxes {
 | 
				
			||||||
 | 
							wg.Add(1)
 | 
				
			||||||
 | 
							go func(box *Box) {
 | 
				
			||||||
 | 
								defer wg.Done()
 | 
				
			||||||
 | 
								if err := box.Open(); err != nil {
 | 
				
			||||||
 | 
									log.WithFields(log.Fields{"name": box.name, "call": "Open", "error": err}).Errorf("")
 | 
				
			||||||
 | 
									return
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}(b)
 | 
				
			||||||
 | 
							defer b.Close()
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						wg.Wait()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						names := make([]string, 0)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						for _, src := range a.sources {
 | 
				
			||||||
 | 
							if snapshots, err := src.ValidSnapshots(); err != nil {
 | 
				
			||||||
 | 
								log.WithFields(log.Fields{"call": "ValidSnapshots", "attr": src, "error": err}).Errorf("")
 | 
				
			||||||
 | 
								return names, err
 | 
				
			||||||
 | 
							} else {
 | 
				
			||||||
 | 
								for _, snapshot := range snapshots {
 | 
				
			||||||
 | 
									names = append(names, snapshot.name)
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						return names, nil
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -1,7 +1,7 @@
 | 
				
			|||||||
// Code generated by version.sh (@generated) DO NOT EDIT.
 | 
					// Code generated by version.sh (@generated) DO NOT EDIT.
 | 
				
			||||||
package main
 | 
					package main
 | 
				
			||||||
var githash = "73f9551"
 | 
					var githash = "05054be"
 | 
				
			||||||
var branch = "master"
 | 
					var branch = "master"
 | 
				
			||||||
var buildstamp = "2025-10-19_19:40:05"
 | 
					var buildstamp = "2025-10-26_09:32:26"
 | 
				
			||||||
var commits = "115"
 | 
					var commits = "116"
 | 
				
			||||||
var version = "73f9551-b115 - 2025-10-19_19:40:05"
 | 
					var version = "05054be-b116 - 2025-10-26_09:32:26"
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user