{
- "id": "2e3d9bd8-1388-bf50-19bf-7eb4b06dbfb1",
- "name": "Ovsdb Southbound Collection",
- "timestamp": 1424977469540,
- "order": [
- "25991d63-bce2-fd31-6504-c5602b0a7099",
- "19541dee-f73c-ac03-ff4e-36d65a313624",
- "2ee8a356-bfdb-7f09-40a6-4e471e4b9bc3",
- "da0ea53d-ea33-c15f-5140-9eb339445ee1",
- "b542ee70-45fd-824f-ab33-a5c3bae38d24",
- "91d7a25c-13a7-486d-f23e-1e90c485d78e"
- ],
- "owner": 0,
- "sharedWithTeam": false,
- "synced": false,
- "subscribed": false,
- "hasRequests": true,
- "requests": [
- {
- "collectionId": "2e3d9bd8-1388-bf50-19bf-7eb4b06dbfb1",
- "id": "19541dee-f73c-ac03-ff4e-36d65a313624",
- "name": "Get Operational Topology",
- "description": "",
- "url": "http://localhost:8080/restconf/operational/network-topology:network-topology/",
- "method": "GET",
- "headers": "Authorization: Basic YWRtaW46YWRtaW4=\n",
- "data": [],
- "dataMode": "params",
- "timestamp": 0,
- "responses": [],
- "version": 2,
- "owner": 0,
- "preRequestScript": "",
- "tests": "",
- "synced": false
- },
- {
- "collectionId": "2e3d9bd8-1388-bf50-19bf-7eb4b06dbfb1",
- "id": "25991d63-bce2-fd31-6504-c5602b0a7099",
- "name": "Create Specific Config OvsdbNode",
- "description": "",
- "url": "http://localhost:8080/restconf/config/network-topology:network-topology/topology/ovsdb:1/node/ovsdb:%2F127.0.0.1: 16640",
- "method": "PUT",
- "headers": "Authorization: Basic YWRtaW46YWRtaW4=\nContent-Type: application/json\n",
- "data": [],
- "dataMode": "raw",
- "timestamp": 0,
- "version": 2,
- "time": 1425926377425,
- "owner": 0,
- "preRequestScript": "",
- "tests": "",
- "synced": false,
- "rawModeData": "{\n \"network-topology:node\": [\n {\n \"node-id\": \"ovsdb:/127.0.0.1: 16640\",\n \"ovsdb:port\": 16640,\n \"ovsdb:ip\": \"127.0.0.1\"\n }\n ]\n}"
- },
- {
- "collectionId": "2e3d9bd8-1388-bf50-19bf-7eb4b06dbfb1",
- "id": "2ee8a356-bfdb-7f09-40a6-4e471e4b9bc3",
- "name": "Create Specific Config Bridge",
- "description": "",
- "url": "http://localhost:8080/restconf/config/network-topology:network-topology/topology/ovsdb:1/node/ovsdb:%2F%2F127.0.0.1:16640%2Fbridge%2Fbr02",
- "method": "PUT",
- "headers": "Authorization: Basic YWRtaW46YWRtaW4=\nContent-Type: application/json\n",
- "data": [],
- "dataMode": "raw",
- "timestamp": 0,
- "version": 2,
- "time": 1426530506948,
- "owner": 0,
- "preRequestScript": "",
- "tests": "",
- "synced": false,
- "rawModeData": "{\n \"network-topology:node\": [\n {\n \"node-id\": \"ovsdb://127.0.0.1:16640/bridge/br02\",\n \"ovsdb:bridge-name\": \"br02\",\n \"ovsdb:datapath-id\": \"00:00:b2:bf:48:25:f2:4b\",\n \"ovsdb:protocol-entry\": [\n {\n \"protocol\": \"ovsdb:ovsdb-bridge-protocol-openflow-13\"\n }\n ],\n \"ovsdb:controller-entry\": [\n {\n \"target\": \"tcp:127.0.0.1:6633\"\n }\n ],\n \"ovsdb:managed-by\": \"/network-topology:network-topology/network-topology:topology[network-topology:topology-id='ovsdb:1']/network-topology:node[network-topology:node-id='ovsdb://127.0.0.1:16640']\"\n }\n ]\n}"
- },
- {
- "collectionId": "2e3d9bd8-1388-bf50-19bf-7eb4b06dbfb1",
- "id": "91d7a25c-13a7-486d-f23e-1e90c485d78e",
- "name": "Get Specific Config OvsdbNode",
- "description": "",
- "url": "http://localhost:8080/restconf/config/network-topology:network-topology/topology/ovsdb:1/node/ovsdb:%2F127.0.0.1: 16640",
- "method": "GET",
- "headers": "Authorization: Basic YWRtaW46YWRtaW4=\n",
- "data": [],
- "dataMode": "params",
- "timestamp": 0,
- "responses": [],
- "version": 2,
- "owner": 0,
- "preRequestScript": "",
- "tests": "",
- "synced": false
- },
- {
- "collectionId": "2e3d9bd8-1388-bf50-19bf-7eb4b06dbfb1",
- "id": "b542ee70-45fd-824f-ab33-a5c3bae38d24",
- "name": "Get Config Topology",
- "description": "",
- "url": "http://localhost:8080/restconf/config/network-topology:network-topology/",
- "method": "GET",
- "headers": "Authorization: Basic YWRtaW46YWRtaW4=\n",
- "data": [],
- "dataMode": "params",
- "timestamp": 0,
- "responses": [],
- "version": 2,
- "owner": 0,
- "preRequestScript": "",
- "tests": "",
- "synced": false
- },
- {
- "collectionId": "2e3d9bd8-1388-bf50-19bf-7eb4b06dbfb1",
- "id": "da0ea53d-ea33-c15f-5140-9eb339445ee1",
- "name": "Delete Specific Config OvsdbNode",
- "description": "",
- "url": "http://localhost:8080/restconf/config/network-topology:network-topology/topology/ovsdb:1/node/ovsdb:%2F127.0.0.1: 16640",
- "method": "DELETE",
- "headers": "Authorization: Basic YWRtaW46YWRtaW4=\n",
- "data": [],
- "dataMode": "params",
- "timestamp": 0,
- "responses": [],
- "version": 2,
- "owner": 0,
- "preRequestScript": "",
- "tests": "",
- "synced": false
- }
- ]
-}
\ No newline at end of file
+ "id": "2e3d9bd8-1388-bf50-19bf-7eb4b06dbfb1",
+ "name": "Ovsdb Southbound Collection",
+ "timestamp": 1424977469540,
+ "order": [
+ "25991d63-bce2-fd31-6504-c5602b0a7099",
+ "19541dee-f73c-ac03-ff4e-36d65a313624",
+ "2ee8a356-bfdb-7f09-40a6-4e471e4b9bc3",
+ "da0ea53d-ea33-c15f-5140-9eb339445ee1",
+ "b542ee70-45fd-824f-ab33-a5c3bae38d24",
+ "91d7a25c-13a7-486d-f23e-1e90c485d78e"
+ ],
+ "requests": [
+ {
+ "collectionId": "2e3d9bd8-1388-bf50-19bf-7eb4b06dbfb1",
+ "id": "19541dee-f73c-ac03-ff4e-36d65a313624",
+ "name": "Get Operational Topology",
+ "description": "",
+ "url": "http:\/\/localhost:8080\/restconf\/operational\/network-topology:network-topology\/",
+ "method": "GET",
+ "headers": "Authorization: Basic YWRtaW46YWRtaW4=\n",
+ "data": [
+
+ ],
+ "dataMode": "params",
+ "timestamp": 0,
+ "responses": [
+
+ ],
+ "version": 2
+ },
+ {
+ "collectionId": "2e3d9bd8-1388-bf50-19bf-7eb4b06dbfb1",
+ "id": "25991d63-bce2-fd31-6504-c5602b0a7099",
+ "name": "Create Specific Config OvsdbNode",
+ "description": "",
+ "url": "http:\/\/localhost:8080\/restconf\/config\/network-topology:network-topology\/topology\/ovsdb:1\/node\/ovsdb:%2F127.0.0.1: 16640",
+ "method": "PUT",
+ "headers": "Authorization: Basic YWRtaW46YWRtaW4=\nContent-Type: application\/json\n",
+ "data": "{\n \"network-topology:node\": [\n {\n \"node-id\": \"ovsdb:\/127.0.0.1: 16640\",\n \"ovsdb:port\": 16640,\n \"ovsdb:ip\": \"127.0.0.1\"\n }\n ]\n}",
+ "dataMode": "raw",
+ "timestamp": 0,
+ "version": 2,
+ "time": 1425926377425
+ },
+ {
+ "collectionId": "2e3d9bd8-1388-bf50-19bf-7eb4b06dbfb1",
+ "id": "2ee8a356-bfdb-7f09-40a6-4e471e4b9bc3",
+ "name": "Create Specific Config Bridge",
+ "description": "",
+ "url": "http:\/\/localhost:8080\/restconf\/config\/network-topology:network-topology\/topology\/ovsdb:1\/node\/ovsdb:%2F%2F127.0.0.1:16640%2Fbridge%2Fbr02",
+ "method": "PUT",
+ "headers": "Authorization: Basic YWRtaW46YWRtaW4=\nContent-Type: application\/json\n",
+ "data": "{\n \"network-topology:node\": [\n {\n \"node-id\": \"ovsdb:\/\/127.0.0.1:16640\/bridge\/br02\",\n \"ovsdb:bridge-name\": \"br02\",\n \"ovsdb:protocol-entry\": [\n {\n \"protocol\": \"ovsdb:ovsdb-bridge-protocol-openflow-13\"\n }\n ],\n \"ovsdb:controller-entry\": [\n {\n \"target\": \"tcp:127.0.0.1:6633\"\n }\n ],\n \"ovsdb:fail-mode\": \"ovsdb:ovsdb-fail-mode-secure\",\n \"ovsdb:managed-by\": \"\/network-topology:network-topology\/network-topology:topology[network-topology:topology-id='ovsdb:1']\/network-topology:node[network-topology:node-id='ovsdb:\/\/127.0.0.1:16640']\"\n }\n ]\n}",
+ "dataMode": "raw",
+ "timestamp": 0,
+ "version": 2,
+ "time": 1426707526682
+ },
+ {
+ "collectionId": "2e3d9bd8-1388-bf50-19bf-7eb4b06dbfb1",
+ "id": "91d7a25c-13a7-486d-f23e-1e90c485d78e",
+ "name": "Get Specific Config OvsdbNode",
+ "description": "",
+ "url": "http:\/\/localhost:8080\/restconf\/config\/network-topology:network-topology\/topology\/ovsdb:1\/node\/ovsdb:%2F127.0.0.1: 16640",
+ "method": "GET",
+ "headers": "Authorization: Basic YWRtaW46YWRtaW4=\n",
+ "data": [
+
+ ],
+ "dataMode": "params",
+ "timestamp": 0,
+ "responses": [
+
+ ],
+ "version": 2
+ },
+ {
+ "collectionId": "2e3d9bd8-1388-bf50-19bf-7eb4b06dbfb1",
+ "id": "b542ee70-45fd-824f-ab33-a5c3bae38d24",
+ "name": "Get Config Topology",
+ "description": "",
+ "url": "http:\/\/localhost:8080\/restconf\/config\/network-topology:network-topology\/",
+ "method": "GET",
+ "headers": "Authorization: Basic YWRtaW46YWRtaW4=\n",
+ "data": [
+
+ ],
+ "dataMode": "params",
+ "timestamp": 0,
+ "responses": [
+
+ ],
+ "version": 2
+ },
+ {
+ "collectionId": "2e3d9bd8-1388-bf50-19bf-7eb4b06dbfb1",
+ "id": "da0ea53d-ea33-c15f-5140-9eb339445ee1",
+ "name": "Delete Specific Config OvsdbNode",
+ "description": "",
+ "url": "http:\/\/localhost:8080\/restconf\/config\/network-topology:network-topology\/topology\/ovsdb:1\/node\/ovsdb:%2F127.0.0.1: 16640",
+ "method": "DELETE",
+ "headers": "Authorization: Basic YWRtaW46YWRtaW4=\n",
+ "data": [
+
+ ],
+ "dataMode": "params",
+ "timestamp": 0,
+ "responses": [
+
+ ],
+ "version": 2
+ }
+ ]
+}
package org.opendaylight.ovsdb.southbound.transactions.md;
import java.util.ArrayList;
-import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
-import java.util.Set;
import org.opendaylight.controller.md.sal.binding.api.ReadWriteTransaction;
import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
import org.opendaylight.ovsdb.schema.openvswitch.Bridge;
import org.opendaylight.ovsdb.schema.openvswitch.Controller;
import org.opendaylight.ovsdb.southbound.OvsdbClientKey;
+import org.opendaylight.ovsdb.southbound.SouthboundConstants;
import org.opendaylight.ovsdb.southbound.SouthboundMapper;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.Uri;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.DatapathId;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.OvsdbBridgeAugmentation;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.OvsdbNodeAugmentation;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.OvsdbNodeAugmentationBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.OvsdbNodeRef;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.bridge.attributes.ControllerEntry;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.bridge.attributes.ControllerEntryBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.node.attributes.ManagedNodeEntry;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.node.attributes.ManagedNodeEntryBuilder;
import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId;
if(!SouthboundMapper.createControllerEntries(bridge, updatedControllerRows).isEmpty()) {
ovsdbManagedNodeBuilder.setControllerEntry(SouthboundMapper.createControllerEntries(bridge, updatedControllerRows));
}
+
+ if(bridge.getFailModeColumn() != null &&
+ bridge.getFailModeColumn().getData() != null &&
+ !bridge.getFailModeColumn().getData().isEmpty()) {
+ String[] failmodeArray = new String[bridge.getFailModeColumn().getData().size()];
+ bridge.getFailModeColumn().getData().toArray(failmodeArray);
+ ovsdbManagedNodeBuilder.setFailMode(SouthboundConstants.OVSDB_FAIL_MODE_MAP.inverse().get(failmodeArray[0]));
+ }
ovsdbManagedNodeBuilder.setManagedBy(new OvsdbNodeRef(nodePath));
managedNodeBuilder.addAugmentation(OvsdbBridgeAugmentation.class, ovsdbManagedNodeBuilder.build());