mirror of
				https://github.com/optim-enterprises-bv/kubernetes.git
				synced 2025-10-31 02:08:13 +00:00 
			
		
		
		
	probe: add test case for redirect terminating cases
This commit is contained in:
		| @@ -129,11 +129,7 @@ func DoHTTPProbe(url *url.URL, headers http.Header, client GetHTTPInterface) (pr | ||||
| 	if res.StatusCode >= http.StatusOK && res.StatusCode < http.StatusBadRequest { | ||||
| 		if res.StatusCode >= http.StatusMultipleChoices { // Redirect | ||||
| 			klog.V(4).Infof("Probe terminated redirects for %s, Response: %v", url.String(), *res) | ||||
| 			// add some message in case body is empty when redirect is terminated | ||||
| 			if len(body) == 0 { | ||||
| 				return probe.Warning, "Probe terminated redirects", nil | ||||
| 			} | ||||
| 			return probe.Warning, body, nil | ||||
| 			return probe.Warning, fmt.Sprintf("Probe terminated redirects, Response body: %v", body), nil | ||||
| 		} | ||||
| 		klog.V(4).Infof("Probe succeeded for %s, Response: %v", url.String(), *res) | ||||
| 		return probe.Success, body, nil | ||||
|   | ||||
| @@ -139,6 +139,17 @@ func TestHTTPProbeChecker(t *testing.T) { | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| 	redirectHandlerWithBody := func(s int, body string) func(w http.ResponseWriter, r *http.Request) { | ||||
| 		return func(w http.ResponseWriter, r *http.Request) { | ||||
| 			if r.URL.Path == "/" { | ||||
| 				http.Redirect(w, r, "/new", s) | ||||
| 			} else if r.URL.Path == "/new" { | ||||
| 				w.WriteHeader(s) | ||||
| 				w.Write([]byte(body)) | ||||
| 			} | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| 	followNonLocalRedirects := true | ||||
| 	prober := New(followNonLocalRedirects) | ||||
| 	testCases := []struct { | ||||
| @@ -336,6 +347,16 @@ func TestHTTPProbeChecker(t *testing.T) { | ||||
| 			handler: redirectHandler(http.StatusPermanentRedirect, true), // 308 | ||||
| 			health:  probe.Failure, | ||||
| 		}, | ||||
| 		{ | ||||
| 			handler: redirectHandlerWithBody(http.StatusPermanentRedirect, ""), // redirect with empty body | ||||
| 			health:  probe.Warning, | ||||
| 			accBody: "Probe terminated redirects, Response body:", | ||||
| 		}, | ||||
| 		{ | ||||
| 			handler: redirectHandlerWithBody(http.StatusPermanentRedirect, "ok body"), // redirect with body | ||||
| 			health:  probe.Warning, | ||||
| 			accBody: "Probe terminated redirects, Response body: ok body", | ||||
| 		}, | ||||
| 	} | ||||
| 	for i, test := range testCases { | ||||
| 		t.Run(fmt.Sprintf("case-%2d", i), func(t *testing.T) { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Paco Xu
					Paco Xu