Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Zabbix 7 compatibility, rewrite API code #81

Merged
merged 17 commits into from
Sep 3, 2024
Merged

Add Zabbix 7 compatibility, rewrite API code #81

merged 17 commits into from
Sep 3, 2024

Conversation

pederhan
Copy link
Member

This PR consolidates all changes targeting Zabbix 7, as well as refactoring of old code. A bit of a spring (summer) cleaning before Zabbix 7.

pederhan and others added 12 commits May 14, 2024 09:48
* Add Zabbix 7.0 compatibility

* Add Host model comments

* Add missing type annotations to __init__ .py

* Fix state manager mypy issues

* Refactor failsafe OK file checking, add test

* Add type annotations to __init__

* Refactor process initialization

* Refactor hanging process handling

* Ignore missing mypy stubs in import

* Extract failsafe functions, add tests

* Fix zabbix_tags2zac_tags, add types

* Fix StateManager mypy stub hack

* Add type annotations for all processing.py methods

* Improve state.State comments+docstrings

* Refactor host modifier/source collector loading

* Refactor failsafe checking

Moves everything into failsafe.py module.

This allows us to test the failsafe checking more thoroughly.

* Fix incorrect variable usage

* Refactor DB host retrieval in `ZabbixUpdater`

* Fix broken tests

* Add check_failsafe tests

* Fix incorrect variable name
* Remove disabled hosts from maintenance

* Add periodic maintenance cleanup

* Add map_dir fixtures

* Add config options

* Fix mocks, use fixture

* Rewrite API internals with Pydantic

* Fix tests

* Fix and improve JSON serialization

* Fix changelog headers

* Add API param building functions

* Fix `set_hostgroups` not being able to remove groups

* Add read-only mode for ZabbixAPI

Activated during dryruns.

* Fix `ParamsType` docstring

* Document new config options in changelog

* Update changelog

* Add Py3.12 trove classifier

* Update sample config

* Fix ZabbixAPI method docstring tense

* README: update supported versions

* Create required host groups on startup

* README: fix JSON example

* README: Make host modifier example more relevant

* Update changelog

* Add notes on running source collectors standalone

* Warn if no proxies

* Remove redundant bool cast

* Use absolute import

* Use absolute imports

* Sort host groups when logging new and old

* Add note regarding Source Handler update interval

* Change "replaced" to "updated" for source hosts

* Remove trigger support in GC

* Remove validation of request params

* Add support for mysterious host.status==3

* Fix missing assignments in SignalHandler.__init__

* Fix missing parameter type annotation

* Move warning next to statement that caused it

* Add py.typed marker file

* Update README, run GC every 24h
@pederhan pederhan changed the title Zabbix 7 compatibility + refactoring Add Zabbix 7 compatibility, rewrite API code Aug 15, 2024
@pederhan pederhan marked this pull request as ready for review August 15, 2024 09:10
@pederhan
Copy link
Member Author

Verified to work on Zabbix 7.0.3.

@pederhan pederhan merged commit 9970416 into master Sep 3, 2024
6 checks passed
@pederhan pederhan deleted the zabbix-7 branch September 3, 2024 08:06
This was referenced Sep 3, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant