]> granicus.if.org Git - icinga2/commitdiff
API: Fix that schedule-downtime action requires duration for fixed=true
authorMichael Friedrich <michael.friedrich@netways.de>
Tue, 16 Aug 2016 15:08:41 +0000 (17:08 +0200)
committerMichael Friedrich <michael.friedrich@netways.de>
Tue, 16 Aug 2016 15:09:25 +0000 (17:09 +0200)
fixes #12454

lib/icinga/apiactions.cpp

index 69d687c3fc4c7dd2dc7dfc7c2da8a3a0d7135ccc..e17ef8bb55fa0d2107c29a3d5ad2c99d0455e6ac 100644 (file)
@@ -303,16 +303,18 @@ Dictionary::Ptr ApiActions::ScheduleDowntime(const ConfigObject::Ptr& object,
                return ApiActions::CreateResult(404, "Can't schedule downtime for non-existent object.");
 
        if (!params->Contains("start_time") || !params->Contains("end_time") ||
-           !params->Contains("duration") || !params->Contains("author") ||
-           !params->Contains("comment")) {
+           !params->Contains("author") || !params->Contains("comment")) {
 
-               return ApiActions::CreateResult(404, "Options 'start_time', 'end_time', 'duration', 'author' and 'comment' are required");
+               return ApiActions::CreateResult(404, "Options 'start_time', 'end_time', 'author' and 'comment' are required");
        }
 
        bool fixed = true;
        if (params->Contains("fixed"))
                fixed = HttpUtility::GetLastParameter(params, "fixed");
 
+       if (!fixed && !params->Contains("duration"))
+               return ApiActions::CreateResult(404, "Option 'duration' is required for flexible downtime");
+
        String downtimeName = Downtime::AddDowntime(checkable,
            HttpUtility::GetLastParameter(params, "author"),
            HttpUtility::GetLastParameter(params, "comment"),