terraform/vendor/github.com/terraform-providers/terraform-provider-openstack/openstack/blockstorage_snapshot_v2.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]
}