public override void Execute()
{
Amazon.EC2.AmazonEC2Client client = new Amazon.EC2.AmazonEC2Client(AWSAuthConnection.OUR_ACCESS_KEY_ID, AWSAuthConnection.OUR_SECRET_ACCESS_KEY);
List<string> snapshotsToDelete = new List<string>();
if (isVolumeId)
{
// delete snapshots belonging to this volume
DescribeSnapshotsRequest request = new DescribeSnapshotsRequest();
DescribeSnapshotsResponse response = client.DescribeSnapshots(request);
foreach (Amazon.EC2.Model.Snapshot s in response.DescribeSnapshotsResult.Snapshot)
{
if (string.Equals(s.VolumeId, id, StringComparison.InvariantCultureIgnoreCase))
{
DateTime snapshotDate = DateTime.Parse(s.StartTime);
if (snapshotDate.AddDays(days) < DateTime.Now)
snapshotsToDelete.Add(s.SnapshotId);
}
}
}
else
{
snapshotsToDelete.Add(id);
}
foreach (string snapshotId in snapshotsToDelete)
{
Console.WriteLine("Deleting snapshot ID {0}", snapshotId);
Amazon.EC2.Model.DeleteSnapshotRequest request = new Amazon.EC2.Model.DeleteSnapshotRequest();
request.SnapshotId = snapshotId;
Amazon.EC2.Model.DeleteSnapshotResponse response = client.DeleteSnapshot(request);
}
}