public async Task PurgeOldApplicationVersionsAsync()
{
using (var ebClient = new AmazonElasticBeanstalkClient(creds, configurationProvider.RegionEndpoint))
{
var describeApplicationVersionsResponse =
await ebClient.DescribeApplicationVersionsAsync(new DescribeApplicationVersionsRequest
{
ApplicationName = configurationProvider.LongApplicationName
});
var oldVersions = describeApplicationVersionsResponse.ApplicationVersions
.Where(av => av.DateCreated < DateTime.UtcNow.AddDays(-7))
.ToList();
loggerProvider.GetLogger().Debug($"Found {oldVersions.Count} old versions to delete");
foreach (var oldVersion in oldVersions)
{
var deleteApplicationVersionResponse =
await ebClient.DeleteApplicationVersionAsync(new DeleteApplicationVersionRequest
{
ApplicationName = oldVersion.ApplicationName,
VersionLabel = oldVersion.VersionLabel
});
loggerProvider.GetLogger().Debug($"Deleting {oldVersion.VersionLabel} returned {deleteApplicationVersionResponse.HttpStatusCode}");
}
}
}