X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fnetconf%2Fconfig-netconf-connector%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fnetconf%2Fconfignetconfconnector%2Fosgi%2FNetconfOperationServiceImpl.java;h=902be44fd9d78847d218fea620993d411b099314;hb=26b333ab642abbdda8ef0e3b570083b47af00255;hp=7cd43bd79a01b4b4436a12cfa5721e14108e165d;hpb=576aa6018e48dfca8f223b7ac929139a32135201;p=controller.git 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 7cd43bd79a..902be44fd9 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 @@ -12,26 +12,21 @@ import com.google.common.annotations.VisibleForTesting; import com.google.common.base.Optional; import com.google.common.base.Preconditions; import com.google.common.collect.Sets; +import java.util.Collection; +import java.util.Collections; +import java.util.HashSet; +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.yang.store.api.YangStoreException; -import org.opendaylight.controller.config.yang.store.api.YangStoreService; -import org.opendaylight.controller.config.yang.store.api.YangStoreSnapshot; 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; import org.opendaylight.controller.netconf.mapping.api.NetconfOperation; -import org.opendaylight.controller.netconf.mapping.api.NetconfOperationFilter; import org.opendaylight.controller.netconf.mapping.api.NetconfOperationService; import org.opendaylight.yangtools.yang.model.api.Module; -import java.util.Collection; -import java.util.Collections; -import java.util.List; -import java.util.Map; -import java.util.Set; - /** * Manages life cycle of {@link YangStoreSnapshot}. */ @@ -42,8 +37,8 @@ public class NetconfOperationServiceImpl implements NetconfOperationService { private final Set capabilities; private final TransactionProvider transactionProvider; - public NetconfOperationServiceImpl(YangStoreService yangStoreService, ConfigRegistryJMXClient jmxClient, - String netconfSessionIdForReporting) throws YangStoreException { + public NetconfOperationServiceImpl(final YangStoreService yangStoreService, final ConfigRegistryJMXClient jmxClient, + final String netconfSessionIdForReporting) throws YangStoreException { yangStoreSnapshot = yangStoreService.getYangStoreSnapshot(); checkConsistencyBetweenYangStoreAndConfig(jmxClient, yangStoreSnapshot); @@ -56,7 +51,7 @@ public class NetconfOperationServiceImpl implements NetconfOperationService { @VisibleForTesting - static void checkConsistencyBetweenYangStoreAndConfig(LookupRegistry jmxClient, YangStoreSnapshot yangStoreSnapshot) { + static void checkConsistencyBetweenYangStoreAndConfig(final LookupRegistry jmxClient, final YangStoreSnapshot yangStoreSnapshot) { Set missingModulesFromConfig = Sets.newHashSet(); Set modulesSeenByConfig = jmxClient.getAvailableModuleFactoryQNames(); @@ -65,8 +60,9 @@ public class NetconfOperationServiceImpl implements NetconfOperationService { for (Map moduleNameToMBE : moduleMXBeanEntryMap.values()) { for (ModuleMXBeanEntry moduleMXBeanEntry : moduleNameToMBE.values()) { String moduleSeenByYangStore = moduleMXBeanEntry.getYangModuleQName().toString(); - if(modulesSeenByConfig.contains(moduleSeenByYangStore) == false) + if(!modulesSeenByConfig.contains(moduleSeenByYangStore)){ missingModulesFromConfig.add(moduleSeenByYangStore); + } } } @@ -94,22 +90,18 @@ public class NetconfOperationServiceImpl implements NetconfOperationService { return operationProvider.getOperations(); } - @Override - public Set getFilters() { - return Collections.emptySet(); - } - - private static Set setupCapabilities(YangStoreSnapshot yangStoreSnapshot) { - Set capabilities = Sets.newHashSet(); - + private static Set setupCapabilities(final YangStoreSnapshot yangStoreSnapshot) { + Set capabilities = new HashSet<>(); // [RFC6241] 8.3. Candidate Configuration Capability capabilities.add(new BasicCapability("urn:ietf:params:netconf:capability:candidate:1.0")); + + // TODO rollback on error not supported EditConfigXmlParser:100 // [RFC6241] 8.5. Rollback-on-Error Capability - capabilities.add(new BasicCapability("urn:ietf:params:netconf:capability:rollback-on-error:1.0")); + // capabilities.add(new BasicCapability("urn:ietf:params:netconf:capability:rollback-on-error:1.0")); - final Collection> modulesAndContents = yangStoreSnapshot.getModuleMap().values(); - for (Map.Entry moduleAndContent : modulesAndContents) { - capabilities.add(new YangStoreCapability(moduleAndContent)); + Set modules = yangStoreSnapshot.getModules(); + for (Module module : modules) { + capabilities.add(new YangStoreCapability(module, yangStoreSnapshot.getModuleSource(module))); } return capabilities; @@ -119,7 +111,7 @@ public class NetconfOperationServiceImpl implements NetconfOperationService { private final String capability; - private BasicCapability(String capability) { + private BasicCapability(final String capability) { this.capability = capability; } @@ -149,22 +141,26 @@ public class NetconfOperationServiceImpl implements NetconfOperationService { } @Override - public Optional> getLocation() { - return Optional.absent(); + public Collection getLocation() { + return Collections.emptyList(); + } + + @Override + public String toString() { + return capability; } } - private static class YangStoreCapability extends BasicCapability { + private static final class YangStoreCapability extends BasicCapability { private final String content; private final String revision; private final String moduleName; private final String moduleNamespace; - public YangStoreCapability(Map.Entry moduleAndContent) { - super(getAsString(moduleAndContent.getKey())); - this.content = moduleAndContent.getValue(); - Module module = moduleAndContent.getKey(); + public YangStoreCapability(final Module module, final String moduleContent) { + super(toCapabilityURI(module)); + this.content = moduleContent; this.moduleName = module.getName(); this.moduleNamespace = module.getNamespace().toString(); this.revision = Util.writeDate(module.getRevision()); @@ -175,14 +171,9 @@ public class NetconfOperationServiceImpl implements NetconfOperationService { return Optional.of(content); } - private static String getAsString(Module module) { - final StringBuffer capabilityContent = new StringBuffer(); - capabilityContent.append(module.getNamespace()); - capabilityContent.append("?module="); - capabilityContent.append(module.getName()); - capabilityContent.append("&revision="); - capabilityContent.append(Util.writeDate(module.getRevision())); - return capabilityContent.toString(); + private static String toCapabilityURI(final Module module) { + return String.valueOf(module.getNamespace()) + "?module=" + + module.getName() + "&revision=" + Util.writeDate(module.getRevision()); } @Override