2 * Copyright (C) 2014 EBay Software Foundation
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
8 * Authors : Ashwin Raveendran
10 package org.opendaylight.ovsdb.lib;
12 import static org.opendaylight.ovsdb.lib.operations.Operations.op;
14 import java.io.IOException;
15 import java.util.List;
17 import java.util.concurrent.ExecutionException;
18 import java.util.concurrent.ExecutorService;
19 import java.util.concurrent.Executors;
21 import junit.framework.Assert;
23 import org.junit.Test;
24 import org.opendaylight.ovsdb.lib.message.OvsdbRPC;
25 import org.opendaylight.ovsdb.lib.message.UpdateNotification;
26 import org.opendaylight.ovsdb.lib.operations.OperationResult;
27 import org.opendaylight.ovsdb.lib.schema.ColumnSchema;
28 import org.opendaylight.ovsdb.lib.schema.TableSchema;
29 import org.opendaylight.ovsdb.lib.schema.temp.Reference;
30 import org.slf4j.Logger;
31 import org.slf4j.LoggerFactory;
33 import com.google.common.util.concurrent.ListenableFuture;
35 public class OvsDBClientTestITTyped extends OvsdbTestBase {
37 Logger logger = LoggerFactory.getLogger(OvsDBClientTestITTyped.class);
40 static class Bridge extends TableSchema<Bridge> {
42 Bridge(String name, Map<String, ColumnSchema> columns) {
46 public ColumnSchema<Bridge, String> name() {
47 return column("name", String.class);
50 public ColumnSchema<Bridge, Integer> floodVlans() {
51 return column("flood_vlans", Integer.class);
54 public ColumnSchema<Bridge, String> status() {
55 return column("status", String.class);
58 public ColumnSchema<Bridge, Reference> netflow() {
59 return column("netflow", Reference.class);
65 public void test() throws IOException, InterruptedException, ExecutionException {
66 OvsDBClientImpl ovs = getVswitch();
68 Bridge bridge = ovs.getSchema(OPEN_VSWITCH_SCHEMA, true).get().table("Bridge", Bridge.class);
70 ListenableFuture<List<OperationResult>> results = ovs.transactBuilder()
71 .add(op.insert(bridge).value(bridge.name(), "br-int"))
72 .add(op.update(bridge)
73 .set(bridge.status(), "br-blah")
74 .set(bridge.floodVlans(), 34)
75 .where(bridge.name().opEqual("br-int"))
76 .and(bridge.name().opEqual("br-int")).operation())
79 List<OperationResult> operationResults = results.get();
80 Assert.assertFalse(operationResults.isEmpty());
81 System.out.println("operationResults = " + operationResults);
84 private OvsDBClientImpl getVswitch() throws IOException, InterruptedException {
85 OvsdbRPC rpc = getTestConnection();
87 System.out.println("Unable to Establish Test Connection");
90 ExecutorService executorService = Executors.newFixedThreadPool(3);
91 OvsDBClientImpl ovs = new OvsDBClientImpl(rpc, executorService);
93 for (int i = 0; i < 100; i++) {
104 public void update(Object node, UpdateNotification upadateNotification) {
105 // TODO Auto-generated method stub
109 public void locked(Object node, List<String> ids) {
110 // TODO Auto-generated method stub
114 public void stolen(Object node, List<String> ids) {
115 // TODO Auto-generated method stub