file_snapshot.go
func (f *FileSnapshotStore) getSnapshots() ([]*fileSnapshotMeta, error) {
	// Get the eligible snapshots
	snapshots, err := ioutil.ReadDir(f.path)
	if err != nil {
		f.logger.Printf("[ERR] snapshot: Failed to scan snapshot dir: %v", err)
		return nil, err
	}

	// Populate the metadata
	var snapMeta []*fileSnapshotMeta
	for _, snap := range snapshots {
		// Ignore any files
		if !snap.IsDir() {
			continue
		}

		// Ignore any temporary snapshots
		dirName := snap.Name()
		if strings.HasSuffix(dirName, tmpSuffix) {
			f.logger.Printf("[WARN] snapshot: Found temporary snapshot: %v", dirName)
			continue
		}

		// Try to read the meta data
		meta, err := f.readMeta(dirName)
		if err != nil {
			f.logger.Printf("[WARN] snapshot: Failed to read metadata for %v: %v", dirName, err)
			continue
		}

		// Make sure we can understand this version.
		if meta.Version < SnapshotVersionMin || meta.Version > SnapshotVersionMax {
			f.logger.Printf("[WARN] snapshot: Snapshot version for %v not supported: %d", dirName, meta.Version)
			continue
		}

		// Append, but only return up to the retain count
		snapMeta = append(snapMeta, meta)
	}

	// Sort the snapshot, reverse so we get new -> old
	sort.Sort(sort.Reverse(snapMetaSlice(snapMeta)))

	return snapMeta, nil
}
func (f *FileSnapshotStore) getSnapshots() ([]*fileSnapshotMeta, error) {
	// Get the eligible snapshots
	snapshots, err := ioutil.ReadDir(f.path)
	if err != nil {
		f.logger.Printf("[ERR] snapshot: Failed to scan snapshot dir: %v", err)
		return nil, err
	}

	// Populate the metadata
	var snapMeta []*fileSnapshotMeta
	for _, snap := range snapshots {
		// Ignore any files
		if !snap.IsDir() {
			continue
		}

		// Ignore any temporary snapshots
		dirName := snap.Name()
		if strings.HasSuffix(dirName, tmpSuffix) {
			f.logger.Printf("[WARN] snapshot: Found temporary snapshot: %v", dirName)
			continue
		}

		// Try to read the meta data
		meta, err := f.readMeta(dirName)
		if err != nil {
			f.logger.Printf("[WARN] snapshot: Failed to read metadata for %v: %v", dirName, err)
			continue
		}

		// Make sure we can understand this version.
		if meta.Version < SnapshotVersionMin || meta.Version > SnapshotVersionMax {
			f.logger.Printf("[WARN] snapshot: Snapshot version for %v not supported: %d", dirName, meta.Version)
			continue
		}

		// Append, but only return up to the retain count
		snapMeta = append(snapMeta, meta)
	}

	// Sort the snapshot, reverse so we get new -> old
	sort.Sort(sort.Reverse(snapMetaSlice(snapMeta)))

	return snapMeta, nil
}
func ( f * FileSnapshotStore ) getSnapshots ( ) ( [ ] * fileSnapshotMeta , error ) { // Get the eligible snapshots snapshots , err := ioutil . ReadDir ( f . path ) if err != nil { f . logger . Printf ( " " , err ) return nil , err } // Populate the metadata var snapMeta [ ] * fileSnapshotMeta for _ , snap := range snapshots { // Ignore any files if ! snap . IsDir ( ) { continue } // Ignore any temporary snapshots dirName := snap . Name ( ) if strings . HasSuffix ( dirName , tmpSuffix ) { f . logger . Printf ( " " , dirName ) continue } // Try to read the meta data meta , err := f . readMeta ( dirName ) if err != nil { f . logger . Printf ( " " , dirName , err ) continue } // Make sure we can understand this version. if meta . Version < SnapshotVersionMin || meta . Version > SnapshotVersionMax { f . logger . Printf ( " " , dirName , meta . Version ) continue } // Append, but only return up to the retain count snapMeta = append ( snapMeta , meta ) } // Sort the snapshot, reverse so we get new -> old sort . Sort ( sort . Reverse ( snapMetaSlice ( snapMeta ) ) ) return snapMeta , nil }
// getSnapshots returns all the known snapshots.
getSnapshots returns all the known snapshots .