diff --git a/pyzabbix/api.py b/pyzabbix/api.py index d1daf26..fa92b32 100644 --- a/pyzabbix/api.py +++ b/pyzabbix/api.py @@ -23,6 +23,7 @@ import ssl import sys import base64 +from packaging.version import Version # For Python 2 and 3 compatibility try: @@ -137,10 +138,6 @@ class ZabbixAPI(object): :param url: URL to zabbix api. Default: `ZABBIX_URL` or `https://localhost/zabbix` - :type use_authenticate: bool - :param use_authenticate: Use `user.authenticate` method if `True` else - `user.login`. - :type use_basic_auth: bool :param use_basic_auth: Using basic auth if `True` @@ -165,14 +162,12 @@ class ZabbixAPI(object): >>> z.do_request('host.getobjects', {'status': 1}) """ - def __init__(self, url=None, use_authenticate=False, use_basic_auth=False, user=None, - password=None): + def __init__(self, url=None, use_basic_auth=False, user=None, password=None): url = url or os.environ.get('ZABBIX_URL') or 'https://localhost/zabbix' user = user or os.environ.get('ZABBIX_USER') or 'Admin' password = password or os.environ.get('ZABBIX_PASSWORD') or 'zabbix' - self.use_authenticate = use_authenticate self.use_basic_auth = use_basic_auth self.auth = None self.url = url + '/api_jsonrpc.php' @@ -202,12 +197,13 @@ def _login(self, user='', password=''): logger.debug("ZabbixAPI.login({0},{1})".format(user, HideSensitiveService.HIDEMASK)) - self.auth = None + api_version = Version(self.apiinfo.version()) - if self.use_authenticate: - self.auth = self.user.authenticate(user=user, password=password) - else: + # 5.4.0 was the first version of Zabbix to change the user param in the login method + if api_version and api_version < Version("5.4.0"): self.auth = self.user.login(user=user, password=password) + else: + self.auth = self.user.login(username=user, password=password) def _logout(self): """Do logout from zabbix server.""" diff --git a/pyzabbix/version.py b/pyzabbix/version.py index 9910ac2..f0be139 100644 --- a/pyzabbix/version.py +++ b/pyzabbix/version.py @@ -1 +1 @@ -__version__ = '1.1.7' +__version__ = '1.1.8'