element/proxy/config.go

50 lines
896 B
Go

package proxy
import (
"bytes"
"text/template"
"github.com/sirupsen/logrus"
)
type Config struct {
ID string
Frontends map[string]*Frontend `json:"frontends,omitempty"`
}
type Frontend struct {
Name string `json:"name"`
Hosts []string `json:"hosts,omitempty"`
Backend *Backend `json:"backend,omitempty"`
}
type Backend struct {
Path string `json:"path"`
Upstreams []string `json:"upstreams,omitempty"`
}
func (c *Config) Body() []byte {
t := template.New("proxy")
tmpl, err := t.Parse(configTemplate)
if err != nil {
logrus.Errorf("error parsing proxy template: %s", err)
return nil
}
var b bytes.Buffer
if err := tmpl.Execute(&b, c); err != nil {
logrus.Errorf("error executing proxy template: %s", err)
return nil
}
return b.Bytes()
}
func (c *Config) Path() string {
return ""
}
func (c *Config) ServerType() string {
return "http"
}