- postfields_dict = {'username': self._user,
- 'password': self._password,
- 'project_id': self._project}
- http_code, resp = self._http_client.post_cmd(endpoint=self._auth_endpoint,
- postfields_dict=postfields_dict)
- if http_code not in (200, 201, 202, 204):
- raise ClientException(resp)
- token = json.loads(resp) if resp else None
- if token is not None:
- return token['_id']
- return None
+ self._logger.debug("")
+ if self._token is None:
+ postfields_dict = {'username': self._user,
+ 'password': self._password,
+ 'project_id': self._project}
+ if self._project_domain_name:
+ postfields_dict["project_domain_name"] = self._project_domain_name
+ if self._user_domain_name:
+ postfields_dict["user_domain_name"] = self._user_domain_name
+ http_code, resp = self._http_client.post_cmd(endpoint=self._auth_endpoint,
+ postfields_dict=postfields_dict,
+ skip_query_admin=True)
+# if http_code not in (200, 201, 202, 204):
+# message ='Authentication error: not possible to get auth token\nresp:\n{}'.format(resp)
+# raise ClientException(message)
+
+ token = json.loads(resp) if resp else None
+ self._token = token['id']
+
+ if self._token is not None:
+ self._headers['Authorization'] = 'Bearer {}'.format(self._token)
+ http_header = ['{}: {}'.format(key, val)
+ for (key, val) in list(self._headers.items())]
+ self._http_client.set_http_header(http_header)
+
+ def get_version(self):
+ _, resp = self._http_client.get2_cmd(endpoint="/version", skip_query_admin=True)
+ #print(http_code, resp)
+ try:
+ resp = json.loads(resp)
+ version = resp.get("version")
+ date = resp.get("date")
+ except ValueError:
+ version = resp.split()[2]
+ date = resp.split()[4]
+ return "{} {}".format(version, date)