diff --git a/keep/api/models/db/mapping.py b/keep/api/models/db/mapping.py index 2f0e0ab79c..64970c75ab 100644 --- a/keep/api/models/db/mapping.py +++ b/keep/api/models/db/mapping.py @@ -60,8 +60,8 @@ class MappingRuleDtoOut(MappRuleDtoBase, extra="ignore"): class MappingRuleDtoIn(MappRuleDtoBase): rows: Optional[list[dict]] = None - @validator("type", pre=True, always=True) - def validate_type(cls, _type, values): - if _type == "csv" and not values.get("rows"): + @validator("rows", pre=True, always=True) + def validate_rows(cls, rows, values): + if not rows and values.get("type") == "csv": raise ValueError("Mapping of type CSV cannot have empty rows") - return _type + return rows diff --git a/keep/providers/zabbix_provider/zabbix_provider.py b/keep/providers/zabbix_provider/zabbix_provider.py index 5b00a3977f..10caa2d4ad 100644 --- a/keep/providers/zabbix_provider/zabbix_provider.py +++ b/keep/providers/zabbix_provider/zabbix_provider.py @@ -335,9 +335,26 @@ def __send_request(self, method: str, params: dict = None): response = requests.post(url, json=data, headers=headers) - response.raise_for_status() + try: + response.raise_for_status() + except requests.HTTPError: + self.logger.exception( + "Error while sending request to Zabbix API", + extra={ + "response": response.text, + "tenant_id": self.context_manager.tenant_id, + }, + ) + raise response_json = response.json() if "error" in response_json: + self.logger.error( + "Error while querying zabbix", + extra={ + "tenant_id": self.context_manager.tenant_id, + "response_json": response_json, + }, + ) raise ProviderMethodException(response_json.get("error", {}).get("data")) return response_json diff --git a/pyproject.toml b/pyproject.toml index d62fcacdbd..b5092e2862 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "keep" -version = "0.24.5" +version = "0.25.0" description = "Alerting. for developers, by developers." authors = ["Keep Alerting LTD"] readme = "README.md"