* Authentication realm : <b>opendaylight</b><br>
* Transport : <b>HTTP and HTTPS</b><br>
* <br>
- * HTTPS Authentication is disabled by default. Administrator can enable it in
- * tomcat-server.xml after adding a proper keystore / SSL certificate from a
- * trusted authority.<br>
- * More info :
- * http://tomcat.apache.org/tomcat-7.0-doc/ssl-howto.html#Configuration
+ * HTTPS Authentication is disabled by default.
*
*/
@Path("/")
@Context
public void setSecurityContext(SecurityContext context) {
- username = context.getUserPrincipal().getName();
+ if (context != null && context.getUserPrincipal() != null) username = context.getUserPrincipal().getName();
}
protected String getUserName() {
* controller is "default".
* @return List of FlowStatistics from all the Nodes
*
- * <pre>
+ * <pre>
+ *
* Example:
- * Request URL: localhost:8080/controller/nb/v2/statistics/default/flow
*
- * Response in JSON:
+ * Request URL:
+ * http://localhost:8080/controller/nb/v2/statistics/default/flow
+ *
+ * Response body in JSON:
* {
* "flowStatistics": [
* {
* "node": {
- * "@type": "OF",
- * "@id": "00:00:00:00:00:00:00:02"
+ * "id":"00:00:00:00:00:00:00:02",
+ * "type":"OF"
* },
* "flowStatistic": [
* {
* "actions": {
* "@type": "output",
* "port": {
- * "@type": "OF",
- * "@id": "3",
- * "node": {
- * "@type": "OF",
- * "@id": "00:00:00:00:00:00:00:02"
- * }
+ * "node":{
+ * "id":"00:00:00:00:00:00:00:02",
+ * "type":"OF"
+ * },
+ * "id":"3",
+ * "type":"OF"
* }
* },
* "priority": "1",
*
* ]
* }
- * Response in XML:
+ *
+ * Response body in XML:
* <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
* <list>
* <flowStatistics>
- * <node type="OF" id="00:00:00:00:00:00:00:02"/>
+ * <node>
+ * <id>00:00:00:00:00:00:00:02</id>
+ * <type>OF</type>
+ * </node>
* <flowStatistic>
* <flow>
* <match>
* </match>
* <actions
* xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="output">
- * <port type="OF" id="3">
- * <node type="OF" id="00:00:00:00:00:00:00:02"/>
+ * <port>
+ * <node>
+ * <id>00:00:00:00:00:00:00:02</id>
+ * <type>OF</type>
+ * </node>
+ * <id>3</id>
+ * <type>OF</type>
* </port>
* </actions>
* <priority>1</priority>
* Node Identifier
* @return List of Flow Statistics for a given Node. *
*
- * <pre>
+ * <pre>
+ *
* Example:
+ *
* Request URL:
- * http://host:8080/controller/nb/v2/statistics/default/flow/node/OF/00:00:00:00:00:00:00:01
+ * http://localhost:8080/controller/nb/v2/statistics/default/flow/node/OF/00:00:00:00:00:00:00:01
*
- * Response in JSON:
+ * Response body in JSON:
* {
* "node": {
- * "@type": "OF",
- * "@id": "00:00:00:00:00:00:00:01"
+ * "id":"00:00:00:00:00:00:00:01",
+ * "type":"OF"
* },
* "flowStatistic": [
* {
* },
* {
* "@type": "output",
- * "port": {
- * "@type": "OF",
- * "@id": "5",
- * "node": {
- * "@type": "OF",
- * "@id": "00:00:00:00:00:00:00:01"
- * }
+ * "port":{
+ * "node":{
+ * "id":"00:00:00:00:00:00:00:01",
+ * "type":"OF"
+ * },
+ * "id":"5",
+ * "type":"OF"
* }
* }
* ],
* ]
* }
*
- *
- * Response in XML:
+ * Response body in XML:
* <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
* <nodeFlowStatistics>
- * <node type="OF" id="00:00:00:00:00:00:00:02"/>
+ * <node>
+ * <id>00:00:00:00:00:00:00:02</id>
+ * <type>OF</type>
+ * </node>
* <flowStatistic>
* <flow>
* <match>
* </match>
* <actions
* xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="output">
- * <port type="OF" id="3">
- * <node type="OF" id="00:00:00:00:00:00:00:02"/>
+ * <port>
+ * <node>
+ * <id>00:00:00:00:00:00:00:02</id>
+ * <type>OF</type>
+ * </node>
+ * <id>3</id>
+ * <type>OF</type>
* </port>
* </actions>
* <priority>1</priority>
* </match>
* <actions
* xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="output">
- * <port type="OF" id="3">
- * <node type="OF" id="00:00:00:00:00:00:00:02"/>
+ * <port>
+ * <node>
+ * <id>00:00:00:00:00:00:00:02</id>
+ * <type>OF</type>
+ * </node>
+ * <id>3</id>
+ * <type>OF</type>
* </port>
* </actions>
* <priority>1</priority>
* @return List of all the Port Statistics across all the NodeConnectors on
* all the Nodes.
*
- * <pre>
+ * <pre>
+ *
* Example:
*
- * Requset URL: http://host:8080/controller/nb/v2/statistics/default/port
+ * Request URL:
+ * http://localhost:8080/controller/nb/v2/statistics/default/port
*
- * Response in JSON:
+ * Response body in JSON:
* {
* "portStatistics": [
* {
* "node": {
- * "@type": "OF",
- * "@id": "00:00:00:00:00:00:00:02"
+ * "id":"00:00:00:00:00:00:00:02",
+ * "type":"OF"
* },
* "portStatistic": [
* {
- * "nodeConnector": {
- * "@type": "OF",
- * "@id": "3",
- * "node": {
- * "@type": "OF",
- * "@id": "00:00:00:00:00:00:00:02"
- * }
+ * "nodeConnector":{
+ * "node":{
+ * "id":"00:00:00:00:00:00:00:02",
+ * "type":"OF"
+ * },
+ * "id":"3",
+ * "type":"OF"
* },
* "receivePackets": "182",
* "transmitPackets": "173",
* },
* {
* "nodeConnector": {
- * "@type": "OF",
- * "@id": "2",
- * "node": {
- * "@type": "OF",
- * "@id": "00:00:00:00:00:00:00:02"
- * }
+ * "node":{
+ * "id":"00:00:00:00:00:00:00:02",
+ * "type":"OF"
+ * },
+ * "id":"2",
+ * "type":"OF"
* },
* "receivePackets": "174",
* "transmitPackets": "181",
* },
* {
* "node": {
- * "@type": "OF",
- * "@id": "00:00:00:00:00:00:00:03"
+ * "id":"00:00:00:00:00:00:00:03",
+ * "type":"OF"
* },
* "portStatistic": [
* ..................
* ]
* }
*
- * Response in XML:
+ * Response body in XML:
* <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
* <list>
* <portStatistics>
- * <node type="OF" id="00:00:00:00:00:00:00:02"/>
- * <portStatistic>
- * <nodeConnector type="OF" id="3">
- * <node type="OF" id="00:00:00:00:00:00:00:02"/>
+ * <node>
+ * <id>00:00:00:00:00:00:00:02</id>
+ * <type>OF</type>
+ * </node>
+ * <portStatistic>
+ * <nodeConnector>
+ * <node>
+ * <id>00:00:00:00:00:00:00:02</id>
+ * <type>OF</type>
+ * </node>
+ * <id>3</id>
+ * <type>OF</type>
* </nodeConnector>
* <receivePackets>181</receivePackets>
* <transmitPackets>172</transmitPackets>
* <collisionCount>0</collisionCount>
* </portStatistic>
* <portStatistic>
- * <nodeConnector type="OF" id="2">
- * <node type="OF" id="00:00:00:00:00:00:00:02"/>
+ * <nodeConnector>
+ * <node>
+ * <id>00:00:00:00:00:00:00:02</id>
+ * <type>OF</type>
+ * </node>
+ * <id>2</id>
+ * <type>OF</type>
* </nodeConnector>
* <receivePackets>173</receivePackets>
* <transmitPackets>180</transmitPackets>
* <receiveCrcError>0</receiveCrcError>
* <collisionCount>0</collisionCount>
* </portStatistic>
- *
* </portStatistics>
* </list>
* </pre>
* @return Returns a list of all the Port Statistics across all the
* NodeConnectors in a given Node.
*
- * <pre>
+ * <pre>
+ *
* Example:
*
* Request URL:
- * http://host:8080/controller/nb/v2/statistics/default/port/node/OF/00:00:00:00:00:00:00:01
+ * http://localhost:8080/controller/nb/v2/statistics/default/port/node/OF/00:00:00:00:00:00:00:01
*
- * Response in JSON:
+ * Response body in JSON:
* {
* "node": {
- * "@type": "OF",
- * "@id": "00:00:00:00:00:00:00:01"
+ * "id":"00:00:00:00:00:00:00:01",
+ * "type":"OF"
* },
* "portStatistic": [
* {
* "nodeConnector": {
- * "@type": "OF",
- * "@id": "3",
- * "node": {
- * "@type": "OF",
- * "@id": "00:00:00:00:00:00:00:01"
- * }
+ * "node":{
+ * "id":"00:00:00:00:00:00:00:01",
+ * "type":"OF"
+ * },
+ * "id":"3",
+ * "type":"OF"
* },
* "receivePackets": "171",
* "transmitPackets": "2451",
* },
* {
* "nodeConnector": {
- * "@type": "OF",
- * "@id": "2",
- * "node": {
- * "@type": "OF",
- * "@id": "00:00:00:00:00:00:00:01"
- * }
+ * "node":{
+ * "id":"00:00:00:00:00:00:00:01",
+ * "type":"OF"
+ * },
+ * "id":"2",
+ * "type":"OF"
* },
* "receivePackets": "179",
* "transmitPackets": "2443",
* ]
* }
*
- * Response in XML:
+ * Response body in XML:
* <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
* <nodePortStatistics>
- * <node type="OF" id="00:00:00:00:00:00:00:01"/>
+ * <node>
+ * <id>00:00:00:00:00:00:00:01</id>
+ * <type>OF</type>
+ * </node>
* <portStatistic>
- * <nodeConnector type="OF" id="2">
- * <node type="OF" id="00:00:00:00:00:00:00:01"/>
+ * <nodeConnector>
+ * <node>
+ * <id>00:00:00:00:00:00:00:01</id>
+ * <type>OF</type>
+ * </node>
+ * <id>2</id>
+ * <type>OF</type>
* </nodeConnector>
* <receivePackets>180</receivePackets>
* <transmitPackets>2594</transmitPackets>
* <collisionCount>0</collisionCount>
* </portStatistic>
* <portStatistic>
- * <nodeConnector type="OF" id="5">
- * <node type="OF" id="00:00:00:00:00:00:00:01"/>
+ * <nodeConnector>
+ * <node>
+ * <id>00:00:00:00:00:00:00:01</id>
+ * <type>OF</type>
+ * </node>
+ * <id>5</id>
+ * <type>OF</type>
* </nodeConnector>
* <receivePackets>2542</receivePackets>
* <transmitPackets>2719</transmitPackets>
*
* @return Returns a list of all the Table Statistics in a given Node.
*
- * <pre>
- *
- * Example:
+ * <pre>
*
- * Request URL:
- * http://host:8080/controller/nb/v2/statistics/default/table
+ * Example:
*
- * Response in JSON:
+ * Request URL:
+ * http://localhost:8080/controller/nb/v2/statistics/default/table
*
+ * Response body in JSON:
* {
* "tableStatistics": [
* {
* "node": {
- * "@type": "OF",
- * "@id": "00:00:00:00:00:00:00:02"
+ * "id":"00:00:00:00:00:00:00:02",
+ * "type":"OF"
* },
* "tableStatistic": [
* {
* "nodeTable": {
- * "@id": "0",
- * "node": {
- * "@type": "OF",
- * "@id": "00:00:00:00:00:00:00:02"
- * }
+ * "node":{
+ * "id":"00:00:00:00:00:00:00:02",
+ * "type":"OF"
+ * },
+ * "id":"0"
* },
* "activeCount": "11",
* "lookupCount": "816",
- * "matchedCount": "220"
+ * "matchedCount": "220",
+ * "maximumEntries": "1000"
* },
* {
* ...another table
* ]
* }
*
- *
- * Response in XML:
+ * Response body in XML:
* <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
* <list>
* <tableStatistics>
- * <node type="OF" id="00:00:00:00:00:00:00:01"/>
+ * <node>
+ * <id>00:00:00:00:00:00:00:01</id>
+ * <type>OF</type>
+ * </node>
* <tableStatistic>
- * <nodeTable id="0">
- * <node type="OF" id="00:00:00:00:00:00:00:01"/>
+ * <nodeTable>
+ * <node>
+ * <id>00:00:00:00:00:00:00:01</id>
+ * <type>OF</type>
+ * </node>
+ * <id>0</id>
* </nodeTable>
* <activeCount>12</activeCount>
* <lookupCount>10935</lookupCount>
* <matchedCount>10084</matchedCount>
+ * <maximumEntries>1000</maximumEntries>
* </tableStatistic>
* <tableStatistic>
- * <nodeTable id="1">
- * <node type="OF" id="00:00:00:00:00:00:00:01"/>
+ * <nodeTable>
+ * <node>
+ * <id>00:00:00:00:00:00:00:01</id>
+ * <type>OF</type>
+ * </node>
+ * <id>1</id>
* </nodeTable>
* <activeCount>0</activeCount>
* <lookupCount>0</lookupCount>
* <matchedCount>0</matchedCount>
+ * <maximumEntries>0</maximumEntries>
* </tableStatistic>
* <tableStatistic>
- * <nodeTable id="2">
- * <node type="OF" id="00:00:00:00:00:00:00:01"/>
+ * <nodeTable>
+ * <node>
+ * <id>00:00:00:00:00:00:00:01</id>
+ * <type>OF</type>
+ * </node>
+ * <id>2</id>
* </nodeTable>
* <activeCount>0</activeCount>
* <lookupCount>0</lookupCount>
* <matchedCount>0</matchedCount>
+ * <maximumEntries>0</maximumEntries>
* </tableStatistic>
* </tableStatistics>
* <tableStatistics>
* Identifier (e.g. MAC address)
* @return Returns a list of all the Table Statistics in a given Node.
*
- * <pre>
+ * <pre>
*
* Example:
*
* Request URL:
- * http://host:8080/controller/nb/v2/statistics/default/table/node/OF/00:00:00:00:00:00:00:01
+ * http://localhost:8080/controller/nb/v2/statistics/default/table/node/OF/00:00:00:00:00:00:00:01
*
- * Response in JSON:
+ * Response body in JSON:
* {
* "node": {
- * "@type": "OF",
- * "@id": "00:00:00:00:00:00:00:01"
+ * "id":"00:00:00:00:00:00:00:01",
+ * "type":"OF"
* },
* "tableStatistic": [
* {
* "nodeTable": {
- * "@id": "0",
- * "node": {
- * "@type": "OF",
- * "@id": "00:00:00:00:00:00:00:01"
- * }
+ * "node":{
+ * "id":"00:00:00:00:00:00:00:01",
+ * "type":"OF"
+ * },
+ * "id":"0"
* },
* "activeCount": "12",
* "lookupCount": "11382",
- * "matchedCount": "10524"
+ * "matchedCount": "10524",
+ * "maximumEntries": "1000"
* },
* {
* "nodeTable": {
- * "@id": "1",
- * "node": {
- * "@type": "OF",
- * "@id": "00:00:00:00:00:00:00:01"
- * }
+ * "node":{
+ * "id":"00:00:00:00:00:00:00:01",
+ * "type":"OF"
+ * },
+ * "id":"1"
* },
* "activeCount": "0",
* "lookupCount": "0",
- * "matchedCount": "0"
+ * "matchedCount": "0",
+ * "maximumEntries": "0"
* }
* ]
* }
*
- * Response in XML:
+ * Response body in XML:
* <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
* <nodeTableStatistics>
- * <node type="OF" id="00:00:00:00:00:00:00:01"/>
+ * <node>
+ * <id>00:00:00:00:00:00:00:01</id>
+ * <type>OF</type>
+ * </node>
* <tableStatistic>
- * <nodeTable id="0">
- * <node type="OF" id="00:00:00:00:00:00:00:01"/>
+ * <nodeTable>
+ * <node>
+ * <id>00:00:00:00:00:00:00:01</id>
+ * <type>OF</type>
+ * </node>
+ * <id>0</id>
* </nodeTable>
* <activeCount>12</activeCount>
* <lookupCount>10935</lookupCount>
* <matchedCount>10084</matchedCount>
+ * <maximumEntries>1000</maximumEntries>
* </tableStatistic>
* <tableStatistic>
- * <nodeTable id="1">
- * <node type="OF" id="00:00:00:00:00:00:00:01"/>
+ * <nodeTable>
+ * <node>
+ * <id>00:00:00:00:00:00:00:01</id>
+ * <type>OF</type>
+ * </node>
+ * <id>1</id>
* </nodeTable>
* <activeCount>0</activeCount>
* <lookupCount>0</lookupCount>
* <matchedCount>0</matchedCount>
+ * <maximumEntries>0</maximumEntries>
* </tableStatistic>
* <tableStatistic>
- * <nodeTable id="2">
- * <node type="OF" id="00:00:00:00:00:00:00:01"/>
+ * <nodeTable>
+ * <node>
+ * <id>00:00:00:00:00:00:00:01</id>
+ * <type>OF</type>
+ * </node>
+ * <id>2</id>
* </nodeTable>
* <activeCount>0</activeCount>
* <lookupCount>0</lookupCount>
* <matchedCount>0</matchedCount>
+ * <maximumEntries>0</maximumEntries>
* </tableStatistic>
* </nodeTableStatistics>
*
- *
* </pre>
*/
@Path("/{containerName}/table/node/{nodeType}/{nodeId}")