X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fnetconf%2Fconfig-netconf-connector%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fnetconf%2Fconfignetconfconnector%2Fosgi%2FNetconfOperationServiceImpl.java;h=ef0a72c0f05f44bc2d040a1a03ea0fe2c1af1d0a;hp=f5fe089d4d80d1b614636b9522e0963ac2d922c9;hb=08351c185b20967cf3de414b16e97670149f5d51;hpb=e55942fd1fcc4748197146b81f7497256de22a94 diff --git a/opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/osgi/NetconfOperationServiceImpl.java b/opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/osgi/NetconfOperationServiceImpl.java index f5fe089d4d..ef0a72c0f0 100644 --- a/opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/osgi/NetconfOperationServiceImpl.java +++ b/opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/osgi/NetconfOperationServiceImpl.java @@ -8,14 +8,12 @@ package org.opendaylight.controller.netconf.confignetconfconnector.osgi; +import com.google.common.base.Optional; +import java.util.Collection; +import java.util.Collections; import java.util.HashSet; -import java.util.List; -import java.util.Map; import java.util.Set; - -import org.opendaylight.controller.config.api.LookupRegistry; import org.opendaylight.controller.config.util.ConfigRegistryJMXClient; -import org.opendaylight.controller.config.yangjmxgenerator.ModuleMXBeanEntry; import org.opendaylight.controller.netconf.confignetconfconnector.transactions.TransactionProvider; import org.opendaylight.controller.netconf.confignetconfconnector.util.Util; import org.opendaylight.controller.netconf.mapping.api.Capability; @@ -23,67 +21,33 @@ import org.opendaylight.controller.netconf.mapping.api.NetconfOperation; import org.opendaylight.controller.netconf.mapping.api.NetconfOperationService; import org.opendaylight.yangtools.yang.model.api.Module; -import com.google.common.annotations.VisibleForTesting; -import com.google.common.base.Optional; -import com.google.common.base.Preconditions; -import com.google.common.collect.Sets; - /** - * Manages life cycle of {@link YangStoreSnapshot}. + * Manages life cycle of {@link YangStoreContext}. */ public class NetconfOperationServiceImpl implements NetconfOperationService { - private final YangStoreSnapshot yangStoreSnapshot; private final NetconfOperationProvider operationProvider; - private final Set capabilities; private final TransactionProvider transactionProvider; + private final YangStoreService yangStoreService; - public NetconfOperationServiceImpl(YangStoreService yangStoreService, ConfigRegistryJMXClient jmxClient, - String netconfSessionIdForReporting) throws YangStoreException { + public NetconfOperationServiceImpl(final YangStoreService yangStoreService, final ConfigRegistryJMXClient jmxClient, + final String netconfSessionIdForReporting) { - yangStoreSnapshot = yangStoreService.getYangStoreSnapshot(); - checkConsistencyBetweenYangStoreAndConfig(jmxClient, yangStoreSnapshot); + this.yangStoreService = yangStoreService; transactionProvider = new TransactionProvider(jmxClient, netconfSessionIdForReporting); - operationProvider = new NetconfOperationProvider(yangStoreSnapshot, jmxClient, transactionProvider, + operationProvider = new NetconfOperationProvider(yangStoreService, jmxClient, transactionProvider, netconfSessionIdForReporting); - capabilities = setupCapabilities(yangStoreSnapshot); - } - - - @VisibleForTesting - static void checkConsistencyBetweenYangStoreAndConfig(LookupRegistry jmxClient, YangStoreSnapshot yangStoreSnapshot) { - Set missingModulesFromConfig = Sets.newHashSet(); - - Set modulesSeenByConfig = jmxClient.getAvailableModuleFactoryQNames(); - Map> moduleMXBeanEntryMap = yangStoreSnapshot.getModuleMXBeanEntryMap(); - - for (Map moduleNameToMBE : moduleMXBeanEntryMap.values()) { - for (ModuleMXBeanEntry moduleMXBeanEntry : moduleNameToMBE.values()) { - String moduleSeenByYangStore = moduleMXBeanEntry.getYangModuleQName().toString(); - if(!modulesSeenByConfig.contains(moduleSeenByYangStore)){ - missingModulesFromConfig.add(moduleSeenByYangStore); - } - } - } - - Preconditions - .checkState( - missingModulesFromConfig.isEmpty(), - "There are inconsistencies between configuration subsystem and yangstore in terms of discovered yang modules, yang modules missing from config subsystem but present in yangstore: %s, %sAll modules present in config: %s", - missingModulesFromConfig, System.lineSeparator(), modulesSeenByConfig); - } @Override public void close() { - yangStoreSnapshot.close(); transactionProvider.close(); } @Override public Set getCapabilities() { - return capabilities; + return setupCapabilities(yangStoreService); } @Override @@ -91,7 +55,7 @@ public class NetconfOperationServiceImpl implements NetconfOperationService { return operationProvider.getOperations(); } - private static Set setupCapabilities(YangStoreSnapshot yangStoreSnapshot) { + private static Set setupCapabilities(final YangStoreContext yangStoreSnapshot) { Set capabilities = new HashSet<>(); // [RFC6241] 8.3. Candidate Configuration Capability capabilities.add(new BasicCapability("urn:ietf:params:netconf:capability:candidate:1.0")); @@ -112,7 +76,7 @@ public class NetconfOperationServiceImpl implements NetconfOperationService { private final String capability; - private BasicCapability(String capability) { + private BasicCapability(final String capability) { this.capability = capability; } @@ -142,8 +106,8 @@ public class NetconfOperationServiceImpl implements NetconfOperationService { } @Override - public Optional> getLocation() { - return Optional.absent(); + public Collection getLocation() { + return Collections.emptyList(); } @Override @@ -159,7 +123,7 @@ public class NetconfOperationServiceImpl implements NetconfOperationService { private final String moduleName; private final String moduleNamespace; - public YangStoreCapability(Module module, String moduleContent) { + public YangStoreCapability(final Module module, final String moduleContent) { super(toCapabilityURI(module)); this.content = moduleContent; this.moduleName = module.getName(); @@ -172,7 +136,7 @@ public class NetconfOperationServiceImpl implements NetconfOperationService { return Optional.of(content); } - private static String toCapabilityURI(Module module) { + private static String toCapabilityURI(final Module module) { return String.valueOf(module.getNamespace()) + "?module=" + module.getName() + "&revision=" + Util.writeDate(module.getRevision()); }