]> granicus.if.org Git - icinga2/commitdiff
Enhance error handling in config stages handler
authorMichael Friedrich <michael.friedrich@icinga.com>
Thu, 5 Apr 2018 15:17:30 +0000 (17:17 +0200)
committerMichael Friedrich <michael.friedrich@icinga.com>
Thu, 5 Apr 2018 15:17:30 +0000 (17:17 +0200)
lib/remote/configstageshandler.cpp

index c564a8a77a800f2b7c18bd5fa795f3fdc1ba8891..32d56e39e964fc0dbb802fc21f625e01284a18dd 100644 (file)
@@ -59,10 +59,10 @@ void ConfigStagesHandler::HandleGet(const ApiUser::Ptr& user, HttpRequest& reque
        String stageName = HttpUtility::GetLastParameter(params, "stage");
 
        if (!ConfigPackageUtility::ValidateName(packageName))
-               return HttpUtility::SendJsonError(response, params, 400, "Invalid package name.");
+               return HttpUtility::SendJsonError(response, params, 400, "Invalid package name '" + packageName + "'.");
 
        if (!ConfigPackageUtility::ValidateName(stageName))
-               return HttpUtility::SendJsonError(response, params, 400, "Invalid stage name.");
+               return HttpUtility::SendJsonError(response, params, 400, "Invalid stage name '" + stageName + "'.");
 
        ArrayData results;
 
@@ -95,7 +95,7 @@ void ConfigStagesHandler::HandlePost(const ApiUser::Ptr& user, HttpRequest& requ
        String packageName = HttpUtility::GetLastParameter(params, "package");
 
        if (!ConfigPackageUtility::ValidateName(packageName))
-               return HttpUtility::SendJsonError(response, params, 400, "Invalid package name.");
+               return HttpUtility::SendJsonError(response, params, 400, "Invalid package name '" + packageName + "'.");
 
        bool reload = true;
        if (params->Contains("reload"))
@@ -116,8 +116,8 @@ void ConfigStagesHandler::HandlePost(const ApiUser::Ptr& user, HttpRequest& requ
                ConfigPackageUtility::AsyncTryActivateStage(packageName, stageName, reload);
        } catch (const std::exception& ex) {
                return HttpUtility::SendJsonError(response, params, 500,
-                               "Stage creation failed.",
-                               HttpUtility::GetLastParameter(params, "verboseErrors") ? DiagnosticInformation(ex) : "");
+                       "Stage creation failed for '" + stageName + "'.",
+                       DiagnosticInformation(ex, false));
        }
 
 
@@ -153,17 +153,17 @@ void ConfigStagesHandler::HandleDelete(const ApiUser::Ptr& user, HttpRequest& re
        String stageName = HttpUtility::GetLastParameter(params, "stage");
 
        if (!ConfigPackageUtility::ValidateName(packageName))
-               return HttpUtility::SendJsonError(response, params, 400, "Invalid package name.");
+               return HttpUtility::SendJsonError(response, params, 400, "Invalid package name '" + packageName + "'.");
 
        if (!ConfigPackageUtility::ValidateName(stageName))
-               return HttpUtility::SendJsonError(response, params, 400, "Invalid stage name.");
+               return HttpUtility::SendJsonError(response, params, 400, "Invalid stage name '" + stageName + "'.");
 
        try {
                ConfigPackageUtility::DeleteStage(packageName, stageName);
        } catch (const std::exception& ex) {
                return HttpUtility::SendJsonError(response, params, 500,
-                       "Failed to delete stage.",
-                       HttpUtility::GetLastParameter(params, "verboseErrors") ? DiagnosticInformation(ex) : "");
+                       "Failed to delete stage '" + stageName + "' in package '" + packageName + "'.",
+                       DiagnosticInformation(ex, false));
        }
 
        Dictionary::Ptr result1 = new Dictionary({