Since Icinga 2.11.0 the schedule-downtime API supports the
all_services parameter. So far we've always sent a separate
request for scheduling service downtimes. As of Icinga 2.13.0,
these service downtimes are automatically removed when the host
downtimes are removed. Of course, this doesn't work if we don't
use the all_services parameter but send a separate request.
With this commit we set this parameter if the transport is API
and Icinga is equal to or greater than 2.11.0.
In addition, if child_options and all_services were previously set,
a request was sent per host and service. This is now also only a
single request if an API command transport is requested or only
API command transports are configured.
Icinga 2 v2.7.0 is more strict with the `expiry` attribute if sent
(cannot be null, or in the past).
While acknowledgments with expire time worked well (and do so with this patch),
the command renderer did not check whether the value is actually not null
before setting it into the data form. The boolean value from the checkbox is
not available in the command renderer unfortunately.
@lippserd: Verified working with and without expire time inside the Vagrant boxes.
fixes#2911
This only works when using the latest Icinga 2 snapshot packages. Before releasing Web 2.4.0, we have to include a check to only offer these commands when using Icinga 2 2.6.0+
refs #10774