From a06e4950bbdaf0130e6f3fe544091351ef6b1e75 Mon Sep 17 00:00:00 2001 From: OrrBin Date: Sun, 31 May 2020 12:02:04 +0300 Subject: [PATCH 1/2] submisson --- main.py | 61 ++++++++++++++++++++++++++++++++++++++++++++++++ requirements.txt | 1 + 2 files changed, 62 insertions(+) create mode 100644 main.py create mode 100644 requirements.txt diff --git a/main.py b/main.py new file mode 100644 index 0000000..2a972a2 --- /dev/null +++ b/main.py @@ -0,0 +1,61 @@ +import sys +import requests +import json +from datetime import datetime as dt + +time_format='%Y-%m-%dT%H:%M:%S.%fZ' +databaseName='databaseName' +creation='createdAt' +snapshots_path = None +server= None + +def get_json_data(): + response = requests.get(server+snapshots_path) + if (response.status_code >= 200 and response.status_code <= 299): + return json.loads(response.text)['snapshotItems'] + else: + print(f'Response code: {response.status_code}') + exit(1) + +def list_all_by_DB(): + snapshots={} + json=get_json_data() + time_sorted_snaps = sorted(json, key=lambda x: dt.strptime(x[creation], time_format), reverse=True) + for obj in time_sorted_snaps: + db=obj[databaseName] + if not db in snapshots: + snapshots[db]=[] + snapshots[db].append(obj) + return snapshots + +def do_by_id(id,method): + if(method=='GET'): + response = requests.get(server+snapshots_path+str(id)) + if (response.status_code >= 200 and response.status_code <= 299): + print(response.text) + return True + else: + print(f'Response code: {response.status_code}') + elif (method=='DELETE'): + response = requests.delete(server+snapshots_path+str(id)) + if (response.status_code >= 200 and response.status_code <= 299): + return True + else: + print(f'Response code: {response.status_code}') + +def main(argv): + global server + server = argv[1] #'https://5dbf2fb9e295da001400b4cc.mockapi.io' + global snapshots_path + snapshots_path = argv[2] #'/api/v1/snapshots/' + all_snaps=list_all_by_DB() + for db_name in all_snaps: + db=all_snaps[db_name] + if len(db) > 2: + i=1 + for snap in db[2:]: + do_by_id(int(snap['id']),'DELETE') + + print("done") +if __name__ == '__main__': + main(sys.argv) \ No newline at end of file diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..663bd1f --- /dev/null +++ b/requirements.txt @@ -0,0 +1 @@ +requests \ No newline at end of file From 8f4c4cc14e0d730ae8913c4803a546fb31c6503a Mon Sep 17 00:00:00 2001 From: OrrBin Date: Sun, 31 May 2020 12:04:21 +0300 Subject: [PATCH 2/2] adding Dockerfile --- Dockerfile | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Dockerfile b/Dockerfile index e69de29..dcda439 100644 --- a/Dockerfile +++ b/Dockerfile @@ -0,0 +1,6 @@ +FROM python:3 +ADD requirements.txt /requirements.txt +RUN pip install -r /requirements.txt +ADD main.py main.py + +CMD python main.py 'https://5dbf2fb9e295da001400b4cc.mockapi.io' '/api/v1/snapshots/' \ No newline at end of file