func TestNetworkCleanup(t *testing.T) { if os.Getuid() != 0 { msg := "Skipped test because it requires root privileges." log.Printf(msg) t.Skip(msg) } for i := 0; i < len(subnetArray); i++ { err := DeleteNetwork(fmt.Sprintf("Network-%d", i+1)) if err != nil { t.Error("Error Deleting Network", err) } } }
func TestNetworkInit(t *testing.T) { if os.Getuid() != 0 { msg := "Skipped test because it requires root privileges." log.Printf(msg) t.Skip(msg) } _, ipNet1, _ := net.ParseCIDR("192.168.1.0/24") _, ipNet2, _ := net.ParseCIDR("192.168.2.0/24") _, ipNet3, _ := net.ParseCIDR("192.168.3.0/24") _, ipNet4, _ := net.ParseCIDR("192.168.4.0/24") _, ipNet5, _ := net.ParseCIDR("192.168.5.0/24") subnetArray = []*net.IPNet{ipNet1, ipNet2, ipNet3, ipNet4, ipNet5} }
func TestNetworkCreate(t *testing.T) { if os.Getuid() != 0 { msg := "Skipped test because it requires root privileges." log.Printf(msg) t.Skip(msg) } for i := 0; i < len(subnetArray); i++ { network, err := CreateNetwork(fmt.Sprintf("Network-%d", i+1), subnetArray[i]) if err != nil { t.Error("Error Creating network ", err) } fmt.Println("Network Created Successfully", network) } }
func TestGetNetwork(t *testing.T) { if os.Getuid() != 0 { msg := "Skipped test because it requires root privileges." log.Printf(msg) t.Skip(msg) } for i := 0; i < len(subnetArray); i++ { network, _ := GetNetwork(fmt.Sprintf("Network-%d", i+1)) if network == nil { t.Error("Error GetNetwork") } else if network.Subnet != subnetArray[i].String() { t.Error("Network mismatch") } fmt.Println("GetNetwork : ", network) } }
func (d *Daemon) Run(ctx *cli.Context) { if isDebugEnabled(ctx) { log.SetLevel(log.DebugLevel) } d.bootstrapNode = isBootstrapNode(ctx) if err := os.Mkdir("/var/run/netns", 0777); err != nil { fmt.Println("mkdir /var/run/netns failed", err) } go ServeAPI(d) go func() { var bindInterface string if ctx.String("iface") != "auto" { bindInterface = ctx.String("iface") } else { intf := d.identifyInterfaceToBind() if intf != nil { bindInterface = intf.Name } } if bindInterface != "" { log.Printf("Binding to %s", bindInterface) d.clusterListener = bindInterface } else { log.Errorf("Unable to identify any Interface to Bind to. Going with Defaults") } InitDatastore(bindInterface, d.bootstrapNode) Bonjour(bindInterface) if !d.bootstrapNode { d.serialChan <- true } }() go ClusterRPCHandler(d) go func() { if !d.bootstrapNode { log.Printf("Non-Bootstrap node waiting on peer discovery") <-d.serialChan log.Printf("Non-Bootstrap node admitted into cluster") } err := CreateBridge() if err != nil { log.Error(err.Error) } d.populateConnections() _, err = CreateDefaultNetwork() if err != nil { log.Error(err.Error) } }() go ConnectionRPCHandler(d) c := make(chan os.Signal, 1) signal.Notify(c, os.Interrupt) go func() { for _ = range c { os.Exit(0) } }() select {} }