+ """
+
+ def get_token(self, pwd_change=False):
+ 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
+ if token.get("message") == "change_password" and not pwd_change:
+ raise ClientException(
+ "Password Expired. Please update the password using change_password option"
+ )
+ self._token = token["id"]