X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=netconf%2Fnetconf-topology-singleton%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fnetconf%2Ftopology%2Fsingleton%2Fimpl%2Futils%2FNetconfTopologyUtils.java;h=eba7cde7c7a7b98b10c1c9333451acb283bf4a25;hb=90dcdd5d040eb22b74e87baccffd70a30d93bfc0;hp=5114faecd2ee25c035698f26a53240efd5728f14;hpb=77eb72cb594acdcf302a9a49aeb9ced8281bab8c;p=netconf.git diff --git a/netconf/netconf-topology-singleton/src/main/java/org/opendaylight/netconf/topology/singleton/impl/utils/NetconfTopologyUtils.java b/netconf/netconf-topology-singleton/src/main/java/org/opendaylight/netconf/topology/singleton/impl/utils/NetconfTopologyUtils.java index 5114faecd2..eba7cde7c7 100644 --- a/netconf/netconf-topology-singleton/src/main/java/org/opendaylight/netconf/topology/singleton/impl/utils/NetconfTopologyUtils.java +++ b/netconf/netconf-topology-singleton/src/main/java/org/opendaylight/netconf/topology/singleton/impl/utils/NetconfTopologyUtils.java @@ -5,17 +5,10 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ - package org.opendaylight.netconf.topology.singleton.impl.utils; -import akka.cluster.Member; -import akka.util.Timeout; -import java.io.File; -import java.math.BigDecimal; -import java.net.InetSocketAddress; +import org.opendaylight.netconf.api.DocumentedException; import org.opendaylight.netconf.sal.connect.util.RemoteDeviceId; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress; -import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.NetconfNode; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NetworkTopology; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.TopologyId; @@ -26,74 +19,37 @@ import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology. import org.opendaylight.yangtools.yang.binding.Identifier; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.opendaylight.yangtools.yang.binding.KeyedInstanceIdentifier; -import org.opendaylight.yangtools.yang.model.repo.api.SchemaContextFactory; -import org.opendaylight.yangtools.yang.model.repo.api.SchemaSourceFilter; -import org.opendaylight.yangtools.yang.model.repo.api.YangTextSchemaSource; -import org.opendaylight.yangtools.yang.model.repo.util.FilesystemSchemaSourceCache; -import org.opendaylight.yangtools.yang.parser.repo.SharedSchemaRepository; -import scala.concurrent.duration.Duration; - -public class NetconfTopologyUtils { - - private static final String DEFAULT_SCHEMA_REPOSITORY_NAME = "sal-netconf-connector"; - - public static final Timeout TIMEOUT = new Timeout(Duration.create(10, "seconds")); +import org.opendaylight.yangtools.yang.common.Decimal64; +import org.opendaylight.yangtools.yang.common.ErrorSeverity; +import org.opendaylight.yangtools.yang.common.ErrorTag; +import org.opendaylight.yangtools.yang.common.ErrorType; +public final class NetconfTopologyUtils { public static final long DEFAULT_REQUEST_TIMEOUT_MILLIS = 60000L; public static final int DEFAULT_KEEPALIVE_DELAY = 0; public static final boolean DEFAULT_RECONNECT_ON_CHANGED_SCHEMA = false; + public static final boolean DEFAULT_IS_TCP_ONLY = false; public static final int DEFAULT_CONCURRENT_RPC_LIMIT = 0; public static final int DEFAULT_MAX_CONNECTION_ATTEMPTS = 0; public static final int DEFAULT_BETWEEN_ATTEMPTS_TIMEOUT_MILLIS = 2000; public static final long DEFAULT_CONNECTION_TIMEOUT_MILLIS = 20000L; - public static final BigDecimal DEFAULT_SLEEP_FACTOR = new BigDecimal(1.5); - - - // The default cache directory relative to CACHE_DIRECTORY - - public static final String DEFAULT_CACHE_DIRECTORY = "schema"; - - // Filesystem based caches are stored relative to the cache directory. - public static final String CACHE_DIRECTORY = "cache"; + public static final Decimal64 DEFAULT_SLEEP_FACTOR = Decimal64.valueOf("1.5"); - // The qualified schema cache directory cache/schema - public static final String QUALIFIED_DEFAULT_CACHE_DIRECTORY = - CACHE_DIRECTORY + File.separator + DEFAULT_CACHE_DIRECTORY; - - // The default schema repository in the case that one is not specified. - public static final SharedSchemaRepository DEFAULT_SCHEMA_REPOSITORY = - new SharedSchemaRepository(DEFAULT_SCHEMA_REPOSITORY_NAME); - - - // The default FilesystemSchemaSourceCache, which stores cached files in cache/schema. - public static final FilesystemSchemaSourceCache DEFAULT_CACHE = - new FilesystemSchemaSourceCache<>(DEFAULT_SCHEMA_REPOSITORY, YangTextSchemaSource.class, - new File(QUALIFIED_DEFAULT_CACHE_DIRECTORY)); - - // The default factory for creating SchemaContext instances. - public static final SchemaContextFactory DEFAULT_SCHEMA_CONTEXT_FACTORY = - DEFAULT_SCHEMA_REPOSITORY.createSchemaContextFactory(SchemaSourceFilter.ALWAYS_ACCEPT); - - public static RemoteDeviceId createRemoteDeviceId(final NodeId nodeId, final NetconfNode node) { - IpAddress ipAddress = node.getHost().getIpAddress(); - InetSocketAddress address = new InetSocketAddress(ipAddress.getIpv4Address() != null - ? ipAddress.getIpv4Address().getValue() : ipAddress.getIpv6Address().getValue(), - node.getPort().getValue()); - return new RemoteDeviceId(nodeId.getValue(), address); + private NetconfTopologyUtils() { + // Hidden on purpose } - public static String createActorPath(String masterMember, String name) { + public static String createActorPath(final String masterMember, final String name) { return masterMember + "/user/" + name; } - public static String createMasterActorName(String name, String masterAddress) { - return masterAddress.replaceAll("//", "") + "_" + name; + public static String createMasterActorName(final String name, final String masterAddress) { + return masterAddress.replace("//", "") + "_" + name; } public static NodeId getNodeId(final InstanceIdentifier.PathArgument pathArgument) { - if (pathArgument instanceof InstanceIdentifier.IdentifiableItem) { - - final Identifier key = ((InstanceIdentifier.IdentifiableItem) pathArgument).getKey(); + if (pathArgument instanceof InstanceIdentifier.IdentifiableItem) { + final Identifier key = ((InstanceIdentifier.IdentifiableItem) pathArgument).getKey(); if (key instanceof NodeKey) { return ((NodeKey) key).getNodeId(); } @@ -106,7 +62,8 @@ public class NetconfTopologyUtils { return networkTopology.child(Topology.class, new TopologyKey(new TopologyId(topologyId))); } - public static InstanceIdentifier createTopologyNodeListPath(final NodeKey key, final String topologyId) { + public static KeyedInstanceIdentifier createTopologyNodeListPath(final NodeKey key, + final String topologyId) { return createTopologyListPath(topologyId) .child(Node.class, new NodeKey(new NodeId(key.getNodeId().getValue()))); } @@ -114,4 +71,9 @@ public class NetconfTopologyUtils { public static InstanceIdentifier createTopologyNodePath(final String topologyId) { return createTopologyListPath(topologyId).child(Node.class); } + + public static DocumentedException createMasterIsDownException(final RemoteDeviceId id, final Exception cause) { + return new DocumentedException(id + ":Master is down. Please try again.", cause, + ErrorType.APPLICATION, ErrorTag.OPERATION_FAILED, ErrorSeverity.WARNING); + } }