// ConnectUsingProtocol creates an OVSDB connection and returns and OvsdbClient func ConnectUsingProtocol(protocol string, target string) (*OvsdbClient, error) { conn, err := net.Dial(protocol, target) if err != nil { return nil, err } c := rpc2.NewClientWithCodec(jsonrpc.NewJSONCodec(conn)) c.Handle("echo", echo) c.Handle("update", update) go c.Run() go handleDisconnectNotification(c) ovs := newOvsdbClient(c) // Process Async Notifications dbs, err := ovs.ListDbs() if err == nil { for _, db := range dbs { schema, err := ovs.GetSchema(db) if err == nil { ovs.Schema[db] = *schema } else { return nil, err } } } return ovs, nil }
// Connect creates an OVSDB connection and returns and OvsdbClient func Connect(ipAddr string, port int) (*OvsdbClient, error) { if ipAddr == "" { ipAddr = DefaultAddress } if port <= 0 { port = DefaultPort } target := fmt.Sprintf("%s:%d", ipAddr, port) conn, err := net.Dial("tcp", target) if err != nil { return nil, err } c := rpc2.NewClientWithCodec(jsonrpc.NewJSONCodec(conn)) c.Handle("echo", echo) c.Handle("update", update) go c.Run() go handleDisconnectNotification(c) ovs := newOvsdbClient(c) // Process Async Notifications dbs, err := ovs.ListDbs() if err == nil { for _, db := range dbs { schema, err := ovs.GetSchema(db) if err == nil { ovs.Schema[db] = *schema } else { return nil, err } } } return ovs, nil }