diff options
author | Baudouin Raoult <baudouin.raoult@ecmwf.int> | 2019-11-24 08:52:34 +0100 |
---|---|---|
committer | Baudouin Raoult <baudouin.raoult@ecmwf.int> | 2019-11-24 08:52:34 +0100 |
commit | a656204578341cfc994a4772496b5aca1d823d49 (patch) | |
tree | 9cb19595360303ba7780fbd8eabdf8288746ec1b /cdsapi | |
parent | 181004b16fc2538e47bed9ce78eef12a367a8acd (diff) |
Add status message from CDS
Diffstat (limited to 'cdsapi')
-rw-r--r-- | cdsapi/api.py | 28 |
1 files changed, 26 insertions, 2 deletions
diff --git a/cdsapi/api.py b/cdsapi/api.py index 3af6b36..80eaa59 100644 --- a/cdsapi/api.py +++ b/cdsapi/api.py @@ -326,11 +326,35 @@ class Client(object): workflow_name='application') return self.service("tool.toolbox.orchestrator.run_workflow", params) - def identity(self): - return self._api('%s/resources' % (self.url,), {}) + def status(self, context=None): + url = '%s/status.json' % (self.url,) + r = requests.get(url, verify=self.verify) + r.raise_for_status() + return r.json() + + def _status(self, url): + try: + status = self.status(url) + + info = status.get('info', []) + if not isinstance(info, list): + info = [info] + for i in info: + self.info("%s", i) + + warning = status.get('warning', []) + if not isinstance(warning, list): + warning = [warning] + for w in warning: + self.warning("%s", w) + + except Exception: + pass def _api(self, url, request, method): + self._status(url) + session = self.session self.info("Sending request to %s", url) |