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 }