2 * [[ Authors will Fill in the Copyright header ]]
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 : Brent Salisbury, Evan Zeller
10 package org.opendaylight.ovsdb.lib.database;
\r
13 import java.util.ArrayList;
14 import java.util.Arrays;
15 import java.util.HashMap;
16 import java.util.List;
19 import org.opendaylight.ovsdb.plugin.Connection;
20 import org.opendaylight.ovsdb.plugin.OvsdbMessage;
22 public class OVSBridge {
\r
24 private String uuid;
\r
25 private String name;
\r
27 public OVSBridge(String uuid, String name){
\r
32 public String getUuid(){
\r
36 public String getName(){
\r
40 @SuppressWarnings("unchecked")
\r
41 public static Map<String, OVSBridge> monitorBridge(Connection connection){
\r
42 List<String> columns = new ArrayList<String>();
\r
43 columns.add("_uuid");
\r
44 columns.add("name");
\r
46 Map<String, List<String>> row = new HashMap<String, List<String>>();
\r
47 row.put("columns", columns);
\r
49 Map<String, Map> tables = new HashMap<String, Map>();
\r
50 tables.put("Bridge", row);
\r
52 Object[] params = {"Open_vSwitch", null, tables};
\r
54 OvsdbMessage msg = new OvsdbMessage("monitor", params);
\r
55 Map<String, Object> monitorResponse = new HashMap<String, Object>();
\r
57 Map<String, Object> bridgeTable = (Map) monitorResponse.get("Bridge");
\r
59 Object[] uuidObjects = bridgeTable.keySet().toArray();
\r
60 String[] uuids = Arrays.copyOf(uuidObjects, uuidObjects.length, String[].class);
\r
62 Map<String, OVSBridge> result = new HashMap<String, OVSBridge>();
\r
64 for(String uuid : uuids){
\r
65 Map<String, Object> newRow = (Map) bridgeTable.get(uuid);
\r
66 Map<String, Object> newColumns = (Map) newRow.get("new");
\r
67 String name = (String) newColumns.get("name");
\r
68 result.put(name, new OVSBridge(uuid, name));
\r