in integration-test/webserver/main.go [44:82]
func HandleFlag(flagStr string) (int, map[string]interface{}) {
statusCode := 200
responseBody := make(map[string]interface{})
if flagStr == "" {
return statusCode, responseBody
}
flags := strings.Split(flagStr, "-")
statusCodeAndHealthStateFlags := []rune(flags[0])
// E.g '3' -> StatusCode: 300
statusCode = HandleStatusCodeFlag(string(statusCodeAndHealthStateFlags[0]))
// E.g '2h' -> StatusCode: 200, ResponseBody: { "ApplicationHealthState" : "Healthy" }
if healthStateOrTimeoutFlag := ApplicationHealthStateFlagPresent(flags); healthStateOrTimeoutFlag != "" {
switch healthStateOrTimeoutFlag {
case ResponseTimeoutFlag:
log.Printf("Sleeping for %d seconds", ResponseTimeoutInSeconds)
time.Sleep(ResponseTimeoutInSeconds * time.Second)
default:
key, value := HandleApplicationHealthStateFlag(healthStateOrTimeoutFlag)
responseBody[key] = value
}
}
// E.g '2h-valid' -> StatusCode: 200, ResponseBody: { "ApplicationHealthState" : "Healthy", "CustomMetrics": "<a raw json string>" }
if customMetricFlag := CustomMetricsFlagPresent(flags); customMetricFlag != "" {
key, value := HandleCustomMetricFlag(customMetricFlag)
responseBody[key] = value
}
if len(responseBody) == 0 {
log.Printf("Sending no response body with status code %v", statusCode)
} else {
log.Printf("Sending response body with status code %v: %v", statusCode, responseBody)
}
return statusCode, responseBody
}