2c404c280cffeb3e5cd1dd3646f0c7b5926071f2
[ovsdb.git] / ovsdb / src / main / java / org / opendaylight / ovsdb / lib / database / OVSBridge.java
1 /*
2  * [[ Authors will Fill in the Copyright header ]]
3  *
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
7  *
8  * Authors : Brent Salisbury, Evan Zeller
9  */
10 package org.opendaylight.ovsdb.lib.database;\r
11 \r
12 \r
13 import java.util.ArrayList;
14 import java.util.Arrays;
15 import java.util.HashMap;
16 import java.util.List;
17 import java.util.Map;
18
19 import org.opendaylight.ovsdb.plugin.Connection;
20 import org.opendaylight.ovsdb.plugin.OvsdbMessage;
21 \r
22 public class OVSBridge {\r
23 \r
24     private String uuid;\r
25     private String name;\r
26 \r
27     public OVSBridge(String uuid, String name){\r
28         this.uuid = uuid;\r
29         this.name = name;\r
30     }\r
31 \r
32     public String getUuid(){\r
33         return this.uuid;\r
34     }\r
35 \r
36     public String getName(){\r
37         return this.name;\r
38     }\r
39 \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
45 \r
46         Map<String, List<String>> row = new HashMap<String, List<String>>();\r
47         row.put("columns", columns);\r
48 \r
49         Map<String, Map> tables = new HashMap<String, Map>();\r
50         tables.put("Bridge", row);\r
51 \r
52         Object[] params = {"Open_vSwitch", null, tables};\r
53 \r
54         OvsdbMessage msg = new OvsdbMessage("monitor", params);\r
55         Map<String, Object> monitorResponse = new HashMap<String, Object>();\r
56 \r
57         Map<String, Object> bridgeTable = (Map) monitorResponse.get("Bridge");\r
58 \r
59         Object[] uuidObjects = bridgeTable.keySet().toArray();\r
60         String[] uuids = Arrays.copyOf(uuidObjects, uuidObjects.length, String[].class);\r
61 \r
62         Map<String, OVSBridge> result = new HashMap<String, OVSBridge>();\r
63 \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
69         }\r
70 \r
71         return result;\r
72     }\r
73 }\r