summaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authorDaniil Baturin <daniil@baturin.org>2021-01-31 01:49:19 +0700
committerDaniil Baturin <daniil@baturin.org>2021-01-31 01:49:19 +0700
commit4d06811fd203582bd21527cf0eff2679aad3bb36 (patch)
treec94e8fd85c737ab74c635296e68c615e7676b5b1 /scripts
parentde0e7e483ba0e3b059b74899c28aff95f4293726 (diff)
downloadcommunity.vyos.net-4d06811fd203582bd21527cf0eff2679aad3bb36.tar.gz
community.vyos.net-4d06811fd203582bd21527cf0eff2679aad3bb36.zip
Correctly sort snapshots by date.
Diffstat (limited to 'scripts')
-rwxr-xr-xscripts/list-snapshots.py19
1 files changed, 19 insertions, 0 deletions
diff --git a/scripts/list-snapshots.py b/scripts/list-snapshots.py
index d4bb9e4..6253596 100755
--- a/scripts/list-snapshots.py
+++ b/scripts/list-snapshots.py
@@ -13,12 +13,29 @@ import boto3
import jinja2
+from functools import cmp_to_key
+
bucket = os.getenv("SNAPSHOTS_BUCKET")
def make_link(s, f):
f = re.sub(r'\s+', '+', f)
return "https://s3.amazonaws.com/{0}/{1}".format(bucket, f)
+def compare(l, r):
+ try:
+ regex = r'\-(\d+)$'
+ l_date = int(re.search(regex, l).group(1))
+ r_date = int(re.search(regex, r).group(1))
+ if l_date == r_date:
+ return 0
+ elif l_date > r_date:
+ return 1
+ else:
+ return -1
+ except:
+ return(-1)
+
+
s3 = boto3.client('s3')
object_listing = s3.list_objects_v2(Bucket=bucket, Prefix='snapshot')
data = object_listing['Contents']
@@ -47,6 +64,8 @@ for name in snapshot_names:
snapshots.append(snapshot)
+snapshots.sort(reverse=True, key=cmp_to_key(lambda l, r: compare(l["name"], r["name"])))
+
tmpl = jinja2.Template("""
{% for s in snapshots %}
<h3>{{s.name}}</h3>