Title: host_config: set start field as nullable
Class: fix
Compatible: compat
Component: rest-api
Date: 1695887849
Edition: cre
Knowledge: doc
Level: 1
Version: 2.3.0b1
This werk addresses a small issue with our host_config response schema. We
in some cases return a null value for the start field in network_scan_result.
This violates the response schema. To fix this, we set the schema field
to allow_none.
Title: group_config: bulk updating requires the attributes field
Class: fix
Compatible: incomp
Component: rest-api
Date: 1695918830
Edition: cre
Knowledge: doc
Level: 1
Version: 2.3.0b1
This werk addressses an issue discovered by our QA team. When doing a bulk
update on any of the following REST-API domains, this caused an error
when you didn't provide the attributes field.
host_group_config
service_group_config
contact_group_config
This fix means that the attribute for bulk updating is now a required field.
Title: host_config: bulk delete hosts requires at least 1 entry
Class: fix
Compatible: compat
Component: rest-api
Date: 1696225078
Edition: cre
Knowledge: doc
Level: 1
Version: 2.3.0b1
This werk addresses an issue found by our QA team when bulk deleting hosts
via the following endpoint.
/domain-types/host_config/actions/bulk-delete/invoke
The body for this endpoint requires that the entries fields is given a
list of host names that the client wants to delete. However, when
passing in an empty list, this was causing problems. To get around
this, we've set a mininum value of items for the entries field to 1.
Title: notifications: adjust regex pattern
Class: fix
Compatible: compat
Component: rest-api
Date: 1695917741
Edition: cre
Knowledge: doc
Level: 1
Version: 2.3.0b1
This werk addresses an issues found by the QA team with regards to
the regex pattern we use to match valid PushOverPlugin api_keys
and also the user group key. Previously we used
[a-zA-Z0-9]{30}
which will match any string that has 30 or more characters and
numbers. This is partial match.
We now do the following
^[a-zA-Z0-9]{30,40}$
which will match the whole string. We only allow characters
and numbers with the whole string having to be of length min
30 and max 40 characters.
Title: Refer to a time period by its name instead of its alias in the REST API
Class: fix
Compatible: incomp
Component: rest-api
Date: 1696245234
Edition: cre
Knowledge: doc
Level: 1
Version: 2.3.0b1
Before this Werk, a time period to be excluded was referred to by its alias and not its name. This Werk changes that behaviour and now time periods to exclude must be referred to by their name.
Also, the retrieval of a time period now returns time periods names in the exclude field. To integrate this change, the user must fill in the exclude field with the name of the time periods instead of their alias.
Affected endpoints
* creation
* update
* retrieval
Title: SNMPv3 authentication protocol selection in host
Class: fix
Compatible: compat
Component: wato
Date: 1696429191
Edition: cre
Knowledge: doc
Level: 1
Version: 2.1.0p35
In the authentication protocol selection in the host connection test the following settings were not
correctly passed to the backend: SHA-224, SHA-256, SHA-384, SHA-512.
Title: postgres_processes: Restore Monitoring if Instance Name is Missing
Class: fix
Compatible: compat
Component: checks
Date: 1695383436
Edition: cre
Knowledge: doc
Level: 1
Version: 2.3.0b1
As of version 2.1.0p30 and 2.2.0p4, it was no longer possible to use the plugin postgres_instances,
if the instance name was empty, i.e. ``. In previous versions, this plugin would show a service with
the item `PostgreSQL Instance `. This service would be OK, if there was at least one process
belonging to any postgres instance, and CRIT otherwise.
With this Werk, the plugin postgres_instances no longer crashes, if there is an empty instance name.
The old service `PostgreSQL Instance ` is no longer discovered. Instead the new check plugin
postgres_processes can be used.
Title: postgres: Fix Internal error: 'NoneType' object has no attribute 'value_to_json_safe'
Class: fix
Compatible: compat
Component: wato
Date: 1695631092
Edition: cee
Knowledge: doc
Level: 1
Version: 2.3.0b1
In Werk 16016, an incompatible change to rule `PostgreSQL database and sessions (Linux, Windows)`
was introduced. This Werk caused multiple regression bugs, particularly affecting users with
existing rulesets.
If a user upgraded to 2.1.0p33 and had an existing rule `PostgreSQL database and sessions (Linux,
Windows)`, then the would see the following error during upgrade:
C+:
- ERROR: Failed to transform rule: (Ruleset: agent_config:mk_postgres, ...}}:
C-:
Moreover, if users tried to address the issue by editing the rule, then the following error was
shown:
C+:
Internal error: 'NoneType' object has no attribute 'value_to_json_safe'
C-:
With this Werk, the configuration is automatically migrated to the new format and the errors should
no longer occur. Users, whom upgraded to 2.2.0p8 were not affected by this problem.
If a user updated the agent plugin `mk_postgres.py` with means other than the bakery, then they
would encounter the following error while executing `mk_postgres.py`:
C+:
ValueError: not enough values to unpack (expected 4, got 3)
C-:
This error could be addressed by adopting the postgres.cfg in the ways described by Werk 16016.
However, if the environment file was called `.env`, then another error might occur:
C+:
ValueError: Instance name can not be inferred from .env file, instance name should be specified explicitly
C-:
With this Werk, these errors no longer occur. Both, old configuration files and configuration files
where the instance name is empty, are considered to be valid. The absence of an instance name is
handled in the same way it was handled before Werk 16016.
Note, that an empty instance is still a mistake. If you are affected by any of the two errors above,
it is recommended to migrate to the configuration format and to specify a non-empty instance name
explicitely. For example, let's assume your configuration file contains this line:
C+:
INSTANCE=/home/postgres/db1.env:USER_NAME:/PATH/TO/.pgpass
C-:
Then, you can find the instance name by taking the environment file path (`/home/postgres/db1.env`),
removing the directory (`db1.env`), and removing everything after the `.` (`db1`). Thus, the new
format is equivalent to:
C+:
INSTANCE=/home/postgres/db1.env:USER_NAME:/PATH/TO/.pgpass:db1
C-:
Sometimes, this may fail if your instance name is empty. For example,
C+:
INSTANCE=/home/postgres/.env:USER_NAME:/PATH/TO/.pgpass
C-:
would result in
C+:
INSTANCE=/home/postgres/.env:USER_NAME:/PATH/TO/.pgpass:
C-:
With this version of `mk_postgres.py` this configuration is allowed again, but it is not
recommended. You view your instances, by creating a `psql` session and using the command
C+:
postgres-# \l
C-:
Additionally, Werk 15644 fixes the crash of the postgres_instances check.
Title: Prevent notification in alert handler when notifications are disabled
Class: fix
Compatible: compat
Component: core
Date: 1696417057
Edition: cre
Knowledge: doc
Level: 1
Version: 2.3.0b1
Previously, the alert handler would send notifications even if they were
disabled through the master control.
This issue has been resolved.
Title: Change default number of host/service columns to 1
Class: feature
Compatible: compat
Component: multisite
Date: 1696411300
Edition: cre
Knowledge: undoc
Level: 1
Version: 2.3.0b1
To improve our users' overview on builtin views, the default number of host/service columns is changed from 3 to 1.
Also, the according display option "Number of columns" is renamed to "Entries per row".