func ovs_connect() (*libovsdb.OvsdbClient, error) { quit = make(chan bool) update = make(chan *libovsdb.TableUpdates) cache = make(map[string]map[string]libovsdb.Row) // By default libovsdb connects to 127.0.0.0:6400. var ovs *libovsdb.OvsdbClient var err error for { ovs, err = libovsdb.Connect("", 0) if err != nil { log.Errorf("Error(%s) connecting to OVS. Retrying...", err.Error()) time.Sleep(time.Second * 2) continue } break } var notifier Notifier ovs.Register(notifier) initial, _ := ovs.MonitorAll("Open_vSwitch", "") populateCache(*initial) go monitorDockerBridge(ovs) for getRootUuid() == "" { time.Sleep(time.Second * 1) } log.Debug("Connected to OVS...") return ovs, nil }
func main() { quit = make(chan bool) update = make(chan *libovsdb.TableUpdates) cache = make(map[string]map[string]libovsdb.Row) // By default libovsdb connects to 127.0.0.0:6400. ovs, err := libovsdb.Connect("", 0) // If you prefer to connect to OVS in a specific location : // ovs, err := libovsdb.Connect("192.168.56.101", 6640) if err != nil { fmt.Println("Unable to Connect ", err) os.Exit(1) } var notifier Notifier ovs.Register(notifier) initial, _ := ovs.MonitorAll("Open_vSwitch", "") populateCache(*initial) fmt.Println(`Silly game of stopping this app when a Bridge with name "stop" is monitored !`) go play(ovs) <-quit }