fix: nodename quotation issue
* update nodename method to not use regex anymore * update readme with 2 new columns for the exit code table We used quite the broad regex to parse the nodename from the status string. But we relied on a single quote to mark the starting point. It seems some distributions don't have this starting quote, therefore breaking the api.
This commit is contained in:
parent
c19557a320
commit
ac0ea074d5
|
@ -113,9 +113,9 @@ Another possible solution would be to edit the `ExecStart` parameter to include
|
|||
Lookup table for all custom error codes.
|
||||
The potential reasons are sorted by probability of being the root cause.
|
||||
|
||||
| code | potential reason |
|
||||
| :---: | :---|
|
||||
| 17 | login credential mismatch, potential api permission problem |
|
||||
| code | raised by | cause by | potential reason |
|
||||
| :---: | :---| : --- | :--- |
|
||||
| 17 | calls | api call returned empty | login credential mismatch, potential api permission problem |
|
||||
|
||||
### pre-commit framework
|
||||
This project utilizes the [pre-commit](https://pre-commit.com/) framework to automate various small hick-ups that tend
|
||||
|
|
20
calls.py
20
calls.py
|
@ -14,16 +14,26 @@ class EjabberdApiCalls(EjabberdApi):
|
|||
@property
|
||||
def nodename(self):
|
||||
if self._login is not None:
|
||||
node_str = re.compile("The node '(.*)'")
|
||||
status = self.cmd("status", {})
|
||||
# "The node ejabberd@localhost is started with status: startedejabberd 20.07 is running in that node"
|
||||
|
||||
# matches
|
||||
try:
|
||||
tmp = node_str.findall(status)[0]
|
||||
# raise SystemExit code 17 if no status message is received
|
||||
except TypeError:
|
||||
tmp = status.split()[2]
|
||||
|
||||
except AttributeError:
|
||||
# emtpy response or None obj
|
||||
raise SystemExit(17)
|
||||
|
||||
except IndexError:
|
||||
# status string differs from what we expect
|
||||
log.warning("status string is different then expected")
|
||||
tmp = "ejabberd@status-string-split-error"
|
||||
pass
|
||||
|
||||
# strip double quotations
|
||||
if tmp.startswith("'"):
|
||||
tmp = tmp.strip("'")
|
||||
|
||||
log.debug(f"fetched node string: {tmp}")
|
||||
return tmp
|
||||
|
||||
|
|
Loading…
Reference in New Issue