element/proxy/frontend.go

50 lines
923 B
Go
Raw Normal View History

package proxy
import "github.com/sirupsen/logrus"
func (p *Proxy) AddFrontend(f *Frontend) error {
p.m.Lock()
defer p.m.Unlock()
if _, ok := p.config.Frontends[f.Name]; ok {
return ErrFrontendExists
}
p.config.Frontends[f.Name] = f
logrus.WithFields(logrus.Fields{
"name": f.Name,
"hosts": f.Hosts,
}).Debug("frontend added")
return nil
}
func (p *Proxy) RemoveFrontend(name string) error {
p.m.Lock()
defer p.m.Unlock()
if _, ok := p.config.Frontends[name]; ok {
delete(p.config.Frontends, name)
logrus.WithFields(logrus.Fields{
"name": name,
}).Debug("frontend removed")
}
return nil
}
func (p *Proxy) UpdateFrontend(f *Frontend) error {
p.m.Lock()
defer p.m.Unlock()
if _, ok := p.config.Frontends[f.Name]; !ok {
return ErrFrontendDoesNotExist
}
p.config.Frontends[f.Name] = f
logrus.WithFields(logrus.Fields{
"name": f.Name,
}).Debug("frontend updated")
return nil
}