func ApplyServices(vm *hypervisor.Vm, container string, services []pod.UserService) error { // Update lo ip addresses var command []string oldServices, err := GetServices(vm, container) if err != nil { return err } err = UpdateLoopbackAddress(vm, container, oldServices, services) if err != nil { return err } // Update haproxy config config := path.Join(ServiceVolume, ServiceConfig) vm.WriteFile(container, config, GenerateServiceConfig(services)) command = append(command, "sh") command = append(command, "-c") command = append(command, "haproxy -f /usr/local/etc/haproxy/haproxy.cfg -p /var/run/haproxy.pid -sf `cat /var/run/haproxy.pid`") execcmd, err := json.Marshal(command) if err != nil { return err } return vm.Exec(nil, nil, string(execcmd), "", container) }
func ApplyServices(vm *hypervisor.Vm, container string, services []pod.UserService) error { // Update lo ip addresses oldServices, err := GetServices(vm, container) if err != nil { return err } err = UpdateLoopbackAddress(vm, container, oldServices, services) if err != nil { return err } // Update haproxy config config := path.Join(ServiceVolume, ServiceConfig) vm.WriteFile(container, config, GenerateServiceConfig(services)) return vm.KillContainer(container, linuxsignal.SIGHUP) }
func ApplyServices(vm *hypervisor.Vm, container string, services []pod.UserService) error { // Update lo ip addresses var command []string oldServices, err := GetServices(vm, container) if err != nil { return err } err = UpdateLoopbackAddress(vm, container, oldServices, services) if err != nil { return err } // Update haproxy config config := path.Join(ServiceVolume, ServiceConfig) vm.WriteFile(container, config, GenerateServiceConfig(services)) command = append(command, "sh") command = append(command, "-c") command = append(command, "haproxy -f /usr/local/etc/haproxy/haproxy.cfg -p /var/run/haproxy.pid -sf `cat /var/run/haproxy.pid`") execcmd, err := json.Marshal(command) if err != nil { return err } tty := &hypervisor.TtyIO{ Callback: make(chan *types.VmResponse, 1), ClientTag: pod.RandStr(8, "alphanum"), } if err := vm.Exec(tty, container, string(execcmd)); err != nil { return err } if tty.ExitCode != 0 { return fmt.Errorf("exec %s on container %s failed with exit code %d", command, container, tty.ExitCode) } return nil }