func (v *VirtualHost) Remove(svc *Service) { v.Lock() defer v.Unlock() found := -1 for i, s := range v.services { if s.Name == svc.Name { found = i break } } if found < 0 { log.Debugf("DEBUG: Service %s not found under VirtualHost %s", svc.Name, v.Name) return } // safe way to get the backends info for logging svcCfg := svc.Config() // Now removing this Service for _, backend := range svcCfg.Backends { log.Printf("INFO: Removing backend http://%s from VirtualHost %s", backend.Addr, v.Name) } v.services = append(v.services[:found], v.services[found+1:]...) }
func main() { if debug { log.DefaultLogger.Level = log.DEBUG } if version { println(buildVersion) return } log.Printf("INFO: Starting shuttle %s", buildVersion) loadConfig() var wg sync.WaitGroup wg.Add(1) go startAdminHTTPServer(&wg) if httpAddr != "" { wg.Add(1) go startHTTPServer(&wg) } if httpsAddr != "" { wg.Add(1) go startHTTPSServer(&wg) } wg.Wait() }
// Insert a service // do nothing if the service already is registered func (v *VirtualHost) Add(svc *Service) { v.Lock() defer v.Unlock() for _, s := range v.services { if s.Name == svc.Name { log.Debugf("DEBUG: Service %s already registered in VirtualHost %s", svc.Name, v.Name) return } } // TODO: is this the best place to log these? svcCfg := svc.Config() for _, backend := range svcCfg.Backends { log.Printf("INFO: Adding backend http://%s to VirtualHost %s", backend.Addr, v.Name) } v.services = append(v.services, svc) }