1
0
mirror of https://github.com/rancher/os.git synced 2025-06-27 07:16:48 +00:00
os/cmd/network/network.go

55 lines
1.3 KiB
Go
Raw Normal View History

2015-03-02 23:03:21 +00:00
package network
import (
"fmt"
"os"
"os/exec"
2015-03-02 23:03:21 +00:00
log "github.com/Sirupsen/logrus"
"github.com/docker/libnetwork/resolvconf"
2015-07-29 07:45:06 +00:00
"github.com/rancher/netconf"
"github.com/rancher/os/cmd/cloudinit"
"github.com/rancher/os/config"
2015-03-02 23:03:21 +00:00
)
const (
NETWORK_DONE = "/var/run/network.done"
WAIT_FOR_NETWORK = "wait-for-network"
)
func sendTerm(proc string) {
cmd := exec.Command("killall", "-TERM", proc)
cmd.Stderr = os.Stderr
cmd.Stdout = os.Stdout
cmd.Run()
}
2015-03-02 23:03:21 +00:00
func Main() {
args := os.Args
if len(args) > 1 {
fmt.Println("call " + args[0] + " to load network config from cloud-config.yml")
2015-03-02 23:03:21 +00:00
return
}
os.Remove(NETWORK_DONE) // ignore error
2015-03-02 23:03:21 +00:00
cfg, err := config.LoadConfig()
if err != nil {
log.Fatal(err)
}
cloudinit.SetHostname(cfg) // ignore error
2015-07-29 07:45:06 +00:00
if err := netconf.ApplyNetworkConfigs(&cfg.Rancher.Network); err != nil {
log.Error(err)
}
if cfg.Rancher.Network.Dns.Override {
log.WithFields(log.Fields{"nameservers": cfg.Rancher.Network.Dns.Nameservers}).Info("Override nameservers")
if err := resolvconf.Build("/etc/resolv.conf", cfg.Rancher.Network.Dns.Nameservers, cfg.Rancher.Network.Dns.Search); err != nil {
log.Error(err)
}
2015-03-02 23:03:21 +00:00
}
if _, err := os.Create(NETWORK_DONE); err != nil {
log.Error(err)
}
sendTerm(WAIT_FOR_NETWORK)
select {}
2015-03-02 23:03:21 +00:00
}