profiler: Download API returns error when all nodes fail (#6525)

When download profiling data API fails to gather profiling data
from all nodes for any reason (including profiler not enabled),
return 400 http code with the appropriate json message.
This commit is contained in:
Anis Elleuch
2018-09-27 18:34:37 +01:00
committed by kannappanr
parent ed703c065d
commit 6c7c6bec91
2 changed files with 14 additions and 2 deletions
+8 -2
View File
@@ -355,8 +355,7 @@ func (a adminAPIHandlers) DownloadProfilingHandler(w http.ResponseWriter, r *htt
return
}
// Return 200 OK
w.WriteHeader(http.StatusOK)
profilingDataFound := false
// Initialize a zip writer which will provide a zipped content
// of profiling data of all nodes
@@ -371,6 +370,8 @@ func (a adminAPIHandlers) DownloadProfilingHandler(w http.ResponseWriter, r *htt
continue
}
profilingDataFound = true
// Send profiling data to zip as file
header, err := zip.FileInfoHeader(dummyFileInfo{
name: fmt.Sprintf("profiling-%d", i),
@@ -391,6 +392,11 @@ func (a adminAPIHandlers) DownloadProfilingHandler(w http.ResponseWriter, r *htt
return
}
}
if !profilingDataFound {
writeErrorResponseJSON(w, ErrAdminProfilerNotEnabled, r.URL)
return
}
}
// extractHealInitParams - Validates params for heal init API.