X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=netconf%2Fsal-netconf-connector%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fnetconf%2Fsal%2Fconnect%2Fnetconf%2FLibraryModulesSchemas.java;h=9b0b0f268c739aa4b8741017605937b13233c869;hb=982e75ece2483e413befe3edd8fd90022a644f72;hp=9e62919cf688852953d57c428f2e363d22262c31;hpb=afce5ad359932ef84f239e59888fe041ac7113c9;p=netconf.git diff --git a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/LibraryModulesSchemas.java b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/LibraryModulesSchemas.java index 9e62919cf6..9b0b0f268c 100644 --- a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/LibraryModulesSchemas.java +++ b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/LibraryModulesSchemas.java @@ -8,15 +8,14 @@ package org.opendaylight.netconf.sal.connect.netconf; import static javax.xml.bind.DatatypeConverter.printBase64Binary; -import static org.opendaylight.netconf.sal.connect.netconf.util.NetconfMessageTransformUtil.NETCONF_DATA_QNAME; -import static org.opendaylight.netconf.sal.connect.netconf.util.NetconfMessageTransformUtil.NETCONF_GET_QNAME; +import static org.opendaylight.netconf.sal.connect.netconf.util.NetconfMessageTransformUtil.NETCONF_DATA_NODEID; +import static org.opendaylight.netconf.sal.connect.netconf.util.NetconfMessageTransformUtil.NETCONF_GET_NODEID; +import static org.opendaylight.netconf.sal.connect.netconf.util.NetconfMessageTransformUtil.NETCONF_GET_PATH; import static org.opendaylight.netconf.sal.connect.netconf.util.NetconfMessageTransformUtil.toId; -import static org.opendaylight.netconf.sal.connect.netconf.util.NetconfMessageTransformUtil.toPath; import com.google.common.base.Preconditions; import com.google.common.base.Strings; import com.google.common.collect.ImmutableMap; -import com.google.common.collect.Maps; import com.google.gson.stream.JsonReader; import java.io.IOException; import java.io.InputStream; @@ -31,6 +30,7 @@ import java.nio.charset.Charset; import java.nio.charset.StandardCharsets; import java.util.AbstractMap; import java.util.Collections; +import java.util.HashMap; import java.util.Locale; import java.util.Map; import java.util.Optional; @@ -41,14 +41,14 @@ import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.ParserConfigurationException; import javax.xml.stream.XMLStreamException; import javax.xml.transform.dom.DOMSource; -import org.opendaylight.controller.md.sal.dom.api.DOMRpcResult; import org.opendaylight.mdsal.binding.generator.impl.ModuleInfoBackedContext; +import org.opendaylight.mdsal.dom.api.DOMRpcResult; import org.opendaylight.netconf.sal.connect.api.NetconfDeviceSchemas; import org.opendaylight.netconf.sal.connect.netconf.sal.NetconfDeviceRpc; import org.opendaylight.netconf.sal.connect.netconf.util.NetconfMessageTransformUtil; import org.opendaylight.netconf.sal.connect.util.RemoteDeviceId; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev160409.ModulesState; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev160409.module.list.Module; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev160621.ModulesState; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev160621.module.list.Module; import org.opendaylight.yangtools.util.xml.UntrustedXML; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.common.Revision; @@ -88,7 +88,7 @@ public final class LibraryModulesSchemas implements NetconfDeviceSchemas { static { final ModuleInfoBackedContext moduleInfoBackedContext = ModuleInfoBackedContext.create(); moduleInfoBackedContext.registerModuleInfo(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang - .library.rev160409.$YangModuleInfoImpl.getInstance()); + .library.rev160621.$YangModuleInfoImpl.getInstance()); LIBRARY_CONTEXT = moduleInfoBackedContext.tryToCreateSchemaContext().get(); } @@ -97,31 +97,26 @@ public final class LibraryModulesSchemas implements NetconfDeviceSchemas { private static final YangInstanceIdentifier MODULES_STATE_MODULE_LIST = YangInstanceIdentifier.builder().node(ModulesState.QNAME).node(Module.QNAME).build(); - private static final ContainerNode GET_MODULES_STATE_MODULE_LIST_RPC; - - static { - final DataContainerChild filter = - NetconfMessageTransformUtil.toFilterStructure(MODULES_STATE_MODULE_LIST, LIBRARY_CONTEXT); - GET_MODULES_STATE_MODULE_LIST_RPC = - Builders.containerBuilder().withNodeIdentifier(toId(NETCONF_GET_QNAME)).withChild(filter).build(); - } + private static final ContainerNode GET_MODULES_STATE_MODULE_LIST_RPC = Builders.containerBuilder() + .withNodeIdentifier(NETCONF_GET_NODEID) + .withChild(NetconfMessageTransformUtil.toFilterStructure(MODULES_STATE_MODULE_LIST, LIBRARY_CONTEXT)) + .build(); private LibraryModulesSchemas(final Map availableModels) { this.availableModels = availableModels; } public Map getAvailableModels() { - final Map result = Maps.newHashMap(); + final Map result = new HashMap<>(); for (final Map.Entry entry : availableModels.entrySet()) { - final SourceIdentifier sId = RevisionSourceIdentifier - .create(entry.getKey().getLocalName(), entry.getKey().getRevision()); + final SourceIdentifier sId = RevisionSourceIdentifier.create(entry.getKey().getLocalName(), + entry.getKey().getRevision()); result.put(sId, entry.getValue()); } return result; } - /** * Resolves URLs with YANG schema resources from modules-state. Uses basic http authenticaiton * @@ -146,7 +141,7 @@ public final class LibraryModulesSchemas implements NetconfDeviceSchemas { } catch (final IOException e) { LOG.warn("Unable to download yang library from {}", url, e); - return new LibraryModulesSchemas(Collections.emptyMap()); + return new LibraryModulesSchemas(Collections.emptyMap()); } } @@ -155,7 +150,7 @@ public final class LibraryModulesSchemas implements NetconfDeviceSchemas { final DOMRpcResult moduleListNodeResult; try { moduleListNodeResult = - deviceRpc.invokeRpc(toPath(NETCONF_GET_QNAME), GET_MODULES_STATE_MODULE_LIST_RPC).get(); + deviceRpc.invokeRpc(NETCONF_GET_PATH, GET_MODULES_STATE_MODULE_LIST_RPC).get(); } catch (final InterruptedException e) { Thread.currentThread().interrupt(); throw new RuntimeException(deviceId + ": Interrupted while waiting for response to " @@ -163,13 +158,13 @@ public final class LibraryModulesSchemas implements NetconfDeviceSchemas { } catch (final ExecutionException e) { LOG.warn("{}: Unable to detect available schemas, get to {} failed", deviceId, MODULES_STATE_MODULE_LIST, e); - return new LibraryModulesSchemas(Collections.emptyMap()); + return new LibraryModulesSchemas(Collections.emptyMap()); } if (moduleListNodeResult.getErrors().isEmpty() == false) { LOG.warn("{}: Unable to detect available schemas, get to {} failed, {}", deviceId, MODULES_STATE_MODULE_LIST, moduleListNodeResult.getErrors()); - return new LibraryModulesSchemas(Collections.emptyMap()); + return new LibraryModulesSchemas(Collections.emptyMap()); } @@ -182,7 +177,7 @@ public final class LibraryModulesSchemas implements NetconfDeviceSchemas { } LOG.warn("{}: Unable to detect available schemas, get to {} was empty", deviceId, toId(ModulesState.QNAME)); - return new LibraryModulesSchemas(Collections.emptyMap()); + return new LibraryModulesSchemas(Collections.emptyMap()); } private static LibraryModulesSchemas create(final ContainerNode modulesStateNode) { @@ -226,7 +221,7 @@ public final class LibraryModulesSchemas implements NetconfDeviceSchemas { } catch (final IOException e) { LOG.warn("Unable to download yang library from {}", url, e); - return new LibraryModulesSchemas(Collections.emptyMap()); + return new LibraryModulesSchemas(Collections.emptyMap()); } } @@ -235,7 +230,7 @@ public final class LibraryModulesSchemas implements NetconfDeviceSchemas { return Optional.empty(); } final Optional> dataNode = - ((DataContainerNode) result).getChild(toId(NETCONF_DATA_QNAME)); + ((DataContainerNode) result).getChild(NETCONF_DATA_NODEID); if (dataNode.isPresent() == false) { return Optional.empty(); } @@ -260,7 +255,7 @@ public final class LibraryModulesSchemas implements NetconfDeviceSchemas { contentType.equals("application/json") ? readJson(in) : readXml(in); if (!optionalModulesStateNode.isPresent()) { - return new LibraryModulesSchemas(Collections.emptyMap()); + return new LibraryModulesSchemas(Collections.emptyMap()); } final NormalizedNode modulesStateNode = optionalModulesStateNode.get(); @@ -290,7 +285,7 @@ public final class LibraryModulesSchemas implements NetconfDeviceSchemas { return new LibraryModulesSchemas(schemasMapping.build()); } catch (final IOException e) { LOG.warn("Unable to download yang library from {}", connection.getURL(), e); - return new LibraryModulesSchemas(Collections.emptyMap()); + return new LibraryModulesSchemas(Collections.emptyMap()); } } @@ -382,7 +377,7 @@ public final class LibraryModulesSchemas implements NetconfDeviceSchemas { : QName.create(URI.create(moduleNameSpace), moduleName); try { - return Optional.>of(new AbstractMap.SimpleImmutableEntry<>( + return Optional.of(new AbstractMap.SimpleImmutableEntry<>( moduleQName, new URL(schemaUriAsString.get()))); } catch (final MalformedURLException e) { LOG.warn("Skipping library schema for {}. URL {} representing yang schema resource is not valid",