X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fnetconf%2Fmdsal-netconf-connector%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fnetconf%2Fmdsal%2Fconnector%2FMdsalNetconfOperationService.java;h=cc22dd51aaa5c8bdbcaffda3ba09d2ac509a68e4;hp=f54c5e9838b21549199633ec699e4ae953b2aaa9;hb=5c008222efa5c0af49cf8a52881a6299b1e249dc;hpb=74a7fe23a2fb58d7971b43f5b16a1481dc74966d diff --git a/opendaylight/netconf/mdsal-netconf-connector/src/main/java/org/opendaylight/controller/netconf/mdsal/connector/MdsalNetconfOperationService.java b/opendaylight/netconf/mdsal-netconf-connector/src/main/java/org/opendaylight/controller/netconf/mdsal/connector/MdsalNetconfOperationService.java index f54c5e9838..cc22dd51aa 100644 --- a/opendaylight/netconf/mdsal-netconf-connector/src/main/java/org/opendaylight/controller/netconf/mdsal/connector/MdsalNetconfOperationService.java +++ b/opendaylight/netconf/mdsal-netconf-connector/src/main/java/org/opendaylight/controller/netconf/mdsal/connector/MdsalNetconfOperationService.java @@ -8,34 +8,17 @@ package org.opendaylight.controller.netconf.mdsal.connector; -import com.google.common.base.Optional; -import java.util.Collection; -import java.util.Collections; -import java.util.HashSet; import java.util.Set; import org.opendaylight.controller.md.sal.dom.api.DOMDataBroker; -import org.opendaylight.controller.netconf.mapping.api.Capability; import org.opendaylight.controller.netconf.mapping.api.NetconfOperation; import org.opendaylight.controller.netconf.mapping.api.NetconfOperationService; -import org.opendaylight.yangtools.yang.common.SimpleDateFormatUtil; -import org.opendaylight.yangtools.yang.model.api.Module; -import org.opendaylight.yangtools.yang.model.api.SchemaContext; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; public class MdsalNetconfOperationService implements NetconfOperationService { - private static final Logger LOG = LoggerFactory.getLogger(MdsalNetconfOperationService.class); - - private final CurrentSchemaContext schemaContext; - private final String netconfSessionIdForReporting; private final OperationProvider operationProvider; public MdsalNetconfOperationService(final CurrentSchemaContext schemaContext, final String netconfSessionIdForReporting, final DOMDataBroker dataBroker) { - this.schemaContext = schemaContext; - // TODO schema contexts are different in data broker and the one we receive here ... the one received here should be updated same way as broker is - this.netconfSessionIdForReporting = netconfSessionIdForReporting; this.operationProvider = new OperationProvider(netconfSessionIdForReporting, schemaContext, dataBroker); } @@ -44,115 +27,9 @@ public class MdsalNetconfOperationService implements NetconfOperationService { } - // TODO does this get called dynamically ? - @Override - public Set getCapabilities() { - final Set capabilities = new HashSet<>(); - // [RFC6241] 8.3. Candidate Configuration Capability - capabilities.add(new BasicCapability("urn:ietf:params:netconf:capability:candidate:1.0")); - - final SchemaContext currentContext = schemaContext.getCurrentContext(); - final Set modules = currentContext.getModules(); - for (final Module module : modules) { - if(currentContext.getModuleSource(module).isPresent()) { - capabilities.add(new YangStoreCapability(module, currentContext.getModuleSource(module).get())); - } else { - LOG.warn("Missing source for module {}. This module will not be available from netconf server for session {}", - module, netconfSessionIdForReporting); - } - } - - return capabilities; - } - @Override public Set getNetconfOperations() { return operationProvider.getOperations(); } - // TODO reuse from netconf impl - private static class BasicCapability implements Capability { - - private final String capability; - - private BasicCapability(final String capability) { - this.capability = capability; - } - - @Override - public String getCapabilityUri() { - return capability; - } - - @Override - public Optional getModuleNamespace() { - return Optional.absent(); - } - - @Override - public Optional getModuleName() { - return Optional.absent(); - } - - @Override - public Optional getRevision() { - return Optional.absent(); - } - - @Override - public Optional getCapabilitySchema() { - return Optional.absent(); - } - - @Override - public Collection getLocation() { - return Collections.emptyList(); - } - - @Override - public String toString() { - return capability; - } - } - - 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(final Module module, final String moduleContent) { - super(toCapabilityURI(module)); - this.content = moduleContent; - this.moduleName = module.getName(); - this.moduleNamespace = module.getNamespace().toString(); - this.revision = SimpleDateFormatUtil.getRevisionFormat().format(module.getRevision()); - } - - @Override - public Optional getCapabilitySchema() { - return Optional.of(content); - } - - private static String toCapabilityURI(final Module module) { - return String.valueOf(module.getNamespace()) + "?module=" - + module.getName() + "&revision=" + SimpleDateFormatUtil.getRevisionFormat().format(module.getRevision()); - } - - @Override - public Optional getModuleName() { - return Optional.of(moduleName); - } - - @Override - public Optional getModuleNamespace() { - return Optional.of(moduleNamespace); - } - - @Override - public Optional getRevision() { - return Optional.of(revision); - } - } }