From 4eb1becd108f694f3c2fcbc13cd6d6d0c76c979b Mon Sep 17 00:00:00 2001 From: Germano Guerrini Date: Fri, 4 Nov 2022 12:15:29 +0100 Subject: [PATCH] Added implicit acceptance of terms and conditions --- hda/api.py | 26 ++++++++++++++++++-------- 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/hda/api.py b/hda/api.py index ca2f26f..a4a7bc6 100644 --- a/hda/api.py +++ b/hda/api.py @@ -334,6 +334,14 @@ def get_token(self): session.auth = None return result["access_token"] + def accept_tac(self): + url = "termsaccepted/Copernicus_General_License" + result = self.get(url) + if not result["accepted"]: + self.debug("TAC not yet accepted") + result = self.put({"accepted": True}, url) + self.debug("<=== %s", result) + @property def session(self): if self._session is None: @@ -426,6 +434,7 @@ def wrapped(*args, **kwargs): return wrapped def search(self, query): + self.accept_tac() return SearchResults(self, *DataRequestRunner(self).run(query)) def _datasets(self): @@ -452,10 +461,6 @@ def metadata(self, datasetId): return response def get(self, *args): - - if self.debug: - self.session # Force login - full = self.full_url(*args) self.debug("===> GET %s", full) @@ -466,10 +471,6 @@ def get(self, *args): return result def post(self, message, *args): - - if self.debug: - self.session # Force login - full = self.full_url(*args) self.debug("===> POST %s", full) self.debug("===> POST %s", shorten(message)) @@ -480,6 +481,15 @@ def post(self, message, *args): self.debug("<=== %s", shorten(result)) return result + def put(self, message, *args): + full = self.full_url(*args) + self.debug("===> PUT %s", full) + self.debug("===> PUT %s", shorten(message)) + + r = self.robust(self.session.put)(full, json=message, timeout=self.timeout) + r.raise_for_status() + return r + def stream(self, target, size, download_dir, *args): full = self.full_url(*args)