1 package org.opendaylight.ovsdb.lib.database;
\r
4 import org.opendaylight.ovsdb.plugin.Connection;
\r
5 import org.opendaylight.ovsdb.plugin.OvsdbMessage;
\r
9 public class OVSBridge {
\r
11 private String uuid;
\r
12 private String name;
\r
14 public OVSBridge(String uuid, String name){
\r
19 public String getUuid(){
\r
23 public String getName(){
\r
27 @SuppressWarnings("unchecked")
\r
28 public static Map<String, OVSBridge> monitorBridge(Connection connection){
\r
29 List<String> columns = new ArrayList<String>();
\r
30 columns.add("_uuid");
\r
31 columns.add("name");
\r
33 Map<String, List<String>> row = new HashMap<String, List<String>>();
\r
34 row.put("columns", columns);
\r
36 Map<String, Map> tables = new HashMap<String, Map>();
\r
37 tables.put("Bridge", row);
\r
39 Object[] params = {"Open_vSwitch", null, tables};
\r
41 OvsdbMessage msg = new OvsdbMessage("monitor", params);
\r
42 Map<String, Object> monitorResponse = new HashMap<String, Object>();
\r
45 connection.sendMessage(msg);
\r
46 monitorResponse = (Map<String, Object>) connection.readResponse(Map.class);
\r
47 } catch (Throwable e){
\r
48 e.printStackTrace();
\r
51 Map<String, Object> bridgeTable = (Map) monitorResponse.get("Bridge");
\r
53 Object[] uuidObjects = bridgeTable.keySet().toArray();
\r
54 String[] uuids = Arrays.copyOf(uuidObjects, uuidObjects.length, String[].class);
\r
56 Map<String, OVSBridge> result = new HashMap<String, OVSBridge>();
\r
58 for(String uuid : uuids){
\r
59 Map<String, Object> newRow = (Map) bridgeTable.get(uuid);
\r
60 Map<String, Object> newColumns = (Map) newRow.get("new");
\r
61 String name = (String) newColumns.get("name");
\r
62 result.put(name, new OVSBridge(uuid, name));
\r