Merge 36b20c355b
into de1a4c463c
This commit is contained in:
commit
0d526fdc25
3 changed files with 50 additions and 1 deletions
|
@ -69,5 +69,14 @@ func (n *NGINXController) Check(_ *http.Request) error {
|
|||
return fmt.Errorf("dynamic load balancer not started")
|
||||
}
|
||||
|
||||
statusCode, _, err = nginx.NewGetHealthzRequest(n.cfg.ListenPorts.HTTP, "/healthz")
|
||||
if err != nil {
|
||||
return fmt.Errorf("checking if default http port is responding: %w", err)
|
||||
}
|
||||
|
||||
if statusCode != 200 {
|
||||
return fmt.Errorf("default nginx http port not responding")
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
|
|
@ -44,6 +44,7 @@ func TestNginxCheck(t *testing.T) {
|
|||
t.Run(testName, func(t *testing.T) {
|
||||
mux := http.NewServeMux()
|
||||
|
||||
// Status server
|
||||
listener, err := tryListen("tcp", fmt.Sprintf(":%v", nginx.StatusPort))
|
||||
if err != nil {
|
||||
t.Fatalf("creating tcp listener: %s", err)
|
||||
|
@ -64,10 +65,31 @@ func TestNginxCheck(t *testing.T) {
|
|||
|
||||
n := &NGINXController{
|
||||
cfg: &Configuration{
|
||||
ListenPorts: &ngx_config.ListenPorts{},
|
||||
ListenPorts: &ngx_config.ListenPorts{
|
||||
HTTP: 80,
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
// http server
|
||||
httpListener, err := tryListen("tcp", fmt.Sprintf(":%v", n.cfg.ListenPorts.HTTP))
|
||||
if err != nil {
|
||||
t.Fatalf("creating tcp listener: %s", err)
|
||||
}
|
||||
defer httpListener.Close()
|
||||
|
||||
httpServer := &httptest.Server{
|
||||
Listener: httpListener,
|
||||
Config: &http.Server{
|
||||
Handler: http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
|
||||
w.WriteHeader(http.StatusOK)
|
||||
fmt.Fprintf(w, "ok")
|
||||
}),
|
||||
},
|
||||
}
|
||||
defer httpServer.Close()
|
||||
httpServer.Start()
|
||||
|
||||
t.Run("no pid or process", func(t *testing.T) {
|
||||
if err := callHealthz(true, tt.healthzPath, mux); err == nil {
|
||||
t.Error("expected an error but none returned")
|
||||
|
|
|
@ -80,6 +80,24 @@ func NewGetStatusRequest(path string) (statusCode int, data []byte, err error) {
|
|||
return res.StatusCode, data, nil
|
||||
}
|
||||
|
||||
func NewGetHealthzRequest(port int, path string) (int, []byte, error) {
|
||||
url := fmt.Sprintf("http://127.0.0.1:%v%v", port, path)
|
||||
|
||||
client := http.Client{}
|
||||
res, err := client.Get(url)
|
||||
if err != nil {
|
||||
return 0, nil, err
|
||||
}
|
||||
defer res.Body.Close()
|
||||
|
||||
data, err := io.ReadAll(res.Body)
|
||||
if err != nil {
|
||||
return 0, nil, err
|
||||
}
|
||||
|
||||
return res.StatusCode, data, nil
|
||||
}
|
||||
|
||||
// NewPostStatusRequest creates a new POST request to the internal NGINX status server
|
||||
func NewPostStatusRequest(path, contentType string, data interface{}) (statusCode int, body []byte, err error) {
|
||||
url := fmt.Sprintf("http://127.0.0.1:%v%v", StatusPort, path)
|
||||
|
|
Loading…
Reference in a new issue