From bb8a3fbc5bf0988923b635664422f75f0353ac0b Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Fri, 9 Feb 2024 18:20:54 +0100 Subject: [PATCH 1/3] Move FRM tests We have a 'mock' and 'mock.util' top-level package. Move those into the appropriate place. JIRA: OPNFLWPLUG-1125 Change-Id: I3b0d9a4c73da8b9c25d2709887b2c4072efd4c1c Signed-off-by: Robert Varga --- .../applications/frm/impl}/AbstractFRMTest.java | 2 +- .../frm/impl}/ArbitratorReconcileServiceMock.java | 2 +- .../applications/frm/impl}/FlowListenerTest.java | 4 +--- .../applications/frm/impl}/GroupListenerTest.java | 4 +--- .../applications/frm/impl}/MeterListenerTest.java | 4 +--- .../applications/frm/impl}/NodeListenerTest.java | 3 +-- .../applications/frm/impl}/SalBundleServiceMock.java | 2 +- .../applications/frm/impl}/SalFlowServiceMock.java | 2 +- .../applications/frm/impl}/SalGroupServiceMock.java | 2 +- .../applications/frm/impl}/SalMeterServiceMock.java | 2 +- .../applications/frm/impl}/SalTableServiceMock.java | 2 +- .../applications/frm/impl}/TableFeaturesListenerTest.java | 4 +--- 12 files changed, 12 insertions(+), 21 deletions(-) rename applications/forwardingrules-manager/src/test/java/{test/mock/util => org/opendaylight/openflowplugin/applications/frm/impl}/AbstractFRMTest.java (99%) rename applications/forwardingrules-manager/src/test/java/{test/mock/util => org/opendaylight/openflowplugin/applications/frm/impl}/ArbitratorReconcileServiceMock.java (97%) rename applications/forwardingrules-manager/src/test/java/{test/mock => org/opendaylight/openflowplugin/applications/frm/impl}/FlowListenerTest.java (99%) rename applications/forwardingrules-manager/src/test/java/{test/mock => org/opendaylight/openflowplugin/applications/frm/impl}/GroupListenerTest.java (98%) rename applications/forwardingrules-manager/src/test/java/{test/mock => org/opendaylight/openflowplugin/applications/frm/impl}/MeterListenerTest.java (98%) rename applications/forwardingrules-manager/src/test/java/{test/mock => org/opendaylight/openflowplugin/applications/frm/impl}/NodeListenerTest.java (97%) rename applications/forwardingrules-manager/src/test/java/{test/mock/util => org/opendaylight/openflowplugin/applications/frm/impl}/SalBundleServiceMock.java (97%) rename applications/forwardingrules-manager/src/test/java/{test/mock/util => org/opendaylight/openflowplugin/applications/frm/impl}/SalFlowServiceMock.java (97%) rename applications/forwardingrules-manager/src/test/java/{test/mock/util => org/opendaylight/openflowplugin/applications/frm/impl}/SalGroupServiceMock.java (97%) rename applications/forwardingrules-manager/src/test/java/{test/mock/util => org/opendaylight/openflowplugin/applications/frm/impl}/SalMeterServiceMock.java (97%) rename applications/forwardingrules-manager/src/test/java/{test/mock/util => org/opendaylight/openflowplugin/applications/frm/impl}/SalTableServiceMock.java (95%) rename applications/forwardingrules-manager/src/test/java/{test/mock => org/opendaylight/openflowplugin/applications/frm/impl}/TableFeaturesListenerTest.java (97%) diff --git a/applications/forwardingrules-manager/src/test/java/test/mock/util/AbstractFRMTest.java b/applications/forwardingrules-manager/src/test/java/org/opendaylight/openflowplugin/applications/frm/impl/AbstractFRMTest.java similarity index 99% rename from applications/forwardingrules-manager/src/test/java/test/mock/util/AbstractFRMTest.java rename to applications/forwardingrules-manager/src/test/java/org/opendaylight/openflowplugin/applications/frm/impl/AbstractFRMTest.java index 415463d87..fcac18940 100644 --- a/applications/forwardingrules-manager/src/test/java/test/mock/util/AbstractFRMTest.java +++ b/applications/forwardingrules-manager/src/test/java/org/opendaylight/openflowplugin/applications/frm/impl/AbstractFRMTest.java @@ -5,7 +5,7 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ -package test.mock.util; +package org.opendaylight.openflowplugin.applications.frm.impl; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.eq; diff --git a/applications/forwardingrules-manager/src/test/java/test/mock/util/ArbitratorReconcileServiceMock.java b/applications/forwardingrules-manager/src/test/java/org/opendaylight/openflowplugin/applications/frm/impl/ArbitratorReconcileServiceMock.java similarity index 97% rename from applications/forwardingrules-manager/src/test/java/test/mock/util/ArbitratorReconcileServiceMock.java rename to applications/forwardingrules-manager/src/test/java/org/opendaylight/openflowplugin/applications/frm/impl/ArbitratorReconcileServiceMock.java index e03debd0c..65df8ed9d 100644 --- a/applications/forwardingrules-manager/src/test/java/test/mock/util/ArbitratorReconcileServiceMock.java +++ b/applications/forwardingrules-manager/src/test/java/org/opendaylight/openflowplugin/applications/frm/impl/ArbitratorReconcileServiceMock.java @@ -6,7 +6,7 @@ * and is available at http://www.eclipse.org/legal/epl-v10.html */ -package test.mock.util; +package org.opendaylight.openflowplugin.applications.frm.impl; import com.google.common.util.concurrent.ListenableFuture; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.openflowplugin.app.arbitrator.reconcile.service.rev180227.ArbitratorReconcileService; diff --git a/applications/forwardingrules-manager/src/test/java/test/mock/FlowListenerTest.java b/applications/forwardingrules-manager/src/test/java/org/opendaylight/openflowplugin/applications/frm/impl/FlowListenerTest.java similarity index 99% rename from applications/forwardingrules-manager/src/test/java/test/mock/FlowListenerTest.java rename to applications/forwardingrules-manager/src/test/java/org/opendaylight/openflowplugin/applications/frm/impl/FlowListenerTest.java index 40e09de16..9eccb2517 100644 --- a/applications/forwardingrules-manager/src/test/java/test/mock/FlowListenerTest.java +++ b/applications/forwardingrules-manager/src/test/java/org/opendaylight/openflowplugin/applications/frm/impl/FlowListenerTest.java @@ -5,7 +5,7 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ -package test.mock; +package org.opendaylight.openflowplugin.applications.frm.impl; import static java.util.concurrent.TimeUnit.SECONDS; import static org.awaitility.Awaitility.await; @@ -45,8 +45,6 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.opendaylight.yangtools.yang.common.Uint32; import org.opendaylight.yangtools.yang.common.Uint8; -import test.mock.util.AbstractFRMTest; -import test.mock.util.SalFlowServiceMock; @RunWith(MockitoJUnitRunner.class) public class FlowListenerTest extends AbstractFRMTest { diff --git a/applications/forwardingrules-manager/src/test/java/test/mock/GroupListenerTest.java b/applications/forwardingrules-manager/src/test/java/org/opendaylight/openflowplugin/applications/frm/impl/GroupListenerTest.java similarity index 98% rename from applications/forwardingrules-manager/src/test/java/test/mock/GroupListenerTest.java rename to applications/forwardingrules-manager/src/test/java/org/opendaylight/openflowplugin/applications/frm/impl/GroupListenerTest.java index 922fe2c0d..13a473d79 100644 --- a/applications/forwardingrules-manager/src/test/java/test/mock/GroupListenerTest.java +++ b/applications/forwardingrules-manager/src/test/java/org/opendaylight/openflowplugin/applications/frm/impl/GroupListenerTest.java @@ -5,7 +5,7 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ -package test.mock; +package org.opendaylight.openflowplugin.applications.frm.impl; import static java.util.concurrent.TimeUnit.SECONDS; import static org.awaitility.Awaitility.await; @@ -36,8 +36,6 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.N import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.NodeKey; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.opendaylight.yangtools.yang.common.Uint32; -import test.mock.util.AbstractFRMTest; -import test.mock.util.SalGroupServiceMock; @RunWith(MockitoJUnitRunner.class) public class GroupListenerTest extends AbstractFRMTest { diff --git a/applications/forwardingrules-manager/src/test/java/test/mock/MeterListenerTest.java b/applications/forwardingrules-manager/src/test/java/org/opendaylight/openflowplugin/applications/frm/impl/MeterListenerTest.java similarity index 98% rename from applications/forwardingrules-manager/src/test/java/test/mock/MeterListenerTest.java rename to applications/forwardingrules-manager/src/test/java/org/opendaylight/openflowplugin/applications/frm/impl/MeterListenerTest.java index 5789ae112..9876250bb 100644 --- a/applications/forwardingrules-manager/src/test/java/test/mock/MeterListenerTest.java +++ b/applications/forwardingrules-manager/src/test/java/org/opendaylight/openflowplugin/applications/frm/impl/MeterListenerTest.java @@ -5,7 +5,7 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ -package test.mock; +package org.opendaylight.openflowplugin.applications.frm.impl; import static java.util.concurrent.TimeUnit.SECONDS; import static org.awaitility.Awaitility.await; @@ -36,8 +36,6 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.service.rev130918.Upd import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.types.rev130918.MeterId; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.opendaylight.yangtools.yang.common.Uint32; -import test.mock.util.AbstractFRMTest; -import test.mock.util.SalMeterServiceMock; @RunWith(MockitoJUnitRunner.class) public class MeterListenerTest extends AbstractFRMTest { diff --git a/applications/forwardingrules-manager/src/test/java/test/mock/NodeListenerTest.java b/applications/forwardingrules-manager/src/test/java/org/opendaylight/openflowplugin/applications/frm/impl/NodeListenerTest.java similarity index 97% rename from applications/forwardingrules-manager/src/test/java/test/mock/NodeListenerTest.java rename to applications/forwardingrules-manager/src/test/java/org/opendaylight/openflowplugin/applications/frm/impl/NodeListenerTest.java index f860ff5ae..12afb5080 100644 --- a/applications/forwardingrules-manager/src/test/java/test/mock/NodeListenerTest.java +++ b/applications/forwardingrules-manager/src/test/java/org/opendaylight/openflowplugin/applications/frm/impl/NodeListenerTest.java @@ -5,7 +5,7 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ -package test.mock; +package org.opendaylight.openflowplugin.applications.frm.impl; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; @@ -24,7 +24,6 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.Nodes; import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.Node; import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.NodeKey; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; -import test.mock.util.AbstractFRMTest; @RunWith(MockitoJUnitRunner.class) public class NodeListenerTest extends AbstractFRMTest { diff --git a/applications/forwardingrules-manager/src/test/java/test/mock/util/SalBundleServiceMock.java b/applications/forwardingrules-manager/src/test/java/org/opendaylight/openflowplugin/applications/frm/impl/SalBundleServiceMock.java similarity index 97% rename from applications/forwardingrules-manager/src/test/java/test/mock/util/SalBundleServiceMock.java rename to applications/forwardingrules-manager/src/test/java/org/opendaylight/openflowplugin/applications/frm/impl/SalBundleServiceMock.java index fd274e910..a979d5eb0 100644 --- a/applications/forwardingrules-manager/src/test/java/test/mock/util/SalBundleServiceMock.java +++ b/applications/forwardingrules-manager/src/test/java/org/opendaylight/openflowplugin/applications/frm/impl/SalBundleServiceMock.java @@ -5,7 +5,7 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ -package test.mock.util; +package org.opendaylight.openflowplugin.applications.frm.impl; import com.google.common.util.concurrent.ListenableFuture; import java.util.ArrayList; diff --git a/applications/forwardingrules-manager/src/test/java/test/mock/util/SalFlowServiceMock.java b/applications/forwardingrules-manager/src/test/java/org/opendaylight/openflowplugin/applications/frm/impl/SalFlowServiceMock.java similarity index 97% rename from applications/forwardingrules-manager/src/test/java/test/mock/util/SalFlowServiceMock.java rename to applications/forwardingrules-manager/src/test/java/org/opendaylight/openflowplugin/applications/frm/impl/SalFlowServiceMock.java index ad70c5218..5da2ba306 100644 --- a/applications/forwardingrules-manager/src/test/java/test/mock/util/SalFlowServiceMock.java +++ b/applications/forwardingrules-manager/src/test/java/org/opendaylight/openflowplugin/applications/frm/impl/SalFlowServiceMock.java @@ -5,7 +5,7 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ -package test.mock.util; +package org.opendaylight.openflowplugin.applications.frm.impl; import com.google.common.util.concurrent.ListenableFuture; import java.util.ArrayList; diff --git a/applications/forwardingrules-manager/src/test/java/test/mock/util/SalGroupServiceMock.java b/applications/forwardingrules-manager/src/test/java/org/opendaylight/openflowplugin/applications/frm/impl/SalGroupServiceMock.java similarity index 97% rename from applications/forwardingrules-manager/src/test/java/test/mock/util/SalGroupServiceMock.java rename to applications/forwardingrules-manager/src/test/java/org/opendaylight/openflowplugin/applications/frm/impl/SalGroupServiceMock.java index 80931b083..bc12ead42 100644 --- a/applications/forwardingrules-manager/src/test/java/test/mock/util/SalGroupServiceMock.java +++ b/applications/forwardingrules-manager/src/test/java/org/opendaylight/openflowplugin/applications/frm/impl/SalGroupServiceMock.java @@ -5,7 +5,7 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ -package test.mock.util; +package org.opendaylight.openflowplugin.applications.frm.impl; import com.google.common.util.concurrent.ListenableFuture; import java.util.ArrayList; diff --git a/applications/forwardingrules-manager/src/test/java/test/mock/util/SalMeterServiceMock.java b/applications/forwardingrules-manager/src/test/java/org/opendaylight/openflowplugin/applications/frm/impl/SalMeterServiceMock.java similarity index 97% rename from applications/forwardingrules-manager/src/test/java/test/mock/util/SalMeterServiceMock.java rename to applications/forwardingrules-manager/src/test/java/org/opendaylight/openflowplugin/applications/frm/impl/SalMeterServiceMock.java index 0a44f0cf3..0c7af6131 100644 --- a/applications/forwardingrules-manager/src/test/java/test/mock/util/SalMeterServiceMock.java +++ b/applications/forwardingrules-manager/src/test/java/org/opendaylight/openflowplugin/applications/frm/impl/SalMeterServiceMock.java @@ -5,7 +5,7 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ -package test.mock.util; +package org.opendaylight.openflowplugin.applications.frm.impl; import com.google.common.util.concurrent.ListenableFuture; import java.util.ArrayList; diff --git a/applications/forwardingrules-manager/src/test/java/test/mock/util/SalTableServiceMock.java b/applications/forwardingrules-manager/src/test/java/org/opendaylight/openflowplugin/applications/frm/impl/SalTableServiceMock.java similarity index 95% rename from applications/forwardingrules-manager/src/test/java/test/mock/util/SalTableServiceMock.java rename to applications/forwardingrules-manager/src/test/java/org/opendaylight/openflowplugin/applications/frm/impl/SalTableServiceMock.java index de53bfa18..585469ebe 100644 --- a/applications/forwardingrules-manager/src/test/java/test/mock/util/SalTableServiceMock.java +++ b/applications/forwardingrules-manager/src/test/java/org/opendaylight/openflowplugin/applications/frm/impl/SalTableServiceMock.java @@ -5,7 +5,7 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ -package test.mock.util; +package org.opendaylight.openflowplugin.applications.frm.impl; import com.google.common.util.concurrent.ListenableFuture; import java.util.ArrayList; diff --git a/applications/forwardingrules-manager/src/test/java/test/mock/TableFeaturesListenerTest.java b/applications/forwardingrules-manager/src/test/java/org/opendaylight/openflowplugin/applications/frm/impl/TableFeaturesListenerTest.java similarity index 97% rename from applications/forwardingrules-manager/src/test/java/test/mock/TableFeaturesListenerTest.java rename to applications/forwardingrules-manager/src/test/java/org/opendaylight/openflowplugin/applications/frm/impl/TableFeaturesListenerTest.java index 0617a1912..2e768c5c0 100644 --- a/applications/forwardingrules-manager/src/test/java/test/mock/TableFeaturesListenerTest.java +++ b/applications/forwardingrules-manager/src/test/java/org/opendaylight/openflowplugin/applications/frm/impl/TableFeaturesListenerTest.java @@ -5,7 +5,7 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ -package test.mock; +package org.opendaylight.openflowplugin.applications.frm.impl; import static java.util.concurrent.TimeUnit.SECONDS; import static org.awaitility.Awaitility.await; @@ -33,8 +33,6 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table import org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.features.TableFeaturesKey; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.opendaylight.yangtools.yang.common.Uint8; -import test.mock.util.AbstractFRMTest; -import test.mock.util.SalTableServiceMock; @RunWith(MockitoJUnitRunner.class) public class TableFeaturesListenerTest extends AbstractFRMTest { -- 2.43.0 From c23cb2c5ff1479a904e316339722e24d559fccd3 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Wed, 7 Feb 2024 17:34:28 +0100 Subject: [PATCH 2/3] WIP: More FRM convertions Convert ForwardingRulesManager to use single RPCs. While we are at it, ditch the dependency on ClusterSingletonServiceProvider, as it is not used. // FIXME: finish test conversion JIRA: OPNFLWPLUG-1125 Change-Id: I73a353eb0ac9eb4047d34fc93442c48cbd6efca3 Signed-off-by: Robert Varga --- .../frm/ForwardingRulesManager.java | 80 ++++----- .../frm/impl/BundleFlowForwarder.java | 37 ++-- .../frm/impl/BundleGroupForwarder.java | 136 ++++++--------- .../applications/frm/impl/FlowForwarder.java | 74 +++----- .../frm/impl/FlowNodeReconciliationImpl.java | 43 +++-- .../frm/impl/ForwardingRulesManagerImpl.java | 163 +++++++++++------- .../applications/frm/impl/GroupForwarder.java | 66 ++++--- .../applications/frm/impl/MeterForwarder.java | 12 +- .../applications/frm/impl/TableForwarder.java | 16 +- .../applications/frm/util/FrmUtil.java | 6 +- .../blueprint/forwardingrules-manager.xml | 3 - .../frm/impl/AbstractFRMTest.java | 64 ++++--- .../frm/impl/CapturingAddBundleMessages.java | 28 +++ .../frm/impl/CapturingAddFlow.java | 28 +++ .../frm/impl/CapturingAddGroup.java | 28 +++ .../frm/impl/CapturingAddMeter.java | 28 +++ .../frm/impl/CapturingControlBundle.java | 28 +++ .../frm/impl/CapturingRemoveFlow.java | 28 +++ .../frm/impl/CapturingRemoveGroup.java | 28 +++ .../frm/impl/CapturingRemoveMeter.java | 28 +++ .../frm/impl/CapturingUpdateFlow.java | 28 +++ .../frm/impl/CapturingUpdateGroup.java | 28 +++ .../frm/impl/CapturingUpdateMeter.java | 28 +++ ...iceMock.java => CapturingUpdateTable.java} | 14 +- .../frm/impl/FlowListenerTest.java | 41 ++--- .../frm/impl/GroupListenerTest.java | 38 ++-- .../frm/impl/MeterListenerTest.java | 29 ++-- .../frm/impl/SalBundleServiceMock.java | 47 ----- .../frm/impl/SalFlowServiceMock.java | 60 ------- .../frm/impl/SalGroupServiceMock.java | 60 ------- .../frm/impl/SalMeterServiceMock.java | 60 ------- .../frm/impl/TableFeaturesListenerTest.java | 8 +- 32 files changed, 703 insertions(+), 662 deletions(-) create mode 100644 applications/forwardingrules-manager/src/test/java/org/opendaylight/openflowplugin/applications/frm/impl/CapturingAddBundleMessages.java create mode 100644 applications/forwardingrules-manager/src/test/java/org/opendaylight/openflowplugin/applications/frm/impl/CapturingAddFlow.java create mode 100644 applications/forwardingrules-manager/src/test/java/org/opendaylight/openflowplugin/applications/frm/impl/CapturingAddGroup.java create mode 100644 applications/forwardingrules-manager/src/test/java/org/opendaylight/openflowplugin/applications/frm/impl/CapturingAddMeter.java create mode 100644 applications/forwardingrules-manager/src/test/java/org/opendaylight/openflowplugin/applications/frm/impl/CapturingControlBundle.java create mode 100644 applications/forwardingrules-manager/src/test/java/org/opendaylight/openflowplugin/applications/frm/impl/CapturingRemoveFlow.java create mode 100644 applications/forwardingrules-manager/src/test/java/org/opendaylight/openflowplugin/applications/frm/impl/CapturingRemoveGroup.java create mode 100644 applications/forwardingrules-manager/src/test/java/org/opendaylight/openflowplugin/applications/frm/impl/CapturingRemoveMeter.java create mode 100644 applications/forwardingrules-manager/src/test/java/org/opendaylight/openflowplugin/applications/frm/impl/CapturingUpdateFlow.java create mode 100644 applications/forwardingrules-manager/src/test/java/org/opendaylight/openflowplugin/applications/frm/impl/CapturingUpdateGroup.java create mode 100644 applications/forwardingrules-manager/src/test/java/org/opendaylight/openflowplugin/applications/frm/impl/CapturingUpdateMeter.java rename applications/forwardingrules-manager/src/test/java/org/opendaylight/openflowplugin/applications/frm/impl/{SalTableServiceMock.java => CapturingUpdateTable.java} (72%) delete mode 100644 applications/forwardingrules-manager/src/test/java/org/opendaylight/openflowplugin/applications/frm/impl/SalBundleServiceMock.java delete mode 100644 applications/forwardingrules-manager/src/test/java/org/opendaylight/openflowplugin/applications/frm/impl/SalFlowServiceMock.java delete mode 100644 applications/forwardingrules-manager/src/test/java/org/opendaylight/openflowplugin/applications/frm/impl/SalGroupServiceMock.java delete mode 100644 applications/forwardingrules-manager/src/test/java/org/opendaylight/openflowplugin/applications/frm/impl/SalMeterServiceMock.java diff --git a/applications/forwardingrules-manager/src/main/java/org/opendaylight/openflowplugin/applications/frm/ForwardingRulesManager.java b/applications/forwardingrules-manager/src/main/java/org/opendaylight/openflowplugin/applications/frm/ForwardingRulesManager.java index f63d3440e..b40ac27f1 100644 --- a/applications/forwardingrules-manager/src/main/java/org/opendaylight/openflowplugin/applications/frm/ForwardingRulesManager.java +++ b/applications/forwardingrules-manager/src/main/java/org/opendaylight/openflowplugin/applications/frm/ForwardingRulesManager.java @@ -16,13 +16,20 @@ import org.opendaylight.serviceutils.srm.RecoverableListener; import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowCapableNode; import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.meters.Meter; import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tables.table.Flow; -import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.service.rev130819.SalFlowService; -import org.opendaylight.yang.gen.v1.urn.opendaylight.group.service.rev130918.SalGroupService; +import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.service.rev130819.AddFlow; +import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.service.rev130819.RemoveFlow; +import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.service.rev130819.UpdateFlow; +import org.opendaylight.yang.gen.v1.urn.opendaylight.group.service.rev130918.AddGroup; +import org.opendaylight.yang.gen.v1.urn.opendaylight.group.service.rev130918.RemoveGroup; +import org.opendaylight.yang.gen.v1.urn.opendaylight.group.service.rev130918.UpdateGroup; import org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.groups.Group; -import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.service.rev130918.SalMeterService; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.bundle.service.rev170124.SalBundleService; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.openflowplugin.app.arbitrator.reconcile.service.rev180227.ArbitratorReconcileService; -import org.opendaylight.yang.gen.v1.urn.opendaylight.table.service.rev131026.SalTableService; +import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.service.rev130918.AddMeter; +import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.service.rev130918.RemoveMeter; +import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.service.rev130918.UpdateMeter; +import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.bundle.service.rev170124.AddBundleMessages; +import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.bundle.service.rev170124.ControlBundle; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.openflowplugin.app.arbitrator.reconcile.service.rev180227.GetActiveBundle; +import org.opendaylight.yang.gen.v1.urn.opendaylight.table.service.rev131026.UpdateTable; import org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.features.TableFeatures; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; @@ -69,29 +76,37 @@ public interface ForwardingRulesManager extends ConfigurationListener { */ ReadTransaction getReadTransaction(); - /** - * Flow RPC service. - * - */ - SalFlowService getSalFlowService(); + // Flow RPC services + @NonNull AddFlow addFlow(); - /** - * Group RPC service. - * - */ - SalGroupService getSalGroupService(); + @NonNull RemoveFlow removeFlow(); - /** - * Meter RPC service. - * - */ - SalMeterService getSalMeterService(); + @NonNull UpdateFlow updateFlow(); - /** - * Table RPC service. - * - */ - SalTableService getSalTableService(); + // Group RPC services + @NonNull AddGroup addGroup(); + + @NonNull RemoveGroup removeGroup(); + + @NonNull UpdateGroup updateGroup(); + + // Meter RPC services + @NonNull AddMeter addMeter(); + + @NonNull RemoveMeter removeMeter(); + + @NonNull UpdateMeter updateMeter(); + + // Table RPC services + @NonNull UpdateTable updateTable(); + + // Bundle RPC services + @NonNull ControlBundle controlBundle(); + + @NonNull AddBundleMessages addBundleMessages(); + + // arbitrator-reconcile RPC services + @NonNull GetActiveBundle getActiveBundle(); /** * Return Devices Group Registry which can be used to track the groups present in a device. @@ -100,13 +115,6 @@ public interface ForwardingRulesManager extends ConfigurationListener { */ DevicesGroupRegistry getDevicesGroupRegistry(); - /** - * Bundle RPC service. - * - * @return salBundleService - */ - SalBundleService getSalBundleService(); - /** * Content definition method and prevent code duplicity in Reconcil. * @@ -212,10 +220,4 @@ public interface ForwardingRulesManager extends ConfigurationListener { * */ void addRecoverableListener(RecoverableListener recoverableListener); - - /** - * Method exposes the ArbitratorReconciliationManager service used for performing Arbitrator Based Reconciliation. - * @return ArbitratorReconciliationManager - */ - ArbitratorReconcileService getArbitratorReconciliationManager(); } diff --git a/applications/forwardingrules-manager/src/main/java/org/opendaylight/openflowplugin/applications/frm/impl/BundleFlowForwarder.java b/applications/forwardingrules-manager/src/main/java/org/opendaylight/openflowplugin/applications/frm/impl/BundleFlowForwarder.java index 37ec48bf9..fc688312c 100644 --- a/applications/forwardingrules-manager/src/main/java/org/opendaylight/openflowplugin/applications/frm/impl/BundleFlowForwarder.java +++ b/applications/forwardingrules-manager/src/main/java/org/opendaylight/openflowplugin/applications/frm/impl/BundleFlowForwarder.java @@ -83,28 +83,25 @@ public class BundleFlowForwarder implements BundleMessagesCommiter { final BundleId bundleId) { final String nodeId = getNodeIdValueFromNodeIdentifier(nodeIdent); nodeConfigurator.enqueueJob(nodeId, () -> { - final List messages = new ArrayList<>(1); String node = nodeIdent.firstKeyOf(Node.class).getId().getValue(); - BundleInnerMessage bundleInnerMessage = new BundleRemoveFlowCaseBuilder() - .setRemoveFlowCaseData(new RemoveFlowCaseDataBuilder(flow).build()).build(); - Message message = new MessageBuilder() - .setNode(new NodeRef(nodeIdent.firstIdentifierOf(Node.class))) - .setBundleInnerMessage(bundleInnerMessage) - .build(); - messages.add(message); - AddBundleMessagesInput addBundleMessagesInput = new AddBundleMessagesInputBuilder() + final var addBundleMessagesInput = new AddBundleMessagesInputBuilder() .setNode(new NodeRef(nodeIdent.firstIdentifierOf(Node.class))) .setBundleId(bundleId) - .setFlags(BUNDLE_FLAGS).setMessages(new MessagesBuilder() - .setMessage(messages) - .build()) + .setFlags(BUNDLE_FLAGS) + .setMessages(new MessagesBuilder() + .setMessage(List.of(new MessageBuilder() + .setNode(new NodeRef(nodeIdent.firstIdentifierOf(Node.class))) + .setBundleInnerMessage(new BundleRemoveFlowCaseBuilder() + .setRemoveFlowCaseData(new RemoveFlowCaseDataBuilder(flow).build()) + .build()) + .build())) + .build()) .build(); - final ListenableFuture> resultFuture = forwardingRulesManager - .getSalBundleService().addBundleMessages(addBundleMessagesInput); LOG.trace("Pushing flow remove message {} to bundle {} for device {}", addBundleMessagesInput, bundleId.getValue(), node); - LoggingFutures.addErrorLogging(resultFuture, LOG, "removeBundleFlow"); - return resultFuture; + return LoggingFutures.addErrorLogging( + forwardingRulesManager.addBundleMessages().invoke(addBundleMessagesInput), + LOG, "removeBundleFlow"); }); } @@ -189,9 +186,7 @@ public class BundleFlowForwarder implements BundleMessagesCommiter { .build(); LOG.trace("Pushing flow update message {} to bundle {} for device {}", addBundleMessagesInput, bundleId.getValue(), getNodeIdValueFromNodeIdentifier(nodeIdent)); - resultFuture = forwardingRulesManager - .getSalBundleService() - .addBundleMessages(addBundleMessagesInput); + resultFuture = forwardingRulesManager.addBundleMessages().invoke(addBundleMessagesInput); Futures.transformAsync(resultFuture, rpcResult -> { if (rpcResult.isSuccessful()) { forwardingRulesManager.getDevicesGroupRegistry() @@ -255,8 +250,7 @@ public class BundleFlowForwarder implements BundleMessagesCommiter { LOG.trace("Pushing flow add message {} to bundle {} for device {}", addBundleMessagesInput, bundleId.getValue(), nodeId); - final ListenableFuture> addFuture = - forwardingRulesManager.getSalBundleService().addBundleMessages(addBundleMessagesInput); + final var addFuture = forwardingRulesManager.addBundleMessages().invoke(addBundleMessagesInput); Futures.addCallback(addFuture, new FutureCallback>() { @Override public void onSuccess(final RpcResult result) { @@ -265,7 +259,6 @@ public class BundleFlowForwarder implements BundleMessagesCommiter { LOG.error("Flow add with flowId {} and tableId {} failed for node {} with error: {}", flowId, tableId, nodeId, result.getErrors().toString()); } - } @Override diff --git a/applications/forwardingrules-manager/src/main/java/org/opendaylight/openflowplugin/applications/frm/impl/BundleGroupForwarder.java b/applications/forwardingrules-manager/src/main/java/org/opendaylight/openflowplugin/applications/frm/impl/BundleGroupForwarder.java index 07241c16b..d4a1e5ff1 100644 --- a/applications/forwardingrules-manager/src/main/java/org/opendaylight/openflowplugin/applications/frm/impl/BundleGroupForwarder.java +++ b/applications/forwardingrules-manager/src/main/java/org/opendaylight/openflowplugin/applications/frm/impl/BundleGroupForwarder.java @@ -15,7 +15,6 @@ import com.google.common.util.concurrent.FutureCallback; import com.google.common.util.concurrent.Futures; import com.google.common.util.concurrent.ListenableFuture; import com.google.common.util.concurrent.MoreExecutors; -import java.util.ArrayList; import java.util.List; import org.opendaylight.infrautils.utils.concurrent.LoggingFutures; import org.opendaylight.openflowplugin.applications.frm.BundleMessagesCommiter; @@ -25,13 +24,10 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.Fl import org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.groups.Group; import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeRef; import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.Node; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.bundle.service.rev170124.AddBundleMessagesInput; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.bundle.service.rev170124.AddBundleMessagesInputBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.bundle.service.rev170124.AddBundleMessagesOutput; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.bundle.service.rev170124.add.bundle.messages.input.MessagesBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.bundle.service.rev170124.add.bundle.messages.input.messages.Message; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.bundle.service.rev170124.add.bundle.messages.input.messages.MessageBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.bundle.service.rev170124.bundle.inner.message.grouping.BundleInnerMessage; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.bundle.service.rev170124.bundle.inner.message.grouping.bundle.inner.message.BundleAddGroupCaseBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.bundle.service.rev170124.bundle.inner.message.grouping.bundle.inner.message.BundleRemoveGroupCaseBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.bundle.service.rev170124.bundle.inner.message.grouping.bundle.inner.message.BundleUpdateGroupCaseBuilder; @@ -56,7 +52,7 @@ public class BundleGroupForwarder implements BundleMessagesCommiter { public BundleGroupForwarder(final ForwardingRulesManager forwardingRulesManager) { this.forwardingRulesManager = requireNonNull(forwardingRulesManager, "ForwardingRulesManager can not be null!"); - this.nodeConfigurator = requireNonNull(forwardingRulesManager.getNodeConfigurator(), + nodeConfigurator = requireNonNull(forwardingRulesManager.getNodeConfigurator(), "NodeConfigurator can not be null!"); } @@ -65,32 +61,27 @@ public class BundleGroupForwarder implements BundleMessagesCommiter { final InstanceIdentifier nodeIdent, final BundleId bundleId) { final String nodeId = getNodeIdValueFromNodeIdentifier(nodeIdent); nodeConfigurator.enqueueJob(nodeId, () -> { - final List messages = new ArrayList<>(1); - BundleInnerMessage bundleInnerMessage = new BundleRemoveGroupCaseBuilder() - .setRemoveGroupCaseData(new RemoveGroupCaseDataBuilder(group).build()) - .build(); - Message message = new MessageBuilder() - .setNode(new NodeRef(nodeIdent.firstIdentifierOf(Node.class))) - .setBundleInnerMessage(bundleInnerMessage) - .build(); - messages.add(message); - AddBundleMessagesInput addBundleMessagesInput = new AddBundleMessagesInputBuilder() - .setNode(new NodeRef(nodeIdent.firstIdentifierOf(Node.class))) - .setBundleId(bundleId) - .setFlags(BUNDLE_FLAGS) - .setMessages(new MessagesBuilder().setMessage(messages).build()) - .build(); + final var addBundleMessagesInput = new AddBundleMessagesInputBuilder() + .setNode(new NodeRef(nodeIdent.firstIdentifierOf(Node.class))) + .setBundleId(bundleId) + .setFlags(BUNDLE_FLAGS) + .setMessages(new MessagesBuilder() + .setMessage(List.of(new MessageBuilder() + .setNode(new NodeRef(nodeIdent.firstIdentifierOf(Node.class))) + .setBundleInnerMessage(new BundleRemoveGroupCaseBuilder() + .setRemoveGroupCaseData(new RemoveGroupCaseDataBuilder(group).build()) + .build()) + .build())) + .build()) + .build(); LOG.trace("Pushing group remove message {} to bundle {} for device {}", addBundleMessagesInput, - bundleId.getValue(), nodeId); - final ListenableFuture> resultFuture = forwardingRulesManager - .getSalBundleService().addBundleMessages(addBundleMessagesInput); + bundleId.getValue(), nodeId); + final var resultFuture = forwardingRulesManager.addBundleMessages().invoke(addBundleMessagesInput); Futures.addCallback(resultFuture, - new BundleRemoveGroupCallBack(group.getGroupId().getValue(), nodeId), - MoreExecutors.directExecutor()); - LoggingFutures.addErrorLogging(resultFuture, LOG, "removeBundleGroup"); - return resultFuture; + new BundleRemoveGroupCallBack(group.getGroupId().getValue(), nodeId), + MoreExecutors.directExecutor()); + return LoggingFutures.addErrorLogging(resultFuture, LOG, "removeBundleGroup"); }); - } @Override @@ -101,70 +92,57 @@ public class BundleGroupForwarder implements BundleMessagesCommiter { final BundleId bundleId) { final String nodeId = getNodeIdValueFromNodeIdentifier(nodeIdent); nodeConfigurator.enqueueJob(nodeId, () -> { - final List messages = new ArrayList<>(1); - BundleInnerMessage bundleInnerMessage = new BundleUpdateGroupCaseBuilder() - .setUpdateGroupCaseData(new UpdateGroupCaseDataBuilder(updatedGroup).build()) - .build(); - Message message = new MessageBuilder() - .setNode(new NodeRef(nodeIdent.firstIdentifierOf(Node.class))) - .setBundleInnerMessage(bundleInnerMessage) - .build(); - messages.add(message); - AddBundleMessagesInput addBundleMessagesInput = new AddBundleMessagesInputBuilder() - .setNode(new NodeRef(nodeIdent.firstIdentifierOf(Node.class))) - .setBundleId(bundleId) - .setFlags(BUNDLE_FLAGS) - .setMessages(new MessagesBuilder().setMessage(messages).build()) - .build(); + final var addBundleMessagesInput = new AddBundleMessagesInputBuilder() + .setNode(new NodeRef(nodeIdent.firstIdentifierOf(Node.class))) + .setBundleId(bundleId) + .setFlags(BUNDLE_FLAGS) + .setMessages(new MessagesBuilder() + .setMessage(List.of(new MessageBuilder() + .setNode(new NodeRef(nodeIdent.firstIdentifierOf(Node.class))) + .setBundleInnerMessage(new BundleUpdateGroupCaseBuilder() + .setUpdateGroupCaseData(new UpdateGroupCaseDataBuilder(updatedGroup).build()) + .build()) + .build())) + .build()) + .build(); LOG.trace("Pushing group update message {} to bundle {} for device {}", addBundleMessagesInput, - bundleId.getValue(), nodeId); - final ListenableFuture> resultFuture = forwardingRulesManager - .getSalBundleService() - .addBundleMessages(addBundleMessagesInput); + bundleId.getValue(), nodeId); + final var resultFuture = forwardingRulesManager.addBundleMessages().invoke(addBundleMessagesInput); Futures.addCallback(resultFuture, - new BundleUpdateGroupCallBack(originalGroup.getGroupId().getValue(), nodeId), - MoreExecutors.directExecutor()); - LoggingFutures.addErrorLogging(resultFuture, LOG, "updateBundleGroup"); - return resultFuture; + new BundleUpdateGroupCallBack(originalGroup.getGroupId().getValue(), nodeId), + MoreExecutors.directExecutor()); + return LoggingFutures.addErrorLogging(resultFuture, LOG, "updateBundleGroup"); }); } @Override public ListenableFuture> add(final InstanceIdentifier identifier, - final Group group, - final InstanceIdentifier nodeIdent, - final BundleId bundleId) { - final String nodeId = getNodeIdValueFromNodeIdentifier(nodeIdent); - final Uint32 groupId = group.getGroupId().getValue(); + final Group group, final InstanceIdentifier nodeIdent, final BundleId bundleId) { + final var nodeId = getNodeIdValueFromNodeIdentifier(nodeIdent); + final var groupId = group.getGroupId().getValue(); return nodeConfigurator.enqueueJob(nodeId, () -> { if (isGroupExistsOnDevice(nodeIdent, groupId, forwardingRulesManager)) { LOG.debug("Group {} already exists in the device. Ignoring the add DTCN", groupId); - return Futures.immediateFuture(RpcResultBuilder.success().build()); + return RpcResultBuilder.success().buildFuture(); } - final List messages = new ArrayList<>(1); - BundleInnerMessage bundleInnerMessage = new BundleAddGroupCaseBuilder() - .setAddGroupCaseData(new AddGroupCaseDataBuilder(group).build()) - .build(); - Message message = new MessageBuilder() - .setNode(new NodeRef(nodeIdent.firstIdentifierOf(Node.class))) - .setBundleInnerMessage(bundleInnerMessage) - .build(); - messages.add(message); - AddBundleMessagesInput addBundleMessagesInput = new AddBundleMessagesInputBuilder() - .setNode(new NodeRef(nodeIdent.firstIdentifierOf(Node.class))) - .setBundleId(bundleId) - .setFlags(BUNDLE_FLAGS) - .setMessages(new MessagesBuilder() - .setMessage(messages).build()) - .build(); + final var addBundleMessagesInput = new AddBundleMessagesInputBuilder() + .setNode(new NodeRef(nodeIdent.firstIdentifierOf(Node.class))) + .setBundleId(bundleId) + .setFlags(BUNDLE_FLAGS) + .setMessages(new MessagesBuilder() + .setMessage(List.of(new MessageBuilder() + .setNode(new NodeRef(nodeIdent.firstIdentifierOf(Node.class))) + .setBundleInnerMessage(new BundleAddGroupCaseBuilder() + .setAddGroupCaseData(new AddGroupCaseDataBuilder(group).build()) + .build()) + .build())) + .build()) + .build(); LOG.trace("Pushing group add message {} to bundle {} for device {}", addBundleMessagesInput, bundleId.getValue(), nodeId); - ListenableFuture> resultFuture = forwardingRulesManager - .getSalBundleService() - .addBundleMessages(addBundleMessagesInput); - Futures.addCallback(resultFuture, - new BundleAddGroupCallBack(groupId, nodeId), - MoreExecutors.directExecutor()); + final var resultFuture = forwardingRulesManager.addBundleMessages().invoke(addBundleMessagesInput); + Futures.addCallback(resultFuture, new BundleAddGroupCallBack(groupId, nodeId), + MoreExecutors.directExecutor()); return resultFuture; }); } diff --git a/applications/forwardingrules-manager/src/main/java/org/opendaylight/openflowplugin/applications/frm/impl/FlowForwarder.java b/applications/forwardingrules-manager/src/main/java/org/opendaylight/openflowplugin/applications/frm/impl/FlowForwarder.java index 663b03ebf..10f6f477b 100644 --- a/applications/forwardingrules-manager/src/main/java/org/opendaylight/openflowplugin/applications/frm/impl/FlowForwarder.java +++ b/applications/forwardingrules-manager/src/main/java/org/opendaylight/openflowplugin/applications/frm/impl/FlowForwarder.java @@ -20,12 +20,9 @@ import com.google.common.util.concurrent.Futures; import com.google.common.util.concurrent.ListenableFuture; import com.google.common.util.concurrent.MoreExecutors; import com.google.common.util.concurrent.SettableFuture; -import java.util.Optional; import java.util.concurrent.ExecutionException; import org.opendaylight.infrautils.utils.concurrent.LoggingFutures; import org.opendaylight.mdsal.binding.api.DataBroker; -import org.opendaylight.mdsal.binding.api.ReadTransaction; -import org.opendaylight.mdsal.binding.api.WriteTransaction; import org.opendaylight.mdsal.common.api.CommitInfo; import org.opendaylight.mdsal.common.api.LogicalDatastoreType; import org.opendaylight.openflowplugin.applications.frm.ForwardingRulesManager; @@ -50,7 +47,6 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.service.rev130819.Upda import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.service.rev130819.flow.update.OriginalFlowBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.service.rev130819.flow.update.UpdatedFlowBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.FlowRef; -import org.opendaylight.yang.gen.v1.urn.opendaylight.group.service.rev130918.AddGroupInput; import org.opendaylight.yang.gen.v1.urn.opendaylight.group.service.rev130918.AddGroupInputBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.group.service.rev130918.AddGroupOutput; import org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.GroupRef; @@ -105,8 +101,7 @@ public class FlowForwarder extends AbstractListeningCommiter { // into remove-flow input so that only a flow entry associated with // a given flow object is removed. builder.setTransactionUri(new Uri(provider.getNewTransactionId())).setStrict(Boolean.TRUE); - final ListenableFuture> resultFuture = - provider.getSalFlowService().removeFlow(builder.build()); + final var resultFuture = provider.removeFlow().invoke(builder.build()); LoggingFutures.addErrorLogging(resultFuture, LOG, "removeFlow"); return resultFuture; }); @@ -119,8 +114,6 @@ public class FlowForwarder extends AbstractListeningCommiter { @Override public ListenableFuture> removeWithResult(final InstanceIdentifier identifier, final Flow removeDataObj, final InstanceIdentifier nodeIdent) { - - ListenableFuture> resultFuture = SettableFuture.create(); final TableKey tableKey = identifier.firstKeyOf(Table.class); if (tableIdValidationPrecondition(tableKey, removeDataObj)) { final RemoveFlowInputBuilder builder = new RemoveFlowInputBuilder(removeDataObj); @@ -133,10 +126,10 @@ public class FlowForwarder extends AbstractListeningCommiter { // into remove-flow input so that only a flow entry associated with // a given flow object is removed. builder.setTransactionUri(new Uri(provider.getNewTransactionId())).setStrict(Boolean.TRUE); - resultFuture = provider.getSalFlowService().removeFlow(builder.build()); + return provider.removeFlow().invoke(builder.build()); } - - return resultFuture; + // FIXME: this future never completes! + return SettableFuture.create(); } @Override @@ -170,7 +163,7 @@ public class FlowForwarder extends AbstractListeningCommiter { if (isGroupExistsOnDevice(nodeIdent, groupId, provider)) { LOG.trace("The dependent group {} is already programmed. Updating the flow {}", groupId, getFlowId(identifier)); - return provider.getSalFlowService().updateFlow(builder.build()); + return provider.updateFlow().invoke(builder.build()); } else { LOG.trace("The dependent group {} isn't programmed yet. Pushing the group", groupId); ListenableFuture> groupFuture = pushDependentGroup(nodeIdent, @@ -185,7 +178,7 @@ public class FlowForwarder extends AbstractListeningCommiter { LOG.trace("The flow {} is not dependent on any group. Updating the flow", getFlowId(identifier)); - return provider.getSalFlowService().updateFlow(builder.build()); + return provider.updateFlow().invoke(builder.build()); }); } } @@ -217,7 +210,7 @@ public class FlowForwarder extends AbstractListeningCommiter { if (isGroupExistsOnDevice(nodeIdent, groupId, provider)) { LOG.trace("The dependent group {} is already programmed. Adding the flow {}", groupId, getFlowId(new FlowRef(identifier))); - return provider.getSalFlowService().addFlow(builder.build()); + return provider.addFlow().invoke(builder.build()); } LOG.trace("The dependent group {} isn't programmed yet. Pushing the group", groupId); @@ -230,7 +223,7 @@ public class FlowForwarder extends AbstractListeningCommiter { LOG.trace("The flow {} is not dependent on any group. Adding the flow", getFlowId(new FlowRef(identifier))); - return provider.getSalFlowService().addFlow(builder.build()); + return provider.addFlow().invoke(builder.build()); }); } @@ -266,10 +259,11 @@ public class FlowForwarder extends AbstractListeningCommiter { } private void persistStaleFlow(final StaleFlow staleFlow, final InstanceIdentifier nodeIdent) { - WriteTransaction writeTransaction = dataBroker.newWriteOnlyTransaction(); - writeTransaction.put(LogicalDatastoreType.CONFIGURATION, getStaleFlowInstanceIdentifier(staleFlow, nodeIdent), - staleFlow); - + final var writeTransaction = dataBroker.newWriteOnlyTransaction(); + writeTransaction.put(LogicalDatastoreType.CONFIGURATION, nodeIdent + .child(Table.class, new TableKey(staleFlow.getTableId())) + .child(org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tables.table.StaleFlow.class, + new StaleFlowKey(new FlowId(staleFlow.getId()))), staleFlow); writeTransaction.commit().addCallback(new FutureCallback() { @Override public void onSuccess(final CommitInfo result) { @@ -283,14 +277,6 @@ public class FlowForwarder extends AbstractListeningCommiter { }, MoreExecutors.directExecutor()); } - private static InstanceIdentifier getStaleFlowInstanceIdentifier( - final StaleFlow staleFlow, final InstanceIdentifier nodeIdent) { - return nodeIdent.child(Table.class, new TableKey(staleFlow.getTableId())).child( - org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tables.table.StaleFlow.class, - new StaleFlowKey(new FlowId(staleFlow.getId()))); - } - private ListenableFuture> pushDependentGroup( final InstanceIdentifier nodeIdent, final Uint32 groupId) { @@ -299,29 +285,25 @@ public class FlowForwarder extends AbstractListeningCommiter { //till we receive the dependent group DTCN and then push it. InstanceIdentifier groupIdent = buildGroupInstanceIdentifier(nodeIdent, groupId); - ListenableFuture> resultFuture; LOG.info("Reading the group from config inventory: {}", groupId); - try (ReadTransaction readTransaction = provider.getReadTransaction()) { - Optional group = readTransaction.read(LogicalDatastoreType.CONFIGURATION, groupIdent).get(); + try (var readTransaction = provider.getReadTransaction()) { + final var group = readTransaction.read(LogicalDatastoreType.CONFIGURATION, groupIdent).get(); if (group.isPresent()) { - final AddGroupInputBuilder builder = new AddGroupInputBuilder(group.orElseThrow()); - builder.setNode(new NodeRef(nodeIdent.firstIdentifierOf(Node.class))); - builder.setGroupRef(new GroupRef(nodeIdent)); - builder.setTransactionUri(new Uri(provider.getNewTransactionId())); - AddGroupInput addGroupInput = builder.build(); - resultFuture = provider.getSalGroupService().addGroup(addGroupInput); - } else { - resultFuture = RpcResultBuilder.failed() - .withError(ErrorType.APPLICATION, - "Group " + groupId + " not present in the config inventory").buildFuture(); + return provider.addGroup().invoke(new AddGroupInputBuilder(group.orElseThrow()) + .setNode(new NodeRef(nodeIdent.firstIdentifierOf(Node.class))) + .setGroupRef(new GroupRef(nodeIdent)) + .setTransactionUri(new Uri(provider.getNewTransactionId())) + .build()); } + return RpcResultBuilder.failed() + .withError(ErrorType.APPLICATION, "Group " + groupId + " not present in the config inventory") + .buildFuture(); } catch (InterruptedException | ExecutionException e) { LOG.error("Error while reading group from config datastore for the group ID {}", groupId, e); - resultFuture = RpcResultBuilder.failed() - .withError(ErrorType.APPLICATION, - "Error while reading group " + groupId + " from inventory").buildFuture(); + return RpcResultBuilder.failed() + .withError(ErrorType.APPLICATION, "Error while reading group " + groupId + " from inventory") + .buildFuture(); } - return resultFuture; } private final class AddFlowCallBack implements FutureCallback> { @@ -343,7 +325,7 @@ public class FlowForwarder extends AbstractListeningCommiter { if (rpcResult.isSuccessful() || rpcResult.getErrors().size() == 1 && rpcResult.getErrors().iterator().next().getMessage().contains(GROUP_EXISTS_IN_DEVICE_ERROR)) { provider.getDevicesGroupRegistry().storeGroup(nodeId, groupId); - Futures.addCallback(provider.getSalFlowService().addFlow(addFlowInput), + Futures.addCallback(provider.addFlow().invoke(addFlowInput), new FutureCallback>() { @Override public void onSuccess(final RpcResult result) { @@ -393,7 +375,7 @@ public class FlowForwarder extends AbstractListeningCommiter { if (rpcResult.isSuccessful() || rpcResult.getErrors().size() == 1 && rpcResult.getErrors().iterator().next().getMessage().contains(GROUP_EXISTS_IN_DEVICE_ERROR)) { provider.getDevicesGroupRegistry().storeGroup(nodeId, groupId); - Futures.addCallback(provider.getSalFlowService().updateFlow(updateFlowInput), + Futures.addCallback(provider.updateFlow().invoke(updateFlowInput), new FutureCallback>() { @Override public void onSuccess(final RpcResult result) { diff --git a/applications/forwardingrules-manager/src/main/java/org/opendaylight/openflowplugin/applications/frm/impl/FlowNodeReconciliationImpl.java b/applications/forwardingrules-manager/src/main/java/org/opendaylight/openflowplugin/applications/frm/impl/FlowNodeReconciliationImpl.java index 300072ccf..6cba63687 100644 --- a/applications/forwardingrules-manager/src/main/java/org/opendaylight/openflowplugin/applications/frm/impl/FlowNodeReconciliationImpl.java +++ b/applications/forwardingrules-manager/src/main/java/org/opendaylight/openflowplugin/applications/frm/impl/FlowNodeReconciliationImpl.java @@ -30,6 +30,7 @@ import java.util.Map; import java.util.Optional; import java.util.concurrent.Callable; import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.ConcurrentMap; import java.util.concurrent.ExecutionException; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; @@ -80,7 +81,6 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.types.rev130918.Meter import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.bundle.service.rev170124.AddBundleMessagesInputBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.bundle.service.rev170124.AddBundleMessagesOutput; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.bundle.service.rev170124.ControlBundleInputBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.bundle.service.rev170124.SalBundleService; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.bundle.service.rev170124.add.bundle.messages.input.Messages; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.bundle.service.rev170124.add.bundle.messages.input.MessagesBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.bundle.service.rev170124.add.bundle.messages.input.messages.Message; @@ -111,32 +111,30 @@ public class FlowNodeReconciliationImpl implements FlowNodeReconciliation { private static final Logger LOG = LoggerFactory.getLogger(FlowNodeReconciliationImpl.class); private static final Logger OF_EVENT_LOG = LoggerFactory.getLogger("OfEventLog"); - // The number of nanoseconds to wait for a single group to be added. - private static final long ADD_GROUP_TIMEOUT = TimeUnit.SECONDS.toNanos(3); - - // The maximum number of nanoseconds to wait for completion of add-group RPCs. - private static final long MAX_ADD_GROUP_TIMEOUT = TimeUnit.SECONDS.toNanos(20); private static final String SEPARATOR = ":"; - private static final int THREAD_POOL_SIZE = 4; private static final ThreadFactory THREAD_FACTORY = new ThreadFactoryBuilder() .setNameFormat("BundleResync-%d") .setDaemon(false) .setUncaughtExceptionHandler((thread, ex) -> LOG.error("Uncaught exception {}", thread, ex)) .build(); + + // FIXME: these three should be configurable + private static final int THREAD_POOL_SIZE = 4; + // The number of nanoseconds to wait for a single group to be added. + private static final long ADD_GROUP_TIMEOUT = TimeUnit.SECONDS.toNanos(3); + // The maximum number of nanoseconds to wait for completion of add-group RPCs. + private static final long MAX_ADD_GROUP_TIMEOUT = TimeUnit.SECONDS.toNanos(20); + + private final ConcurrentMap> futureMap = new ConcurrentHashMap<>(); + private final ExecutorService executor = Executors.newFixedThreadPool(THREAD_POOL_SIZE); + private static final BundleFlags BUNDLE_FLAGS = new BundleFlags(true, true); + private static final AtomicLong BUNDLE_ID = new AtomicLong(); + private final Map reconciliationStates; private final DataBroker dataBroker; private final ForwardingRulesManager provider; private final String serviceName; private final int priority; private final ResultState resultState; - private final Map> futureMap = new ConcurrentHashMap<>(); - - private final ExecutorService executor = Executors.newFixedThreadPool(THREAD_POOL_SIZE); - - private final SalBundleService salBundleService; - - private static final AtomicLong BUNDLE_ID = new AtomicLong(); - private static final BundleFlags BUNDLE_FLAGS = new BundleFlags(true, true); - private final Map reconciliationStates; public FlowNodeReconciliationImpl(final ForwardingRulesManager manager, final DataBroker db, final String serviceName, final int priority, final ResultState resultState, @@ -146,7 +144,6 @@ public class FlowNodeReconciliationImpl implements FlowNodeReconciliation { this.serviceName = serviceName; this.priority = priority; this.resultState = resultState; - salBundleService = requireNonNull(manager.getSalBundleService(), "salBundleService can not be null!"); reconciliationStates = flowGroupCacheManager.getReconciliationStates(); } @@ -228,21 +225,21 @@ public class FlowNodeReconciliationImpl implements FlowNodeReconciliation { LOG.debug("Closing openflow bundle for device {}", dpnId); /* Close previously opened bundle on the openflow switch if any */ - final var closeBundle = salBundleService.controlBundle(closeBundleInput); + final var closeBundle = provider.controlBundle().invoke(closeBundleInput); /* Open a new bundle on the switch */ final var openBundle = Futures.transformAsync(closeBundle, rpcResult -> { if (rpcResult.isSuccessful()) { LOG.debug("Existing bundle is successfully closed for device {}", dpnId); } - return salBundleService.controlBundle(openBundleInput); + return provider.controlBundle().invoke(openBundleInput); }, service); /* Push groups and flows via bundle add messages */ final var deleteAllFlowGroupsFuture = Futures.transformAsync(openBundle, rpcResult -> { if (rpcResult.isSuccessful()) { LOG.debug("Open bundle is successful for device {}", dpnId); - return salBundleService.addBundleMessages(deleteAllFlowGroupsInput); + return provider.addBundleMessages().invoke(deleteAllFlowGroupsInput); } return Futures.immediateFuture(null); }, service); @@ -261,7 +258,7 @@ public class FlowNodeReconciliationImpl implements FlowNodeReconciliation { /* Commit the bundle on the openflow switch */ final var commitBundleFuture = Futures.transformAsync(addbundlesFuture, rpcResult -> { LOG.debug("Adding bundle messages completed for device {}", dpnId); - return salBundleService.controlBundle(commitBundleInput); + return provider.controlBundle().invoke(commitBundleInput); }, service); /* Bundles not supported for meters */ @@ -517,8 +514,8 @@ public class FlowNodeReconciliationImpl implements FlowNodeReconciliation { * The group to add. */ private void addGroup(final Map> map, final Group group) { - KeyedInstanceIdentifier groupIdent = nodeIdentity.child(Group.class, group.key()); - final Uint32 groupId = group.getGroupId().getValue(); + final var groupIdent = nodeIdentity.child(Group.class, group.key()); + final var groupId = group.getGroupId().getValue(); final var future = provider.getGroupCommiter().add(groupIdent, group, nodeIdentity); Futures.addCallback(future, new FutureCallback>() { diff --git a/applications/forwardingrules-manager/src/main/java/org/opendaylight/openflowplugin/applications/frm/impl/ForwardingRulesManagerImpl.java b/applications/forwardingrules-manager/src/main/java/org/opendaylight/openflowplugin/applications/frm/impl/ForwardingRulesManagerImpl.java index 02e7a2a40..b7b180848 100644 --- a/applications/forwardingrules-manager/src/main/java/org/opendaylight/openflowplugin/applications/frm/impl/ForwardingRulesManagerImpl.java +++ b/applications/forwardingrules-manager/src/main/java/org/opendaylight/openflowplugin/applications/frm/impl/ForwardingRulesManagerImpl.java @@ -10,8 +10,6 @@ package org.opendaylight.openflowplugin.applications.frm.impl; import static java.util.Objects.requireNonNull; import com.google.common.annotations.VisibleForTesting; -import com.google.common.util.concurrent.ListenableFuture; -import java.util.Optional; import java.util.concurrent.ExecutionException; import java.util.concurrent.atomic.AtomicLong; import javax.annotation.PreDestroy; @@ -23,7 +21,6 @@ import org.opendaylight.mdsal.binding.api.ReadTransaction; import org.opendaylight.mdsal.binding.api.RpcConsumerRegistry; import org.opendaylight.mdsal.binding.api.RpcProviderService; import org.opendaylight.mdsal.common.api.LogicalDatastoreType; -import org.opendaylight.mdsal.singleton.common.api.ClusterSingletonServiceProvider; import org.opendaylight.openflowplugin.api.openflow.FlowGroupCacheManager; import org.opendaylight.openflowplugin.api.openflow.configuration.ConfigurationService; import org.opendaylight.openflowplugin.api.openflow.mastership.MastershipChangeServiceManager; @@ -42,28 +39,30 @@ import org.opendaylight.serviceutils.srm.ServiceRecoveryRegistry; import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowCapableNode; import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.meters.Meter; import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tables.table.Flow; -import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.service.rev130819.SalFlowService; -import org.opendaylight.yang.gen.v1.urn.opendaylight.group.service.rev130918.SalGroupService; +import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.service.rev130819.AddFlow; +import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.service.rev130819.RemoveFlow; +import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.service.rev130819.UpdateFlow; +import org.opendaylight.yang.gen.v1.urn.opendaylight.group.service.rev130918.AddGroup; +import org.opendaylight.yang.gen.v1.urn.opendaylight.group.service.rev130918.RemoveGroup; +import org.opendaylight.yang.gen.v1.urn.opendaylight.group.service.rev130918.UpdateGroup; import org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.groups.Group; import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.Node; -import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.service.rev130918.SalMeterService; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.bundle.service.rev170124.SalBundleService; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.openflowplugin.app.arbitrator.reconcile.service.rev180227.ArbitratorReconcileService; +import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.service.rev130918.AddMeter; +import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.service.rev130918.RemoveMeter; +import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.service.rev130918.UpdateMeter; +import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.bundle.service.rev170124.AddBundleMessages; +import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.bundle.service.rev170124.ControlBundle; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.openflowplugin.app.arbitrator.reconcile.service.rev180227.GetActiveBundle; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.openflowplugin.app.forwardingrules.manager.config.rev160511.ForwardingRulesManagerConfig; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.openflowplugin.rf.state.rev170713.ResultState; -import org.opendaylight.yang.gen.v1.urn.opendaylight.table.service.rev131026.SalTableService; +import org.opendaylight.yang.gen.v1.urn.opendaylight.table.service.rev131026.UpdateTable; import org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.features.TableFeatures; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** - * forwardingrules-manager org.opendaylight.openflowplugin.applications.frm.impl - * - *

- * Manager and middle point for whole module. It contains ActiveNodeHolder and - * provide all RPC services. - * + * Manager and middle point for whole module. It contains ActiveNodeHolder and provide all RPC services. */ @Singleton public final class ForwardingRulesManagerImpl implements ForwardingRulesManager, AutoCloseable { @@ -75,19 +74,12 @@ public final class ForwardingRulesManagerImpl implements ForwardingRulesManager, private final FlowNodeConnectorInventoryTranslatorImpl flowNodeConnectorInventoryTranslatorImpl; private final DevicesGroupRegistry devicesGroupRegistry = new DevicesGroupRegistry(); private final NodeConfigurator nodeConfigurator = new NodeConfiguratorImpl(); - private final ClusterSingletonServiceProvider clusterSingletonServiceProvider; private final OpenflowServiceRecoveryHandler openflowServiceRecoveryHandler; - private final ArbitratorReconcileService arbitratorReconciliationManager; private final BundleMessagesCommiter bundleGroupListener; private final BundleMessagesCommiter bundleFlowListener; private final ServiceRecoveryRegistry serviceRecoveryRegistry; private final AtomicLong txNum = new AtomicLong(); private final DataBroker dataService; - private final SalFlowService salFlowService; - private final SalGroupService salGroupService; - private final SalMeterService salMeterService; - private final SalTableService salTableService; - private final SalBundleService salBundleService; private final AutoCloseable configurationServiceRegistration; private ForwardingRulesCommiter flowListener; @@ -102,13 +94,26 @@ public final class ForwardingRulesManagerImpl implements ForwardingRulesManager, private int reconciliationRetryCount; private boolean isBundleBasedReconciliationEnabled; + private final @NonNull AddFlow addFlow; + private final @NonNull RemoveFlow removeFlow; + private final @NonNull UpdateFlow updateFlow; + private final @NonNull AddGroup addGroup; + private final @NonNull RemoveGroup removeGroup; + private final @NonNull UpdateGroup updateGroup; + private final @NonNull AddMeter addMeter; + private final @NonNull RemoveMeter removeMeter; + private final @NonNull UpdateMeter updateMeter; + private final @NonNull UpdateTable updateTable; + private final @NonNull ControlBundle controlBundle; + private final @NonNull AddBundleMessages addBundleMessages; + private final @NonNull GetActiveBundle getActiveBundle; + @Inject public ForwardingRulesManagerImpl(final DataBroker dataBroker, final RpcConsumerRegistry rpcRegistry, final RpcProviderService rpcProviderService, final ForwardingRulesManagerConfig config, final MastershipChangeServiceManager mastershipChangeServiceManager, - final ClusterSingletonServiceProvider clusterSingletonService, final ConfigurationService configurationService, final ReconciliationManager reconciliationManager, final OpenflowServiceRecoveryHandler openflowServiceRecoveryHandler, @@ -121,25 +126,22 @@ public final class ForwardingRulesManagerImpl implements ForwardingRulesManager, isBundleBasedReconciliationEnabled = config.getBundleBasedReconciliationEnabled(); configurationServiceRegistration = configurationService.registerListener(this); dataService = requireNonNull(dataBroker); - clusterSingletonServiceProvider = requireNonNull(clusterSingletonService); - - salFlowService = requireNonNull(rpcRegistry.getRpcService(SalFlowService.class), - "RPC SalFlowService not found."); - salGroupService = requireNonNull(rpcRegistry.getRpcService(SalGroupService.class), - "RPC SalGroupService not found."); - salMeterService = requireNonNull(rpcRegistry.getRpcService(SalMeterService.class), - "RPC SalMeterService not found."); - salTableService = requireNonNull(rpcRegistry.getRpcService(SalTableService.class), - "RPC SalTableService not found."); - salBundleService = requireNonNull(rpcRegistry.getRpcService(SalBundleService.class), - "RPC SalBundlService not found."); - this.openflowServiceRecoveryHandler = requireNonNull(openflowServiceRecoveryHandler, - "Openflow service recovery handler cannot be null"); - this.serviceRecoveryRegistry = requireNonNull(serviceRecoveryRegistry, - "Service recovery registry cannot be null"); - arbitratorReconciliationManager = - requireNonNull(rpcRegistry.getRpcService(ArbitratorReconcileService.class), - "ArbitratorReconciliationManager can not be null!"); + this.openflowServiceRecoveryHandler = requireNonNull(openflowServiceRecoveryHandler); + this.serviceRecoveryRegistry = requireNonNull(serviceRecoveryRegistry); + + addFlow = rpcRegistry.getRpc(AddFlow.class); + removeFlow = rpcRegistry.getRpc(RemoveFlow.class); + updateFlow = rpcRegistry.getRpc(UpdateFlow.class); + addGroup = rpcRegistry.getRpc(AddGroup.class); + removeGroup = rpcRegistry.getRpc(RemoveGroup.class); + updateGroup = rpcRegistry.getRpc(UpdateGroup.class); + addMeter = rpcRegistry.getRpc(AddMeter.class); + removeMeter = rpcRegistry.getRpc(RemoveMeter.class); + updateMeter = rpcRegistry.getRpc(UpdateMeter.class); + controlBundle = rpcRegistry.getRpc(ControlBundle.class); + addBundleMessages = rpcRegistry.getRpc(AddBundleMessages.class); + updateTable = rpcRegistry.getRpc(UpdateTable.class); + getActiveBundle = rpcRegistry.getRpc(GetActiveBundle.class); flowNodeReconciliation = new FlowNodeReconciliationImpl(this, dataService, SERVICE_NAME, FRM_RECONCILIATION_PRIORITY, ResultState.DONOTHING, flowGroupCacheManager); @@ -215,11 +217,9 @@ public final class ForwardingRulesManagerImpl implements ForwardingRulesManager, public boolean checkNodeInOperationalDataStore(final InstanceIdentifier ident) { boolean result = false; InstanceIdentifier nodeIid = ident.firstIdentifierOf(Node.class); - try (ReadTransaction transaction = dataService.newReadOnlyTransaction()) { - ListenableFuture> future = transaction - .read(LogicalDatastoreType.OPERATIONAL, nodeIid); - Optional optionalDataObject = future.get(); - if (optionalDataObject.isPresent()) { + try (var transaction = dataService.newReadOnlyTransaction()) { + var future = transaction.exists(LogicalDatastoreType.OPERATIONAL, nodeIid); + if (future.get()) { result = true; } else { LOG.debug("{}: Failed to read {}", Thread.currentThread().getStackTrace()[1], nodeIid); @@ -232,33 +232,73 @@ public final class ForwardingRulesManagerImpl implements ForwardingRulesManager, } @Override - public SalFlowService getSalFlowService() { - return salFlowService; + public AddFlow addFlow() { + return addFlow; } @Override - public SalGroupService getSalGroupService() { - return salGroupService; + public RemoveFlow removeFlow() { + return removeFlow; } @Override - public SalMeterService getSalMeterService() { - return salMeterService; + public @NonNull UpdateFlow updateFlow() { + return updateFlow; } @Override - public SalTableService getSalTableService() { - return salTableService; + public AddGroup addGroup() { + return addGroup; } @Override - public DevicesGroupRegistry getDevicesGroupRegistry() { - return devicesGroupRegistry; + public RemoveGroup removeGroup() { + return removeGroup; + } + + @Override + public UpdateGroup updateGroup() { + return updateGroup; + } + + @Override + public AddMeter addMeter() { + return addMeter; + } + + @Override + public RemoveMeter removeMeter() { + return removeMeter; + } + + @Override + public UpdateMeter updateMeter() { + return updateMeter; } @Override - public SalBundleService getSalBundleService() { - return salBundleService; + public UpdateTable updateTable() { + return updateTable; + } + + @Override + public ControlBundle controlBundle() { + return controlBundle; + } + + @Override + public AddBundleMessages addBundleMessages() { + return addBundleMessages; + } + + @Override + public GetActiveBundle getActiveBundle() { + return getActiveBundle; + } + + @Override + public DevicesGroupRegistry getDevicesGroupRegistry() { + return devicesGroupRegistry; } @Override @@ -291,11 +331,6 @@ public final class ForwardingRulesManagerImpl implements ForwardingRulesManager, return bundleGroupListener; } - @Override - public ArbitratorReconcileService getArbitratorReconciliationManager() { - return arbitratorReconciliationManager; - } - @Override public boolean isReconciliationDisabled() { return disableReconciliation; diff --git a/applications/forwardingrules-manager/src/main/java/org/opendaylight/openflowplugin/applications/frm/impl/GroupForwarder.java b/applications/forwardingrules-manager/src/main/java/org/opendaylight/openflowplugin/applications/frm/impl/GroupForwarder.java index 926992682..52fef3ba3 100644 --- a/applications/forwardingrules-manager/src/main/java/org/opendaylight/openflowplugin/applications/frm/impl/GroupForwarder.java +++ b/applications/forwardingrules-manager/src/main/java/org/opendaylight/openflowplugin/applications/frm/impl/GroupForwarder.java @@ -78,12 +78,12 @@ public class GroupForwarder extends AbstractListeningCommiter { final String nodeId = getNodeIdValueFromNodeIdentifier(nodeIdent); nodeConfigurator.enqueueJob(nodeId, () -> { final var removeGroup = new RemoveGroupInputBuilder(removeDataObj) - .setNode(new NodeRef(nodeIdent.firstIdentifierOf(Node.class))) - .setGroupRef(new GroupRef(identifier)) - .setTransactionUri(new Uri(provider.getNewTransactionId())) - .build(); + .setNode(new NodeRef(nodeIdent.firstIdentifierOf(Node.class))) + .setGroupRef(new GroupRef(identifier)) + .setTransactionUri(new Uri(provider.getNewTransactionId())) + .build(); - final var resultFuture = provider.getSalGroupService() .removeGroup(removeGroup); + final var resultFuture = provider.removeGroup().invoke(removeGroup); Futures.addCallback(resultFuture, new RemoveGroupCallBack(removeDataObj.getGroupId().getValue(), nodeId), MoreExecutors.directExecutor()); @@ -96,7 +96,7 @@ public class GroupForwarder extends AbstractListeningCommiter { @Override public ListenableFuture> removeWithResult(final InstanceIdentifier identifier, final Group removeDataObj, final InstanceIdentifier nodeIdent) { - return provider.getSalGroupService().removeGroup(new RemoveGroupInputBuilder(removeDataObj) + return provider.removeGroup().invoke(new RemoveGroupInputBuilder(removeDataObj) .setNode(new NodeRef(nodeIdent.firstIdentifierOf(Node.class))) .setGroupRef(new GroupRef(identifier)) .setTransactionUri(new Uri(provider.getNewTransactionId())) @@ -106,27 +106,28 @@ public class GroupForwarder extends AbstractListeningCommiter { @Override public void update(final InstanceIdentifier identifier, final Group original, final Group update, final InstanceIdentifier nodeIdent) { - BundleId bundleId = getActiveBundle(nodeIdent, provider); + final var bundleId = getActiveBundle(nodeIdent, provider); if (bundleId != null) { provider.getBundleGroupListener().update(identifier, original, update, nodeIdent, bundleId); - } else { - final String nodeId = getNodeIdValueFromNodeIdentifier(nodeIdent); - nodeConfigurator.enqueueJob(nodeId, () -> { - final var updateGroupInput = new UpdateGroupInputBuilder() - .setNode(new NodeRef(nodeIdent.firstIdentifierOf(Node.class))) - .setGroupRef(new GroupRef(identifier)) - .setTransactionUri(new Uri(provider.getNewTransactionId())) - .setUpdatedGroup(new UpdatedGroupBuilder(update).build()) - .setOriginalGroup(new OriginalGroupBuilder(original).build()) - .build(); - final var resultFuture = LoggingFutures.addErrorLogging( - provider.getSalGroupService().updateGroup(updateGroupInput), LOG, "updateGroup"); - Futures.addCallback(resultFuture, - new UpdateGroupCallBack(updateGroupInput.getOriginalGroup().getGroupId().getValue(), nodeId), - MoreExecutors.directExecutor()); - return resultFuture; - }); + return; } + + final String nodeId = getNodeIdValueFromNodeIdentifier(nodeIdent); + nodeConfigurator.enqueueJob(nodeId, () -> { + final var updateGroupInput = new UpdateGroupInputBuilder() + .setNode(new NodeRef(nodeIdent.firstIdentifierOf(Node.class))) + .setGroupRef(new GroupRef(identifier)) + .setTransactionUri(new Uri(provider.getNewTransactionId())) + .setUpdatedGroup(new UpdatedGroupBuilder(update).build()) + .setOriginalGroup(new OriginalGroupBuilder(original).build()) + .build(); + final var resultFuture = LoggingFutures.addErrorLogging(provider.updateGroup().invoke(updateGroupInput), + LOG, "updateGroup"); + Futures.addCallback(resultFuture, + new UpdateGroupCallBack(updateGroupInput.getOriginalGroup().getGroupId().getValue(), nodeId), + MoreExecutors.directExecutor()); + return resultFuture; + }); } @Override @@ -137,16 +138,15 @@ public class GroupForwarder extends AbstractListeningCommiter { return provider.getBundleGroupListener().add(identifier, addDataObj, nodeIdent, bundleId); } - final String nodeId = getNodeIdValueFromNodeIdentifier(nodeIdent); + final var nodeId = getNodeIdValueFromNodeIdentifier(nodeIdent); return nodeConfigurator.enqueueJob(nodeId, () -> { final var addGroupInput = new AddGroupInputBuilder(addDataObj) .setNode(new NodeRef(nodeIdent.firstIdentifierOf(Node.class))) .setGroupRef(new GroupRef(identifier)) .setTransactionUri(new Uri(provider.getNewTransactionId())) .build(); - final var resultFuture = provider.getSalGroupService().addGroup(addGroupInput); - Futures.addCallback(resultFuture, - new AddGroupCallBack(addGroupInput.getGroupId().getValue(), nodeId), + final var resultFuture = provider.addGroup().invoke(addGroupInput); + Futures.addCallback(resultFuture, new AddGroupCallBack(addGroupInput.getGroupId().getValue(), nodeId), MoreExecutors.directExecutor()); return resultFuture; }); @@ -158,8 +158,8 @@ public class GroupForwarder extends AbstractListeningCommiter { LOG.debug("Creating Stale-Mark entry for the switch {} for Group {} ", nodeIdent, del); final var staleGroup = new StaleGroupBuilder(del).setGroupId(del.getGroupId()).build(); final var writeTransaction = dataBroker.newWriteOnlyTransaction(); - writeTransaction.put(LogicalDatastoreType.CONFIGURATION, getStaleGroupInstanceIdentifier(staleGroup, nodeIdent), - staleGroup); + writeTransaction.put(LogicalDatastoreType.CONFIGURATION, + nodeIdent.child(StaleGroup.class, new StaleGroupKey(new GroupId(staleGroup.getGroupId()))), staleGroup); writeTransaction.commit().addCallback(new FutureCallback() { @Override public void onSuccess(final CommitInfo result) { @@ -173,12 +173,6 @@ public class GroupForwarder extends AbstractListeningCommiter { }, MoreExecutors.directExecutor()); } - private static InstanceIdentifier getStaleGroupInstanceIdentifier( - final StaleGroup staleGroup, final InstanceIdentifier nodeIdent) { - return nodeIdent.child(StaleGroup.class, new StaleGroupKey(new GroupId(staleGroup.getGroupId()))); - } - private final class AddGroupCallBack implements FutureCallback> { private final Uint32 groupId; private final String nodeId; diff --git a/applications/forwardingrules-manager/src/main/java/org/opendaylight/openflowplugin/applications/frm/impl/MeterForwarder.java b/applications/forwardingrules-manager/src/main/java/org/opendaylight/openflowplugin/applications/frm/impl/MeterForwarder.java index 9bf05d8df..8aeb8e0a1 100644 --- a/applications/forwardingrules-manager/src/main/java/org/opendaylight/openflowplugin/applications/frm/impl/MeterForwarder.java +++ b/applications/forwardingrules-manager/src/main/java/org/opendaylight/openflowplugin/applications/frm/impl/MeterForwarder.java @@ -63,19 +63,17 @@ public class MeterForwarder extends AbstractListeningCommiter { @Override public void remove(final InstanceIdentifier identifier, final Meter removeDataObj, final InstanceIdentifier nodeIdent) { - LoggingFutures.addErrorLogging(provider.getSalMeterService() - .removeMeter(new RemoveMeterInputBuilder(removeDataObj) + LoggingFutures.addErrorLogging(provider.removeMeter().invoke(new RemoveMeterInputBuilder(removeDataObj) .setNode(new NodeRef(nodeIdent.firstIdentifierOf(Node.class))) .setMeterRef(new MeterRef(identifier)) .setTransactionUri(new Uri(provider.getNewTransactionId())) - .build()), - LOG, "removeMeter"); + .build()), LOG, "removeMeter"); } @Override public ListenableFuture> removeWithResult(final InstanceIdentifier identifier, final Meter removeDataObj, final InstanceIdentifier nodeIdent) { - return provider.getSalMeterService().removeMeter(new RemoveMeterInputBuilder(removeDataObj) + return provider.removeMeter().invoke(new RemoveMeterInputBuilder(removeDataObj) .setNode(new NodeRef(nodeIdent.firstIdentifierOf(Node.class))) .setMeterRef(new MeterRef(identifier)) .setTransactionUri(new Uri(provider.getNewTransactionId())) @@ -85,7 +83,7 @@ public class MeterForwarder extends AbstractListeningCommiter { @Override public void update(final InstanceIdentifier identifier, final Meter original, final Meter update, final InstanceIdentifier nodeIdent) { - LoggingFutures.addErrorLogging(provider.getSalMeterService().updateMeter(new UpdateMeterInputBuilder() + LoggingFutures.addErrorLogging(provider.updateMeter().invoke(new UpdateMeterInputBuilder() .setNode(new NodeRef(nodeIdent.firstIdentifierOf(Node.class))) .setMeterRef(new MeterRef(identifier)) .setTransactionUri(new Uri(provider.getNewTransactionId())) @@ -97,7 +95,7 @@ public class MeterForwarder extends AbstractListeningCommiter { @Override public ListenableFuture> add(final InstanceIdentifier identifier, final Meter addDataObj, final InstanceIdentifier nodeIdent) { - return provider.getSalMeterService().addMeter(new AddMeterInputBuilder(addDataObj) + return provider.addMeter().invoke(new AddMeterInputBuilder(addDataObj) .setNode(new NodeRef(nodeIdent.firstIdentifierOf(Node.class))) .setMeterRef(new MeterRef(identifier)) .setTransactionUri(new Uri(provider.getNewTransactionId())) diff --git a/applications/forwardingrules-manager/src/main/java/org/opendaylight/openflowplugin/applications/frm/impl/TableForwarder.java b/applications/forwardingrules-manager/src/main/java/org/opendaylight/openflowplugin/applications/frm/impl/TableForwarder.java index ae050038f..84d9af320 100644 --- a/applications/forwardingrules-manager/src/main/java/org/opendaylight/openflowplugin/applications/frm/impl/TableForwarder.java +++ b/applications/forwardingrules-manager/src/main/java/org/opendaylight/openflowplugin/applications/frm/impl/TableForwarder.java @@ -9,7 +9,6 @@ package org.opendaylight.openflowplugin.applications.frm.impl; import com.google.common.util.concurrent.Futures; import com.google.common.util.concurrent.ListenableFuture; -import java.util.Collections; import org.opendaylight.infrautils.utils.concurrent.LoggingFutures; import org.opendaylight.mdsal.binding.api.DataBroker; import org.opendaylight.openflowplugin.applications.frm.ForwardingRulesManager; @@ -24,6 +23,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.table.service.rev131026.tab import org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.TableRef; import org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.features.TableFeatures; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; +import org.opendaylight.yangtools.yang.binding.util.BindingMap; import org.opendaylight.yangtools.yang.common.RpcResult; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -72,20 +72,16 @@ public class TableForwarder extends AbstractListeningCommiter { builder.setTransactionUri(new Uri(provider.getNewTransactionId())); builder.setUpdatedTable(new UpdatedTableBuilder() - .setTableFeatures(Collections.singletonMap(updatedTableFeatures.key(), updatedTableFeatures)) + .setTableFeatures(BindingMap.of(updatedTableFeatures)) .build()); builder.setOriginalTable(new OriginalTableBuilder() - .setTableFeatures(Collections.singletonMap(originalTableFeatures.key(), originalTableFeatures)) + .setTableFeatures(BindingMap.of(originalTableFeatures)) .build()); - LOG.debug("Invoking SalTableService "); - if (provider.getSalTableService() != null) { - LOG.debug(" Handle to SalTableServices {}", provider.getSalTableService()); - } - - LoggingFutures.addErrorLogging(provider.getSalTableService().updateTable(builder.build()), LOG, - "updateTable"); + final var updateTable = provider.updateTable(); + LOG.debug("Invoking SalTableService on {}", updateTable); + LoggingFutures.addErrorLogging(provider.updateTable().invoke(builder.build()), LOG, "updateTable"); } @Override diff --git a/applications/forwardingrules-manager/src/main/java/org/opendaylight/openflowplugin/applications/frm/util/FrmUtil.java b/applications/forwardingrules-manager/src/main/java/org/opendaylight/openflowplugin/applications/frm/util/FrmUtil.java index 18cf94329..048350d49 100644 --- a/applications/forwardingrules-manager/src/main/java/org/opendaylight/openflowplugin/applications/frm/util/FrmUtil.java +++ b/applications/forwardingrules-manager/src/main/java/org/opendaylight/openflowplugin/applications/frm/util/FrmUtil.java @@ -43,9 +43,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.N import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.NodeKey; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.rev170124.BundleId; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.openflowplugin.app.arbitrator.reconcile.service.rev180227.GetActiveBundleInputBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.openflowplugin.app.arbitrator.reconcile.service.rev180227.GetActiveBundleOutput; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; -import org.opendaylight.yangtools.yang.common.RpcResult; import org.opendaylight.yangtools.yang.common.Uint32; import org.opendaylight.yangtools.yang.common.Uint64; import org.opendaylight.yangtools.yang.common.Uint8; @@ -140,8 +138,8 @@ public final class FrmUtil { final NodeRef nodeRef = new NodeRef(nodeIdent.firstIdentifierOf(Node.class)); GetActiveBundleInputBuilder input = new GetActiveBundleInputBuilder().setNodeId(dpId).setNode(nodeRef); try { - RpcResult result = provider.getArbitratorReconciliationManager() - .getActiveBundle(input.build()).get(RPC_RESULT_TIMEOUT, TimeUnit.MILLISECONDS); + final var result = provider.getActiveBundle().invoke(input.build()) + .get(RPC_RESULT_TIMEOUT, TimeUnit.MILLISECONDS); if (!result.isSuccessful()) { LOG.trace("Error while retrieving active bundle present for node {}", dpId); } else { diff --git a/applications/forwardingrules-manager/src/main/resources/OSGI-INF/blueprint/forwardingrules-manager.xml b/applications/forwardingrules-manager/src/main/resources/OSGI-INF/blueprint/forwardingrules-manager.xml index cced48215..717892aa1 100644 --- a/applications/forwardingrules-manager/src/main/resources/OSGI-INF/blueprint/forwardingrules-manager.xml +++ b/applications/forwardingrules-manager/src/main/resources/OSGI-INF/blueprint/forwardingrules-manager.xml @@ -11,8 +11,6 @@ interface="org.opendaylight.mdsal.binding.api.RpcProviderService"/> - - diff --git a/applications/forwardingrules-manager/src/test/java/org/opendaylight/openflowplugin/applications/frm/impl/AbstractFRMTest.java b/applications/forwardingrules-manager/src/test/java/org/opendaylight/openflowplugin/applications/frm/impl/AbstractFRMTest.java index fcac18940..bcc55d1d8 100644 --- a/applications/forwardingrules-manager/src/test/java/org/opendaylight/openflowplugin/applications/frm/impl/AbstractFRMTest.java +++ b/applications/forwardingrules-manager/src/test/java/org/opendaylight/openflowplugin/applications/frm/impl/AbstractFRMTest.java @@ -19,30 +19,33 @@ import org.opendaylight.mdsal.binding.api.RpcProviderService; import org.opendaylight.mdsal.binding.api.WriteTransaction; import org.opendaylight.mdsal.binding.dom.adapter.test.AbstractDataBrokerTest; import org.opendaylight.mdsal.common.api.LogicalDatastoreType; -import org.opendaylight.mdsal.singleton.common.api.ClusterSingletonServiceProvider; import org.opendaylight.openflowplugin.api.openflow.FlowGroupCacheManager; import org.opendaylight.openflowplugin.api.openflow.configuration.ConfigurationService; import org.opendaylight.openflowplugin.api.openflow.mastership.MastershipChangeServiceManager; -import org.opendaylight.openflowplugin.applications.frm.impl.DeviceMastershipManager; -import org.opendaylight.openflowplugin.applications.frm.impl.ForwardingRulesManagerImpl; -import org.opendaylight.openflowplugin.applications.frm.impl.ListenerRegistrationHelperImpl; import org.opendaylight.openflowplugin.applications.frm.recovery.OpenflowServiceRecoveryHandler; import org.opendaylight.openflowplugin.applications.reconciliation.ReconciliationManager; import org.opendaylight.serviceutils.srm.ServiceRecoveryRegistry; import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowCapableNodeBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.service.rev130819.SalFlowService; -import org.opendaylight.yang.gen.v1.urn.opendaylight.group.service.rev130918.SalGroupService; +import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.service.rev130819.AddFlow; +import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.service.rev130819.RemoveFlow; +import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.service.rev130819.UpdateFlow; +import org.opendaylight.yang.gen.v1.urn.opendaylight.group.service.rev130918.AddGroup; +import org.opendaylight.yang.gen.v1.urn.opendaylight.group.service.rev130918.RemoveGroup; +import org.opendaylight.yang.gen.v1.urn.opendaylight.group.service.rev130918.UpdateGroup; import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeId; import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.Nodes; import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodesBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.NodeBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.NodeKey; -import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.service.rev130918.SalMeterService; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.bundle.service.rev170124.SalBundleService; +import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.service.rev130918.AddMeter; +import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.service.rev130918.RemoveMeter; +import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.service.rev130918.UpdateMeter; +import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.bundle.service.rev170124.AddBundleMessages; +import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.bundle.service.rev170124.ControlBundle; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.openflowplugin.app.arbitrator.reconcile.service.rev180227.ArbitratorReconcileService; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.openflowplugin.app.forwardingrules.manager.config.rev160511.ForwardingRulesManagerConfig; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.openflowplugin.app.forwardingrules.manager.config.rev160511.ForwardingRulesManagerConfigBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.table.service.rev131026.SalTableService; +import org.opendaylight.yang.gen.v1.urn.opendaylight.table.service.rev131026.UpdateTable; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.opendaylight.yangtools.yang.binding.util.BindingMap; import org.opendaylight.yangtools.yang.common.Uint16; @@ -55,8 +58,6 @@ public abstract class AbstractFRMTest extends AbstractDataBrokerTest { @Mock private RpcProviderService rpcProviderService; @Mock - private ClusterSingletonServiceProvider clusterSingletonService; - @Mock private DeviceMastershipManager deviceMastershipManager; @Mock private ReconciliationManager reconciliationManager; @@ -69,25 +70,40 @@ public abstract class AbstractFRMTest extends AbstractDataBrokerTest { @Mock private FlowGroupCacheManager flowGroupCacheManager; + final CapturingAddFlow addFlow = new CapturingAddFlow(); + final CapturingRemoveFlow removeFlow = new CapturingRemoveFlow(); + final CapturingUpdateFlow updateFlow = new CapturingUpdateFlow(); + final CapturingAddGroup addGroup = new CapturingAddGroup(); + final CapturingRemoveGroup removeGroup = new CapturingRemoveGroup(); + final CapturingUpdateGroup updateGroup = new CapturingUpdateGroup(); + final CapturingAddMeter addMeter = new CapturingAddMeter(); + final CapturingRemoveMeter removeMeter = new CapturingRemoveMeter(); + final CapturingUpdateMeter updateMeter = new CapturingUpdateMeter(); + final CapturingUpdateTable updateTable = new CapturingUpdateTable(); + final CapturingControlBundle controlBundle = new CapturingControlBundle(); + final CapturingAddBundleMessages addBundleMessages = new CapturingAddBundleMessages(); + protected void setUpForwardingRulesManager() { - when(rpcConsumerRegistry.getRpcService(SalFlowService.class)) - .thenReturn(new SalFlowServiceMock()); - when(rpcConsumerRegistry.getRpcService(SalGroupService.class)) - .thenReturn(new SalGroupServiceMock()); - when(rpcConsumerRegistry.getRpcService(SalMeterService.class)) - .thenReturn(new SalMeterServiceMock()); - when(rpcConsumerRegistry.getRpcService(SalTableService.class)) - .thenReturn(new SalTableServiceMock()); - when(rpcConsumerRegistry.getRpcService(SalBundleService.class)) - .thenReturn(new SalBundleServiceMock()); + when(rpcConsumerRegistry.getRpc(AddFlow.class)).thenReturn(addFlow); + when(rpcConsumerRegistry.getRpc(RemoveFlow.class)).thenReturn(removeFlow); + when(rpcConsumerRegistry.getRpc(UpdateFlow.class)).thenReturn(updateFlow); + when(rpcConsumerRegistry.getRpc(AddGroup.class)).thenReturn(addGroup); + when(rpcConsumerRegistry.getRpc(RemoveGroup.class)).thenReturn(removeGroup); + when(rpcConsumerRegistry.getRpc(UpdateGroup.class)).thenReturn(updateGroup); + when(rpcConsumerRegistry.getRpc(AddMeter.class)).thenReturn(addMeter); + when(rpcConsumerRegistry.getRpc(RemoveMeter.class)).thenReturn(removeMeter); + when(rpcConsumerRegistry.getRpc(UpdateMeter.class)).thenReturn(updateMeter); + when(rpcConsumerRegistry.getRpc(UpdateTable.class)).thenReturn(updateTable); + when(rpcConsumerRegistry.getRpc(ControlBundle.class)).thenReturn(controlBundle); + when(rpcConsumerRegistry.getRpc(AddBundleMessages.class)).thenReturn(addBundleMessages); when(rpcConsumerRegistry.getRpcService(ArbitratorReconcileService.class)) .thenReturn(new ArbitratorReconcileServiceMock()); final var dataBroker = getDataBroker(); forwardingRulesManager = new ForwardingRulesManagerImpl(getDataBroker(), rpcConsumerRegistry, - rpcProviderService, getConfig(), mastershipChangeServiceManager, clusterSingletonService, - getConfigurationService(), reconciliationManager, openflowServiceRecoveryHandler, - serviceRecoveryRegistry, flowGroupCacheManager, new ListenerRegistrationHelperImpl(dataBroker)); + rpcProviderService, getConfig(), mastershipChangeServiceManager, getConfigurationService(), + reconciliationManager, openflowServiceRecoveryHandler, serviceRecoveryRegistry, flowGroupCacheManager, + new ListenerRegistrationHelperImpl(dataBroker)); } protected void setDeviceMastership(final NodeId nodeId) { diff --git a/applications/forwardingrules-manager/src/test/java/org/opendaylight/openflowplugin/applications/frm/impl/CapturingAddBundleMessages.java b/applications/forwardingrules-manager/src/test/java/org/opendaylight/openflowplugin/applications/frm/impl/CapturingAddBundleMessages.java new file mode 100644 index 000000000..6350de4b0 --- /dev/null +++ b/applications/forwardingrules-manager/src/test/java/org/opendaylight/openflowplugin/applications/frm/impl/CapturingAddBundleMessages.java @@ -0,0 +1,28 @@ +/* + * Copyright (c) 2024 PANTHEON.tech, s.r.o. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ +package org.opendaylight.openflowplugin.applications.frm.impl; + +import com.google.common.util.concurrent.ListenableFuture; +import java.util.ArrayList; +import java.util.List; +import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.bundle.service.rev170124.AddBundleMessages; +import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.bundle.service.rev170124.AddBundleMessagesInput; +import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.bundle.service.rev170124.AddBundleMessagesOutput; +import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.bundle.service.rev170124.AddBundleMessagesOutputBuilder; +import org.opendaylight.yangtools.yang.common.RpcResult; +import org.opendaylight.yangtools.yang.common.RpcResultBuilder; + +final class CapturingAddBundleMessages implements AddBundleMessages { + final List calls = new ArrayList<>(); + + @Override + public ListenableFuture> invoke(final AddBundleMessagesInput input) { + calls.add(input); + return RpcResultBuilder.success(new AddBundleMessagesOutputBuilder().build()).buildFuture(); + } +} diff --git a/applications/forwardingrules-manager/src/test/java/org/opendaylight/openflowplugin/applications/frm/impl/CapturingAddFlow.java b/applications/forwardingrules-manager/src/test/java/org/opendaylight/openflowplugin/applications/frm/impl/CapturingAddFlow.java new file mode 100644 index 000000000..4763b3bfb --- /dev/null +++ b/applications/forwardingrules-manager/src/test/java/org/opendaylight/openflowplugin/applications/frm/impl/CapturingAddFlow.java @@ -0,0 +1,28 @@ +/* + * Copyright (c) 2024 PANTHEON.tech, s.r.o. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ +package org.opendaylight.openflowplugin.applications.frm.impl; + +import com.google.common.util.concurrent.ListenableFuture; +import java.util.ArrayList; +import java.util.List; +import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.service.rev130819.AddFlow; +import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.service.rev130819.AddFlowInput; +import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.service.rev130819.AddFlowOutput; +import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.service.rev130819.AddFlowOutputBuilder; +import org.opendaylight.yangtools.yang.common.RpcResult; +import org.opendaylight.yangtools.yang.common.RpcResultBuilder; + +final class CapturingAddFlow implements AddFlow { + final List calls = new ArrayList<>(); + + @Override + public ListenableFuture> invoke(final AddFlowInput input) { + calls.add(input); + return RpcResultBuilder.success(new AddFlowOutputBuilder().build()).buildFuture(); + } +} diff --git a/applications/forwardingrules-manager/src/test/java/org/opendaylight/openflowplugin/applications/frm/impl/CapturingAddGroup.java b/applications/forwardingrules-manager/src/test/java/org/opendaylight/openflowplugin/applications/frm/impl/CapturingAddGroup.java new file mode 100644 index 000000000..8e013f9ad --- /dev/null +++ b/applications/forwardingrules-manager/src/test/java/org/opendaylight/openflowplugin/applications/frm/impl/CapturingAddGroup.java @@ -0,0 +1,28 @@ +/* + * Copyright (c) 2024 PANTHEON.tech, s.r.o. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ +package org.opendaylight.openflowplugin.applications.frm.impl; + +import com.google.common.util.concurrent.ListenableFuture; +import java.util.ArrayList; +import java.util.List; +import org.opendaylight.yang.gen.v1.urn.opendaylight.group.service.rev130918.AddGroup; +import org.opendaylight.yang.gen.v1.urn.opendaylight.group.service.rev130918.AddGroupInput; +import org.opendaylight.yang.gen.v1.urn.opendaylight.group.service.rev130918.AddGroupOutput; +import org.opendaylight.yang.gen.v1.urn.opendaylight.group.service.rev130918.AddGroupOutputBuilder; +import org.opendaylight.yangtools.yang.common.RpcResult; +import org.opendaylight.yangtools.yang.common.RpcResultBuilder; + +final class CapturingAddGroup implements AddGroup { + final List calls = new ArrayList<>(); + + @Override + public ListenableFuture> invoke(final AddGroupInput input) { + calls.add(input); + return RpcResultBuilder.success(new AddGroupOutputBuilder().build()).buildFuture(); + } +} diff --git a/applications/forwardingrules-manager/src/test/java/org/opendaylight/openflowplugin/applications/frm/impl/CapturingAddMeter.java b/applications/forwardingrules-manager/src/test/java/org/opendaylight/openflowplugin/applications/frm/impl/CapturingAddMeter.java new file mode 100644 index 000000000..aec085c33 --- /dev/null +++ b/applications/forwardingrules-manager/src/test/java/org/opendaylight/openflowplugin/applications/frm/impl/CapturingAddMeter.java @@ -0,0 +1,28 @@ +/* + * Copyright (c) 2024 PANTHEON.tech, s.r.o. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ +package org.opendaylight.openflowplugin.applications.frm.impl; + +import com.google.common.util.concurrent.ListenableFuture; +import java.util.ArrayList; +import java.util.List; +import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.service.rev130918.AddMeter; +import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.service.rev130918.AddMeterInput; +import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.service.rev130918.AddMeterOutput; +import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.service.rev130918.AddMeterOutputBuilder; +import org.opendaylight.yangtools.yang.common.RpcResult; +import org.opendaylight.yangtools.yang.common.RpcResultBuilder; + +final class CapturingAddMeter implements AddMeter { + final List calls = new ArrayList<>(); + + @Override + public ListenableFuture> invoke(final AddMeterInput input) { + calls.add(input); + return RpcResultBuilder.success(new AddMeterOutputBuilder().build()).buildFuture(); + } +} diff --git a/applications/forwardingrules-manager/src/test/java/org/opendaylight/openflowplugin/applications/frm/impl/CapturingControlBundle.java b/applications/forwardingrules-manager/src/test/java/org/opendaylight/openflowplugin/applications/frm/impl/CapturingControlBundle.java new file mode 100644 index 000000000..6b60f1814 --- /dev/null +++ b/applications/forwardingrules-manager/src/test/java/org/opendaylight/openflowplugin/applications/frm/impl/CapturingControlBundle.java @@ -0,0 +1,28 @@ +/* + * Copyright (c) 2024 PANTHEON.tech, s.r.o. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ +package org.opendaylight.openflowplugin.applications.frm.impl; + +import com.google.common.util.concurrent.ListenableFuture; +import java.util.ArrayList; +import java.util.List; +import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.bundle.service.rev170124.ControlBundle; +import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.bundle.service.rev170124.ControlBundleInput; +import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.bundle.service.rev170124.ControlBundleOutput; +import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.bundle.service.rev170124.ControlBundleOutputBuilder; +import org.opendaylight.yangtools.yang.common.RpcResult; +import org.opendaylight.yangtools.yang.common.RpcResultBuilder; + +final class CapturingControlBundle implements ControlBundle { + final List calls = new ArrayList<>(); + + @Override + public ListenableFuture> invoke(final ControlBundleInput input) { + calls.add(input); + return RpcResultBuilder.success(new ControlBundleOutputBuilder().build()).buildFuture(); + } +} diff --git a/applications/forwardingrules-manager/src/test/java/org/opendaylight/openflowplugin/applications/frm/impl/CapturingRemoveFlow.java b/applications/forwardingrules-manager/src/test/java/org/opendaylight/openflowplugin/applications/frm/impl/CapturingRemoveFlow.java new file mode 100644 index 000000000..86ddf59af --- /dev/null +++ b/applications/forwardingrules-manager/src/test/java/org/opendaylight/openflowplugin/applications/frm/impl/CapturingRemoveFlow.java @@ -0,0 +1,28 @@ +/* + * Copyright (c) 2024 PANTHEON.tech, s.r.o. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ +package org.opendaylight.openflowplugin.applications.frm.impl; + +import com.google.common.util.concurrent.ListenableFuture; +import java.util.ArrayList; +import java.util.List; +import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.service.rev130819.RemoveFlow; +import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.service.rev130819.RemoveFlowInput; +import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.service.rev130819.RemoveFlowOutput; +import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.service.rev130819.RemoveFlowOutputBuilder; +import org.opendaylight.yangtools.yang.common.RpcResult; +import org.opendaylight.yangtools.yang.common.RpcResultBuilder; + +final class CapturingRemoveFlow implements RemoveFlow { + final List calls = new ArrayList<>(); + + @Override + public ListenableFuture> invoke(final RemoveFlowInput input) { + calls.add(input); + return RpcResultBuilder.success(new RemoveFlowOutputBuilder().build()).buildFuture(); + } +} diff --git a/applications/forwardingrules-manager/src/test/java/org/opendaylight/openflowplugin/applications/frm/impl/CapturingRemoveGroup.java b/applications/forwardingrules-manager/src/test/java/org/opendaylight/openflowplugin/applications/frm/impl/CapturingRemoveGroup.java new file mode 100644 index 000000000..65149afff --- /dev/null +++ b/applications/forwardingrules-manager/src/test/java/org/opendaylight/openflowplugin/applications/frm/impl/CapturingRemoveGroup.java @@ -0,0 +1,28 @@ +/* + * Copyright (c) 2024 PANTHEON.tech, s.r.o. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ +package org.opendaylight.openflowplugin.applications.frm.impl; + +import com.google.common.util.concurrent.ListenableFuture; +import java.util.ArrayList; +import java.util.List; +import org.opendaylight.yang.gen.v1.urn.opendaylight.group.service.rev130918.RemoveGroup; +import org.opendaylight.yang.gen.v1.urn.opendaylight.group.service.rev130918.RemoveGroupInput; +import org.opendaylight.yang.gen.v1.urn.opendaylight.group.service.rev130918.RemoveGroupOutput; +import org.opendaylight.yang.gen.v1.urn.opendaylight.group.service.rev130918.RemoveGroupOutputBuilder; +import org.opendaylight.yangtools.yang.common.RpcResult; +import org.opendaylight.yangtools.yang.common.RpcResultBuilder; + +final class CapturingRemoveGroup implements RemoveGroup { + final List calls = new ArrayList<>(); + + @Override + public ListenableFuture> invoke(final RemoveGroupInput input) { + calls.add(input); + return RpcResultBuilder.success(new RemoveGroupOutputBuilder().build()).buildFuture(); + } +} diff --git a/applications/forwardingrules-manager/src/test/java/org/opendaylight/openflowplugin/applications/frm/impl/CapturingRemoveMeter.java b/applications/forwardingrules-manager/src/test/java/org/opendaylight/openflowplugin/applications/frm/impl/CapturingRemoveMeter.java new file mode 100644 index 000000000..9ef5f7235 --- /dev/null +++ b/applications/forwardingrules-manager/src/test/java/org/opendaylight/openflowplugin/applications/frm/impl/CapturingRemoveMeter.java @@ -0,0 +1,28 @@ +/* + * Copyright (c) 2024 PANTHEON.tech, s.r.o. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ +package org.opendaylight.openflowplugin.applications.frm.impl; + +import com.google.common.util.concurrent.ListenableFuture; +import java.util.ArrayList; +import java.util.List; +import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.service.rev130918.RemoveMeter; +import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.service.rev130918.RemoveMeterInput; +import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.service.rev130918.RemoveMeterOutput; +import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.service.rev130918.RemoveMeterOutputBuilder; +import org.opendaylight.yangtools.yang.common.RpcResult; +import org.opendaylight.yangtools.yang.common.RpcResultBuilder; + +final class CapturingRemoveMeter implements RemoveMeter { + final List calls = new ArrayList<>(); + + @Override + public ListenableFuture> invoke(final RemoveMeterInput input) { + calls.add(input); + return RpcResultBuilder.success(new RemoveMeterOutputBuilder().build()).buildFuture(); + } +} diff --git a/applications/forwardingrules-manager/src/test/java/org/opendaylight/openflowplugin/applications/frm/impl/CapturingUpdateFlow.java b/applications/forwardingrules-manager/src/test/java/org/opendaylight/openflowplugin/applications/frm/impl/CapturingUpdateFlow.java new file mode 100644 index 000000000..97c4e5475 --- /dev/null +++ b/applications/forwardingrules-manager/src/test/java/org/opendaylight/openflowplugin/applications/frm/impl/CapturingUpdateFlow.java @@ -0,0 +1,28 @@ +/* + * Copyright (c) 2024 PANTHEON.tech, s.r.o. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ +package org.opendaylight.openflowplugin.applications.frm.impl; + +import com.google.common.util.concurrent.ListenableFuture; +import java.util.ArrayList; +import java.util.List; +import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.service.rev130819.UpdateFlow; +import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.service.rev130819.UpdateFlowInput; +import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.service.rev130819.UpdateFlowOutput; +import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.service.rev130819.UpdateFlowOutputBuilder; +import org.opendaylight.yangtools.yang.common.RpcResult; +import org.opendaylight.yangtools.yang.common.RpcResultBuilder; + +final class CapturingUpdateFlow implements UpdateFlow { + final List calls = new ArrayList<>(); + + @Override + public ListenableFuture> invoke(final UpdateFlowInput input) { + calls.add(input); + return RpcResultBuilder.success(new UpdateFlowOutputBuilder().build()).buildFuture(); + } +} diff --git a/applications/forwardingrules-manager/src/test/java/org/opendaylight/openflowplugin/applications/frm/impl/CapturingUpdateGroup.java b/applications/forwardingrules-manager/src/test/java/org/opendaylight/openflowplugin/applications/frm/impl/CapturingUpdateGroup.java new file mode 100644 index 000000000..5109187c4 --- /dev/null +++ b/applications/forwardingrules-manager/src/test/java/org/opendaylight/openflowplugin/applications/frm/impl/CapturingUpdateGroup.java @@ -0,0 +1,28 @@ +/* + * Copyright (c) 2024 PANTHEON.tech, s.r.o. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ +package org.opendaylight.openflowplugin.applications.frm.impl; + +import com.google.common.util.concurrent.ListenableFuture; +import java.util.ArrayList; +import java.util.List; +import org.opendaylight.yang.gen.v1.urn.opendaylight.group.service.rev130918.UpdateGroup; +import org.opendaylight.yang.gen.v1.urn.opendaylight.group.service.rev130918.UpdateGroupInput; +import org.opendaylight.yang.gen.v1.urn.opendaylight.group.service.rev130918.UpdateGroupOutput; +import org.opendaylight.yang.gen.v1.urn.opendaylight.group.service.rev130918.UpdateGroupOutputBuilder; +import org.opendaylight.yangtools.yang.common.RpcResult; +import org.opendaylight.yangtools.yang.common.RpcResultBuilder; + +final class CapturingUpdateGroup implements UpdateGroup { + final List calls = new ArrayList<>(); + + @Override + public ListenableFuture> invoke(final UpdateGroupInput input) { + calls.add(input); + return RpcResultBuilder.success(new UpdateGroupOutputBuilder().build()).buildFuture(); + } +} diff --git a/applications/forwardingrules-manager/src/test/java/org/opendaylight/openflowplugin/applications/frm/impl/CapturingUpdateMeter.java b/applications/forwardingrules-manager/src/test/java/org/opendaylight/openflowplugin/applications/frm/impl/CapturingUpdateMeter.java new file mode 100644 index 000000000..7da7166e6 --- /dev/null +++ b/applications/forwardingrules-manager/src/test/java/org/opendaylight/openflowplugin/applications/frm/impl/CapturingUpdateMeter.java @@ -0,0 +1,28 @@ +/* + * Copyright (c) 2024 PANTHEON.tech, s.r.o. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ +package org.opendaylight.openflowplugin.applications.frm.impl; + +import com.google.common.util.concurrent.ListenableFuture; +import java.util.ArrayList; +import java.util.List; +import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.service.rev130918.UpdateMeter; +import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.service.rev130918.UpdateMeterInput; +import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.service.rev130918.UpdateMeterOutput; +import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.service.rev130918.UpdateMeterOutputBuilder; +import org.opendaylight.yangtools.yang.common.RpcResult; +import org.opendaylight.yangtools.yang.common.RpcResultBuilder; + +final class CapturingUpdateMeter implements UpdateMeter { + final List calls = new ArrayList<>(); + + @Override + public ListenableFuture> invoke(final UpdateMeterInput input) { + calls.add(input); + return RpcResultBuilder.success(new UpdateMeterOutputBuilder().build()).buildFuture(); + } +} diff --git a/applications/forwardingrules-manager/src/test/java/org/opendaylight/openflowplugin/applications/frm/impl/SalTableServiceMock.java b/applications/forwardingrules-manager/src/test/java/org/opendaylight/openflowplugin/applications/frm/impl/CapturingUpdateTable.java similarity index 72% rename from applications/forwardingrules-manager/src/test/java/org/opendaylight/openflowplugin/applications/frm/impl/SalTableServiceMock.java rename to applications/forwardingrules-manager/src/test/java/org/opendaylight/openflowplugin/applications/frm/impl/CapturingUpdateTable.java index 585469ebe..5a4315677 100644 --- a/applications/forwardingrules-manager/src/test/java/org/opendaylight/openflowplugin/applications/frm/impl/SalTableServiceMock.java +++ b/applications/forwardingrules-manager/src/test/java/org/opendaylight/openflowplugin/applications/frm/impl/CapturingUpdateTable.java @@ -10,23 +10,19 @@ package org.opendaylight.openflowplugin.applications.frm.impl; import com.google.common.util.concurrent.ListenableFuture; import java.util.ArrayList; import java.util.List; -import org.opendaylight.yang.gen.v1.urn.opendaylight.table.service.rev131026.SalTableService; +import org.opendaylight.yang.gen.v1.urn.opendaylight.table.service.rev131026.UpdateTable; import org.opendaylight.yang.gen.v1.urn.opendaylight.table.service.rev131026.UpdateTableInput; import org.opendaylight.yang.gen.v1.urn.opendaylight.table.service.rev131026.UpdateTableOutput; import org.opendaylight.yang.gen.v1.urn.opendaylight.table.service.rev131026.UpdateTableOutputBuilder; import org.opendaylight.yangtools.yang.common.RpcResult; import org.opendaylight.yangtools.yang.common.RpcResultBuilder; -public class SalTableServiceMock implements SalTableService { - private final List updateTableInput = new ArrayList<>(); - - public List getUpdateTableInput() { - return updateTableInput; - } +final class CapturingUpdateTable implements UpdateTable { + final List calls = new ArrayList<>(); @Override - public ListenableFuture> updateTable(UpdateTableInput input) { - updateTableInput.add(input); + public ListenableFuture> invoke(final UpdateTableInput input) { + calls.add(input); return RpcResultBuilder.success(new UpdateTableOutputBuilder().build()).buildFuture(); } } diff --git a/applications/forwardingrules-manager/src/test/java/org/opendaylight/openflowplugin/applications/frm/impl/FlowListenerTest.java b/applications/forwardingrules-manager/src/test/java/org/opendaylight/openflowplugin/applications/frm/impl/FlowListenerTest.java index 9eccb2517..51874cf04 100644 --- a/applications/forwardingrules-manager/src/test/java/org/opendaylight/openflowplugin/applications/frm/impl/FlowListenerTest.java +++ b/applications/forwardingrules-manager/src/test/java/org/opendaylight/openflowplugin/applications/frm/impl/FlowListenerTest.java @@ -11,7 +11,6 @@ import static java.util.concurrent.TimeUnit.SECONDS; import static org.awaitility.Awaitility.await; import static org.junit.Assert.assertEquals; -import java.util.List; import org.junit.After; import org.junit.Before; import org.junit.Test; @@ -31,9 +30,6 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.ta import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tables.table.StaleFlow; import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tables.table.StaleFlowBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tables.table.StaleFlowKey; -import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.service.rev130819.AddFlowInput; -import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.service.rev130819.RemoveFlowInput; -import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.service.rev130819.UpdateFlowInput; import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.flow.Match; import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.flow.MatchBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeId; @@ -74,9 +70,8 @@ public class FlowListenerTest extends AbstractFRMTest { writeTx.put(LogicalDatastoreType.CONFIGURATION, tableII, table); writeTx.put(LogicalDatastoreType.CONFIGURATION, flowII, flow); assertCommit(writeTx.commit()); - SalFlowServiceMock salFlowService = (SalFlowServiceMock) getForwardingRulesManager().getSalFlowService(); - await().atMost(10, SECONDS).until(() -> salFlowService.getAddFlowCalls().size() == 1); - List addFlowCalls = salFlowService.getAddFlowCalls(); + await().atMost(10, SECONDS).until(() -> addFlow.calls.size() == 1); + var addFlowCalls = addFlow.calls; assertEquals(1, addFlowCalls.size()); assertEquals("DOM-0", addFlowCalls.get(0).getTransactionUri().getValue()); @@ -88,8 +83,8 @@ public class FlowListenerTest extends AbstractFRMTest { writeTx.put(LogicalDatastoreType.CONFIGURATION, flowII, flow); assertCommit(writeTx.commit()); - await().atMost(10, SECONDS).until(() -> salFlowService.getAddFlowCalls().size() == 2); - addFlowCalls = salFlowService.getAddFlowCalls(); + await().atMost(10, SECONDS).until(() -> addFlow.calls.size() == 2); + addFlowCalls = addFlow.calls; assertEquals(2, addFlowCalls.size()); assertEquals("DOM-1", addFlowCalls.get(1).getTransactionUri().getValue()); assertEquals(2, addFlowCalls.get(1).getTableId().intValue()); @@ -112,10 +107,9 @@ public class FlowListenerTest extends AbstractFRMTest { writeTx.put(LogicalDatastoreType.CONFIGURATION, tableII, table); writeTx.put(LogicalDatastoreType.CONFIGURATION, flowII, flow); assertCommit(writeTx.commit()); - final SalFlowServiceMock salFlowService = (SalFlowServiceMock) getForwardingRulesManager().getSalFlowService(); - await().atMost(10, SECONDS).until(() -> salFlowService.getAddFlowCalls().size() == 1); + await().atMost(10, SECONDS).until(() -> addFlow.calls.size() == 1); - List addFlowCalls = salFlowService.getAddFlowCalls(); + final var addFlowCalls = addFlow.calls; assertEquals(1, addFlowCalls.size()); assertEquals("DOM-0", addFlowCalls.get(0).getTransactionUri().getValue()); @@ -126,8 +120,8 @@ public class FlowListenerTest extends AbstractFRMTest { writeTx = getDataBroker().newWriteOnlyTransaction(); writeTx.put(LogicalDatastoreType.CONFIGURATION, flowII, flow); assertCommit(writeTx.commit()); - await().atMost(10, SECONDS).until(() -> salFlowService.getUpdateFlowCalls().size() == 1); - List updateFlowCalls = salFlowService.getUpdateFlowCalls(); + await().atMost(10, SECONDS).until(() -> updateFlow.calls.size() == 1); + final var updateFlowCalls = updateFlow.calls; assertEquals(1, updateFlowCalls.size()); assertEquals("DOM-1", updateFlowCalls.get(0).getTransactionUri().getValue()); assertEquals(flowII, updateFlowCalls.get(0).getFlowRef().getValue()); @@ -153,9 +147,8 @@ public class FlowListenerTest extends AbstractFRMTest { writeTx.put(LogicalDatastoreType.CONFIGURATION, tableII, table); writeTx.put(LogicalDatastoreType.CONFIGURATION, flowII, flow); assertCommit(writeTx.commit()); - final SalFlowServiceMock salFlowService = (SalFlowServiceMock) getForwardingRulesManager().getSalFlowService(); - await().atMost(10, SECONDS).until(() -> salFlowService.getAddFlowCalls().size() == 1); - List addFlowCalls = salFlowService.getAddFlowCalls(); + await().atMost(10, SECONDS).until(() -> addFlow.calls.size() == 1); + final var addFlowCalls = addFlow.calls; assertEquals(1, addFlowCalls.size()); assertEquals("DOM-0", addFlowCalls.get(0).getTransactionUri().getValue()); @@ -168,8 +161,8 @@ public class FlowListenerTest extends AbstractFRMTest { writeTx = getDataBroker().newWriteOnlyTransaction(); writeTx.put(LogicalDatastoreType.CONFIGURATION, flowII, flow); assertCommit(writeTx.commit()); - await().atMost(10, SECONDS).until(() -> salFlowService.getUpdateFlowCalls().size() == 1); - List updateFlowCalls = salFlowService.getUpdateFlowCalls(); + await().atMost(10, SECONDS).until(() -> updateFlow.calls.size() == 1); + final var updateFlowCalls = updateFlow.calls; assertEquals(1, updateFlowCalls.size()); assertEquals("DOM-1", updateFlowCalls.get(0).getTransactionUri().getValue()); assertEquals(flowII, updateFlowCalls.get(0).getFlowRef().getValue()); @@ -192,18 +185,16 @@ public class FlowListenerTest extends AbstractFRMTest { writeTx.put(LogicalDatastoreType.CONFIGURATION, tableII, table); writeTx.put(LogicalDatastoreType.CONFIGURATION, flowII, flow); assertCommit(writeTx.commit()); - final SalFlowServiceMock salFlowService = - (SalFlowServiceMock) getForwardingRulesManager().getSalFlowService(); - await().atMost(10, SECONDS).until(() -> salFlowService.getAddFlowCalls().size() == 1); - List addFlowCalls = salFlowService.getAddFlowCalls(); + await().atMost(10, SECONDS).until(() -> addFlow.calls.size() == 1); + final var addFlowCalls = addFlow.calls; assertEquals(1, addFlowCalls.size()); assertEquals("DOM-0", addFlowCalls.get(0).getTransactionUri().getValue()); writeTx = getDataBroker().newWriteOnlyTransaction(); writeTx.delete(LogicalDatastoreType.CONFIGURATION, flowII); assertCommit(writeTx.commit()); - await().atMost(10, SECONDS).until(() -> salFlowService.getRemoveFlowCalls().size() == 1); - List removeFlowCalls = salFlowService.getRemoveFlowCalls(); + await().atMost(10, SECONDS).until(() -> removeFlow.calls.size() == 1); + final var removeFlowCalls = removeFlow.calls; assertEquals(1, removeFlowCalls.size()); assertEquals("DOM-1", removeFlowCalls.get(0).getTransactionUri().getValue()); assertEquals(flowII, removeFlowCalls.get(0).getFlowRef().getValue()); diff --git a/applications/forwardingrules-manager/src/test/java/org/opendaylight/openflowplugin/applications/frm/impl/GroupListenerTest.java b/applications/forwardingrules-manager/src/test/java/org/opendaylight/openflowplugin/applications/frm/impl/GroupListenerTest.java index 13a473d79..fd32ac849 100644 --- a/applications/forwardingrules-manager/src/test/java/org/opendaylight/openflowplugin/applications/frm/impl/GroupListenerTest.java +++ b/applications/forwardingrules-manager/src/test/java/org/opendaylight/openflowplugin/applications/frm/impl/GroupListenerTest.java @@ -11,7 +11,6 @@ import static java.util.concurrent.TimeUnit.SECONDS; import static org.awaitility.Awaitility.await; import static org.junit.Assert.assertEquals; -import java.util.List; import org.junit.After; import org.junit.Before; import org.junit.Test; @@ -20,9 +19,6 @@ import org.mockito.junit.MockitoJUnitRunner; import org.opendaylight.mdsal.binding.api.WriteTransaction; import org.opendaylight.mdsal.common.api.LogicalDatastoreType; import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowCapableNode; -import org.opendaylight.yang.gen.v1.urn.opendaylight.group.service.rev130918.AddGroupInput; -import org.opendaylight.yang.gen.v1.urn.opendaylight.group.service.rev130918.RemoveGroupInput; -import org.opendaylight.yang.gen.v1.urn.opendaylight.group.service.rev130918.UpdateGroupInput; import org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.GroupId; import org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.groups.Group; import org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.groups.GroupBuilder; @@ -60,10 +56,9 @@ public class GroupListenerTest extends AbstractFRMTest { WriteTransaction writeTx = getDataBroker().newWriteOnlyTransaction(); writeTx.put(LogicalDatastoreType.CONFIGURATION, groupII, group); assertCommit(writeTx.commit()); - final SalGroupServiceMock salGroupService = - (SalGroupServiceMock) getForwardingRulesManager().getSalGroupService(); - await().atMost(10, SECONDS).until(() -> salGroupService.getAddGroupCalls().size() == 1); - List addGroupCalls = salGroupService.getAddGroupCalls(); + + await().atMost(10, SECONDS).until(() -> addGroup.calls.size() == 1); + var addGroupCalls = addGroup.calls; assertEquals(1, addGroupCalls.size()); assertEquals("DOM-0", addGroupCalls.get(0).getTransactionUri().getValue()); @@ -74,8 +69,8 @@ public class GroupListenerTest extends AbstractFRMTest { writeTx = getDataBroker().newWriteOnlyTransaction(); writeTx.put(LogicalDatastoreType.CONFIGURATION, groupII, group); assertCommit(writeTx.commit()); - await().atMost(10, SECONDS).until(() -> salGroupService.getAddGroupCalls().size() == 2); - addGroupCalls = salGroupService.getAddGroupCalls(); + await().atMost(10, SECONDS).until(() -> addGroup.calls.size() == 2); + addGroupCalls = addGroup.calls; assertEquals(2, addGroupCalls.size()); assertEquals("DOM-1", addGroupCalls.get(1).getTransactionUri().getValue()); } @@ -92,10 +87,9 @@ public class GroupListenerTest extends AbstractFRMTest { WriteTransaction writeTx = getDataBroker().newWriteOnlyTransaction(); writeTx.put(LogicalDatastoreType.CONFIGURATION, groupII, group); assertCommit(writeTx.commit()); - final SalGroupServiceMock salGroupService = - (SalGroupServiceMock) getForwardingRulesManager().getSalGroupService(); - await().atMost(10, SECONDS).until(() -> salGroupService.getAddGroupCalls().size() == 1); - List addGroupCalls = salGroupService.getAddGroupCalls(); + + await().atMost(10, SECONDS).until(() -> addGroup.calls.size() == 1); + final var addGroupCalls = addGroup.calls; assertEquals(1, addGroupCalls.size()); assertEquals("DOM-0", addGroupCalls.get(0).getTransactionUri().getValue()); @@ -103,8 +97,9 @@ public class GroupListenerTest extends AbstractFRMTest { writeTx = getDataBroker().newWriteOnlyTransaction(); writeTx.put(LogicalDatastoreType.CONFIGURATION, groupII, group); assertCommit(writeTx.commit()); - await().atMost(10, SECONDS).until(() -> salGroupService.getUpdateGroupCalls().size() == 1); - List updateGroupCalls = salGroupService.getUpdateGroupCalls(); + + await().atMost(10, SECONDS).until(() -> updateGroup.calls.size() == 1); + final var updateGroupCalls = updateGroup.calls; assertEquals(1, updateGroupCalls.size()); assertEquals("DOM-1", updateGroupCalls.get(0).getTransactionUri().getValue()); } @@ -121,17 +116,18 @@ public class GroupListenerTest extends AbstractFRMTest { WriteTransaction writeTx = getDataBroker().newWriteOnlyTransaction(); writeTx.put(LogicalDatastoreType.CONFIGURATION, groupII, group); assertCommit(writeTx.commit()); - SalGroupServiceMock salGroupService = (SalGroupServiceMock) getForwardingRulesManager().getSalGroupService(); - await().atMost(10, SECONDS).until(() -> salGroupService.getAddGroupCalls().size() == 1); - List addGroupCalls = salGroupService.getAddGroupCalls(); + + await().atMost(10, SECONDS).until(() -> addGroup.calls.size() == 1); + final var addGroupCalls = addGroup.calls; assertEquals(1, addGroupCalls.size()); assertEquals("DOM-0", addGroupCalls.get(0).getTransactionUri().getValue()); writeTx = getDataBroker().newWriteOnlyTransaction(); writeTx.delete(LogicalDatastoreType.CONFIGURATION, groupII); assertCommit(writeTx.commit()); - await().atMost(10, SECONDS).until(() -> salGroupService.getRemoveGroupCalls().size() == 1); - List removeGroupCalls = salGroupService.getRemoveGroupCalls(); + + await().atMost(10, SECONDS).until(() -> removeGroup.calls.size() == 1); + final var removeGroupCalls = removeGroup.calls; assertEquals(1, removeGroupCalls.size()); assertEquals("DOM-1", removeGroupCalls.get(0).getTransactionUri().getValue()); } diff --git a/applications/forwardingrules-manager/src/test/java/org/opendaylight/openflowplugin/applications/frm/impl/MeterListenerTest.java b/applications/forwardingrules-manager/src/test/java/org/opendaylight/openflowplugin/applications/frm/impl/MeterListenerTest.java index 9876250bb..bb4815f9c 100644 --- a/applications/forwardingrules-manager/src/test/java/org/opendaylight/openflowplugin/applications/frm/impl/MeterListenerTest.java +++ b/applications/forwardingrules-manager/src/test/java/org/opendaylight/openflowplugin/applications/frm/impl/MeterListenerTest.java @@ -31,8 +31,6 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.Nodes; import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.Node; import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.NodeKey; import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.service.rev130918.AddMeterInput; -import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.service.rev130918.RemoveMeterInput; -import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.service.rev130918.UpdateMeterInput; import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.types.rev130918.MeterId; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.opendaylight.yangtools.yang.common.Uint32; @@ -60,9 +58,8 @@ public class MeterListenerTest extends AbstractFRMTest { WriteTransaction writeTx = getDataBroker().newWriteOnlyTransaction(); writeTx.put(LogicalDatastoreType.CONFIGURATION, meterII, meter); assertCommit(writeTx.commit()); - SalMeterServiceMock salMeterService = (SalMeterServiceMock) getForwardingRulesManager().getSalMeterService(); - await().atMost(10, SECONDS).until(() -> salMeterService.getAddMeterCalls().size() == 1); - List addMeterCalls = salMeterService.getAddMeterCalls(); + await().atMost(10, SECONDS).until(() -> addMeter.calls.size() == 1); + List addMeterCalls = addMeter.calls; assertEquals(1, addMeterCalls.size()); assertEquals("DOM-0", addMeterCalls.get(0).getTransactionUri().getValue()); @@ -73,8 +70,8 @@ public class MeterListenerTest extends AbstractFRMTest { writeTx = getDataBroker().newWriteOnlyTransaction(); writeTx.put(LogicalDatastoreType.CONFIGURATION, meterII, meter); assertCommit(writeTx.commit()); - await().atMost(10, SECONDS).until(() -> salMeterService.getAddMeterCalls().size() == 2); - addMeterCalls = salMeterService.getAddMeterCalls(); + await().atMost(10, SECONDS).until(() -> addMeter.calls.size() == 2); + addMeterCalls = addMeter.calls; assertEquals(2, addMeterCalls.size()); assertEquals("DOM-1", addMeterCalls.get(1).getTransactionUri().getValue()); assertEquals(meterII, addMeterCalls.get(1).getMeterRef().getValue()); @@ -92,9 +89,8 @@ public class MeterListenerTest extends AbstractFRMTest { WriteTransaction writeTx = getDataBroker().newWriteOnlyTransaction(); writeTx.put(LogicalDatastoreType.CONFIGURATION, meterII, meter); assertCommit(writeTx.commit()); - SalMeterServiceMock salMeterService = (SalMeterServiceMock) getForwardingRulesManager().getSalMeterService(); - await().atMost(10, SECONDS).until(() -> salMeterService.getAddMeterCalls().size() == 1); - List addMeterCalls = salMeterService.getAddMeterCalls(); + await().atMost(10, SECONDS).until(() -> addMeter.calls.size() == 1); + final var addMeterCalls = addMeter.calls; assertEquals(1, addMeterCalls.size()); assertEquals("DOM-0", addMeterCalls.get(0).getTransactionUri().getValue()); @@ -102,8 +98,8 @@ public class MeterListenerTest extends AbstractFRMTest { writeTx = getDataBroker().newWriteOnlyTransaction(); writeTx.put(LogicalDatastoreType.CONFIGURATION, meterII, meter); assertCommit(writeTx.commit()); - await().atMost(10, SECONDS).until(() -> salMeterService.getUpdateMeterCalls().size() == 1); - List updateMeterCalls = salMeterService.getUpdateMeterCalls(); + await().atMost(10, SECONDS).until(() -> updateMeter.calls.size() == 1); + final var updateMeterCalls = updateMeter.calls; assertEquals(1, updateMeterCalls.size()); assertEquals("DOM-1", updateMeterCalls.get(0).getTransactionUri().getValue()); assertEquals(meterII, updateMeterCalls.get(0).getMeterRef().getValue()); @@ -121,17 +117,16 @@ public class MeterListenerTest extends AbstractFRMTest { WriteTransaction writeTx = getDataBroker().newWriteOnlyTransaction(); writeTx.put(LogicalDatastoreType.CONFIGURATION, meterII, meter); assertCommit(writeTx.commit()); - SalMeterServiceMock salMeterService = (SalMeterServiceMock) getForwardingRulesManager().getSalMeterService(); - await().atMost(10, SECONDS).until(() -> salMeterService.getAddMeterCalls().size() == 1); - List addMeterCalls = salMeterService.getAddMeterCalls(); + await().atMost(10, SECONDS).until(() -> addMeter.calls.size() == 1); + final var addMeterCalls = addMeter.calls; assertEquals(1, addMeterCalls.size()); assertEquals("DOM-0", addMeterCalls.get(0).getTransactionUri().getValue()); writeTx = getDataBroker().newWriteOnlyTransaction(); writeTx.delete(LogicalDatastoreType.CONFIGURATION, meterII); assertCommit(writeTx.commit()); - await().atMost(10, SECONDS).until(() -> salMeterService.getRemoveMeterCalls().size() == 1); - List removeMeterCalls = salMeterService.getRemoveMeterCalls(); + await().atMost(10, SECONDS).until(() -> removeMeter.calls.size() == 1); + final var removeMeterCalls = removeMeter.calls; assertEquals(1, removeMeterCalls.size()); assertEquals("DOM-1", removeMeterCalls.get(0).getTransactionUri().getValue()); assertEquals(meterII, removeMeterCalls.get(0).getMeterRef().getValue()); diff --git a/applications/forwardingrules-manager/src/test/java/org/opendaylight/openflowplugin/applications/frm/impl/SalBundleServiceMock.java b/applications/forwardingrules-manager/src/test/java/org/opendaylight/openflowplugin/applications/frm/impl/SalBundleServiceMock.java deleted file mode 100644 index a979d5eb0..000000000 --- a/applications/forwardingrules-manager/src/test/java/org/opendaylight/openflowplugin/applications/frm/impl/SalBundleServiceMock.java +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Copyright (c) 2017 Ericsson India Global Services Pvt Ltd. and others. All rights reserved. - * - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0 which accompanies this distribution, - * and is available at http://www.eclipse.org/legal/epl-v10.html - */ -package org.opendaylight.openflowplugin.applications.frm.impl; - -import com.google.common.util.concurrent.ListenableFuture; -import java.util.ArrayList; -import java.util.List; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.bundle.service.rev170124.AddBundleMessagesInput; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.bundle.service.rev170124.AddBundleMessagesOutput; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.bundle.service.rev170124.AddBundleMessagesOutputBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.bundle.service.rev170124.ControlBundleInput; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.bundle.service.rev170124.ControlBundleOutput; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.bundle.service.rev170124.ControlBundleOutputBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.bundle.service.rev170124.SalBundleService; -import org.opendaylight.yangtools.yang.common.RpcResult; -import org.opendaylight.yangtools.yang.common.RpcResultBuilder; - -public class SalBundleServiceMock implements SalBundleService { - - private final List controlBundleInput = new ArrayList<>(); - private final List addBundleMessagesInput = new ArrayList<>(); - - @Override - public ListenableFuture> controlBundle(ControlBundleInput input) { - getControlBundleInput().add(input); - return RpcResultBuilder.success(new ControlBundleOutputBuilder().build()).buildFuture(); - } - - @Override - public ListenableFuture> addBundleMessages(AddBundleMessagesInput input) { - getAddBundleMessagesInput().add(input); - return RpcResultBuilder.success(new AddBundleMessagesOutputBuilder().build()).buildFuture(); - } - - public List getControlBundleInput() { - return controlBundleInput; - } - - public List getAddBundleMessagesInput() { - return addBundleMessagesInput; - } -} diff --git a/applications/forwardingrules-manager/src/test/java/org/opendaylight/openflowplugin/applications/frm/impl/SalFlowServiceMock.java b/applications/forwardingrules-manager/src/test/java/org/opendaylight/openflowplugin/applications/frm/impl/SalFlowServiceMock.java deleted file mode 100644 index 5da2ba306..000000000 --- a/applications/forwardingrules-manager/src/test/java/org/opendaylight/openflowplugin/applications/frm/impl/SalFlowServiceMock.java +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Copyright (c) 2014, 2017 Cisco Systems, Inc. and others. All rights reserved. - * - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0 which accompanies this distribution, - * and is available at http://www.eclipse.org/legal/epl-v10.html - */ -package org.opendaylight.openflowplugin.applications.frm.impl; - -import com.google.common.util.concurrent.ListenableFuture; -import java.util.ArrayList; -import java.util.List; -import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.service.rev130819.AddFlowInput; -import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.service.rev130819.AddFlowOutput; -import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.service.rev130819.AddFlowOutputBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.service.rev130819.RemoveFlowInput; -import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.service.rev130819.RemoveFlowOutput; -import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.service.rev130819.RemoveFlowOutputBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.service.rev130819.SalFlowService; -import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.service.rev130819.UpdateFlowInput; -import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.service.rev130819.UpdateFlowOutput; -import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.service.rev130819.UpdateFlowOutputBuilder; -import org.opendaylight.yangtools.yang.common.RpcResult; -import org.opendaylight.yangtools.yang.common.RpcResultBuilder; - -public class SalFlowServiceMock implements SalFlowService { - private final List addFlowCalls = new ArrayList<>(); - private final List removeFlowCalls = new ArrayList<>(); - private final List updateFlowCalls = new ArrayList<>(); - - @Override - public ListenableFuture> addFlow(AddFlowInput input) { - addFlowCalls.add(input); - return RpcResultBuilder.success(new AddFlowOutputBuilder().build()).buildFuture(); - } - - @Override - public ListenableFuture> removeFlow(RemoveFlowInput input) { - removeFlowCalls.add(input); - return RpcResultBuilder.success(new RemoveFlowOutputBuilder().build()).buildFuture(); - } - - @Override - public ListenableFuture> updateFlow(UpdateFlowInput input) { - updateFlowCalls.add(input); - return RpcResultBuilder.success(new UpdateFlowOutputBuilder().build()).buildFuture(); - } - - public List getAddFlowCalls() { - return addFlowCalls; - } - - public List getRemoveFlowCalls() { - return removeFlowCalls; - } - - public List getUpdateFlowCalls() { - return updateFlowCalls; - } -} diff --git a/applications/forwardingrules-manager/src/test/java/org/opendaylight/openflowplugin/applications/frm/impl/SalGroupServiceMock.java b/applications/forwardingrules-manager/src/test/java/org/opendaylight/openflowplugin/applications/frm/impl/SalGroupServiceMock.java deleted file mode 100644 index bc12ead42..000000000 --- a/applications/forwardingrules-manager/src/test/java/org/opendaylight/openflowplugin/applications/frm/impl/SalGroupServiceMock.java +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Copyright (c) 2014, 2017 Cisco Systems, Inc. and others. All rights reserved. - * - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0 which accompanies this distribution, - * and is available at http://www.eclipse.org/legal/epl-v10.html - */ -package org.opendaylight.openflowplugin.applications.frm.impl; - -import com.google.common.util.concurrent.ListenableFuture; -import java.util.ArrayList; -import java.util.List; -import org.opendaylight.yang.gen.v1.urn.opendaylight.group.service.rev130918.AddGroupInput; -import org.opendaylight.yang.gen.v1.urn.opendaylight.group.service.rev130918.AddGroupOutput; -import org.opendaylight.yang.gen.v1.urn.opendaylight.group.service.rev130918.AddGroupOutputBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.group.service.rev130918.RemoveGroupInput; -import org.opendaylight.yang.gen.v1.urn.opendaylight.group.service.rev130918.RemoveGroupOutput; -import org.opendaylight.yang.gen.v1.urn.opendaylight.group.service.rev130918.RemoveGroupOutputBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.group.service.rev130918.SalGroupService; -import org.opendaylight.yang.gen.v1.urn.opendaylight.group.service.rev130918.UpdateGroupInput; -import org.opendaylight.yang.gen.v1.urn.opendaylight.group.service.rev130918.UpdateGroupOutput; -import org.opendaylight.yang.gen.v1.urn.opendaylight.group.service.rev130918.UpdateGroupOutputBuilder; -import org.opendaylight.yangtools.yang.common.RpcResult; -import org.opendaylight.yangtools.yang.common.RpcResultBuilder; - -public class SalGroupServiceMock implements SalGroupService { - private final List addGroupCalls = new ArrayList<>(); - private final List removeGroupCalls = new ArrayList<>(); - private final List updateGroupCalls = new ArrayList<>(); - - @Override - public ListenableFuture> addGroup(AddGroupInput input) { - addGroupCalls.add(input); - return RpcResultBuilder.success(new AddGroupOutputBuilder().build()).buildFuture(); - } - - @Override - public ListenableFuture> removeGroup(RemoveGroupInput input) { - removeGroupCalls.add(input); - return RpcResultBuilder.success(new RemoveGroupOutputBuilder().build()).buildFuture(); - } - - @Override - public ListenableFuture> updateGroup(UpdateGroupInput input) { - updateGroupCalls.add(input); - return RpcResultBuilder.success(new UpdateGroupOutputBuilder().build()).buildFuture(); - } - - public List getAddGroupCalls() { - return addGroupCalls; - } - - public List getRemoveGroupCalls() { - return removeGroupCalls; - } - - public List getUpdateGroupCalls() { - return updateGroupCalls; - } -} diff --git a/applications/forwardingrules-manager/src/test/java/org/opendaylight/openflowplugin/applications/frm/impl/SalMeterServiceMock.java b/applications/forwardingrules-manager/src/test/java/org/opendaylight/openflowplugin/applications/frm/impl/SalMeterServiceMock.java deleted file mode 100644 index 0c7af6131..000000000 --- a/applications/forwardingrules-manager/src/test/java/org/opendaylight/openflowplugin/applications/frm/impl/SalMeterServiceMock.java +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Copyright (c) 2014, 2017 Cisco Systems, Inc. and others. All rights reserved. - * - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0 which accompanies this distribution, - * and is available at http://www.eclipse.org/legal/epl-v10.html - */ -package org.opendaylight.openflowplugin.applications.frm.impl; - -import com.google.common.util.concurrent.ListenableFuture; -import java.util.ArrayList; -import java.util.List; -import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.service.rev130918.AddMeterInput; -import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.service.rev130918.AddMeterOutput; -import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.service.rev130918.AddMeterOutputBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.service.rev130918.RemoveMeterInput; -import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.service.rev130918.RemoveMeterOutput; -import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.service.rev130918.RemoveMeterOutputBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.service.rev130918.SalMeterService; -import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.service.rev130918.UpdateMeterInput; -import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.service.rev130918.UpdateMeterOutput; -import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.service.rev130918.UpdateMeterOutputBuilder; -import org.opendaylight.yangtools.yang.common.RpcResult; -import org.opendaylight.yangtools.yang.common.RpcResultBuilder; - -public class SalMeterServiceMock implements SalMeterService { - private final List addMeterCalls = new ArrayList<>(); - private final List removeMeterCalls = new ArrayList<>(); - private final List updateMeterCalls = new ArrayList<>(); - - @Override - public ListenableFuture> addMeter(AddMeterInput input) { - addMeterCalls.add(input); - return RpcResultBuilder.success(new AddMeterOutputBuilder().build()).buildFuture(); - } - - @Override - public ListenableFuture> removeMeter(RemoveMeterInput input) { - removeMeterCalls.add(input); - return RpcResultBuilder.success(new RemoveMeterOutputBuilder().build()).buildFuture(); - } - - @Override - public ListenableFuture> updateMeter(UpdateMeterInput input) { - updateMeterCalls.add(input); - return RpcResultBuilder.success(new UpdateMeterOutputBuilder().build()).buildFuture(); - } - - public List getAddMeterCalls() { - return addMeterCalls; - } - - public List getRemoveMeterCalls() { - return removeMeterCalls; - } - - public List getUpdateMeterCalls() { - return updateMeterCalls; - } -} diff --git a/applications/forwardingrules-manager/src/test/java/org/opendaylight/openflowplugin/applications/frm/impl/TableFeaturesListenerTest.java b/applications/forwardingrules-manager/src/test/java/org/opendaylight/openflowplugin/applications/frm/impl/TableFeaturesListenerTest.java index 2e768c5c0..ac0e5073f 100644 --- a/applications/forwardingrules-manager/src/test/java/org/opendaylight/openflowplugin/applications/frm/impl/TableFeaturesListenerTest.java +++ b/applications/forwardingrules-manager/src/test/java/org/opendaylight/openflowplugin/applications/frm/impl/TableFeaturesListenerTest.java @@ -11,7 +11,6 @@ import static java.util.concurrent.TimeUnit.SECONDS; import static org.awaitility.Awaitility.await; import static org.junit.Assert.assertEquals; -import java.util.List; import org.junit.After; import org.junit.Before; import org.junit.Test; @@ -27,7 +26,6 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeId; import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.Nodes; import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.Node; import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.NodeKey; -import org.opendaylight.yang.gen.v1.urn.opendaylight.table.service.rev131026.UpdateTableInput; import org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.features.TableFeatures; import org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.features.TableFeaturesBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.features.TableFeaturesKey; @@ -65,10 +63,8 @@ public class TableFeaturesListenerTest extends AbstractFRMTest { writeTx.put(LogicalDatastoreType.CONFIGURATION, tableFeaturesII, tableFeaturesData); assertCommit(writeTx.commit()); - SalTableServiceMock salTableServiceMock = - (SalTableServiceMock) getForwardingRulesManager().getSalTableService(); - await().atMost(10, SECONDS).until(() -> salTableServiceMock.getUpdateTableInput().size() == 1); - List updateTableInputs = salTableServiceMock.getUpdateTableInput(); + await().atMost(10, SECONDS).until(() -> updateTable.calls.size() == 1); + final var updateTableInputs = updateTable.calls; assertEquals(1, updateTableInputs.size()); assertEquals("DOM-0", updateTableInputs.get(0).getTransactionUri().getValue()); } -- 2.43.0 From e198450bc69ac63ed661824d97f63c0e55f30355 Mon Sep 17 00:00:00 2001 From: jenkins-releng Date: Fri, 9 Feb 2024 18:13:47 +0000 Subject: [PATCH 3/3] Release Validate --- applications/arbitratorreconciliation/api/pom.xml | 2 +- applications/arbitratorreconciliation/impl/pom.xml | 2 +- applications/arbitratorreconciliation/pom.xml | 2 +- applications/bulk-o-matic/pom.xml | 2 +- applications/device-ownership-service/pom.xml | 2 +- applications/forwardingrules-manager/pom.xml | 2 +- applications/forwardingrules-sync/pom.xml | 2 +- applications/lldp-speaker/pom.xml | 2 +- applications/of-switch-config-pusher/pom.xml | 2 +- applications/pom.xml | 2 +- applications/reconciliation-framework/pom.xml | 2 +- applications/southbound-cli/pom.xml | 2 +- applications/table-miss-enforcer/pom.xml | 2 +- applications/topology-lldp-discovery/pom.xml | 4 ++-- applications/topology-manager/pom.xml | 4 ++-- artifacts/pom.xml | 2 +- distribution/karaf/pom.xml | 4 ++-- drop-test-karaf/pom.xml | 2 +- .../features-openflowplugin-extension/pom.xml | 2 +- .../odl-openflowplugin-eric-extensions/pom.xml | 2 +- .../odl-openflowplugin-nxm-extensions/pom.xml | 2 +- .../odl-openflowplugin-onf-extensions/pom.xml | 2 +- extension/features-extension-aggregator/pom.xml | 2 +- extension/openflowjava-extension-eric/pom.xml | 2 +- extension/openflowjava-extension-nicira-api/pom.xml | 2 +- extension/openflowjava-extension-nicira/pom.xml | 2 +- extension/openflowplugin-extension-api/pom.xml | 2 +- extension/openflowplugin-extension-eric/pom.xml | 2 +- extension/openflowplugin-extension-nicira/pom.xml | 2 +- extension/openflowplugin-extension-onf/pom.xml | 2 +- extension/pom.xml | 2 +- extension/test-extension/pom.xml | 2 +- features-aggregator/features-openflowplugin/pom.xml | 2 +- .../odl-openflowplugin-app-arbitratorreconciliation/pom.xml | 2 +- .../odl-openflowplugin-app-bulk-o-matic/pom.xml | 2 +- .../odl-openflowplugin-app-config-pusher/pom.xml | 2 +- .../odl-openflowplugin-app-forwardingrules-manager/pom.xml | 2 +- .../odl-openflowplugin-app-forwardingrules-sync/pom.xml | 2 +- .../odl-openflowplugin-app-lldp-speaker/pom.xml | 2 +- .../odl-openflowplugin-app-reconciliation-framework/pom.xml | 2 +- .../odl-openflowplugin-app-southbound-cli/pom.xml | 2 +- .../odl-openflowplugin-app-table-miss-enforcer/pom.xml | 2 +- .../odl-openflowplugin-app-topology-lldp-discovery/pom.xml | 2 +- .../odl-openflowplugin-app-topology-manager/pom.xml | 2 +- features-aggregator/odl-openflowplugin-app-topology/pom.xml | 2 +- features-aggregator/odl-openflowplugin-drop-test/pom.xml | 2 +- .../odl-openflowplugin-flow-services-rest/pom.xml | 2 +- features-aggregator/odl-openflowplugin-flow-services/pom.xml | 2 +- features-aggregator/odl-openflowplugin-libraries/pom.xml | 2 +- features-aggregator/odl-openflowplugin-nsf-model/pom.xml | 2 +- features-aggregator/odl-openflowplugin-southbound/pom.xml | 4 ++-- features-aggregator/pom.xml | 2 +- libraries/liblldp/pom.xml | 2 +- libraries/pom.xml | 2 +- model/model-flow-base/pom.xml | 2 +- model/model-flow-service/pom.xml | 2 +- model/model-flow-statistics/pom.xml | 2 +- model/model-inventory/pom.xml | 2 +- model/model-topology/pom.xml | 2 +- model/pom.xml | 2 +- .../features-openflowjava/pom.xml | 2 +- .../odl-openflowjava-protocol/pom.xml | 2 +- openflowjava/features-openflowjava-aggregator/pom.xml | 2 +- openflowjava/openflow-protocol-api/pom.xml | 4 ++-- openflowjava/openflow-protocol-impl/pom.xml | 2 +- openflowjava/openflow-protocol-it/pom.xml | 2 +- openflowjava/openflow-protocol-spi/pom.xml | 2 +- openflowjava/openflowjava-blueprint-config/pom.xml | 2 +- openflowjava/openflowjava-util/pom.xml | 2 +- openflowjava/pom.xml | 2 +- openflowplugin-api/pom.xml | 2 +- openflowplugin-blueprint-config/pom.xml | 2 +- openflowplugin-common/pom.xml | 2 +- openflowplugin-impl/pom.xml | 2 +- openflowplugin-it/pom.xml | 2 +- openflowplugin/pom.xml | 2 +- parent/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/learning-switch/pom.xml | 2 +- samples/pom.xml | 2 +- samples/sample-bundles/pom.xml | 2 +- samples/sample-consumer/pom.xml | 2 +- samples/simple-client/pom.xml | 2 +- test-common/pom.xml | 2 +- test-provider/pom.xml | 2 +- 85 files changed, 92 insertions(+), 92 deletions(-) diff --git a/applications/arbitratorreconciliation/api/pom.xml b/applications/arbitratorreconciliation/api/pom.xml index 3fb439acb..ab18f4b4f 100644 --- a/applications/arbitratorreconciliation/api/pom.xml +++ b/applications/arbitratorreconciliation/api/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.openflowplugin openflowplugin-parent - 0.18.0-SNAPSHOT + 0.18.0 ../../../parent diff --git a/applications/arbitratorreconciliation/impl/pom.xml b/applications/arbitratorreconciliation/impl/pom.xml index ef3e845ff..f009c29af 100644 --- a/applications/arbitratorreconciliation/impl/pom.xml +++ b/applications/arbitratorreconciliation/impl/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.openflowplugin openflowplugin-parent - 0.18.0-SNAPSHOT + 0.18.0 ../../../parent diff --git a/applications/arbitratorreconciliation/pom.xml b/applications/arbitratorreconciliation/pom.xml index c6831ef2e..43b139e1c 100644 --- a/applications/arbitratorreconciliation/pom.xml +++ b/applications/arbitratorreconciliation/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.openflowplugin.applications arbitratorreconciliation-aggregator - 0.18.0-SNAPSHOT + 0.18.0 pom ODL :: openflowplugin :: ${project.artifactId} diff --git a/applications/bulk-o-matic/pom.xml b/applications/bulk-o-matic/pom.xml index 567abedfe..6d65f4e9b 100644 --- a/applications/bulk-o-matic/pom.xml +++ b/applications/bulk-o-matic/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.openflowplugin openflowplugin-parent - 0.18.0-SNAPSHOT + 0.18.0 ../../parent diff --git a/applications/device-ownership-service/pom.xml b/applications/device-ownership-service/pom.xml index 7028f713e..d81deecf8 100644 --- a/applications/device-ownership-service/pom.xml +++ b/applications/device-ownership-service/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.openflowplugin openflowplugin-parent - 0.18.0-SNAPSHOT + 0.18.0 ../../parent diff --git a/applications/forwardingrules-manager/pom.xml b/applications/forwardingrules-manager/pom.xml index dad42d742..4fa8f98c6 100644 --- a/applications/forwardingrules-manager/pom.xml +++ b/applications/forwardingrules-manager/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.openflowplugin openflowplugin-parent - 0.18.0-SNAPSHOT + 0.18.0 ../../parent diff --git a/applications/forwardingrules-sync/pom.xml b/applications/forwardingrules-sync/pom.xml index 5266aa91f..b6f372a11 100644 --- a/applications/forwardingrules-sync/pom.xml +++ b/applications/forwardingrules-sync/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.openflowplugin openflowplugin-parent - 0.18.0-SNAPSHOT + 0.18.0 ../../parent diff --git a/applications/lldp-speaker/pom.xml b/applications/lldp-speaker/pom.xml index 79fdb2466..a6a1f430a 100644 --- a/applications/lldp-speaker/pom.xml +++ b/applications/lldp-speaker/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.openflowplugin openflowplugin-parent - 0.18.0-SNAPSHOT + 0.18.0 ../../parent diff --git a/applications/of-switch-config-pusher/pom.xml b/applications/of-switch-config-pusher/pom.xml index 0f835e8c1..80992f88c 100644 --- a/applications/of-switch-config-pusher/pom.xml +++ b/applications/of-switch-config-pusher/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.openflowplugin openflowplugin-parent - 0.18.0-SNAPSHOT + 0.18.0 ../../parent diff --git a/applications/pom.xml b/applications/pom.xml index 1ea659bf9..618df6895 100644 --- a/applications/pom.xml +++ b/applications/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.openflowplugin applications-aggregator - 0.18.0-SNAPSHOT + 0.18.0 pom diff --git a/applications/reconciliation-framework/pom.xml b/applications/reconciliation-framework/pom.xml index fa8b81ba8..0c5544bb7 100644 --- a/applications/reconciliation-framework/pom.xml +++ b/applications/reconciliation-framework/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.openflowplugin openflowplugin-parent - 0.18.0-SNAPSHOT + 0.18.0 ../../parent diff --git a/applications/southbound-cli/pom.xml b/applications/southbound-cli/pom.xml index cfa72112c..93d85fb8e 100644 --- a/applications/southbound-cli/pom.xml +++ b/applications/southbound-cli/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.openflowplugin openflowplugin-parent - 0.18.0-SNAPSHOT + 0.18.0 ../../parent diff --git a/applications/table-miss-enforcer/pom.xml b/applications/table-miss-enforcer/pom.xml index d474cf54d..2514de737 100644 --- a/applications/table-miss-enforcer/pom.xml +++ b/applications/table-miss-enforcer/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.openflowplugin openflowplugin-parent - 0.18.0-SNAPSHOT + 0.18.0 ../../parent diff --git a/applications/topology-lldp-discovery/pom.xml b/applications/topology-lldp-discovery/pom.xml index ed96629bc..f96a9a0ca 100644 --- a/applications/topology-lldp-discovery/pom.xml +++ b/applications/topology-lldp-discovery/pom.xml @@ -4,12 +4,12 @@ org.opendaylight.openflowplugin openflowplugin-parent - 0.18.0-SNAPSHOT + 0.18.0 ../../parent org.opendaylight.openflowplugin.applications topology-lldp-discovery - 0.18.0-SNAPSHOT + 0.18.0 bundle diff --git a/applications/topology-manager/pom.xml b/applications/topology-manager/pom.xml index fc93660fd..8f2dd9908 100644 --- a/applications/topology-manager/pom.xml +++ b/applications/topology-manager/pom.xml @@ -4,12 +4,12 @@ org.opendaylight.openflowplugin openflowplugin-parent - 0.18.0-SNAPSHOT + 0.18.0 ../../parent org.opendaylight.openflowplugin.applications topology-manager - 0.18.0-SNAPSHOT + 0.18.0 bundle diff --git a/artifacts/pom.xml b/artifacts/pom.xml index 6c700f2b2..a91907e07 100644 --- a/artifacts/pom.xml +++ b/artifacts/pom.xml @@ -19,7 +19,7 @@ org.opendaylight.openflowplugin openflowplugin-artifacts - 0.18.0-SNAPSHOT + 0.18.0 pom diff --git a/distribution/karaf/pom.xml b/distribution/karaf/pom.xml index b34aef9ed..9ae3e7126 100644 --- a/distribution/karaf/pom.xml +++ b/distribution/karaf/pom.xml @@ -8,11 +8,11 @@ org.opendaylight.openflowplugin openflowplugin-karaf - 0.18.0-SNAPSHOT + 0.18.0 pom - 0.18.0-SNAPSHOT + 0.18.0 diff --git a/drop-test-karaf/pom.xml b/drop-test-karaf/pom.xml index b85c450ab..84c725d16 100644 --- a/drop-test-karaf/pom.xml +++ b/drop-test-karaf/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.openflowplugin openflowplugin-parent - 0.18.0-SNAPSHOT + 0.18.0 ../parent diff --git a/extension/features-extension-aggregator/features-openflowplugin-extension/pom.xml b/extension/features-extension-aggregator/features-openflowplugin-extension/pom.xml index 0e8da177f..97628ec39 100644 --- a/extension/features-extension-aggregator/features-openflowplugin-extension/pom.xml +++ b/extension/features-extension-aggregator/features-openflowplugin-extension/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.openflowplugin features-openflowplugin-extension feature - 0.18.0-SNAPSHOT + 0.18.0 diff --git a/extension/features-extension-aggregator/odl-openflowplugin-eric-extensions/pom.xml b/extension/features-extension-aggregator/odl-openflowplugin-eric-extensions/pom.xml index cf3f4177d..c5e04ce3c 100644 --- a/extension/features-extension-aggregator/odl-openflowplugin-eric-extensions/pom.xml +++ b/extension/features-extension-aggregator/odl-openflowplugin-eric-extensions/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.openflowplugin odl-openflowplugin-eric-extensions feature - 0.18.0-SNAPSHOT + 0.18.0 OpenDaylight :: Openflow Plugin :: Eric Extensions diff --git a/extension/features-extension-aggregator/odl-openflowplugin-nxm-extensions/pom.xml b/extension/features-extension-aggregator/odl-openflowplugin-nxm-extensions/pom.xml index f15ee468b..96682b972 100644 --- a/extension/features-extension-aggregator/odl-openflowplugin-nxm-extensions/pom.xml +++ b/extension/features-extension-aggregator/odl-openflowplugin-nxm-extensions/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.openflowplugin odl-openflowplugin-nxm-extensions feature - 0.18.0-SNAPSHOT + 0.18.0 OpenDaylight :: Openflow Plugin :: Nicira Extensions diff --git a/extension/features-extension-aggregator/odl-openflowplugin-onf-extensions/pom.xml b/extension/features-extension-aggregator/odl-openflowplugin-onf-extensions/pom.xml index ed4a34b06..f1e267843 100644 --- a/extension/features-extension-aggregator/odl-openflowplugin-onf-extensions/pom.xml +++ b/extension/features-extension-aggregator/odl-openflowplugin-onf-extensions/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.openflowplugin odl-openflowplugin-onf-extensions feature - 0.18.0-SNAPSHOT + 0.18.0 OpenDaylight :: Openflow Plugin :: ONF Extensions diff --git a/extension/features-extension-aggregator/pom.xml b/extension/features-extension-aggregator/pom.xml index d67ab68ed..1ef30f057 100644 --- a/extension/features-extension-aggregator/pom.xml +++ b/extension/features-extension-aggregator/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.openflowplugin features-extension-aggregator pom - 0.18.0-SNAPSHOT + 0.18.0 features-openflowplugin-extension diff --git a/extension/openflowjava-extension-eric/pom.xml b/extension/openflowjava-extension-eric/pom.xml index 7a939a03c..788aa531e 100644 --- a/extension/openflowjava-extension-eric/pom.xml +++ b/extension/openflowjava-extension-eric/pom.xml @@ -5,7 +5,7 @@ org.opendaylight.openflowplugin openflowplugin-parent - 0.18.0-SNAPSHOT + 0.18.0 ../../parent openflowjava-extension-eric diff --git a/extension/openflowjava-extension-nicira-api/pom.xml b/extension/openflowjava-extension-nicira-api/pom.xml index d22e9fc4e..89d276c55 100644 --- a/extension/openflowjava-extension-nicira-api/pom.xml +++ b/extension/openflowjava-extension-nicira-api/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.openflowplugin openflowplugin-parent - 0.18.0-SNAPSHOT + 0.18.0 ../../parent openflowjava-extension-nicira-api diff --git a/extension/openflowjava-extension-nicira/pom.xml b/extension/openflowjava-extension-nicira/pom.xml index 15fb4e7e8..fbf185676 100644 --- a/extension/openflowjava-extension-nicira/pom.xml +++ b/extension/openflowjava-extension-nicira/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.openflowplugin openflowplugin-parent - 0.18.0-SNAPSHOT + 0.18.0 ../../parent openflowjava-extension-nicira diff --git a/extension/openflowplugin-extension-api/pom.xml b/extension/openflowplugin-extension-api/pom.xml index 17beb1a18..cfb98c52d 100644 --- a/extension/openflowplugin-extension-api/pom.xml +++ b/extension/openflowplugin-extension-api/pom.xml @@ -5,7 +5,7 @@ org.opendaylight.openflowplugin openflowplugin-parent - 0.18.0-SNAPSHOT + 0.18.0 ../../parent diff --git a/extension/openflowplugin-extension-eric/pom.xml b/extension/openflowplugin-extension-eric/pom.xml index b745493f7..b8c6f1aac 100644 --- a/extension/openflowplugin-extension-eric/pom.xml +++ b/extension/openflowplugin-extension-eric/pom.xml @@ -5,7 +5,7 @@ org.opendaylight.openflowplugin openflowplugin-parent - 0.18.0-SNAPSHOT + 0.18.0 ../../parent diff --git a/extension/openflowplugin-extension-nicira/pom.xml b/extension/openflowplugin-extension-nicira/pom.xml index d151e8a7f..f178283a7 100644 --- a/extension/openflowplugin-extension-nicira/pom.xml +++ b/extension/openflowplugin-extension-nicira/pom.xml @@ -5,7 +5,7 @@ org.opendaylight.openflowplugin openflowplugin-parent - 0.18.0-SNAPSHOT + 0.18.0 ../../parent diff --git a/extension/openflowplugin-extension-onf/pom.xml b/extension/openflowplugin-extension-onf/pom.xml index ae6914313..ee2351400 100644 --- a/extension/openflowplugin-extension-onf/pom.xml +++ b/extension/openflowplugin-extension-onf/pom.xml @@ -10,7 +10,7 @@ org.opendaylight.openflowplugin openflowplugin-parent - 0.18.0-SNAPSHOT + 0.18.0 ../../parent diff --git a/extension/pom.xml b/extension/pom.xml index c51cb2069..c87beec90 100644 --- a/extension/pom.xml +++ b/extension/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.openflowplugin openflowplugin-extension-aggregator - 0.18.0-SNAPSHOT + 0.18.0 pom diff --git a/extension/test-extension/pom.xml b/extension/test-extension/pom.xml index 6fbaa66b8..d3bf0617e 100644 --- a/extension/test-extension/pom.xml +++ b/extension/test-extension/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.openflowplugin openflowplugin-parent - 0.18.0-SNAPSHOT + 0.18.0 ../../parent diff --git a/features-aggregator/features-openflowplugin/pom.xml b/features-aggregator/features-openflowplugin/pom.xml index 9e485fa35..3fca1ae43 100644 --- a/features-aggregator/features-openflowplugin/pom.xml +++ b/features-aggregator/features-openflowplugin/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.openflowplugin features-openflowplugin feature - 0.18.0-SNAPSHOT + 0.18.0 diff --git a/features-aggregator/odl-openflowplugin-app-arbitratorreconciliation/pom.xml b/features-aggregator/odl-openflowplugin-app-arbitratorreconciliation/pom.xml index 2e013a559..5b53ea810 100644 --- a/features-aggregator/odl-openflowplugin-app-arbitratorreconciliation/pom.xml +++ b/features-aggregator/odl-openflowplugin-app-arbitratorreconciliation/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.openflowplugin odl-openflowplugin-app-arbitratorreconciliation feature - 0.18.0-SNAPSHOT + 0.18.0 OpenDaylight :: Openflow Plugin :: Application - Arbitrator Reconciliation diff --git a/features-aggregator/odl-openflowplugin-app-bulk-o-matic/pom.xml b/features-aggregator/odl-openflowplugin-app-bulk-o-matic/pom.xml index daee65e42..eb49299c6 100644 --- a/features-aggregator/odl-openflowplugin-app-bulk-o-matic/pom.xml +++ b/features-aggregator/odl-openflowplugin-app-bulk-o-matic/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.openflowplugin odl-openflowplugin-app-bulk-o-matic feature - 0.18.0-SNAPSHOT + 0.18.0 OpenDaylight :: Openflow Plugin :: Application - bulk flow operations support diff --git a/features-aggregator/odl-openflowplugin-app-config-pusher/pom.xml b/features-aggregator/odl-openflowplugin-app-config-pusher/pom.xml index 869c1e1fc..558b5cf29 100644 --- a/features-aggregator/odl-openflowplugin-app-config-pusher/pom.xml +++ b/features-aggregator/odl-openflowplugin-app-config-pusher/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.openflowplugin odl-openflowplugin-app-config-pusher feature - 0.18.0-SNAPSHOT + 0.18.0 OpenDaylight :: Openflow Plugin :: Application - default config-pusher diff --git a/features-aggregator/odl-openflowplugin-app-forwardingrules-manager/pom.xml b/features-aggregator/odl-openflowplugin-app-forwardingrules-manager/pom.xml index a38d8ce01..a6d51267c 100644 --- a/features-aggregator/odl-openflowplugin-app-forwardingrules-manager/pom.xml +++ b/features-aggregator/odl-openflowplugin-app-forwardingrules-manager/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.openflowplugin odl-openflowplugin-app-forwardingrules-manager feature - 0.18.0-SNAPSHOT + 0.18.0 OpenDaylight :: Openflow Plugin :: Application - FRM diff --git a/features-aggregator/odl-openflowplugin-app-forwardingrules-sync/pom.xml b/features-aggregator/odl-openflowplugin-app-forwardingrules-sync/pom.xml index 4b3f8a3de..dc92a7c80 100644 --- a/features-aggregator/odl-openflowplugin-app-forwardingrules-sync/pom.xml +++ b/features-aggregator/odl-openflowplugin-app-forwardingrules-sync/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.openflowplugin odl-openflowplugin-app-forwardingrules-sync feature - 0.18.0-SNAPSHOT + 0.18.0 OpenDaylight :: Openflow Plugin :: Application - FRS diff --git a/features-aggregator/odl-openflowplugin-app-lldp-speaker/pom.xml b/features-aggregator/odl-openflowplugin-app-lldp-speaker/pom.xml index 7dc5869da..a60ef02d5 100644 --- a/features-aggregator/odl-openflowplugin-app-lldp-speaker/pom.xml +++ b/features-aggregator/odl-openflowplugin-app-lldp-speaker/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.openflowplugin odl-openflowplugin-app-lldp-speaker feature - 0.18.0-SNAPSHOT + 0.18.0 OpenDaylight :: Openflow Plugin :: Application - LLDP Speaker diff --git a/features-aggregator/odl-openflowplugin-app-reconciliation-framework/pom.xml b/features-aggregator/odl-openflowplugin-app-reconciliation-framework/pom.xml index be2d50550..2640b4bbd 100644 --- a/features-aggregator/odl-openflowplugin-app-reconciliation-framework/pom.xml +++ b/features-aggregator/odl-openflowplugin-app-reconciliation-framework/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.openflowplugin odl-openflowplugin-app-reconciliation-framework feature -0.18.0-SNAPSHOT +0.18.0 OpenDaylight :: Openflow Plugin :: Application - Reconciliation Framework diff --git a/features-aggregator/odl-openflowplugin-app-southbound-cli/pom.xml b/features-aggregator/odl-openflowplugin-app-southbound-cli/pom.xml index 9af595832..e2a87660a 100644 --- a/features-aggregator/odl-openflowplugin-app-southbound-cli/pom.xml +++ b/features-aggregator/odl-openflowplugin-app-southbound-cli/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.openflowplugin odl-openflowplugin-app-southbound-cli feature - 0.18.0-SNAPSHOT + 0.18.0 OpenDaylight :: Openflow Plugin :: Application - Southbound CLI diff --git a/features-aggregator/odl-openflowplugin-app-table-miss-enforcer/pom.xml b/features-aggregator/odl-openflowplugin-app-table-miss-enforcer/pom.xml index c6f7e36c9..507c1ad7c 100644 --- a/features-aggregator/odl-openflowplugin-app-table-miss-enforcer/pom.xml +++ b/features-aggregator/odl-openflowplugin-app-table-miss-enforcer/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.openflowplugin odl-openflowplugin-app-table-miss-enforcer feature - 0.18.0-SNAPSHOT + 0.18.0 OpenDaylight :: Openflow Plugin :: Application - table-miss-enforcer diff --git a/features-aggregator/odl-openflowplugin-app-topology-lldp-discovery/pom.xml b/features-aggregator/odl-openflowplugin-app-topology-lldp-discovery/pom.xml index 59c0cfbe9..a6470a2c9 100644 --- a/features-aggregator/odl-openflowplugin-app-topology-lldp-discovery/pom.xml +++ b/features-aggregator/odl-openflowplugin-app-topology-lldp-discovery/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.openflowplugin odl-openflowplugin-app-topology-lldp-discovery feature - 0.18.0-SNAPSHOT + 0.18.0 OpenDaylight :: Openflow Plugin :: Application - Topology LLDP Discovery diff --git a/features-aggregator/odl-openflowplugin-app-topology-manager/pom.xml b/features-aggregator/odl-openflowplugin-app-topology-manager/pom.xml index 0b8fc8b77..37906a6e4 100644 --- a/features-aggregator/odl-openflowplugin-app-topology-manager/pom.xml +++ b/features-aggregator/odl-openflowplugin-app-topology-manager/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.openflowplugin odl-openflowplugin-app-topology-manager feature - 0.18.0-SNAPSHOT + 0.18.0 OpenDaylight :: Openflow Plugin :: Application - Topology Manager diff --git a/features-aggregator/odl-openflowplugin-app-topology/pom.xml b/features-aggregator/odl-openflowplugin-app-topology/pom.xml index 6413a9edc..1343982b3 100644 --- a/features-aggregator/odl-openflowplugin-app-topology/pom.xml +++ b/features-aggregator/odl-openflowplugin-app-topology/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.openflowplugin odl-openflowplugin-app-topology feature - 0.18.0-SNAPSHOT + 0.18.0 OpenDaylight :: Openflow Plugin :: Application - topology diff --git a/features-aggregator/odl-openflowplugin-drop-test/pom.xml b/features-aggregator/odl-openflowplugin-drop-test/pom.xml index 7e3e19246..1be6939bb 100644 --- a/features-aggregator/odl-openflowplugin-drop-test/pom.xml +++ b/features-aggregator/odl-openflowplugin-drop-test/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.openflowplugin odl-openflowplugin-drop-test feature - 0.18.0-SNAPSHOT + 0.18.0 OpenDaylight :: Openflow Plugin :: Drop Test diff --git a/features-aggregator/odl-openflowplugin-flow-services-rest/pom.xml b/features-aggregator/odl-openflowplugin-flow-services-rest/pom.xml index fbbbd30d6..2202896b3 100644 --- a/features-aggregator/odl-openflowplugin-flow-services-rest/pom.xml +++ b/features-aggregator/odl-openflowplugin-flow-services-rest/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.openflowplugin odl-openflowplugin-flow-services-rest feature - 0.18.0-SNAPSHOT + 0.18.0 OpenDaylight :: Openflow Plugin :: Flow Services :: REST diff --git a/features-aggregator/odl-openflowplugin-flow-services/pom.xml b/features-aggregator/odl-openflowplugin-flow-services/pom.xml index 0bf712ff3..ec07e18f6 100644 --- a/features-aggregator/odl-openflowplugin-flow-services/pom.xml +++ b/features-aggregator/odl-openflowplugin-flow-services/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.openflowplugin odl-openflowplugin-flow-services feature - 0.18.0-SNAPSHOT + 0.18.0 OpenDaylight :: Openflow Plugin :: Flow Services diff --git a/features-aggregator/odl-openflowplugin-libraries/pom.xml b/features-aggregator/odl-openflowplugin-libraries/pom.xml index 764585b20..a6cd92f4f 100644 --- a/features-aggregator/odl-openflowplugin-libraries/pom.xml +++ b/features-aggregator/odl-openflowplugin-libraries/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.openflowplugin odl-openflowplugin-libraries feature - 0.18.0-SNAPSHOT + 0.18.0 OpenDaylight :: Openflow Plugin :: Libraries diff --git a/features-aggregator/odl-openflowplugin-nsf-model/pom.xml b/features-aggregator/odl-openflowplugin-nsf-model/pom.xml index 43b83a29d..99fcf29b9 100644 --- a/features-aggregator/odl-openflowplugin-nsf-model/pom.xml +++ b/features-aggregator/odl-openflowplugin-nsf-model/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.openflowplugin odl-openflowplugin-nsf-model feature - 0.18.0-SNAPSHOT + 0.18.0 OpenDaylight :: OpenflowPlugin :: NSF :: Model diff --git a/features-aggregator/odl-openflowplugin-southbound/pom.xml b/features-aggregator/odl-openflowplugin-southbound/pom.xml index cd2f9dbd3..3e0adaca1 100644 --- a/features-aggregator/odl-openflowplugin-southbound/pom.xml +++ b/features-aggregator/odl-openflowplugin-southbound/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.openflowplugin odl-openflowplugin-southbound feature - 0.18.0-SNAPSHOT + 0.18.0 OpenDaylight :: Openflow Plugin :: Li southbound API implementation @@ -43,7 +43,7 @@ org.opendaylight.serviceutils serviceutils-artifacts - 0.13.0-SNAPSHOT + 0.13.0 import pom diff --git a/features-aggregator/pom.xml b/features-aggregator/pom.xml index 22bb76806..0f412d9f7 100644 --- a/features-aggregator/pom.xml +++ b/features-aggregator/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.openflowplugin features-aggregator pom - 0.18.0-SNAPSHOT + 0.18.0 features-openflowplugin diff --git a/libraries/liblldp/pom.xml b/libraries/liblldp/pom.xml index 1e03a1997..0d6df4196 100644 --- a/libraries/liblldp/pom.xml +++ b/libraries/liblldp/pom.xml @@ -5,7 +5,7 @@ org.opendaylight.openflowplugin openflowplugin-parent - 0.18.0-SNAPSHOT + 0.18.0 ../../parent diff --git a/libraries/pom.xml b/libraries/pom.xml index c206b7632..9ad24c2f4 100644 --- a/libraries/pom.xml +++ b/libraries/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.openflowplugin libraries-aggregator - 0.18.0-SNAPSHOT + 0.18.0 pom diff --git a/model/model-flow-base/pom.xml b/model/model-flow-base/pom.xml index c4e0f7108..d8fb9bffe 100644 --- a/model/model-flow-base/pom.xml +++ b/model/model-flow-base/pom.xml @@ -6,7 +6,7 @@ org.opendaylight.openflowplugin openflowplugin-parent - 0.18.0-SNAPSHOT + 0.18.0 ../../parent diff --git a/model/model-flow-service/pom.xml b/model/model-flow-service/pom.xml index 9a7dcf0e9..b68d84675 100644 --- a/model/model-flow-service/pom.xml +++ b/model/model-flow-service/pom.xml @@ -6,7 +6,7 @@ org.opendaylight.openflowplugin openflowplugin-parent - 0.18.0-SNAPSHOT + 0.18.0 ../../parent diff --git a/model/model-flow-statistics/pom.xml b/model/model-flow-statistics/pom.xml index e1c5cf748..538eed2c2 100644 --- a/model/model-flow-statistics/pom.xml +++ b/model/model-flow-statistics/pom.xml @@ -6,7 +6,7 @@ org.opendaylight.openflowplugin openflowplugin-parent - 0.18.0-SNAPSHOT + 0.18.0 ../../parent diff --git a/model/model-inventory/pom.xml b/model/model-inventory/pom.xml index cf0305695..2bcdffff1 100644 --- a/model/model-inventory/pom.xml +++ b/model/model-inventory/pom.xml @@ -13,7 +13,7 @@ org.opendaylight.openflowplugin openflowplugin-parent - 0.18.0-SNAPSHOT + 0.18.0 ../../parent diff --git a/model/model-topology/pom.xml b/model/model-topology/pom.xml index 25f1950b6..35d4ef690 100644 --- a/model/model-topology/pom.xml +++ b/model/model-topology/pom.xml @@ -13,7 +13,7 @@ org.opendaylight.openflowplugin openflowplugin-parent - 0.18.0-SNAPSHOT + 0.18.0 ../../parent diff --git a/model/pom.xml b/model/pom.xml index 9fc75a21f..5613dc5dd 100644 --- a/model/pom.xml +++ b/model/pom.xml @@ -12,7 +12,7 @@ org.opendaylight.openflowplugin.model model-aggregator - 0.18.0-SNAPSHOT + 0.18.0 pom diff --git a/openflowjava/features-openflowjava-aggregator/features-openflowjava/pom.xml b/openflowjava/features-openflowjava-aggregator/features-openflowjava/pom.xml index 262d49387..01f3a2fef 100644 --- a/openflowjava/features-openflowjava-aggregator/features-openflowjava/pom.xml +++ b/openflowjava/features-openflowjava-aggregator/features-openflowjava/pom.xml @@ -10,7 +10,7 @@ org.opendaylight.openflowplugin.openflowjava features-openflowjava - 0.18.0-SNAPSHOT + 0.18.0 feature diff --git a/openflowjava/features-openflowjava-aggregator/odl-openflowjava-protocol/pom.xml b/openflowjava/features-openflowjava-aggregator/odl-openflowjava-protocol/pom.xml index 45bc304fc..f3fa2d568 100644 --- a/openflowjava/features-openflowjava-aggregator/odl-openflowjava-protocol/pom.xml +++ b/openflowjava/features-openflowjava-aggregator/odl-openflowjava-protocol/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.openflowplugin.openflowjava odl-openflowjava-protocol - 0.18.0-SNAPSHOT + 0.18.0 feature diff --git a/openflowjava/openflow-protocol-api/pom.xml b/openflowjava/openflow-protocol-api/pom.xml index d96f367fe..5a1196006 100644 --- a/openflowjava/openflow-protocol-api/pom.xml +++ b/openflowjava/openflow-protocol-api/pom.xml @@ -4,12 +4,12 @@ org.opendaylight.openflowplugin openflowplugin-parent - 0.18.0-SNAPSHOT + 0.18.0 ../../parent org.opendaylight.openflowplugin.openflowjava openflow-protocol-api - 0.18.0-SNAPSHOT + 0.18.0 bundle diff --git a/openflowjava/openflow-protocol-impl/pom.xml b/openflowjava/openflow-protocol-impl/pom.xml index b850a1db1..f42cddc4c 100644 --- a/openflowjava/openflow-protocol-impl/pom.xml +++ b/openflowjava/openflow-protocol-impl/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.openflowplugin.openflowjava openflowjava-parent - 0.18.0-SNAPSHOT + 0.18.0 ../ openflow-protocol-impl diff --git a/openflowjava/openflow-protocol-it/pom.xml b/openflowjava/openflow-protocol-it/pom.xml index 84c218bde..e61067966 100644 --- a/openflowjava/openflow-protocol-it/pom.xml +++ b/openflowjava/openflow-protocol-it/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.openflowplugin.openflowjava openflowjava-parent - 0.18.0-SNAPSHOT + 0.18.0 ../ openflow-protocol-it diff --git a/openflowjava/openflow-protocol-spi/pom.xml b/openflowjava/openflow-protocol-spi/pom.xml index ae991e29b..4c81ea3c3 100644 --- a/openflowjava/openflow-protocol-spi/pom.xml +++ b/openflowjava/openflow-protocol-spi/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.openflowplugin.openflowjava openflowjava-parent - 0.18.0-SNAPSHOT + 0.18.0 ../ openflow-protocol-spi diff --git a/openflowjava/openflowjava-blueprint-config/pom.xml b/openflowjava/openflowjava-blueprint-config/pom.xml index f41a5f389..140de8590 100644 --- a/openflowjava/openflowjava-blueprint-config/pom.xml +++ b/openflowjava/openflowjava-blueprint-config/pom.xml @@ -10,7 +10,7 @@ org.opendaylight.openflowplugin.openflowjava openflowjava-parent - 0.18.0-SNAPSHOT + 0.18.0 ../ openflowjava-blueprint-config diff --git a/openflowjava/openflowjava-util/pom.xml b/openflowjava/openflowjava-util/pom.xml index 5bbf72759..a15c63509 100644 --- a/openflowjava/openflowjava-util/pom.xml +++ b/openflowjava/openflowjava-util/pom.xml @@ -5,7 +5,7 @@ org.opendaylight.openflowplugin.openflowjava openflowjava-parent - 0.18.0-SNAPSHOT + 0.18.0 ../ bundle diff --git a/openflowjava/pom.xml b/openflowjava/pom.xml index ceb6605fa..3c48d410e 100644 --- a/openflowjava/pom.xml +++ b/openflowjava/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.openflowplugin openflowplugin-parent - 0.18.0-SNAPSHOT + 0.18.0 ../parent diff --git a/openflowplugin-api/pom.xml b/openflowplugin-api/pom.xml index b31b0725f..4d20f9ec8 100644 --- a/openflowplugin-api/pom.xml +++ b/openflowplugin-api/pom.xml @@ -5,7 +5,7 @@ org.opendaylight.openflowplugin openflowplugin-parent - 0.18.0-SNAPSHOT + 0.18.0 ../parent diff --git a/openflowplugin-blueprint-config/pom.xml b/openflowplugin-blueprint-config/pom.xml index 23488c3bb..41014f120 100644 --- a/openflowplugin-blueprint-config/pom.xml +++ b/openflowplugin-blueprint-config/pom.xml @@ -5,7 +5,7 @@ org.opendaylight.openflowplugin openflowplugin-parent - 0.18.0-SNAPSHOT + 0.18.0 ../parent diff --git a/openflowplugin-common/pom.xml b/openflowplugin-common/pom.xml index 8ea474cf1..723d818a9 100644 --- a/openflowplugin-common/pom.xml +++ b/openflowplugin-common/pom.xml @@ -5,7 +5,7 @@ org.opendaylight.openflowplugin openflowplugin-parent - 0.18.0-SNAPSHOT + 0.18.0 ../parent diff --git a/openflowplugin-impl/pom.xml b/openflowplugin-impl/pom.xml index b1d656aec..e5b76dd5d 100644 --- a/openflowplugin-impl/pom.xml +++ b/openflowplugin-impl/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.openflowplugin openflowplugin-parent - 0.18.0-SNAPSHOT + 0.18.0 ../parent diff --git a/openflowplugin-it/pom.xml b/openflowplugin-it/pom.xml index f7ebc5adb..11fdb103a 100644 --- a/openflowplugin-it/pom.xml +++ b/openflowplugin-it/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.openflowplugin openflowplugin-parent - 0.18.0-SNAPSHOT + 0.18.0 ../parent diff --git a/openflowplugin/pom.xml b/openflowplugin/pom.xml index 28eeb8052..785a2da62 100644 --- a/openflowplugin/pom.xml +++ b/openflowplugin/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.openflowplugin openflowplugin-parent - 0.18.0-SNAPSHOT + 0.18.0 ../parent diff --git a/parent/pom.xml b/parent/pom.xml index 43a2d141e..f0fb2b886 100644 --- a/parent/pom.xml +++ b/parent/pom.xml @@ -19,7 +19,7 @@ 4.0.0 org.opendaylight.openflowplugin openflowplugin-parent - 0.18.0-SNAPSHOT + 0.18.0 pom @@ -55,7 +55,7 @@ org.opendaylight.serviceutils serviceutils-artifacts - 0.13.0-SNAPSHOT + 0.13.0 pom import diff --git a/pom.xml b/pom.xml index 3e8d9d4bb..ef61f7d58 100644 --- a/pom.xml +++ b/pom.xml @@ -4,12 +4,12 @@ org.opendaylight.openflowplugin openflowplugin-parent - 0.18.0-SNAPSHOT + 0.18.0 parent openflowplugin-aggregator - 0.18.0-SNAPSHOT + 0.18.0 openflowplugin pom diff --git a/samples/learning-switch/pom.xml b/samples/learning-switch/pom.xml index e406627be..0b9c8b6dd 100644 --- a/samples/learning-switch/pom.xml +++ b/samples/learning-switch/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.openflowplugin openflowplugin-parent - 0.18.0-SNAPSHOT + 0.18.0 ../../parent diff --git a/samples/pom.xml b/samples/pom.xml index 179cebe98..1692b498a 100644 --- a/samples/pom.xml +++ b/samples/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.openflowplugin openflowplugin-samples-aggregator - 0.18.0-SNAPSHOT + 0.18.0 pom diff --git a/samples/sample-bundles/pom.xml b/samples/sample-bundles/pom.xml index dae66491a..7ca12ff42 100644 --- a/samples/sample-bundles/pom.xml +++ b/samples/sample-bundles/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.openflowplugin openflowplugin-parent - 0.18.0-SNAPSHOT + 0.18.0 ../../parent diff --git a/samples/sample-consumer/pom.xml b/samples/sample-consumer/pom.xml index 654711441..346bcba7d 100644 --- a/samples/sample-consumer/pom.xml +++ b/samples/sample-consumer/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.openflowplugin openflowplugin-parent - 0.18.0-SNAPSHOT + 0.18.0 ../../parent diff --git a/samples/simple-client/pom.xml b/samples/simple-client/pom.xml index 5bd203886..2acb3bd8e 100644 --- a/samples/simple-client/pom.xml +++ b/samples/simple-client/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.openflowplugin openflowplugin-parent - 0.18.0-SNAPSHOT + 0.18.0 ../../parent diff --git a/test-common/pom.xml b/test-common/pom.xml index b23e75448..2942a8550 100644 --- a/test-common/pom.xml +++ b/test-common/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.openflowplugin openflowplugin-parent - 0.18.0-SNAPSHOT + 0.18.0 ../parent test-common diff --git a/test-provider/pom.xml b/test-provider/pom.xml index b8c185457..e8d0d8437 100644 --- a/test-provider/pom.xml +++ b/test-provider/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.openflowplugin openflowplugin-parent - 0.18.0-SNAPSHOT + 0.18.0 ../parent test-provider -- 2.43.0