Check content when cmd failed
Signed-off-by: Tang Le <at28997146@163.com>
This commit is contained in:
parent
e26efd0b08
commit
c0f0cb2ff7
3 changed files with 16 additions and 19 deletions
|
@ -349,7 +349,7 @@ func (n *NGINXController) OnUpdate(ingressCfg ingress.Configuration) ([]byte, er
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return n.t.Write(config.TemplateConfig{
|
content, err := n.t.Write(config.TemplateConfig{
|
||||||
ProxySetHeaders: setHeaders,
|
ProxySetHeaders: setHeaders,
|
||||||
MaxOpenFiles: maxOpenFiles,
|
MaxOpenFiles: maxOpenFiles,
|
||||||
BacklogSize: sysctlSomaxconn(),
|
BacklogSize: sysctlSomaxconn(),
|
||||||
|
@ -361,7 +361,16 @@ func (n *NGINXController) OnUpdate(ingressCfg ingress.Configuration) ([]byte, er
|
||||||
HealthzURI: ngxHealthPath,
|
HealthzURI: ngxHealthPath,
|
||||||
CustomErrors: len(cfg.CustomHTTPErrors) > 0,
|
CustomErrors: len(cfg.CustomHTTPErrors) > 0,
|
||||||
Cfg: cfg,
|
Cfg: cfg,
|
||||||
}, n.testTemplate)
|
})
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := n.testTemplate(content); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
return content, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// Name returns the healthcheck name
|
// Name returns the healthcheck name
|
||||||
|
|
|
@ -78,7 +78,7 @@ func (t *Template) Close() {
|
||||||
|
|
||||||
// Write populates a buffer using a template with NGINX configuration
|
// Write populates a buffer using a template with NGINX configuration
|
||||||
// and the servers and upstreams created by Ingress rules
|
// and the servers and upstreams created by Ingress rules
|
||||||
func (t *Template) Write(conf config.TemplateConfig, isValidTemplate func([]byte) error) ([]byte, error) {
|
func (t *Template) Write(conf config.TemplateConfig) ([]byte, error) {
|
||||||
defer t.tmplBuf.Reset()
|
defer t.tmplBuf.Reset()
|
||||||
defer t.outCmdBuf.Reset()
|
defer t.outCmdBuf.Reset()
|
||||||
|
|
||||||
|
@ -111,22 +111,10 @@ func (t *Template) Write(conf config.TemplateConfig, isValidTemplate func([]byte
|
||||||
cmd.Stdout = t.outCmdBuf
|
cmd.Stdout = t.outCmdBuf
|
||||||
if err := cmd.Run(); err != nil {
|
if err := cmd.Run(); err != nil {
|
||||||
glog.Warningf("unexpected error cleaning template: %v", err)
|
glog.Warningf("unexpected error cleaning template: %v", err)
|
||||||
content := t.tmplBuf.Bytes()
|
return t.tmplBuf.Bytes(), nil
|
||||||
err = isValidTemplate(content)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
return content, nil
|
|
||||||
}
|
}
|
||||||
|
|
||||||
content := t.outCmdBuf.Bytes()
|
return t.outCmdBuf.Bytes(), nil
|
||||||
err = isValidTemplate(content)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
return content, nil
|
|
||||||
}
|
}
|
||||||
|
|
||||||
var (
|
var (
|
||||||
|
|
|
@ -132,7 +132,7 @@ func TestTemplateWithData(t *testing.T) {
|
||||||
t.Errorf("invalid NGINX template: %v", err)
|
t.Errorf("invalid NGINX template: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
_, err = ngxTpl.Write(dat, func(b []byte) error { return nil })
|
_, err = ngxTpl.Write(dat)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Errorf("invalid NGINX template: %v", err)
|
t.Errorf("invalid NGINX template: %v", err)
|
||||||
}
|
}
|
||||||
|
@ -166,6 +166,6 @@ func BenchmarkTemplateWithData(b *testing.B) {
|
||||||
}
|
}
|
||||||
|
|
||||||
for i := 0; i < b.N; i++ {
|
for i := 0; i < b.N; i++ {
|
||||||
ngxTpl.Write(dat, func(b []byte) error { return nil })
|
ngxTpl.Write(dat)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue