32 lines
851 B
Go
32 lines
851 B
Go
package openstack
|
|
|
|
import (
|
|
"sort"
|
|
|
|
"github.com/gophercloud/gophercloud/openstack/blockstorage/v2/snapshots"
|
|
)
|
|
|
|
// blockStorageV2SnapshotSort represents a sortable slice of block storage
|
|
// v2 snapshots.
|
|
type blockStorageV2SnapshotSort []snapshots.Snapshot
|
|
|
|
func (snaphot blockStorageV2SnapshotSort) Len() int {
|
|
return len(snaphot)
|
|
}
|
|
|
|
func (snaphot blockStorageV2SnapshotSort) Swap(i, j int) {
|
|
snaphot[i], snaphot[j] = snaphot[j], snaphot[i]
|
|
}
|
|
|
|
func (snaphot blockStorageV2SnapshotSort) Less(i, j int) bool {
|
|
itime := snaphot[i].CreatedAt
|
|
jtime := snaphot[j].CreatedAt
|
|
return itime.Unix() < jtime.Unix()
|
|
}
|
|
|
|
func dataSourceBlockStorageV2MostRecentSnapshot(snapshots []snapshots.Snapshot) snapshots.Snapshot {
|
|
sortedSnapshots := snapshots
|
|
sort.Sort(blockStorageV2SnapshotSort(sortedSnapshots))
|
|
return sortedSnapshots[len(sortedSnapshots)-1]
|
|
}
|