From 3a8ab4a31edfa6acf181872b807bf279d2556abc Mon Sep 17 00:00:00 2001 From: Maros Marsalek Date: Thu, 24 Jul 2014 17:09:53 +0200 Subject: [PATCH] Fix config attributes with same names for different modules. Yang does not allow attributes in different cases to have the same name. In yang modules for config, the configuration is located in cases and if 2 cases in same yang module contain child with same name, the transformation of data from CompositeNode to NormalizedNode NOTE: This might break bgpcep and SP distribution, check. Change-Id: I9bad24df9ac149da74b745ff648c72345e33deb1 Signed-off-by: Maros Marsalek --- ...connectImmediatelyStrategyFactoryModule.java | 8 ++++---- .../TimedReconnectStrategyFactoryModule.java | 2 +- .../main/yang/odl-protocol-framework-cfg.yang | 6 +++--- .../ReconnectImmediatelyStrategyModuleTest.java | 6 +++--- .../TimedReconnectStrategyModuleTest.java | 17 ++++++++--------- .../configuration/initial/01-md-sal.xml | 4 ++-- ...emoryOperationalDataStoreProviderModule.java | 2 +- ...pendaylight-inmemory-datastore-provider.yang | 5 ++++- 8 files changed, 26 insertions(+), 24 deletions(-) diff --git a/opendaylight/commons/protocol-framework/src/main/java/org/opendaylight/controller/config/yang/protocol/framework/ReconnectImmediatelyStrategyFactoryModule.java b/opendaylight/commons/protocol-framework/src/main/java/org/opendaylight/controller/config/yang/protocol/framework/ReconnectImmediatelyStrategyFactoryModule.java index 580a53be94..12b771df80 100644 --- a/opendaylight/commons/protocol-framework/src/main/java/org/opendaylight/controller/config/yang/protocol/framework/ReconnectImmediatelyStrategyFactoryModule.java +++ b/opendaylight/commons/protocol-framework/src/main/java/org/opendaylight/controller/config/yang/protocol/framework/ReconnectImmediatelyStrategyFactoryModule.java @@ -32,14 +32,14 @@ public final class ReconnectImmediatelyStrategyFactoryModule extends org.openday @Override protected void customValidation(){ - JmxAttributeValidationException.checkNotNull(getTimeout(), "value is not set.", timeoutJmxAttribute); - JmxAttributeValidationException.checkCondition(getTimeout() >= 0, "value " + getTimeout() + " is less than 0", - timeoutJmxAttribute); + JmxAttributeValidationException.checkNotNull(getReconnectTimeout(), "value is not set.", reconnectTimeoutJmxAttribute); + JmxAttributeValidationException.checkCondition(getReconnectTimeout() >= 0, "value " + getReconnectTimeout() + " is less than 0", + reconnectTimeoutJmxAttribute); } @Override public java.lang.AutoCloseable createInstance() { - return new ReconnectImmediatelyStrategyFactoryCloseable(getExecutorDependency(), getTimeout()); + return new ReconnectImmediatelyStrategyFactoryCloseable(getReconnectExecutorDependency(), getReconnectTimeout()); } private static final class ReconnectImmediatelyStrategyFactoryCloseable implements ReconnectStrategyFactory, AutoCloseable { diff --git a/opendaylight/commons/protocol-framework/src/main/java/org/opendaylight/controller/config/yang/protocol/framework/TimedReconnectStrategyFactoryModule.java b/opendaylight/commons/protocol-framework/src/main/java/org/opendaylight/controller/config/yang/protocol/framework/TimedReconnectStrategyFactoryModule.java index b8849c7a1d..0b4a7baf6f 100644 --- a/opendaylight/commons/protocol-framework/src/main/java/org/opendaylight/controller/config/yang/protocol/framework/TimedReconnectStrategyFactoryModule.java +++ b/opendaylight/commons/protocol-framework/src/main/java/org/opendaylight/controller/config/yang/protocol/framework/TimedReconnectStrategyFactoryModule.java @@ -49,7 +49,7 @@ public final class TimedReconnectStrategyFactoryModule extends org.opendaylight. @Override public java.lang.AutoCloseable createInstance() { - return new TimedReconnectStrategyFactoryCloseable(getExecutorDependency(), + return new TimedReconnectStrategyFactoryCloseable(getTimedReconnectExecutorDependency(), getConnectTime(), getMinSleep(), getSleepFactor().doubleValue(), getMaxSleep(), getMaxAttempts(), getDeadline()); } diff --git a/opendaylight/commons/protocol-framework/src/main/yang/odl-protocol-framework-cfg.yang b/opendaylight/commons/protocol-framework/src/main/yang/odl-protocol-framework-cfg.yang index 1856369178..cd84d4a95e 100644 --- a/opendaylight/commons/protocol-framework/src/main/yang/odl-protocol-framework-cfg.yang +++ b/opendaylight/commons/protocol-framework/src/main/yang/odl-protocol-framework-cfg.yang @@ -77,12 +77,12 @@ module protocol-framework { case reconnect-immediately-strategy-factory { when "/config:modules/config:module/config:type = 'reconnect-immediately-strategy-factory'"; - leaf timeout { + leaf reconnect-timeout { mandatory true; type int32; } - container executor { + container reconnect-executor { uses config:service-ref { refine type { mandatory true; @@ -138,7 +138,7 @@ module protocol-framework { units "milliseconds"; } - container executor { + container timed-reconnect-executor { uses config:service-ref { refine type { mandatory true; diff --git a/opendaylight/commons/protocol-framework/src/test/java/org/opendaylight/controller/config/yang/protocol/framework/ReconnectImmediatelyStrategyModuleTest.java b/opendaylight/commons/protocol-framework/src/test/java/org/opendaylight/controller/config/yang/protocol/framework/ReconnectImmediatelyStrategyModuleTest.java index 9beadc4dbb..cfdf3bff28 100644 --- a/opendaylight/commons/protocol-framework/src/test/java/org/opendaylight/controller/config/yang/protocol/framework/ReconnectImmediatelyStrategyModuleTest.java +++ b/opendaylight/commons/protocol-framework/src/test/java/org/opendaylight/controller/config/yang/protocol/framework/ReconnectImmediatelyStrategyModuleTest.java @@ -78,7 +78,7 @@ public class ReconnectImmediatelyStrategyModuleTest extends AbstractConfigTest { final ReconnectImmediatelyStrategyFactoryModuleMXBean mxBean = transaction.newMBeanProxy( transaction.lookupConfigBean(FACTORY_NAME, INSTANCE_NAME), ReconnectImmediatelyStrategyFactoryModuleMXBean.class); - mxBean.setTimeout(200); + mxBean.setReconnectTimeout(200); final CommitStatus status = transaction.commit(); assertBeanCount(1, FACTORY_NAME); assertStatus(status, 0, 1, 1); @@ -99,8 +99,8 @@ public class ReconnectImmediatelyStrategyModuleTest extends AbstractConfigTest { final ObjectName nameCreated = transaction.createModule(FACTORY_NAME, INSTANCE_NAME); final ReconnectImmediatelyStrategyFactoryModuleMXBean mxBean = transaction.newMBeanProxy(nameCreated, ReconnectImmediatelyStrategyFactoryModuleMXBean.class); - mxBean.setTimeout(timeout); - mxBean.setExecutor(GlobalEventExecutorUtil.create(transaction)); + mxBean.setReconnectTimeout(timeout); + mxBean.setReconnectExecutor(GlobalEventExecutorUtil.create(transaction)); return nameCreated; } diff --git a/opendaylight/commons/protocol-framework/src/test/java/org/opendaylight/controller/config/yang/protocol/framework/TimedReconnectStrategyModuleTest.java b/opendaylight/commons/protocol-framework/src/test/java/org/opendaylight/controller/config/yang/protocol/framework/TimedReconnectStrategyModuleTest.java index a8cdff7119..1c068a98e7 100644 --- a/opendaylight/commons/protocol-framework/src/test/java/org/opendaylight/controller/config/yang/protocol/framework/TimedReconnectStrategyModuleTest.java +++ b/opendaylight/commons/protocol-framework/src/test/java/org/opendaylight/controller/config/yang/protocol/framework/TimedReconnectStrategyModuleTest.java @@ -7,6 +7,13 @@ */ package org.opendaylight.controller.config.yang.protocol.framework; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; + +import java.math.BigDecimal; +import javax.management.InstanceAlreadyExistsException; +import javax.management.ObjectName; import org.junit.Before; import org.junit.Test; import org.opendaylight.controller.config.api.ConflictingVersionException; @@ -17,14 +24,6 @@ import org.opendaylight.controller.config.manager.impl.factoriesresolver.Hardcod import org.opendaylight.controller.config.util.ConfigTransactionJMXClient; import org.opendaylight.controller.config.yang.netty.eventexecutor.GlobalEventExecutorModuleFactory; -import javax.management.InstanceAlreadyExistsException; -import javax.management.ObjectName; -import java.math.BigDecimal; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import static org.junit.Assert.fail; - public class TimedReconnectStrategyModuleTest extends AbstractConfigTest { private static final String INSTANCE_NAME = "timed-reconect-stategy-facotry-impl"; @@ -158,7 +157,7 @@ public class TimedReconnectStrategyModuleTest extends AbstractConfigTest { mxBean.setMaxSleep(maxSleep); mxBean.setMinSleep(minSleep); mxBean.setSleepFactor(sleepFactor); - mxBean.setExecutor(GlobalEventExecutorUtil.create(transaction)); + mxBean.setTimedReconnectExecutor(GlobalEventExecutorUtil.create(transaction)); return nameCreated; } diff --git a/opendaylight/distribution/opendaylight/src/main/resources/configuration/initial/01-md-sal.xml b/opendaylight/distribution/opendaylight/src/main/resources/configuration/initial/01-md-sal.xml index 9534094fa8..03da7f0ccd 100644 --- a/opendaylight/distribution/opendaylight/src/main/resources/configuration/initial/01-md-sal.xml +++ b/opendaylight/distribution/opendaylight/src/main/resources/configuration/initial/01-md-sal.xml @@ -86,10 +86,10 @@ prefix:inmemory-operational-datastore-provider operational-store-service - + dom:schema-service yang-schema-service - +