( w http.ResponseWriter, req *http.Request)
| 384 | } |
| 385 | |
| 386 | func (qss *QuerySupervisorDetails) ServeHTTP( |
| 387 | w http.ResponseWriter, req *http.Request) { |
| 388 | indexName := rest.RequestVariableLookup(req, "indexName") |
| 389 | queryParams := req.URL.Query() |
| 390 | params := queryParams.Get("longerThan") |
| 391 | var rv *responseData |
| 392 | var longerThan time.Duration |
| 393 | |
| 394 | if len(params) > 1 { |
| 395 | duration, err := time.ParseDuration(params) |
| 396 | if err != nil { |
| 397 | rest.ShowError(w, nil, |
| 398 | fmt.Sprintf("query details: duration parse error, err: %v", err), |
| 399 | http.StatusBadRequest) |
| 400 | return |
| 401 | } |
| 402 | longerThan = duration |
| 403 | } |
| 404 | if req.Header.Get(rest.CLUSTER_ACTION) != "" { |
| 405 | queryMap, queryCount := querySupervisor.ListLongerThanWithQueryCount( |
| 406 | longerThan, indexName) |
| 407 | rv = &responseData{ |
| 408 | Status: "ok", |
| 409 | TotalActiveQueryCount: uint64(queryCount), |
| 410 | FilteredActiveQueries: filterQueryStats{ |
| 411 | IndexName: indexName, |
| 412 | LongerThan: params, |
| 413 | QueryCount: uint64(len(queryMap)), |
| 414 | QueryMap: qss.changeQueryMapFormat(queryMap), |
| 415 | }, |
| 416 | } |
| 417 | } else { |
| 418 | nodeDefs, err := qss.mgr.GetNodeDefs(cbgt.NODE_DEFS_WANTED, false) |
| 419 | if err != nil { |
| 420 | rest.ShowError(w, nil, fmt.Sprintf("query details: could not get"+ |
| 421 | " the node defintions, err: %v", err), |
| 422 | http.StatusInternalServerError) |
| 423 | return |
| 424 | } |
| 425 | if nodeDefs == nil { |
| 426 | rest.ShowError(w, nil, fmt.Sprintf("query details: empty node"+ |
| 427 | " definitions"), http.StatusInternalServerError) |
| 428 | } |
| 429 | |
| 430 | responses, errs := qss.getSupervisorMaps(nodeDefs, indexName, params) |
| 431 | if len(responses) == 0 { |
| 432 | errStats, err := MarshalJSON(responseStats{ |
| 433 | Total: len(errs), |
| 434 | Failed: len(errs), |
| 435 | Error: errs, |
| 436 | }) |
| 437 | if err != nil { |
| 438 | rest.ShowError(w, nil, fmt.Sprintf("query details: failed to"+ |
| 439 | " marshal response stats info, err: %s", err), |
| 440 | http.StatusInternalServerError) |
| 441 | return |
| 442 | } |
| 443 | rest.ShowError(w, nil, |
nothing calls this directly
no test coverage detected