From e63291850fd0795c5700e25e67e5dee89ba54c5f Mon Sep 17 00:00:00 2001 From: Ashlee Young Date: Tue, 1 Dec 2015 05:49:27 -0800 Subject: onos commit hash c2999f30c69e50df905a9d175ef80b3f23a98514 Change-Id: I2bb8562c4942b6d6a6d60b663db2e17540477b81 Signed-off-by: Ashlee Young --- framework/src/onos/ovsdb/api/pom.xml | 60 - .../ovsdb/controller/DefaultEventSubject.java | 126 -- .../onosproject/ovsdb/controller/EventSubject.java | 22 - .../onosproject/ovsdb/controller/OvsdbBridge.java | 88 -- .../ovsdb/controller/OvsdbBridgeName.java | 72 - .../ovsdb/controller/OvsdbClientService.java | 300 ---- .../ovsdb/controller/OvsdbConstant.java | 68 - .../ovsdb/controller/OvsdbController.java | 79 -- .../ovsdb/controller/OvsdbDatapathId.java | 69 - .../onosproject/ovsdb/controller/OvsdbEvent.java | 74 - .../ovsdb/controller/OvsdbEventListener.java | 28 - .../ovsdb/controller/OvsdbEventSubject.java | 75 - .../onosproject/ovsdb/controller/OvsdbIfaceId.java | 69 - .../onosproject/ovsdb/controller/OvsdbNodeId.java | 83 -- .../ovsdb/controller/OvsdbNodeListener.java | 36 - .../onosproject/ovsdb/controller/OvsdbPort.java | 86 -- .../ovsdb/controller/OvsdbPortName.java | 71 - .../ovsdb/controller/OvsdbPortNumber.java | 69 - .../ovsdb/controller/OvsdbPortType.java | 71 - .../ovsdb/controller/OvsdbRowStore.java | 69 - .../onosproject/ovsdb/controller/OvsdbStore.java | 71 - .../ovsdb/controller/OvsdbTableStore.java | 67 - .../onosproject/ovsdb/controller/OvsdbTunnel.java | 126 -- .../ovsdb/controller/OvsdbTunnelName.java | 70 - .../controller/driver/DefaultOvsdbClient.java | 1496 -------------------- .../ovsdb/controller/driver/OvsdbAgent.java | 42 - .../controller/driver/OvsdbProviderService.java | 81 -- .../ovsdb/controller/driver/package-info.java | 20 - .../onosproject/ovsdb/controller/package-info.java | 20 - .../driver/OvsdbClientServiceAdapter.java | 225 --- .../controller/driver/OvsdbControllerAdapter.java | 75 - 31 files changed, 3908 deletions(-) delete mode 100644 framework/src/onos/ovsdb/api/pom.xml delete mode 100644 framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/DefaultEventSubject.java delete mode 100644 framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/EventSubject.java delete mode 100644 framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbBridge.java delete mode 100644 framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbBridgeName.java delete mode 100644 framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbClientService.java delete mode 100644 framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbConstant.java delete mode 100644 framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbController.java delete mode 100644 framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbDatapathId.java delete mode 100644 framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbEvent.java delete mode 100644 framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbEventListener.java delete mode 100644 framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbEventSubject.java delete mode 100644 framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbIfaceId.java delete mode 100644 framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbNodeId.java delete mode 100644 framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbNodeListener.java delete mode 100644 framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbPort.java delete mode 100644 framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbPortName.java delete mode 100644 framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbPortNumber.java delete mode 100644 framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbPortType.java delete mode 100644 framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbRowStore.java delete mode 100644 framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbStore.java delete mode 100644 framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbTableStore.java delete mode 100644 framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbTunnel.java delete mode 100644 framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbTunnelName.java delete mode 100644 framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/driver/DefaultOvsdbClient.java delete mode 100644 framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/driver/OvsdbAgent.java delete mode 100644 framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/driver/OvsdbProviderService.java delete mode 100644 framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/driver/package-info.java delete mode 100644 framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/package-info.java delete mode 100644 framework/src/onos/ovsdb/api/src/test/java/org/onosproject/ovsdb/controller/driver/OvsdbClientServiceAdapter.java delete mode 100644 framework/src/onos/ovsdb/api/src/test/java/org/onosproject/ovsdb/controller/driver/OvsdbControllerAdapter.java (limited to 'framework/src/onos/ovsdb/api') diff --git a/framework/src/onos/ovsdb/api/pom.xml b/framework/src/onos/ovsdb/api/pom.xml deleted file mode 100644 index c264ae97..00000000 --- a/framework/src/onos/ovsdb/api/pom.xml +++ /dev/null @@ -1,60 +0,0 @@ - - - - 4.0.0 - - org.onosproject - onos-ovsdb - 1.4.0-SNAPSHOT - - onos-ovsdb-api - bundle - - ONOS OVSDB plugin API - - - junit - junit - test - - - commons-pool - commons-pool - - - io.netty - netty-transport - - - io.netty - netty-transport-native-epoll - ${netty4.version} - - - org.onosproject - onos-api - - - org.onosproject - onos-ovsdb-rfc - ${project.version} - - - - diff --git a/framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/DefaultEventSubject.java b/framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/DefaultEventSubject.java deleted file mode 100644 index 5d9134b4..00000000 --- a/framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/DefaultEventSubject.java +++ /dev/null @@ -1,126 +0,0 @@ -/* - * Copyright 2015 Open Networking Laboratory - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.onosproject.ovsdb.controller; - -import static com.google.common.base.MoreObjects.toStringHelper; - -import java.util.Objects; -import java.util.Set; - -import org.onlab.packet.IpAddress; -import org.onlab.packet.MacAddress; - -/** - * This class is default event subject that implements OvsdbEventSubject. - */ -public class DefaultEventSubject implements OvsdbEventSubject { - private final MacAddress mac; - private final Set ips; - private final OvsdbPortName portname; - private final OvsdbPortNumber portnumber; - private final OvsdbDatapathId dpid; - private final OvsdbPortType portType; - private final OvsdbIfaceId ifaceid; - - /** - * Creates an end-station event subject using the supplied information. - * - * @param mac host MAC address - * @param ips host MAC ips - * @param portname port name - * @param portnumber port number - * @param dpid ovs dpid - * @param portType port type - * @param ifaceid vm ifaceid - */ - public DefaultEventSubject(MacAddress mac, Set ips, - OvsdbPortName portname, OvsdbPortNumber portnumber, OvsdbDatapathId dpid, - OvsdbPortType portType, OvsdbIfaceId ifaceid) { - super(); - this.mac = mac; - this.ips = ips; - this.portname = portname; - this.portnumber = portnumber; - this.dpid = dpid; - this.portType = portType; - this.ifaceid = ifaceid; - } - - @Override - public MacAddress hwAddress() { - return mac; - } - - @Override - public Set ipAddress() { - return ips; - } - - @Override - public OvsdbPortName portName() { - return portname; - } - - @Override - public OvsdbPortNumber portNumber() { - return portnumber; - } - - @Override - public OvsdbPortType portType() { - return portType; - } - - @Override - public OvsdbDatapathId dpid() { - return dpid; - } - - @Override - public OvsdbIfaceId ifaceid() { - return ifaceid; - } - - @Override - public int hashCode() { - return Objects.hash(mac, portname, portnumber, dpid, portType, ifaceid); - } - - @Override - public boolean equals(Object obj) { - if (this == obj) { - return true; - } - if (obj instanceof DefaultEventSubject) { - final DefaultEventSubject other = (DefaultEventSubject) obj; - return Objects.equals(this.mac, other.mac) - && Objects.equals(this.portname, other.portname) - && Objects.equals(this.portnumber, other.portnumber) - && Objects.equals(this.dpid, other.dpid) - && Objects.equals(this.portType, other.portType) - && Objects.equals(this.ifaceid, other.ifaceid); - } - return false; - } - - @Override - public String toString() { - return toStringHelper(this).add("mac", mac).add("portname", portname) - .add("portnumber", portnumber).add("portType", portType) - .add("ipAddresses", ips).add("dpid", dpid).add("ifaceid", ifaceid) - .toString(); - } -} diff --git a/framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/EventSubject.java b/framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/EventSubject.java deleted file mode 100644 index d8aaef65..00000000 --- a/framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/EventSubject.java +++ /dev/null @@ -1,22 +0,0 @@ -/* - * Copyright 2015 Open Networking Laboratory - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.onosproject.ovsdb.controller; - -/** - * Representation for an entity that carries important information for a listener. - */ -public interface EventSubject { -} diff --git a/framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbBridge.java b/framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbBridge.java deleted file mode 100644 index 18c59e14..00000000 --- a/framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbBridge.java +++ /dev/null @@ -1,88 +0,0 @@ -/* - * Copyright 2015 Open Networking Laboratory - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.onosproject.ovsdb.controller; - -import static com.google.common.base.MoreObjects.toStringHelper; -import static com.google.common.base.Preconditions.checkNotNull; - -import java.util.Objects; - -/** - * The class representing an ovsdb bridge. - * This class is immutable. - */ -public final class OvsdbBridge { - - private final OvsdbBridgeName bridgeName; - private final OvsdbDatapathId datapathId; - - /** - * Constructor from an OvsdbBridgeName bridgeName and an OvsdbDatapathId - * datapathId. - * - * @param bridgeName the bridgeName to use - * @param datapathId the datapathId to use - */ - public OvsdbBridge(OvsdbBridgeName bridgeName, OvsdbDatapathId datapathId) { - checkNotNull(bridgeName, "bridgeName is not null"); - checkNotNull(datapathId, "datapathId is not null"); - this.bridgeName = bridgeName; - this.datapathId = datapathId; - } - - /** - * Gets the bridge name of bridge. - * - * @return the bridge name of bridge - */ - public OvsdbBridgeName bridgeName() { - return bridgeName; - } - - /** - * Gets the datapathId of bridge. - * - * @return datapathId the datapathId to use - */ - public OvsdbDatapathId datapathId() { - return datapathId; - } - - @Override - public int hashCode() { - return Objects.hash(bridgeName, datapathId); - } - - @Override - public boolean equals(Object obj) { - if (this == obj) { - return true; - } - if (obj instanceof OvsdbBridge) { - final OvsdbBridge otherOvsdbBridge = (OvsdbBridge) obj; - return Objects.equals(this.bridgeName, otherOvsdbBridge.bridgeName) - && Objects.equals(this.datapathId, - otherOvsdbBridge.datapathId); - } - return false; - } - - @Override - public String toString() { - return toStringHelper(this).add("bridgeName", bridgeName.value()) - .add("datapathId", datapathId.value()).toString(); - } -} diff --git a/framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbBridgeName.java b/framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbBridgeName.java deleted file mode 100644 index 759ec499..00000000 --- a/framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbBridgeName.java +++ /dev/null @@ -1,72 +0,0 @@ -/* - * Copyright 2015 Open Networking Laboratory - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.onosproject.ovsdb.controller; - -import static com.google.common.base.MoreObjects.toStringHelper; -import static com.google.common.base.Preconditions.checkNotNull; - -import java.util.Objects; - -/** - * The class representing a bridge name. - * This class is immutable. - */ -public final class OvsdbBridgeName { - - private final String value; - - /** - * Constructor from a String. - * - * @param value the bridge name to use - */ - public OvsdbBridgeName(String value) { - checkNotNull(value, "value is not null"); - this.value = value; - } - - /** - * Gets the value of bridge name. - * - * @return the value of the bridge name - */ - public String value() { - return value; - } - - @Override - public int hashCode() { - return value.hashCode(); - } - - @Override - public boolean equals(Object obj) { - if (this == obj) { - return true; - } - if (obj instanceof OvsdbBridgeName) { - final OvsdbBridgeName otherBridgeName = (OvsdbBridgeName) obj; - return Objects.equals(this.value, otherBridgeName.value); - } - return false; - } - - @Override - public String toString() { - return toStringHelper(this).add("value", value).toString(); - } - -} diff --git a/framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbClientService.java b/framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbClientService.java deleted file mode 100644 index cfd844d3..00000000 --- a/framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbClientService.java +++ /dev/null @@ -1,300 +0,0 @@ -/* - * Copyright 2015 Open Networking Laboratory - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.onosproject.ovsdb.controller; - -import com.google.common.util.concurrent.ListenableFuture; - -import org.onlab.packet.IpAddress; -import org.onosproject.net.DeviceId; -import org.onosproject.net.behaviour.ControllerInfo; -import org.onosproject.ovsdb.rfc.jsonrpc.OvsdbRPC; -import org.onosproject.ovsdb.rfc.message.OperationResult; -import org.onosproject.ovsdb.rfc.message.TableUpdates; -import org.onosproject.ovsdb.rfc.notation.Row; -import org.onosproject.ovsdb.rfc.notation.UUID; -import org.onosproject.ovsdb.rfc.operations.Operation; -import org.onosproject.ovsdb.rfc.schema.DatabaseSchema; - -import java.util.List; -import java.util.Map; -import java.util.Set; - -/** - * Represents to provider facing side of a node. - */ -public interface OvsdbClientService extends OvsdbRPC { - /** - * Gets the node identifier. - * - * @return node identifier - */ - OvsdbNodeId nodeId(); - - /** - * Creates the configuration for tunnel. - * - * @param srcIp source IP address - * @param dstIp destination IP address - */ - void createTunnel(IpAddress srcIp, IpAddress dstIp); - - /** - * Creates a tunnel port with given options. - * - * @param bridgeName bridge name - * @param portName port name - * @param tunnelType tunnel type - * @param options tunnel options - * @return true if tunnel creation is successful, false otherwise - */ - boolean createTunnel(String bridgeName, String portName, String tunnelType, Map options); - - /** - * Drops the configuration for tunnel. - * - * @param srcIp source IP address - * @param dstIp destination IP address - */ - void dropTunnel(IpAddress srcIp, IpAddress dstIp); - - /** - * Gets tunnels of node. - * - * @return set of tunnels; empty if no tunnel is find - */ - Set getTunnels(); - - /** - * Creates a bridge. - * - * @param bridgeName bridge name - */ - void createBridge(String bridgeName); - - /** - * Creates a bridge. - * - * @param bridgeName bridge name - * @param dpid data path id - * @param exPortName external port name - */ - void createBridge(String bridgeName, String dpid, String exPortName); - - /** - * Creates a bridge with given name and dpid. - * Sets the bridge's controller with given controllers. - * - * @param bridgeName bridge name - * @param dpid data path id - * @param controllers controllers - * @return true if bridge creation is successful, false otherwise - */ - boolean createBridge(String bridgeName, String dpid, List controllers); - - /** - * Drops a bridge. - * - * @param bridgeName bridge name - */ - void dropBridge(String bridgeName); - - /** - * Gets bridges of node. - * - * @return set of bridges; empty if no bridge is find - */ - Set getBridges(); - - /** - * Gets controllers of node. - * - * @param openflowDeviceId target device id - * @return set of controllers; empty if no controller is find - */ - Set getControllers(DeviceId openflowDeviceId); - - /** - * Sets the Controllers for the specified bridge. - *

- * This method will replace the existing controller list with the new controller - * list. - * - * @param bridgeUuid bridge uuid - * @param controllers list of controllers - */ - void setControllersWithUUID(UUID bridgeUuid, List controllers); - - /** - * Sets the Controllers for the specified device. - *

- * This method will replace the existing controller list with the new controller - * list. - * - * @param deviceId device id (likely Openflow device) - * @param controllers list of controllers - */ - void setControllersWithDeviceId(DeviceId deviceId, List controllers); - - /** - * Creates a port. - * - * @param bridgeName bridge name - * @param portName port name - */ - void createPort(String bridgeName, String portName); - - /** - * Drops a port. - * - * @param bridgeName bridge name - * @param portName port name - */ - void dropPort(String bridgeName, String portName); - - /** - * Gets ports of bridge. - * - * @return set of ports; empty if no ports is find - */ - Set getPorts(); - - /** - * Checks if the node is still connected. - * - * @return true if the node is still connected - */ - boolean isConnected(); - - /** - * Gets the Bridge uuid. - * - * @param bridgeName bridge name - * @return bridge uuid, empty if no uuid is find - */ - String getBridgeUuid(String bridgeName); - - /** - * Gets the Port uuid. - * - * @param portName port name - * @param bridgeUuid bridge uuid - * @return port uuid, empty if no uuid is find - */ - String getPortUuid(String portName, String bridgeUuid); - - /** - * Gets the Interface uuid. - * - * @param portUuid port uuid - * @param portName port name - * @return interface uuid, empty if no uuid is find - */ - String getInterfaceUuid(String portUuid, String portName); - - /** - * Gets the Controller uuid. - * - * @param controllerName controller name - * @param controllerTarget controller target - * @return controller uuid, empty if no uuid is find - */ - String getControllerUuid(String controllerName, String controllerTarget); - - /** - * Gets the OVS uuid. - * - * @param dbName database name - * @return ovs uuid, empty if no uuid is find - */ - String getOvsUuid(String dbName); - - /** - * Gets the OVSDB database schema. - * - * @param dbName database name - * @return database schema - */ - ListenableFuture getOvsdbSchema(String dbName); - - /** - * Gets the OVSDB table updates. - * - * @param dbName database name - * @param id random uuid - * @return table updates - */ - ListenableFuture monitorTables(String dbName, String id); - - /** - * Gets the OVSDB config operation result. - * - * @param dbName database name - * @param operations the list of operations - * @return operation results - */ - ListenableFuture> transactConfig(String dbName, - List operations); - - /** - * Gets the OVSDB database schema from local. - * - * @param dbName database name - * @return database schema - */ - DatabaseSchema getDatabaseSchema(String dbName); - - /** - * Gets the OVSDB row from local OVSDB store. - * - * @param dbName database name - * @param tableName table name - * @param uuid row uuid - * @return row OVSDB row - */ - Row getRow(String dbName, String tableName, String uuid); - - /** - * Removes the OVSDB row from local OVSDB store. - * - * @param dbName database name - * @param tableName table name - * @param uuid row uuid - */ - void removeRow(String dbName, String tableName, String uuid); - - /** - * Updates the local OVSDB store. - * - * @param dbName database name - * @param tableName table name - * @param uuid row uuid - * @param row OVSDB row - */ - void updateOvsdbStore(String dbName, String tableName, String uuid, Row row); - - /** - * Gets OVSDB local ports. - * - * @param ifaceids the ifaceid that needed - * @return OVSDB ports - */ - Set getLocalPorts(Iterable ifaceids); - - /** - * Disconnects the OVSDB server. - */ - void disconnect(); -} diff --git a/framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbConstant.java b/framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbConstant.java deleted file mode 100644 index e91c928a..00000000 --- a/framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbConstant.java +++ /dev/null @@ -1,68 +0,0 @@ -/* - * Copyright 2015 Open Networking Laboratory - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.onosproject.ovsdb.controller; - -/** - * Ovsdb related constants. - */ -public final class OvsdbConstant { - - /** - * Default constructor. - * - * The constructor is private to prevent creating an instance of this - * utility class. - */ - private OvsdbConstant() { - } - - /** Ovsdb database Open_vSwitch. */ - public static final String DATABASENAME = "Open_vSwitch"; - - /** Ovsdb table Bridge. */ - public static final String BRIDGE = "Bridge"; - - /** Ovsdb table Interface. */ - public static final String INTERFACE = "Interface"; - - /** Ovsdb table Controller. */ - public static final String CONTROLLER = "Controller"; - - /** Ovsdb table Port. */ - public static final String PORT = "Port"; - - /** Ovsdb bridge name. */ - public static final String INTEGRATION_BRIDGE = "br-int"; - - /** Ovsdb vxlan tunnel type. */ - public static final String TYPEVXLAN = "vxlan"; - - /** Openflow version. */ - public static final String OPENFLOW13 = "OpenFlow13"; - - /** Ovsdb external_id_interface_id.. */ - public static final String EXTERNAL_ID_INTERFACE_ID = "iface-id"; - - /** Ovsdb external_id_vm_mac. */ - public static final String EXTERNAL_ID_VM_MAC = "attached-mac"; - - /** Openflow port. */ - public static final int OFPORT = 6653; - - /** Ovsdb port. */ - public static final int OVSDBPORT = 6640; - -} diff --git a/framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbController.java b/framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbController.java deleted file mode 100644 index f22a5787..00000000 --- a/framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbController.java +++ /dev/null @@ -1,79 +0,0 @@ -/* - * Copyright 2015 Open Networking Laboratory - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.onosproject.ovsdb.controller; - -import org.onlab.packet.IpAddress; -import org.onlab.packet.TpPort; - -import java.util.List; - -/** - * Abstraction of an ovsdb controller. Serves as an one stop shop for obtaining - * OvsdbNode and (un)register listeners on ovsdb events and ovsdb node events. - */ -public interface OvsdbController { - - /** - * Adds Node Event Listener. - * - * @param listener node listener - */ - void addNodeListener(OvsdbNodeListener listener); - - /** - * Removes Node Event Listener. - * - * @param listener node listener - */ - void removeNodeListener(OvsdbNodeListener listener); - - /** - * Adds ovsdb event listener. - * - * @param listener event listener - */ - void addOvsdbEventListener(OvsdbEventListener listener); - - /** - * Removes ovsdb event listener. - * - * @param listener event listener - */ - void removeOvsdbEventListener(OvsdbEventListener listener); - - /** - * Gets all the nodes information. - * - * @return the list of node id - */ - List getNodeIds(); - - /** - * Gets an ovsdb client by node identifier. - * - * @param nodeId node identifier - * @return OvsdbClient ovsdb node information - */ - OvsdbClientService getOvsdbClient(OvsdbNodeId nodeId); - - /** - * Connect to the ovsdb server with given ip address and port number. - * - * @param ip ip address - * @param port port number - */ - void connect(IpAddress ip, TpPort port); -} diff --git a/framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbDatapathId.java b/framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbDatapathId.java deleted file mode 100644 index 02989afa..00000000 --- a/framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbDatapathId.java +++ /dev/null @@ -1,69 +0,0 @@ -/* - * Copyright 2015 Open Networking Laboratory - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.onosproject.ovsdb.controller; - -import static com.google.common.base.MoreObjects.toStringHelper; -import static com.google.common.base.Preconditions.checkNotNull; -import java.util.Objects; - -/** - * The class representing a datapathid. - * This class is immutable. - */ -public final class OvsdbDatapathId { - private final String value; - - /** - * Constructor from a String. - * - * @param value the datapathid to use - */ - public OvsdbDatapathId(String value) { - checkNotNull(value, "value is not null"); - this.value = value; - } - - /** - * Gets the value of datapathid. - * - * @return the value of datapathid - */ - public String value() { - return value; - } - - @Override - public int hashCode() { - return value.hashCode(); - } - - @Override - public boolean equals(Object obj) { - if (this == obj) { - return true; - } - if (obj instanceof OvsdbDatapathId) { - final OvsdbDatapathId otherDatapathId = (OvsdbDatapathId) obj; - return Objects.equals(this.value, otherDatapathId.value); - } - return false; - } - - @Override - public String toString() { - return toStringHelper(this).add("value", value).toString(); - } -} diff --git a/framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbEvent.java b/framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbEvent.java deleted file mode 100644 index f68b3c8a..00000000 --- a/framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbEvent.java +++ /dev/null @@ -1,74 +0,0 @@ -/* - * Copyright 2015 Open Networking Laboratory - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.onosproject.ovsdb.controller; - -import static com.google.common.base.MoreObjects.toStringHelper; - -/** - * The abstract event of ovsdb. - */ -public final class OvsdbEvent { - - public enum Type { - /** - * Signifies that a new ovs port update has been detected. - */ - PORT_ADDED, - /** - * Signifies that a ovs port has been removed. - */ - PORT_REMOVED - } - - private final Type type; - private final S subject; - - /** - * Creates an event of a given type and for the specified event subject. - * - * @param type event type - * @param subject event subject - */ - public OvsdbEvent(Type type, S subject) { - this.type = type; - this.subject = subject; - } - - /** - * Returns the type of event. - * - * @return event type - */ - public Type type() { - return type; - } - - /** - * Returns the subject of event. - * - * @return subject to which this event pertains - */ - public S subject() { - return subject; - } - - @Override - public String toString() { - return toStringHelper(this).add("type", type()) - .add("subject", subject()).toString(); - } - -} diff --git a/framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbEventListener.java b/framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbEventListener.java deleted file mode 100644 index b7bf2b55..00000000 --- a/framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbEventListener.java +++ /dev/null @@ -1,28 +0,0 @@ -/* - * Copyright 2015 Open Networking Laboratory - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.onosproject.ovsdb.controller; - -/** - * Allows for providers interested in ovsdb events to be notified. - */ -public interface OvsdbEventListener { - /** - * Handles the ovsdb event. - * - * @param event ovsdb event - */ - void handle(OvsdbEvent event); -} diff --git a/framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbEventSubject.java b/framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbEventSubject.java deleted file mode 100644 index 226a26e6..00000000 --- a/framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbEventSubject.java +++ /dev/null @@ -1,75 +0,0 @@ -/* - * Copyright 2015 Open Networking Laboratory - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.onosproject.ovsdb.controller; - -import java.util.Set; - -import org.onlab.packet.IpAddress; -import org.onlab.packet.MacAddress; - -/** - * Represents for an entity that carry important information for listener. - */ -public interface OvsdbEventSubject extends EventSubject { - /** - * Returns the MAC address associated with this host (NIC). - * - * @return the MAC address of this host - */ - MacAddress hwAddress(); - - /** - * Returns the IP address associated with this host's MAC. - * - * @return host IP address - */ - Set ipAddress(); - - /** - * Returns the Port name associated with the host. - * - * @return port name - */ - OvsdbPortName portName(); - - /** - * Returns the Port number associated with the host. - * - * @return port number - */ - OvsdbPortNumber portNumber(); - - /** - * Returns the Port type associated with the host. - * - * @return port type - */ - OvsdbPortType portType(); - - /** - * Returns the Ovs dpid associated with the host. - * - * @return Ovs dpid - */ - OvsdbDatapathId dpid(); - - /** - * Returns the vm ifaceid associated with the host. - * - * @return vm ifaceid - */ - OvsdbIfaceId ifaceid(); -} diff --git a/framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbIfaceId.java b/framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbIfaceId.java deleted file mode 100644 index bf724fa4..00000000 --- a/framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbIfaceId.java +++ /dev/null @@ -1,69 +0,0 @@ -/* - * Copyright 2015 Open Networking Laboratory - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.onosproject.ovsdb.controller; - -import static com.google.common.base.MoreObjects.toStringHelper; -import static com.google.common.base.Preconditions.checkNotNull; -import java.util.Objects; - -/** - * The class representing an ifaceid. - * This class is immutable. - */ -public class OvsdbIfaceId { - private final String value; - - /** - * Constructor from a String. - * - * @param value the ifaceid to use - */ - public OvsdbIfaceId(String value) { - checkNotNull(value, "value is not null"); - this.value = value; - } - - /** - * Gets the value of ifaceid. - * - * @return the value of ifaceid - */ - public String value() { - return value; - } - - @Override - public int hashCode() { - return value.hashCode(); - } - - @Override - public boolean equals(Object obj) { - if (this == obj) { - return true; - } - if (obj instanceof OvsdbIfaceId) { - final OvsdbIfaceId otherIfaceId = (OvsdbIfaceId) obj; - return Objects.equals(this.value, otherIfaceId.value); - } - return false; - } - - @Override - public String toString() { - return toStringHelper(this).add("value", value).toString(); - } -} diff --git a/framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbNodeId.java b/framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbNodeId.java deleted file mode 100644 index 60146c85..00000000 --- a/framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbNodeId.java +++ /dev/null @@ -1,83 +0,0 @@ -/* - * Copyright 2015 Open Networking Laboratory - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.onosproject.ovsdb.controller; - -import static com.google.common.base.Preconditions.checkNotNull; - -import java.util.Objects; - -import org.onlab.packet.IpAddress; - -/** - * The class representing a nodeId of node which using ovsdb connection. - * This class is immutable. - */ -public final class OvsdbNodeId { - private static final String SCHEME = "ovsdb"; - private final String nodeId; - private final String ipAddress; - - /** - * Creates a new node identifier from an IpAddress ipAddress, a long port. - * - * @param ipAddress node IP address - * @param port node port - */ - public OvsdbNodeId(IpAddress ipAddress, long port) { - checkNotNull(ipAddress, "ipAddress is not null"); - this.ipAddress = ipAddress.toString(); - this.nodeId = ipAddress.toString(); - } - - @Override - public int hashCode() { - return nodeId.hashCode(); - } - - @Override - public boolean equals(Object other) { - if (!(other instanceof OvsdbNodeId)) { - return false; - } - - OvsdbNodeId otherNodeId = (OvsdbNodeId) other; - - return Objects.equals(otherNodeId.nodeId, this.nodeId); - } - - @Override - public String toString() { - return SCHEME + ":" + nodeId; - } - - /** - * Gets the value of the NodeId. - * - * @return the value of the NodeId. - */ - public String nodeId() { - return SCHEME + ":" + nodeId; - } - - /** - * Get the IP address of the node. - * - * @return the IP address of the node - */ - public String getIpAddress() { - return ipAddress; - } -} diff --git a/framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbNodeListener.java b/framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbNodeListener.java deleted file mode 100644 index ca732ef9..00000000 --- a/framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbNodeListener.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Copyright 2015 Open Networking Laboratory - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.onosproject.ovsdb.controller; - -/** - * Allows for providers interested in node events to be notified. - */ -public interface OvsdbNodeListener { - - /** - * Notifies that the node was added. - * - * @param nodeId the node where the event occurred - */ - void nodeAdded(OvsdbNodeId nodeId); - - /** - * Notifies that the node was removed. - * - * @param nodeId the node where the event occurred - */ - void nodeRemoved(OvsdbNodeId nodeId); -} diff --git a/framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbPort.java b/framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbPort.java deleted file mode 100644 index deea42d7..00000000 --- a/framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbPort.java +++ /dev/null @@ -1,86 +0,0 @@ -/* - * Copyright 2015 Open Networking Laboratory - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.onosproject.ovsdb.controller; - -import static com.google.common.base.MoreObjects.toStringHelper; -import static com.google.common.base.Preconditions.checkNotNull; - -import java.util.Objects; - -/** - * The class representing a ovsdb port. This class is immutable. - */ -public final class OvsdbPort { - - private final OvsdbPortNumber portNumber; - private final OvsdbPortName portName; - - /** - * Constructor from OvsdbPortNumber portNumber, OvsdbPortName portName. - * - * @param portNumber the portNumber to use - * @param portName the portName to use - */ - public OvsdbPort(OvsdbPortNumber portNumber, OvsdbPortName portName) { - checkNotNull(portNumber, "portNumber is not null"); - checkNotNull(portName, "portName is not null"); - this.portNumber = portNumber; - this.portName = portName; - } - - /** - * Gets the port number of port. - * - * @return the port number of port - */ - public OvsdbPortNumber portNumber() { - return portNumber; - } - - /** - * Gets the port name of port. - * - * @return the port name of port - */ - public OvsdbPortName portName() { - return portName; - } - - @Override - public int hashCode() { - return Objects.hash(portNumber, portName); - } - - @Override - public boolean equals(Object obj) { - if (this == obj) { - return true; - } - if (obj instanceof OvsdbPort) { - final OvsdbPort otherOvsdbPort = (OvsdbPort) obj; - return Objects.equals(this.portNumber, otherOvsdbPort.portNumber) - && Objects.equals(this.portName, otherOvsdbPort.portName); - } - return false; - } - - @Override - public String toString() { - return toStringHelper(this) - .add("portNumber", String.valueOf(portNumber.value())) - .add("portName", portName.value()).toString(); - } -} diff --git a/framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbPortName.java b/framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbPortName.java deleted file mode 100644 index 7d40e99f..00000000 --- a/framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbPortName.java +++ /dev/null @@ -1,71 +0,0 @@ -/* - * Copyright 2015 Open Networking Laboratory - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.onosproject.ovsdb.controller; - -import static com.google.common.base.MoreObjects.toStringHelper; -import static com.google.common.base.Preconditions.checkNotNull; - -import java.util.Objects; - -/** - * The class representing a port number. - * This class is immutable. - */ -public final class OvsdbPortName { - - private final String value; - - /** - * Constructor from a String. - * - * @param value the port name to use - */ - public OvsdbPortName(String value) { - checkNotNull(value, "value is not null"); - this.value = value; - } - - /** - * Gets the value of port name. - * - * @return the value of port name - */ - public String value() { - return value; - } - - @Override - public int hashCode() { - return value.hashCode(); - } - - @Override - public boolean equals(Object obj) { - if (this == obj) { - return true; - } - if (obj instanceof OvsdbPortName) { - final OvsdbPortName otherOvsdbPortName = (OvsdbPortName) obj; - return Objects.equals(this.value, otherOvsdbPortName.value); - } - return false; - } - - @Override - public String toString() { - return toStringHelper(this).add("value", value).toString(); - } -} diff --git a/framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbPortNumber.java b/framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbPortNumber.java deleted file mode 100644 index 86fc887a..00000000 --- a/framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbPortNumber.java +++ /dev/null @@ -1,69 +0,0 @@ -/* - * Copyright 2015 Open Networking Laboratory - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.onosproject.ovsdb.controller; - -import static com.google.common.base.MoreObjects.toStringHelper; - -import java.util.Objects; - -/** - * The class representing a port number. - * This class is immutable. - */ -public final class OvsdbPortNumber { - - private final long value; - - /** - * Constructor from a long value. - * - * @param value the port number to use - */ - public OvsdbPortNumber(long value) { - this.value = value; - } - - /** - * Gets the value of port number. - * - * @return the value of port number - */ - public long value() { - return value; - } - - @Override - public int hashCode() { - return Objects.hashCode(value); - } - - @Override - public boolean equals(Object obj) { - if (this == obj) { - return true; - } - if (obj instanceof OvsdbPortNumber) { - final OvsdbPortNumber ovsdbPortNumber = (OvsdbPortNumber) obj; - return Objects.equals(this.value, ovsdbPortNumber.value); - } - return false; - } - - @Override - public String toString() { - return toStringHelper(this).add("value", value).toString(); - } -} diff --git a/framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbPortType.java b/framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbPortType.java deleted file mode 100644 index fb7cdb00..00000000 --- a/framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbPortType.java +++ /dev/null @@ -1,71 +0,0 @@ -/* - * Copyright 2015 Open Networking Laboratory - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.onosproject.ovsdb.controller; - -import static com.google.common.base.MoreObjects.toStringHelper; -import static com.google.common.base.Preconditions.checkNotNull; - -import java.util.Objects; - -/** - * The class representing a port type. - * This class is immutable. - */ -public class OvsdbPortType { - - private final String value; - - /** - * Constructor from a String. - * - * @param value the port type to use - */ - public OvsdbPortType(String value) { - checkNotNull(value, "value is not null"); - this.value = value; - } - - /** - * Gets the value of port type. - * - * @return the value of port type - */ - public String value() { - return value; - } - - @Override - public int hashCode() { - return value.hashCode(); - } - - @Override - public boolean equals(Object obj) { - if (this == obj) { - return true; - } - if (obj instanceof OvsdbPortType) { - final OvsdbPortType otherOvsdbPortType = (OvsdbPortType) obj; - return Objects.equals(this.value, otherOvsdbPortType.value); - } - return false; - } - - @Override - public String toString() { - return toStringHelper(this).add("value", value).toString(); - } -} diff --git a/framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbRowStore.java b/framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbRowStore.java deleted file mode 100644 index bec0e2e9..00000000 --- a/framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbRowStore.java +++ /dev/null @@ -1,69 +0,0 @@ -/* - * Copyright 2015 Open Networking Laboratory - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.onosproject.ovsdb.controller; - -import java.util.concurrent.ConcurrentMap; - -import org.onosproject.ovsdb.rfc.notation.Row; - -import com.google.common.collect.Maps; - -/** - * The class representing a table data. - */ -public class OvsdbRowStore { - - private final ConcurrentMap rowStore = Maps.newConcurrentMap(); - - /** - * Gets the row. - * - * @param uuid the key of the rowStore - * @return row the row of the rowStore - */ - public Row getRow(String uuid) { - return rowStore.get(uuid); - } - - /** - * Inserts a row to rowStore. - * - * @param uuid key of the row - * @param row a row of the table - */ - public void insertRow(String uuid, Row row) { - rowStore.put(uuid, row); - } - - /** - * Deletes a row to rowStore. - * - * @param uuid key of the row - */ - public void deleteRow(String uuid) { - rowStore.remove(uuid); - } - - /** - * Gets the rowStore. - * - * @return rowStore - */ - public ConcurrentMap getRowStore() { - return rowStore; - } - -} diff --git a/framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbStore.java b/framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbStore.java deleted file mode 100644 index 56704908..00000000 --- a/framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbStore.java +++ /dev/null @@ -1,71 +0,0 @@ -/* - * Copyright 2015 Open Networking Laboratory - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.onosproject.ovsdb.controller; - -import java.util.concurrent.ConcurrentMap; - -import com.google.common.collect.Maps; - -/** - * The cache for local ovsdb database. - */ -public class OvsdbStore { - - private final ConcurrentMap ovsdbStore = Maps.newConcurrentMap(); - - /** - * Gets the OvsdbTableStore. - * - * @param dbName ovsdb database name - * @return tableStore OvsdbTableStore - */ - public OvsdbTableStore getOvsdbTableStore(String dbName) { - OvsdbTableStore tableStore = ovsdbStore.get(dbName); - if (tableStore == null) { - return null; - } - return tableStore; - } - - /** - * Create or Update a value to ovsdbStore. - * - * @param dbName ovsdb database name - * @param tableStore a database tableStore. - */ - public void createOrUpdateOvsdbStore(String dbName, OvsdbTableStore tableStore) { - ovsdbStore.put(dbName, tableStore); - } - - /** - * Drops a value to rowStore. - * - * @param dbName ovsdb database name - */ - public void dropOvsdbStore(String dbName) { - ovsdbStore.remove(dbName); - } - - /** - * Gets the ovsdbStore. - * - * @return ovsdbStore - */ - public ConcurrentMap getOvsdbStore() { - return ovsdbStore; - } - -} diff --git a/framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbTableStore.java b/framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbTableStore.java deleted file mode 100644 index 72b64f32..00000000 --- a/framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbTableStore.java +++ /dev/null @@ -1,67 +0,0 @@ -/* - * Copyright 2015 Open Networking Laboratory - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.onosproject.ovsdb.controller; - -import java.util.concurrent.ConcurrentMap; - -import com.google.common.collect.Maps; - -/** - * The class representing a database data. - */ -public class OvsdbTableStore { - - private final ConcurrentMap tableStore = Maps.newConcurrentMap(); - - /** - * Gets the ovsdbRowStore. - * - * @param tableName an ovsdb table name - * @return OvsdbRowStore the data of table - */ - public OvsdbRowStore getRows(String tableName) { - return tableStore.get(tableName); - } - - /** - * Creates or updates a value to tableStore. - * - * @param tableName key of tableName - * @param rowStore a row of table - */ - public void createOrUpdateTable(String tableName, OvsdbRowStore rowStore) { - tableStore.put(tableName, rowStore); - } - - /** - * Drops a value to table data. - * - * @param tableName key of tableName - */ - public void dropTable(String tableName) { - tableStore.remove(tableName); - } - - /** - * Gets tableStore. - * - * @return tableStore - */ - public ConcurrentMap getTableStore() { - return tableStore; - } - -} diff --git a/framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbTunnel.java b/framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbTunnel.java deleted file mode 100644 index 8c857da4..00000000 --- a/framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbTunnel.java +++ /dev/null @@ -1,126 +0,0 @@ -/* - * Copyright 2015 Open Networking Laboratory - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.onosproject.ovsdb.controller; - -import static com.google.common.base.MoreObjects.toStringHelper; -import static com.google.common.base.Preconditions.checkNotNull; - -import java.util.Objects; - -import org.onlab.packet.IpAddress; - -/** - * The class representing an ovsdb tunnel. - * This class is immutable. - */ -public final class OvsdbTunnel { - - private final IpAddress localIp; - private final IpAddress remoteIp; - - public enum Type { - VXLAN, GRE - } - - private final Type tunnelType; - private final OvsdbTunnelName tunnelName; - - /** - * Constructor from an IpAddress localIp, IpAddress remoteIp Type tunnelType, - * OvsdbTunnelName tunnelName. - * - * @param localIp the localIp to use - * @param remoteIp the remoteIp to use - * @param tunnelType the tunnelType to use - * @param tunnelName the tunnelName to use - */ - public OvsdbTunnel(IpAddress localIp, IpAddress remoteIp, Type tunnelType, - OvsdbTunnelName tunnelName) { - checkNotNull(localIp, "portName is not null"); - checkNotNull(remoteIp, "portName is not null"); - checkNotNull(tunnelName, "portName is not null"); - this.localIp = localIp; - this.remoteIp = remoteIp; - this.tunnelType = tunnelType; - this.tunnelName = tunnelName; - } - - /** - * Gets the local IP of tunnel. - * - * @return the local IP of tunnel - */ - public IpAddress localIp() { - return localIp; - } - - /** - * Gets the remote IP of tunnel. - * - * @return the remote IP of tunnel - */ - public IpAddress remoteIp() { - return remoteIp; - } - - /** - * Gets the tunnel type of tunnel. - * - * @return the tunnel type of tunnel - */ - public Type tunnelType() { - return tunnelType; - } - - /** - * Gets the tunnel name of tunnel. - * - * @return the tunnel name of tunnel - */ - public OvsdbTunnelName tunnelName() { - return tunnelName; - } - - @Override - public int hashCode() { - return Objects.hash(localIp, remoteIp, tunnelType, tunnelName); - } - - @Override - public boolean equals(Object obj) { - if (this == obj) { - return true; - } - if (obj instanceof OvsdbTunnel) { - final OvsdbTunnel otherOvsdbTunnel = (OvsdbTunnel) obj; - return Objects.equals(this.localIp, otherOvsdbTunnel.localIp) - && Objects.equals(this.remoteIp, otherOvsdbTunnel.remoteIp) - && Objects.equals(this.tunnelType, - otherOvsdbTunnel.tunnelType) - && Objects.equals(this.tunnelName, - otherOvsdbTunnel.tunnelName); - } - return false; - } - - @Override - public String toString() { - return toStringHelper(this).add("localIp", localIp.toString()) - .add("remoteIp", remoteIp.toString()) - .add("tunnelType", tunnelType).add("tunnelName", tunnelName) - .toString(); - } -} diff --git a/framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbTunnelName.java b/framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbTunnelName.java deleted file mode 100644 index 490d640b..00000000 --- a/framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbTunnelName.java +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Copyright 2015 Open Networking Laboratory - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.onosproject.ovsdb.controller; - -import static com.google.common.base.MoreObjects.toStringHelper; -import static com.google.common.base.Preconditions.checkNotNull; - -import java.util.Objects; - -/** - * The class representing a tunnel name. - * This class is immutable. - */ -public final class OvsdbTunnelName { - private final String value; - - /** - * Constructor from a String. - * - * @param value the tunnel name to use - */ - public OvsdbTunnelName(String value) { - checkNotNull(value, "value is not null"); - this.value = value; - } - - /** - * Gets the value of tunnel name. - * - * @return the value of tunnel name - */ - public String value() { - return value; - } - - @Override - public int hashCode() { - return value.hashCode(); - } - - @Override - public boolean equals(Object obj) { - if (this == obj) { - return true; - } - if (obj instanceof OvsdbTunnelName) { - final OvsdbTunnelName otherOvsdbTunnelName = (OvsdbTunnelName) obj; - return Objects.equals(this.value, otherOvsdbTunnelName.value); - } - return false; - } - - @Override - public String toString() { - return toStringHelper(this).add("value", value).toString(); - } -} diff --git a/framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/driver/DefaultOvsdbClient.java b/framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/driver/DefaultOvsdbClient.java deleted file mode 100644 index c6038632..00000000 --- a/framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/driver/DefaultOvsdbClient.java +++ /dev/null @@ -1,1496 +0,0 @@ -/* - * Copyright 2015 Open Networking Laboratory - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.onosproject.ovsdb.controller.driver; - -import com.fasterxml.jackson.databind.JsonNode; -import com.google.common.base.Function; -import com.google.common.collect.ImmutableList; -import com.google.common.collect.Lists; -import com.google.common.collect.Maps; -import com.google.common.collect.Sets; -import com.google.common.util.concurrent.Futures; -import com.google.common.util.concurrent.ListenableFuture; -import com.google.common.util.concurrent.SettableFuture; - -import io.netty.channel.Channel; - -import org.onlab.packet.IpAddress; -import org.onosproject.net.DeviceId; -import org.onosproject.net.behaviour.ControllerInfo; -import org.onosproject.ovsdb.controller.OvsdbBridge; -import org.onosproject.ovsdb.controller.OvsdbBridgeName; -import org.onosproject.ovsdb.controller.OvsdbClientService; -import org.onosproject.ovsdb.controller.OvsdbConstant; -import org.onosproject.ovsdb.controller.OvsdbDatapathId; -import org.onosproject.ovsdb.controller.OvsdbNodeId; -import org.onosproject.ovsdb.controller.OvsdbPort; -import org.onosproject.ovsdb.controller.OvsdbPortName; -import org.onosproject.ovsdb.controller.OvsdbPortNumber; -import org.onosproject.ovsdb.controller.OvsdbRowStore; -import org.onosproject.ovsdb.controller.OvsdbStore; -import org.onosproject.ovsdb.controller.OvsdbTableStore; -import org.onosproject.ovsdb.controller.OvsdbTunnel; -import org.onosproject.ovsdb.rfc.jsonrpc.Callback; -import org.onosproject.ovsdb.rfc.message.OperationResult; -import org.onosproject.ovsdb.rfc.message.TableUpdates; -import org.onosproject.ovsdb.rfc.notation.Condition; -import org.onosproject.ovsdb.rfc.notation.Mutation; -import org.onosproject.ovsdb.rfc.notation.OvsdbMap; -import org.onosproject.ovsdb.rfc.notation.OvsdbSet; -import org.onosproject.ovsdb.rfc.notation.Row; -import org.onosproject.ovsdb.rfc.notation.UUID; -import org.onosproject.ovsdb.rfc.operations.Delete; -import org.onosproject.ovsdb.rfc.operations.Insert; -import org.onosproject.ovsdb.rfc.operations.Mutate; -import org.onosproject.ovsdb.rfc.operations.Operation; -import org.onosproject.ovsdb.rfc.operations.Update; -import org.onosproject.ovsdb.rfc.schema.ColumnSchema; -import org.onosproject.ovsdb.rfc.schema.DatabaseSchema; -import org.onosproject.ovsdb.rfc.schema.TableSchema; -import org.onosproject.ovsdb.rfc.table.Bridge; -import org.onosproject.ovsdb.rfc.table.Controller; -import org.onosproject.ovsdb.rfc.table.Interface; -import org.onosproject.ovsdb.rfc.table.OvsdbTable; -import org.onosproject.ovsdb.rfc.table.Port; -import org.onosproject.ovsdb.rfc.table.TableGenerator; -import org.onosproject.ovsdb.rfc.utils.ConditionUtil; -import org.onosproject.ovsdb.rfc.utils.FromJsonUtil; -import org.onosproject.ovsdb.rfc.utils.JsonRpcWriterUtil; -import org.onosproject.ovsdb.rfc.utils.MutationUtil; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.net.InetSocketAddress; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.HashMap; -import java.util.HashSet; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.Set; -import java.util.concurrent.ConcurrentMap; -import java.util.concurrent.ExecutionException; -import java.util.concurrent.atomic.AtomicReference; -import java.util.stream.Collectors; - -/** - * An representation of an ovsdb client. - */ -public class DefaultOvsdbClient - implements OvsdbProviderService, OvsdbClientService { - - private final Logger log = LoggerFactory - .getLogger(DefaultOvsdbClient.class); - - private Channel channel; - - private OvsdbAgent agent; - private boolean connected; - private OvsdbNodeId nodeId; - private Callback monitorCallBack; - - private OvsdbStore ovsdbStore = new OvsdbStore(); - - private final Map requestMethod = Maps.newHashMap(); - private final Map> requestResult = Maps - .newHashMap(); - - private final Map schema = Maps.newHashMap(); - private final Set ovsdbTunnels = new HashSet(); - - /** - * Creates an OvsdbClient. - * - * @param nodeId ovsdb node id - */ - public DefaultOvsdbClient(OvsdbNodeId nodeId) { - this.nodeId = nodeId; - } - - @Override - public OvsdbNodeId nodeId() { - return nodeId; - } - - @Override - public void setAgent(OvsdbAgent agent) { - if (this.agent == null) { - this.agent = agent; - } - } - - @Override - public void setChannel(Channel channel) { - this.channel = channel; - } - - @Override - public void setConnection(boolean connected) { - this.connected = connected; - } - - @Override - public boolean isConnected() { - return this.connected; - } - - @Override - public void nodeAdded() { - this.agent.addConnectedNode(nodeId, this); - } - - @Override - public void nodeRemoved() { - this.agent.removeConnectedNode(nodeId); - channel.disconnect(); - } - - /** - * Gets the ovsdb table store. - * - * @param dbName the ovsdb database name - * @return ovsTableStore, empty if table store is find - */ - private OvsdbTableStore getTableStore(String dbName) { - if (ovsdbStore == null) { - return null; - } - return ovsdbStore.getOvsdbTableStore(dbName); - } - - /** - * Gets the ovsdb row store. - * - * @param dbName the ovsdb database name - * @param tableName the ovsdb table name - * @return ovsRowStore, empty store if no rows exist in the table - */ - private OvsdbRowStore getRowStore(String dbName, String tableName) { - OvsdbTableStore tableStore = getTableStore(dbName); - if (tableStore == null) { - return null; - } - - OvsdbRowStore rowStore = tableStore.getRows(tableName); - if (rowStore == null) { - rowStore = new OvsdbRowStore(); - } - return rowStore; - } - - /** - * Gets the ovsdb row. - * - * @param dbName the ovsdb database name - * @param tableName the ovsdb table name - * @param uuid the key of the row - * @return row, empty if row is find - */ - @Override - public Row getRow(String dbName, String tableName, String uuid) { - OvsdbTableStore tableStore = getTableStore(dbName); - if (tableStore == null) { - return null; - } - OvsdbRowStore rowStore = tableStore.getRows(tableName); - if (rowStore == null) { - return null; - } - return rowStore.getRow(uuid); - } - - @Override - public void removeRow(String dbName, String tableName, String uuid) { - OvsdbTableStore tableStore = getTableStore(dbName); - if (tableStore == null) { - return; - } - OvsdbRowStore rowStore = tableStore.getRows(tableName); - if (rowStore == null) { - return; - } - rowStore.deleteRow(uuid); - } - - @Override - public void updateOvsdbStore(String dbName, String tableName, String uuid, - Row row) { - OvsdbTableStore tableStore = ovsdbStore.getOvsdbTableStore(dbName); - if (tableStore == null) { - tableStore = new OvsdbTableStore(); - } - OvsdbRowStore rowStore = tableStore.getRows(tableName); - if (rowStore == null) { - rowStore = new OvsdbRowStore(); - } - rowStore.insertRow(uuid, row); - tableStore.createOrUpdateTable(tableName, rowStore); - ovsdbStore.createOrUpdateOvsdbStore(dbName, tableStore); - } - - @Override - public String getPortUuid(String portName, String bridgeUuid) { - DatabaseSchema dbSchema = schema.get(OvsdbConstant.DATABASENAME); - - Row bridgeRow = getRow(OvsdbConstant.DATABASENAME, - OvsdbConstant.BRIDGE, bridgeUuid); - - Bridge bridge = (Bridge) TableGenerator.getTable(dbSchema, bridgeRow, - OvsdbTable.BRIDGE); - if (bridge != null) { - OvsdbSet setPorts = (OvsdbSet) bridge.getPortsColumn().data(); - @SuppressWarnings("unchecked") - Set ports = setPorts.set(); - if (ports == null || ports.size() == 0) { - log.warn("The port uuid is null"); - return null; - } - - for (UUID uuid : ports) { - Row portRow = getRow(OvsdbConstant.DATABASENAME, - OvsdbConstant.PORT, uuid.value()); - Port port = (Port) TableGenerator.getTable(dbSchema, portRow, - OvsdbTable.PORT); - if (port != null && portName.equalsIgnoreCase(port.getName())) { - return uuid.value(); - } - } - - } - return null; - } - - @Override - public String getInterfaceUuid(String portUuid, String portName) { - DatabaseSchema dbSchema = schema.get(OvsdbConstant.DATABASENAME); - - Row portRow = getRow(OvsdbConstant.DATABASENAME, OvsdbConstant.PORT, - portUuid); - Port port = (Port) TableGenerator.getTable(dbSchema, portRow, - OvsdbTable.PORT); - - if (port != null) { - OvsdbSet setInterfaces = (OvsdbSet) port.getInterfacesColumn().data(); - @SuppressWarnings("unchecked") - Set interfaces = setInterfaces.set(); - - if (interfaces == null || interfaces.size() == 0) { - log.warn("The interface uuid is null"); - return null; - } - - for (UUID uuid : interfaces) { - Row intfRow = getRow(OvsdbConstant.DATABASENAME, - OvsdbConstant.INTERFACE, uuid.value()); - Interface intf = (Interface) TableGenerator - .getTable(dbSchema, intfRow, OvsdbTable.INTERFACE); - if (intf != null && portName.equalsIgnoreCase(intf.getName())) { - return uuid.value(); - } - } - - } - - return null; - } - - @Override - public String getBridgeUuid(String bridgeName) { - DatabaseSchema dbSchema = schema.get(OvsdbConstant.DATABASENAME); - - OvsdbRowStore rowStore = getRowStore(OvsdbConstant.DATABASENAME, - OvsdbConstant.BRIDGE); - if (rowStore == null) { - log.debug("The bridge uuid is null"); - return null; - } - - ConcurrentMap bridgeTableRows = rowStore.getRowStore(); - if (bridgeTableRows == null) { - log.debug("The bridge uuid is null"); - return null; - } - - for (String uuid : bridgeTableRows.keySet()) { - Bridge bridge = (Bridge) TableGenerator - .getTable(dbSchema, bridgeTableRows.get(uuid), - OvsdbTable.BRIDGE); - - if (bridge.getName().equals(bridgeName)) { - return uuid; - } - - } - return null; - } - - @Override - public String getControllerUuid(String controllerName, - String controllerTarget) { - DatabaseSchema dbSchema = schema.get(OvsdbConstant.DATABASENAME); - OvsdbRowStore rowStore = getRowStore(OvsdbConstant.DATABASENAME, - OvsdbConstant.CONTROLLER); - if (rowStore == null) { - log.debug("The controller uuid is null"); - return null; - } - - ConcurrentMap controllerTableRows = rowStore.getRowStore(); - if (controllerTableRows != null) { - for (String uuid : controllerTableRows.keySet()) { - - Controller controller = (Controller) TableGenerator - .getTable(dbSchema, controllerTableRows.get(uuid), - OvsdbTable.CONTROLLER); - String target = (String) controller.getTargetColumn().data(); - if (target.equalsIgnoreCase(controllerTarget)) { - return uuid; - } - - } - } - return null; - } - - @Override - public String getOvsUuid(String dbName) { - OvsdbRowStore rowStore = getRowStore(OvsdbConstant.DATABASENAME, - OvsdbConstant.DATABASENAME); - if (rowStore == null) { - log.debug("The bridge uuid is null"); - return null; - } - ConcurrentMap ovsTableRows = rowStore.getRowStore(); - if (ovsTableRows != null) { - for (String uuid : ovsTableRows.keySet()) { - Row row = ovsTableRows.get(uuid); - String tableName = row.tableName(); - if (tableName.equals(dbName)) { - return uuid; - } - } - } - return null; - } - - @Override - public void createPort(String bridgeName, String portName) { - String bridgeUuid = getBridgeUuid(bridgeName); - if (bridgeUuid == null) { - log.error("Can't find bridge {} in {}", bridgeName, - nodeId.getIpAddress()); - return; - } - - DatabaseSchema dbSchema = schema.get(OvsdbConstant.DATABASENAME); - String portUuid = getPortUuid(portName, bridgeUuid); - - Port port = (Port) TableGenerator - .createTable(dbSchema, OvsdbTable.PORT); - - port.setName(portName); - if (portUuid == null) { - insertConfig(OvsdbConstant.PORT, "_uuid", OvsdbConstant.BRIDGE, - "ports", bridgeUuid, port.getRow()); - } else { - updateConfig(OvsdbConstant.PORT, "_uuid", portUuid, port.getRow()); - } - - return; - } - - @Override - public void dropPort(String bridgeName, String portName) { - String bridgeUuid = getBridgeUuid(bridgeName); - if (bridgeUuid == null) { - log.error("Could not find Bridge {} in {}", bridgeName, nodeId); - return; - } - - String portUuid = getPortUuid(portName, bridgeUuid); - if (portUuid != null) { - log.info("Port {} delete", portName); - deleteConfig(OvsdbConstant.PORT, "_uuid", portUuid, - OvsdbConstant.BRIDGE, "ports"); - } - } - - @Override - public void createBridge(String bridgeName) { - log.debug("create bridge {}", bridgeName); - - DatabaseSchema dbSchema = schema.get(OvsdbConstant.DATABASENAME); - if (dbSchema == null) { - log.warn("The schema is null"); - return; - } - - Bridge bridge = (Bridge) TableGenerator.createTable(dbSchema, - OvsdbTable.BRIDGE); - if (bridge == null) { - log.debug("Can not create bridge"); - return; - } - - Set failModes = new HashSet<>(); - failModes.add("secure"); - bridge.setFailMode(failModes); - - Set protocols = new HashSet<>(); - protocols.add(OvsdbConstant.OPENFLOW13); - bridge.setProtocols(protocols); - - String ovsUuid = getOvsUuid(OvsdbConstant.DATABASENAME); - if (ovsUuid == null) { - log.warn("The Open_vSwitch is null"); - return; - } - - String bridgeUuid = getBridgeUuid(bridgeName); - if (bridgeUuid == null) { - log.debug("Create a new bridge"); - - bridge.setName(bridgeName); - bridgeUuid = insertConfig(OvsdbConstant.BRIDGE, "_uuid", - OvsdbConstant.DATABASENAME, "bridges", - ovsUuid, bridge.getRow()); - - if (bridgeUuid != null) { - Port port = (Port) TableGenerator.createTable(dbSchema, - OvsdbTable.PORT); - if (port != null) { - log.debug("the port is not null"); - port.setName(bridgeName); - - insertConfig(OvsdbConstant.PORT, "_uuid", "Bridge", "ports", bridgeUuid, - port.getRow()); - } - } - - } else { - log.info("Update a bridge"); - updateConfig(OvsdbConstant.BRIDGE, "_uuid", bridgeUuid, bridge.getRow()); - } - - setControllerAuto(bridgeUuid); - log.info("Create bridge success"); - } - - @Override - public void createBridge(String bridgeName, String dpid, String exPortName) { - log.debug("create bridge {}", bridgeName); - - DatabaseSchema dbSchema = schema.get(OvsdbConstant.DATABASENAME); - if (dbSchema == null) { - log.warn("The schema is null"); - return; - } - - Bridge bridge = (Bridge) TableGenerator.createTable(dbSchema, - OvsdbTable.BRIDGE); - if (bridge == null) { - log.debug("Can not create bridge"); - return; - } - - Set failModes = new HashSet<>(); - failModes.add("secure"); - bridge.setFailMode(failModes); - - Set protocols = new HashSet<>(); - protocols.add(OvsdbConstant.OPENFLOW13); - bridge.setProtocols(protocols); - - String ovsUuid = getOvsUuid(OvsdbConstant.DATABASENAME); - if (ovsUuid == null) { - log.warn("The Open_vSwitch is null"); - return; - } - - String bridgeUuid = getBridgeUuid(bridgeName); - if (bridgeUuid == null) { - log.debug("Create a new bridge"); - - bridge.setName(bridgeName); - if (dpid != null) { - Map options = new HashMap<>(); - options.put("datapath-id", dpid); - bridge.setOtherConfig(options); - } - bridgeUuid = insertConfig(OvsdbConstant.BRIDGE, "_uuid", - OvsdbConstant.DATABASENAME, "bridges", - ovsUuid, bridge.getRow()); - - if (bridgeUuid != null) { - Port port = (Port) TableGenerator.createTable(dbSchema, - OvsdbTable.PORT); - if (port != null) { - log.debug("the port is not null"); - port.setName(bridgeName); - - insertConfig(OvsdbConstant.PORT, "_uuid", "Bridge", "ports", bridgeUuid, - port.getRow()); - } - } - - } else { - log.info("Update a bridge"); - updateConfig(OvsdbConstant.BRIDGE, "_uuid", bridgeUuid, bridge.getRow()); - } - // Create external port - if (exPortName != null) { - createPort(bridgeName, exPortName); - } - - setControllerAuto(bridgeUuid); - log.info("Create bridge success"); - } - - @Override - public boolean createBridge(String bridgeName, String dpid, List controllers) { - - DatabaseSchema dbSchema = schema.get(OvsdbConstant.DATABASENAME); - String ovsUuid = getOvsUuid(OvsdbConstant.DATABASENAME); - - if (dbSchema == null || ovsUuid == null) { - log.warn("Couldn't find database Open_vSwitch"); - return false; - } - - String bridgeUuid = getBridgeUuid(bridgeName); - if (bridgeUuid != null) { - log.warn("Bridge {} is already exist", bridgeName); - // remove existing one and re-create? - return false; - } - - Bridge bridge = (Bridge) TableGenerator.createTable(dbSchema, OvsdbTable.BRIDGE); - bridge.setName(bridgeName); - - Set failMode = new HashSet<>(Arrays.asList("secure")); - bridge.setFailMode(failMode); - - Set protocols = new HashSet<>(Arrays.asList(OvsdbConstant.OPENFLOW13)); - bridge.setProtocols(protocols); - - Map options = new HashMap<>(); - options.put("datapath-id", dpid); - bridge.setOtherConfig(options); - - bridgeUuid = insertConfig(OvsdbConstant.BRIDGE, "_uuid", - OvsdbConstant.DATABASENAME, "bridges", - ovsUuid, bridge.getRow()); - - if (bridgeUuid != null) { - createPort(bridgeName, bridgeName); - } else { - log.warn("Failed to create bridge {} on {}", bridgeName, nodeId.toString()); - return false; - } - - setControllersWithUUID(UUID.uuid(bridgeUuid), controllers); - return true; - } - - /** - * Sets the bridge's controller automatically. - *

- * The connection is a TCP connection to the local ONOS instance's IP - * and the default OpenFlow port. - * - * @param bridgeUuid bridge uuid - */ - private void setControllerAuto(String bridgeUuid) { - IpAddress ipAddress = IpAddress.valueOf(((InetSocketAddress) channel.localAddress()).getAddress()); - ControllerInfo controllerInfo = new ControllerInfo(ipAddress, OvsdbConstant.OFPORT, "tcp"); - log.debug("Automatically setting controller for bridge {} to {}", - bridgeUuid, controllerInfo.target()); - setControllersWithUUID(UUID.uuid(bridgeUuid), ImmutableList.of(controllerInfo)); - } - - @Override - public void setControllersWithUUID(UUID bridgeUuid, List controllers) { - - DatabaseSchema dbSchema = schema.get(OvsdbConstant.DATABASENAME); - if (dbSchema == null) { - log.debug("There is no schema"); - return; - } - List oldControllers = getControllers(bridgeUuid); - if (oldControllers == null) { - log.warn("There are no controllers"); - return; - } - - Set newControllerUuids = new HashSet<>(); - - Set newControllers = new HashSet<>(controllers); - List removeControllers = new ArrayList<>(); - oldControllers.forEach(controller -> { - ControllerInfo controllerInfo = new ControllerInfo((String) controller.getTargetColumn().data()); - if (newControllers.contains(controllerInfo)) { - newControllers.remove(controllerInfo); - newControllerUuids.add(controller.getRow().uuid()); - } else { - removeControllers.add(controller); - } - }); - OvsdbRowStore controllerRowStore = getRowStore(OvsdbConstant.DATABASENAME, - OvsdbConstant.CONTROLLER); - if (controllerRowStore == null) { - log.debug("There is no controller table"); - return; - } - - removeControllers.forEach(c -> deleteConfig(OvsdbConstant.CONTROLLER, "_uuid", c.getRow().uuid().value(), - OvsdbConstant.BRIDGE, "controller")); - - newControllers.stream().map(c -> { - Controller controller = (Controller) TableGenerator - .createTable(dbSchema, OvsdbTable.CONTROLLER); - controller.setTarget(c.target()); - return controller; - }).forEach(c -> { - String uuid = insertConfig(OvsdbConstant.CONTROLLER, "_uuid", - OvsdbConstant.BRIDGE, "controller", bridgeUuid.value(), - c.getRow()); - newControllerUuids.add(UUID.uuid(uuid)); - - }); - - OvsdbRowStore rowStore = getRowStore(OvsdbConstant.DATABASENAME, - OvsdbConstant.BRIDGE); - if (rowStore == null) { - log.debug("There is no bridge table"); - return; - } - - Row bridgeRow = rowStore.getRow(bridgeUuid.value()); - Bridge bridge = (Bridge) TableGenerator.getTable(dbSchema, bridgeRow, OvsdbTable.BRIDGE); - bridge.setController(OvsdbSet.ovsdbSet(newControllerUuids)); - updateConfig(OvsdbConstant.BRIDGE, "_uuid", bridgeUuid.value(), bridge.getRow()); - } - - @Override - public void setControllersWithDeviceId(DeviceId deviceId, List controllers) { - setControllersWithUUID(getBridgeUUID(deviceId), controllers); - } - - @Override - public void dropBridge(String bridgeName) { - String bridgeUUID = getBridgeUuid(bridgeName); - if (bridgeUUID == null) { - log.warn("Could not find bridge in node", nodeId.getIpAddress()); - return; - } - deleteConfig(OvsdbConstant.BRIDGE, "_uuid", bridgeUUID, - OvsdbConstant.DATABASENAME, "bridges"); - } - - @Override - public void createTunnel(IpAddress srcIp, IpAddress dstIp) { - String bridgeUuid = getBridgeUuid(OvsdbConstant.INTEGRATION_BRIDGE); - if (bridgeUuid == null) { - log.warn("Could not find bridge {} and Could not create tunnel. ", - OvsdbConstant.INTEGRATION_BRIDGE); - return; - } - - DatabaseSchema dbSchema = schema.get(OvsdbConstant.DATABASENAME); - String portName = getTunnelName(OvsdbConstant.TYPEVXLAN, dstIp); - String portUuid = getPortUuid(portName, bridgeUuid); - - Port port = (Port) TableGenerator - .createTable(dbSchema, OvsdbTable.PORT); - if (port != null) { - port.setName(portName); - } - - if (portUuid == null) { - portUuid = insertConfig(OvsdbConstant.PORT, "_uuid", OvsdbConstant.BRIDGE, - "ports", bridgeUuid, port.getRow()); - } else { - updateConfig(OvsdbConstant.PORT, "_uuid", portUuid, port.getRow()); - } - - // When a tunnel is created, A row is inserted into port table and - // interface table of the ovsdb node. - // and the following step is to get the interface uuid from local store - // in controller node. - // but it need spend some time synchronising data between node and - // controller. - // so loop to judge if interfaceUUid is null is necessary. - String interfaceUuid = null; - for (int i = 0; i < 10; i++) { - interfaceUuid = getInterfaceUuid(portUuid, portName); - if (interfaceUuid == null) { - try { - Thread.sleep(500); - } catch (InterruptedException e) { - log.warn("Interrupted while waiting to get interfaceUuid"); - Thread.currentThread().interrupt(); - } - } else { - break; - } - } - - if (interfaceUuid != null) { - - Interface tunInterface = (Interface) TableGenerator - .createTable(dbSchema, OvsdbTable.INTERFACE); - - if (tunInterface != null) { - - tunInterface.setType(OvsdbConstant.TYPEVXLAN); - Map options = Maps.newHashMap(); - options.put("key", "flow"); - options.put("local_ip", srcIp.toString()); - options.put("remote_ip", dstIp.toString()); - tunInterface.setOptions(options); - updateConfig(OvsdbConstant.INTERFACE, "_uuid", interfaceUuid, - tunInterface.getRow()); - log.info("Tunnel added success", tunInterface); - - } - } - - return; - } - - @Override - public boolean createTunnel(String bridgeName, String portName, String tunnelType, Map options) { - - String bridgeUuid = getBridgeUuid(bridgeName); - if (bridgeUuid == null) { - log.warn("Couldn't find bridge {} in {}", bridgeName, nodeId.getIpAddress()); - return false; - } - - if (getPortUuid(portName, bridgeUuid) != null) { - log.warn("Port {} already exists", portName); - // remove existing one and re-create? - return false; - } - - ArrayList operations = Lists.newArrayList(); - DatabaseSchema dbSchema = schema.get(OvsdbConstant.DATABASENAME); - - // insert a new port to the port table - Port port = (Port) TableGenerator.createTable(dbSchema, OvsdbTable.PORT); - port.setName(portName); - Insert portInsert = new Insert(dbSchema.getTableSchema("Port"), "Port", port.getRow()); - portInsert.getRow().put("interfaces", UUID.uuid("Interface")); - operations.add(portInsert); - - // update the bridge table - Condition condition = ConditionUtil.equals("_uuid", UUID.uuid(bridgeUuid)); - Mutation mutation = MutationUtil.insert("ports", UUID.uuid("Port")); - List conditions = new ArrayList<>(Arrays.asList(condition)); - List mutations = new ArrayList<>(Arrays.asList(mutation)); - operations.add(new Mutate(dbSchema.getTableSchema("Bridge"), conditions, mutations)); - - // insert a tunnel interface - Interface intf = (Interface) TableGenerator.createTable(dbSchema, OvsdbTable.INTERFACE); - intf.setName(portName); - intf.setType(tunnelType); - intf.setOptions(options); - Insert intfInsert = new Insert(dbSchema.getTableSchema("Interface"), "Interface", intf.getRow()); - operations.add(intfInsert); - - transactConfig(OvsdbConstant.DATABASENAME, operations); - return true; - } - - @Override - public void dropTunnel(IpAddress srcIp, IpAddress dstIp) { - String bridgeName = OvsdbConstant.INTEGRATION_BRIDGE; - String portName = getTunnelName(OvsdbConstant.TYPEVXLAN, dstIp); - String bridgeUuid = getBridgeUuid(OvsdbConstant.INTEGRATION_BRIDGE); - if (bridgeUuid == null) { - log.warn("Could not find bridge {} in {}", bridgeName, - nodeId.getIpAddress()); - return; - } - - String portUUID = getPortUuid(portName, bridgeUuid); - if (portUUID != null) { - log.info("Delete tunnel"); - deleteConfig(OvsdbConstant.PORT, "_uuid", portUUID, - OvsdbConstant.BRIDGE, "ports"); - } - - return; - } - - /** - * Delete transact config. - * - * @param childTableName child table name - * @param childColumnName child column name - * @param childUuid child row uuid - * @param parentTableName parent table name - * @param parentColumnName parent column - */ - private void deleteConfig(String childTableName, String childColumnName, - String childUuid, String parentTableName, - String parentColumnName) { - DatabaseSchema dbSchema = schema.get(OvsdbConstant.DATABASENAME); - TableSchema childTableSchema = dbSchema.getTableSchema(childTableName); - - ArrayList operations = Lists.newArrayList(); - if (parentTableName != null && parentColumnName != null) { - TableSchema parentTableSchema = dbSchema - .getTableSchema(parentTableName); - ColumnSchema parentColumnSchema = parentTableSchema - .getColumnSchema(parentColumnName); - List mutations = Lists.newArrayList(); - Mutation mutation = MutationUtil.delete(parentColumnSchema.name(), - UUID.uuid(childUuid)); - mutations.add(mutation); - List conditions = Lists.newArrayList(); - Condition condition = ConditionUtil.includes(parentColumnName, - UUID.uuid(childUuid)); - conditions.add(condition); - Mutate op = new Mutate(parentTableSchema, conditions, mutations); - operations.add(op); - } - - List conditions = Lists.newArrayList(); - Condition condition = ConditionUtil.equals(childColumnName, UUID.uuid(childUuid)); - conditions.add(condition); - Delete del = new Delete(childTableSchema, conditions); - operations.add(del); - transactConfig(OvsdbConstant.DATABASENAME, operations); - - return; - } - - /** - * Update transact config. - * - * @param tableName table name - * @param columnName column name - * @param uuid uuid - * @param row the config data - */ - private void updateConfig(String tableName, String columnName, String uuid, - Row row) { - DatabaseSchema dbSchema = schema.get(OvsdbConstant.DATABASENAME); - TableSchema tableSchema = dbSchema.getTableSchema(tableName); - - List conditions = Lists.newArrayList(); - Condition condition = ConditionUtil.equals(columnName, UUID.uuid(uuid)); - conditions.add(condition); - - Update update = new Update(tableSchema, row, conditions); - - ArrayList operations = Lists.newArrayList(); - operations.add(update); - - transactConfig(OvsdbConstant.DATABASENAME, operations); - } - - /** - * Insert transact config. - * - * @param childTableName child table name - * @param childColumnName child column name - * @param parentTableName parent table name - * @param parentColumnName parent column - * @param parentUuid parent uuid - * @param row the config data - * @return uuid, empty if no uuid is find - */ - private String insertConfig(String childTableName, String childColumnName, - String parentTableName, String parentColumnName, - String parentUuid, Row row) { - DatabaseSchema dbSchema = schema.get(OvsdbConstant.DATABASENAME); - TableSchema tableSchema = dbSchema.getTableSchema(childTableName); - - String namedUuid = childTableName; - Insert insert = new Insert(tableSchema, namedUuid, row); - - ArrayList operations = Lists.newArrayList(); - operations.add(insert); - - if (parentTableName != null && parentColumnName != null) { - TableSchema parentTableSchema = dbSchema - .getTableSchema(parentTableName); - ColumnSchema parentColumnSchema = parentTableSchema - .getColumnSchema(parentColumnName); - - List mutations = Lists.newArrayList(); - Mutation mutation = MutationUtil.insert(parentColumnSchema.name(), - UUID.uuid(namedUuid)); - mutations.add(mutation); - - List conditions = Lists.newArrayList(); - Condition condition = ConditionUtil.equals("_uuid", - UUID.uuid(parentUuid)); - conditions.add(condition); - - Mutate op = new Mutate(parentTableSchema, conditions, mutations); - operations.add(op); - } - if (childTableName.equalsIgnoreCase(OvsdbConstant.PORT)) { - log.info("Handle port insert"); - Insert intfInsert = handlePortInsertTable(OvsdbConstant.INTERFACE, - row); - - if (intfInsert != null) { - operations.add(intfInsert); - } - - Insert ins = (Insert) operations.get(0); - ins.getRow().put("interfaces", - UUID.uuid(OvsdbConstant.INTERFACE)); - } - - List results; - try { - results = transactConfig(OvsdbConstant.DATABASENAME, operations) - .get(); - - return results.get(0).getUuid().value(); - } catch (InterruptedException e) { - log.warn("Interrupted while waiting to get result"); - Thread.currentThread().interrupt(); - } catch (ExecutionException e) { - log.error("Exception thrown while to get result"); - } - - return null; - } - - /** - * Handles port insert. - * - * @param tableName ovsdb table interface - * @param portRow row of port - * @return insert, empty if null - */ - private Insert handlePortInsertTable(String tableName, Row portRow) { - DatabaseSchema dbSchema = schema.get(OvsdbConstant.DATABASENAME); - - TableSchema portTableSchema = dbSchema - .getTableSchema(OvsdbConstant.PORT); - ColumnSchema portColumnSchema = portTableSchema.getColumnSchema("name"); - - String portName = (String) portRow.getColumn(portColumnSchema.name()).data(); - - Interface inf = (Interface) TableGenerator - .createTable(dbSchema, OvsdbTable.INTERFACE); - - inf.setName(portName); - - TableSchema intfTableSchema = dbSchema - .getTableSchema(OvsdbConstant.INTERFACE); - Insert insert = new Insert(intfTableSchema, OvsdbConstant.INTERFACE, - inf.getRow()); - return insert; - } - - /** - * Gets tunnel name. - * - * @param tunnelType - * @param dstIp the remote ip address - * @return tunnel name - */ - private String getTunnelName(String tunnelType, IpAddress dstIp) { - return tunnelType + "-" + dstIp.toString(); - } - - @Override - public ListenableFuture getOvsdbSchema(String dbName) { - if (dbName == null) { - return null; - } - DatabaseSchema databaseSchema = schema.get(dbName); - if (databaseSchema == null) { - List dbNames = new ArrayList(); - dbNames.add(dbName); - Function rowFunction = new Function() { - @Override - public DatabaseSchema apply(JsonNode input) { - log.info("Get ovsdb database schema {}", dbName); - DatabaseSchema dbSchema = FromJsonUtil - .jsonNodeToDbSchema(dbName, input); - if (dbSchema == null) { - log.debug("Get ovsdb database schema error"); - return null; - } - schema.put(dbName, dbSchema); - - return dbSchema; - } - }; - - ListenableFuture input = getSchema(dbNames); - if (input != null) { - return Futures.transform(input, rowFunction); - } - return null; - } else { - return Futures.immediateFuture(databaseSchema); - } - } - - @Override - public ListenableFuture monitorTables(String dbName, String id) { - if (dbName == null) { - return null; - } - DatabaseSchema dbSchema = schema.get(dbName); - if (dbSchema != null) { - Function rowFunction = new Function() { - @Override - public TableUpdates apply(JsonNode input) { - log.info("Get table updates"); - TableUpdates updates = FromJsonUtil - .jsonNodeToTableUpdates(input, dbSchema); - if (updates == null) { - log.debug("Get table updates error"); - return null; - } - return updates; - } - }; - return Futures.transform(monitor(dbSchema, id), rowFunction); - } - return null; - } - - @Override - public ListenableFuture> transactConfig(String dbName, - List operations) { - if (dbName == null) { - return null; - } - DatabaseSchema dbSchema = schema.get(dbName); - if (dbSchema != null) { - Function, List> rowFunction = (input -> { - log.info("Get ovsdb operation result"); - List result = FromJsonUtil - .jsonNodeToOperationResult(input, operations); - - if (result == null) { - log.debug("The operation result is null"); - return null; - } - return result; - }); - return Futures.transform(transact(dbSchema, operations), - rowFunction); - } - return null; - } - - @Override - public ListenableFuture getSchema(List dbnames) { - String id = java.util.UUID.randomUUID().toString(); - String getSchemaString = JsonRpcWriterUtil.getSchemaStr(id, dbnames); - - SettableFuture sf = SettableFuture.create(); - requestResult.put(id, sf); - requestMethod.put(id, "getSchema"); - - channel.writeAndFlush(getSchemaString); - return sf; - - } - - @Override - public ListenableFuture> echo() { - String id = java.util.UUID.randomUUID().toString(); - String echoString = JsonRpcWriterUtil.echoStr(id); - - SettableFuture> sf = SettableFuture.create(); - requestResult.put(id, sf); - requestMethod.put(id, "echo"); - - channel.writeAndFlush(echoString); - return sf; - - } - - @Override - public ListenableFuture monitor(DatabaseSchema dbSchema, - String monitorId) { - String id = java.util.UUID.randomUUID().toString(); - String monitorString = JsonRpcWriterUtil.monitorStr(id, monitorId, - dbSchema); - - SettableFuture sf = SettableFuture.create(); - requestResult.put(id, sf); - requestMethod.put(id, "monitor"); - - channel.writeAndFlush(monitorString); - return sf; - - } - - @Override - public ListenableFuture> listDbs() { - String id = java.util.UUID.randomUUID().toString(); - String listDbsString = JsonRpcWriterUtil.listDbsStr(id); - - SettableFuture> sf = SettableFuture.create(); - requestResult.put(id, sf); - requestMethod.put(id, "listDbs"); - - channel.writeAndFlush(listDbsString); - return sf; - - } - - @Override - public ListenableFuture> transact(DatabaseSchema dbSchema, - List operations) { - String id = java.util.UUID.randomUUID().toString(); - String transactString = JsonRpcWriterUtil.transactStr(id, dbSchema, - operations); - - SettableFuture> sf = SettableFuture.create(); - requestResult.put(id, sf); - requestMethod.put(id, "transact"); - - channel.writeAndFlush(transactString); - return sf; - - } - - @SuppressWarnings({"rawtypes", "unchecked"}) - @Override - public void processResult(JsonNode response) { - log.debug("Handle result"); - String requestId = response.get("id").asText(); - SettableFuture sf = requestResult.get(requestId); - if (sf == null) { - log.debug("No such future to process"); - return; - } - String methodName = requestMethod.get(requestId); - - Object result; - result = FromJsonUtil.jsonResultParser(response, methodName); - - sf.set(result); - return; - } - - @Override - public void processRequest(JsonNode requestJson) { - log.debug("Handle request"); - if (requestJson.get("method").asText().equalsIgnoreCase("echo")) { - log.debug("handle echo request"); - - String replyString = FromJsonUtil.getEchoRequestStr(requestJson); - channel.writeAndFlush(replyString); - - return; - } else { - FromJsonUtil - .jsonCallbackRequestParser(requestJson, monitorCallBack); - return; - } - } - - @Override - public void setCallback(Callback monitorCallback) { - this.monitorCallBack = monitorCallback; - } - - @Override - public Set getTunnels() { - return ovsdbTunnels; - } - - @Override - public Set getBridges() { - Set ovsdbBridges = new HashSet(); - OvsdbTableStore tableStore = getTableStore(OvsdbConstant.DATABASENAME); - if (tableStore == null) { - return null; - } - OvsdbRowStore rowStore = tableStore.getRows(OvsdbConstant.BRIDGE); - if (rowStore == null) { - return null; - } - ConcurrentMap rows = rowStore.getRowStore(); - for (String uuid : rows.keySet()) { - Row row = getRow(OvsdbConstant.DATABASENAME, OvsdbConstant.BRIDGE, - uuid); - OvsdbBridge ovsdbBridge = getOvsdbBridge(row); - if (ovsdbBridge != null) { - ovsdbBridges.add(ovsdbBridge); - } - } - return ovsdbBridges; - } - - @Override - public Set getControllers(DeviceId openflowDeviceId) { - UUID bridgeUuid = getBridgeUUID(openflowDeviceId); - if (bridgeUuid == null) { - log.warn("bad bridge Uuid"); - return null; - } - List controllers = getControllers(bridgeUuid); - if (controllers == null) { - log.warn("bad list of controllers"); - return null; - } - return controllers.stream(). - map(controller -> new ControllerInfo( - (String) controller.getTargetColumn() - .data())).collect(Collectors.toSet()); - } - - private List getControllers(UUID bridgeUuid) { - DatabaseSchema dbSchema = schema.get(OvsdbConstant.DATABASENAME); - if (dbSchema == null) { - return null; - } - OvsdbRowStore rowStore = getRowStore(OvsdbConstant.DATABASENAME, - OvsdbConstant.BRIDGE); - if (rowStore == null) { - log.debug("There is no bridge table"); - return null; - } - - Row bridgeRow = rowStore.getRow(bridgeUuid.value()); - Bridge bridge = (Bridge) TableGenerator. - getTable(dbSchema, bridgeRow, OvsdbTable.BRIDGE); - - //FIXME remove log - log.warn("type of controller column", bridge.getControllerColumn() - .data().getClass()); - Set controllerUuids = (Set) ((OvsdbSet) bridge - .getControllerColumn().data()).set(); -// Set controllerUuidStrings = (Set) bridge.getControllerColumn().data(); - - OvsdbRowStore controllerRowStore = getRowStore(OvsdbConstant.DATABASENAME, - OvsdbConstant.CONTROLLER); - if (controllerRowStore == null) { - log.debug("There is no controller table"); - return null; - } - - List ovsdbControllers = new ArrayList<>(); - ConcurrentMap controllerTableRows = controllerRowStore.getRowStore(); - controllerTableRows.forEach((key, row) -> { - if (!controllerUuids.contains(UUID.uuid(key))) { - return; - } - Controller controller = (Controller) TableGenerator - .getTable(dbSchema, row, OvsdbTable.CONTROLLER); - ovsdbControllers.add(controller); - }); - return ovsdbControllers; - } - - - private UUID getBridgeUUID(DeviceId openflowDeviceId) { - DatabaseSchema dbSchema = schema.get(OvsdbConstant.DATABASENAME); - if (dbSchema == null) { - return null; - } - OvsdbRowStore rowStore = getRowStore(OvsdbConstant.DATABASENAME, - OvsdbConstant.BRIDGE); - if (rowStore == null) { - log.debug("There is no bridge table"); - return null; - } - - ConcurrentMap bridgeTableRows = rowStore.getRowStore(); - final AtomicReference uuid = new AtomicReference<>(); - for (Map.Entry entry : bridgeTableRows.entrySet()) { - Bridge b = (Bridge) TableGenerator.getTable(dbSchema, - entry.getValue(), - OvsdbTable.BRIDGE); - if (matchesDpid(b, openflowDeviceId)) { - uuid.set(UUID.uuid(entry.getKey())); - break; - } - } - if (uuid.get() == null) { - log.debug("There is no bridge for {}", openflowDeviceId); - } - return uuid.get(); - - } - - private static boolean matchesDpid(Bridge b, DeviceId deviceId) { - String ofDpid = deviceId.toString().replace("of:", ""); - Set ofDeviceIds = ((OvsdbSet) b.getDatapathIdColumn().data()).set(); - //TODO Set - return ofDeviceIds.contains(ofDpid); - } - - @Override - public Set getPorts() { - Set ovsdbPorts = new HashSet(); - OvsdbTableStore tableStore = getTableStore(OvsdbConstant.DATABASENAME); - if (tableStore == null) { - return null; - } - OvsdbRowStore rowStore = tableStore.getRows(OvsdbConstant.INTERFACE); - if (rowStore == null) { - return null; - } - ConcurrentMap rows = rowStore.getRowStore(); - for (String uuid : rows.keySet()) { - Row row = getRow(OvsdbConstant.DATABASENAME, - OvsdbConstant.INTERFACE, uuid); - OvsdbPort ovsdbPort = getOvsdbPort(row); - if (ovsdbPort != null) { - ovsdbPorts.add(ovsdbPort); - } - } - return ovsdbPorts; - } - - @Override - public DatabaseSchema getDatabaseSchema(String dbName) { - return schema.get(dbName); - } - - //Gets ovsdb port. - private OvsdbPort getOvsdbPort(Row row) { - DatabaseSchema dbSchema = getDatabaseSchema(OvsdbConstant.DATABASENAME); - Interface intf = (Interface) TableGenerator - .getTable(dbSchema, row, OvsdbTable.INTERFACE); - if (intf == null) { - return null; - } - long ofPort = getOfPort(intf); - String portName = intf.getName(); - if ((ofPort < 0) || (portName == null)) { - return null; - } - - OvsdbPort ovsdbPort = new OvsdbPort(new OvsdbPortNumber(ofPort), - new OvsdbPortName(portName)); - return ovsdbPort; - } - - ////Gets ovsdb bridge. - private OvsdbBridge getOvsdbBridge(Row row) { - DatabaseSchema dbSchema = getDatabaseSchema(OvsdbConstant.DATABASENAME); - Bridge bridge = (Bridge) TableGenerator.getTable(dbSchema, row, - OvsdbTable.BRIDGE); - if (bridge == null) { - return null; - } - - OvsdbSet datapathIdSet = (OvsdbSet) bridge.getDatapathIdColumn().data(); - @SuppressWarnings("unchecked") - Set datapathIds = datapathIdSet.set(); - if (datapathIds == null || datapathIds.size() == 0) { - return null; - } - String datapathId = (String) datapathIds.toArray()[0]; - String bridgeName = bridge.getName(); - if ((datapathId == null) || (bridgeName == null)) { - return null; - } - - OvsdbBridge ovsdbBridge = new OvsdbBridge(new OvsdbBridgeName(bridgeName), - new OvsdbDatapathId(datapathId)); - return ovsdbBridge; - } - - //Gets ofPort in the interface. - private long getOfPort(Interface intf) { - OvsdbSet ofPortSet = (OvsdbSet) intf.getOpenFlowPortColumn().data(); - @SuppressWarnings("unchecked") - Set ofPorts = ofPortSet.set(); - while (ofPorts == null || ofPorts.size() <= 0) { - log.debug("The ofport is null in {}", intf.getName()); - return -1; - } - // return (long) ofPorts.toArray()[0]; - Iterator it = ofPorts.iterator(); - return Long.parseLong(it.next().toString()); - } - - @Override - public Set getLocalPorts(Iterable ifaceids) { - Set ovsdbPorts = new HashSet(); - OvsdbTableStore tableStore = getTableStore(OvsdbConstant.DATABASENAME); - if (tableStore == null) { - return null; - } - OvsdbRowStore rowStore = tableStore.getRows(OvsdbConstant.INTERFACE); - if (rowStore == null) { - return null; - } - ConcurrentMap rows = rowStore.getRowStore(); - for (String uuid : rows.keySet()) { - Row row = getRow(OvsdbConstant.DATABASENAME, - OvsdbConstant.INTERFACE, uuid); - DatabaseSchema dbSchema = getDatabaseSchema(OvsdbConstant.DATABASENAME); - Interface intf = (Interface) TableGenerator - .getTable(dbSchema, row, OvsdbTable.INTERFACE); - if (intf == null || getIfaceid(intf) == null) { - continue; - } - String portName = intf.getName(); - Set ifaceidSet = Sets.newHashSet(ifaceids); - if (portName.startsWith("vxlan") - || !ifaceidSet.contains(getIfaceid(intf))) { - continue; - } - long ofPort = getOfPort(intf); - if ((ofPort < 0) || (portName == null)) { - continue; - } - - OvsdbPort ovsdbPort = new OvsdbPort(new OvsdbPortNumber(ofPort), - new OvsdbPortName(portName)); - if (ovsdbPort != null) { - ovsdbPorts.add(ovsdbPort); - } - } - return ovsdbPorts; - } - - private String getIfaceid(Interface intf) { - OvsdbMap ovsdbMap = (OvsdbMap) intf.getExternalIdsColumn().data(); - @SuppressWarnings("unchecked") - Map externalIds = ovsdbMap.map(); - if (externalIds.isEmpty()) { - log.warn("The external_ids is null"); - return null; - } - String ifaceid = externalIds - .get(OvsdbConstant.EXTERNAL_ID_INTERFACE_ID); - if (ifaceid == null) { - log.warn("The ifaceid is null"); - return null; - } - return ifaceid; - } - - @Override - public void disconnect() { - channel.disconnect(); - this.agent.removeConnectedNode(nodeId); - } -} diff --git a/framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/driver/OvsdbAgent.java b/framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/driver/OvsdbAgent.java deleted file mode 100644 index 70ffae8b..00000000 --- a/framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/driver/OvsdbAgent.java +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Copyright 2015 Open Networking Laboratory - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.onosproject.ovsdb.controller.driver; - -import org.onosproject.ovsdb.controller.OvsdbNodeId; -import org.onosproject.ovsdb.controller.OvsdbClientService; - -/** - * Responsible for keeping track of the current set of nodes connected to the - * system. - */ -public interface OvsdbAgent { - /** - * Add a node that has just connected to the system. - * - * @param nodeId the nodeId to add - * @param ovsdbClient the actual node object. - */ - void addConnectedNode(OvsdbNodeId nodeId, OvsdbClientService ovsdbClient); - - /** - * Clear all state in controller node maps for a node that has disconnected - * from the local controller. Also release control for that node from the - * global repository. Notify node listeners. - * - * @param nodeId the node id to be removed. - */ - void removeConnectedNode(OvsdbNodeId nodeId); -} diff --git a/framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/driver/OvsdbProviderService.java b/framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/driver/OvsdbProviderService.java deleted file mode 100644 index 48f58d02..00000000 --- a/framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/driver/OvsdbProviderService.java +++ /dev/null @@ -1,81 +0,0 @@ -/* - * Copyright 2015 Open Networking Laboratory - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.onosproject.ovsdb.controller.driver; - -import io.netty.channel.Channel; - -import org.onosproject.ovsdb.rfc.jsonrpc.Callback; - -import com.fasterxml.jackson.databind.JsonNode; - -/** - * Represents the driver side of an ovsdb node. This interface should never be - * exposed to consumers. - */ -public interface OvsdbProviderService { - /** - * Sets the ovsdb agent to be used. This method can only be called once. - * - * @param agent the agent to set. - */ - void setAgent(OvsdbAgent agent); - - /** - * Sets the associated Netty channel for this node. - * - * @param channel the Netty channel - */ - void setChannel(Channel channel); - - /** - * Announces to the ovsdb agent that this node has added. - */ - void nodeAdded(); - - /** - * Announces to the ovsdb agent that this node has removed. - */ - void nodeRemoved(); - - /** - * Sets whether the node is connected. - * - * @param connected whether the node is connected - */ - void setConnection(boolean connected); - - /** - * Processes result from ovsdb. - * - * @param response JsonNode response from ovsdb - */ - void processResult(JsonNode response); - - /** - * processes request from ovsdb. - * - * @param request JsonNode request from ovsdb - */ - void processRequest(JsonNode request); - - /** - * Sets call back. - * - * @param monitorCallback the callback to set - */ - void setCallback(Callback monitorCallback); - -} diff --git a/framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/driver/package-info.java b/framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/driver/package-info.java deleted file mode 100644 index b14afdfb..00000000 --- a/framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/driver/package-info.java +++ /dev/null @@ -1,20 +0,0 @@ -/* - * Copyright 2015 Open Networking Laboratory - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * Ovsdb controller node driver API. - */ -package org.onosproject.ovsdb.controller.driver; \ No newline at end of file diff --git a/framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/package-info.java b/framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/package-info.java deleted file mode 100644 index d6fb434c..00000000 --- a/framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/package-info.java +++ /dev/null @@ -1,20 +0,0 @@ -/* - * Copyright 2015 Open Networking Laboratory - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * Ovsdb controller API. - */ -package org.onosproject.ovsdb.controller; \ No newline at end of file diff --git a/framework/src/onos/ovsdb/api/src/test/java/org/onosproject/ovsdb/controller/driver/OvsdbClientServiceAdapter.java b/framework/src/onos/ovsdb/api/src/test/java/org/onosproject/ovsdb/controller/driver/OvsdbClientServiceAdapter.java deleted file mode 100644 index 5d80a7bf..00000000 --- a/framework/src/onos/ovsdb/api/src/test/java/org/onosproject/ovsdb/controller/driver/OvsdbClientServiceAdapter.java +++ /dev/null @@ -1,225 +0,0 @@ -/* - * Copyright 2015 Open Networking Laboratory - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.onosproject.ovsdb.controller.driver; - -import com.fasterxml.jackson.databind.JsonNode; -import com.google.common.util.concurrent.ListenableFuture; - -import org.onlab.packet.IpAddress; -import org.onosproject.net.DeviceId; -import org.onosproject.net.behaviour.ControllerInfo; -import org.onosproject.ovsdb.controller.OvsdbBridge; -import org.onosproject.ovsdb.controller.OvsdbClientService; -import org.onosproject.ovsdb.controller.OvsdbNodeId; -import org.onosproject.ovsdb.controller.OvsdbPort; -import org.onosproject.ovsdb.controller.OvsdbTunnel; -import org.onosproject.ovsdb.rfc.message.OperationResult; -import org.onosproject.ovsdb.rfc.message.TableUpdates; -import org.onosproject.ovsdb.rfc.notation.Row; -import org.onosproject.ovsdb.rfc.notation.UUID; -import org.onosproject.ovsdb.rfc.operations.Operation; -import org.onosproject.ovsdb.rfc.schema.DatabaseSchema; - -import java.util.List; -import java.util.Map; -import java.util.Set; - -/** - * Test Adapter for OvsdbClientService. - */ -public class OvsdbClientServiceAdapter implements OvsdbClientService { - - @Override - public OvsdbNodeId nodeId() { - return null; - } - - @Override - public void createTunnel(IpAddress srcIp, IpAddress dstIp) { - - } - - @Override - public boolean createTunnel(String bridgeName, String portName, String tunnelType, Map options) { - return true; - } - - @Override - public void dropTunnel(IpAddress srcIp, IpAddress dstIp) { - - } - - @Override - public Set getTunnels() { - return null; - } - - @Override - public void createBridge(String bridgeName) { - - } - - @Override - public boolean createBridge(String bridgeName, String dpid, List controllers) { - return true; - } - - @Override - public void dropBridge(String bridgeName) { - - } - - @Override - public Set getBridges() { - return null; - } - - @Override - public Set getControllers(DeviceId openflowDeviceId) { - return null; - } - - @Override - public void setControllersWithUUID(UUID bridgeUuid, List controllers) { - - } - - @Override - public void setControllersWithDeviceId(DeviceId deviceId, List controllers) { - - } - - @Override - public void createPort(String bridgeName, String portName) { - - } - - @Override - public void dropPort(String bridgeName, String portName) { - - } - - @Override - public Set getPorts() { - return null; - } - - @Override - public boolean isConnected() { - return false; - } - - @Override - public String getBridgeUuid(String bridgeName) { - return null; - } - - @Override - public String getPortUuid(String portName, String bridgeUuid) { - return null; - } - - @Override - public String getInterfaceUuid(String portUuid, String portName) { - return null; - } - - @Override - public String getControllerUuid(String controllerName, String controllerTarget) { - return null; - } - - @Override - public String getOvsUuid(String dbName) { - return null; - } - - @Override - public ListenableFuture getOvsdbSchema(String dbName) { - return null; - } - - @Override - public ListenableFuture monitorTables(String dbName, String id) { - return null; - } - - @Override - public ListenableFuture> transactConfig(String dbName, List operations) { - return null; - } - - @Override - public DatabaseSchema getDatabaseSchema(String dbName) { - return null; - } - - @Override - public Row getRow(String dbName, String tableName, String uuid) { - return null; - } - - @Override - public void removeRow(String dbName, String tableName, String uuid) { - - } - - @Override - public void updateOvsdbStore(String dbName, String tableName, String uuid, Row row) { - - } - - @Override - public Set getLocalPorts(Iterable ifaceids) { - return null; - } - - @Override - public void disconnect() { - - } - - @Override - public ListenableFuture getSchema(List dbnames) { - return null; - } - - @Override - public ListenableFuture> echo() { - return null; - } - - @Override - public ListenableFuture monitor(DatabaseSchema dbSchema, String monitorId) { - return null; - } - - @Override - public ListenableFuture> listDbs() { - return null; - } - - @Override - public ListenableFuture> transact(DatabaseSchema dbSchema, List operations) { - return null; - } - - @Override - public void createBridge(String bridgeName, String dpid, String exPortName) { - - } -} diff --git a/framework/src/onos/ovsdb/api/src/test/java/org/onosproject/ovsdb/controller/driver/OvsdbControllerAdapter.java b/framework/src/onos/ovsdb/api/src/test/java/org/onosproject/ovsdb/controller/driver/OvsdbControllerAdapter.java deleted file mode 100644 index 902113aa..00000000 --- a/framework/src/onos/ovsdb/api/src/test/java/org/onosproject/ovsdb/controller/driver/OvsdbControllerAdapter.java +++ /dev/null @@ -1,75 +0,0 @@ -/* - * Copyright 2015 Open Networking Laboratory - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.onosproject.ovsdb.controller.driver; - -import org.onlab.packet.IpAddress; -import org.onlab.packet.TpPort; -import org.onosproject.ovsdb.controller.OvsdbClientService; -import org.onosproject.ovsdb.controller.OvsdbController; -import org.onosproject.ovsdb.controller.OvsdbEventListener; -import org.onosproject.ovsdb.controller.OvsdbNodeId; -import org.onosproject.ovsdb.controller.OvsdbNodeListener; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; -import java.util.concurrent.ConcurrentHashMap; - -/** - * Test Adapter for OvsdbController. - */ -public class OvsdbControllerAdapter implements OvsdbController { - protected ConcurrentHashMap ovsdbClients = - new ConcurrentHashMap(); - - @Override - public void addNodeListener(OvsdbNodeListener listener) { - - } - - @Override - public void removeNodeListener(OvsdbNodeListener listener) { - - } - - @Override - public void addOvsdbEventListener(OvsdbEventListener listener) { - - } - - @Override - public void removeOvsdbEventListener(OvsdbEventListener listener) { - - } - - @Override - public List getNodeIds() { - long port = 6653; - return new ArrayList(Arrays.asList( - new OvsdbNodeId(IpAddress.valueOf("127.0.0.1"), port))); - } - - @Override - public OvsdbClientService getOvsdbClient(OvsdbNodeId nodeId) { - return ovsdbClients.get(nodeId); - } - - @Override - public void connect(IpAddress ip, TpPort port) { - - } -} -- cgit 1.2.3-korg