code: def _do_logon(self):
          
          if self._userid is None:
              raise ClientAuthError("Userid is not provided.")
          if self._password is None:
              if self._get_password:
                  self._password = self._get_password(self._host, self._userid)
              else:
                  raise ClientAuthError("Password is not provided.")
          logon_uri = '/api/sessions'
          logon_body = {
              'userid': self._userid,
              'password': self._password
          }
          self._headers.pop('X-API-Session', None)  # Just in case
          self._session = self._new_session(self.retry_timeout_config)
          logon_res = self.post(logon_uri, logon_body, logon_required=False)
          self._session_id = logon_res['api-session']
          self._headers['X-API-Session'] = self._session_id
docs: Log on, unconditionally. This can be used to re-logon.
          This requires credentials to be provided.
  
          Raises:
  
            :exc:`~zhmcclient.ClientAuthError`
            :exc:`~zhmcclient.ServerAuthError`
            :exc:`~zhmcclient.ConnectionError`
            :exc:`~zhmcclient.ParseError`
            :exc:`~zhmcclient.HTTPError`