/* * Copyright (c) 2013 Cisco Systems, Inc. and others. All rights reserved. * * This program and the accompanying materials are made available under the * 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.controller.netconf.persist.impl; import io.netty.channel.EventLoopGroup; import javax.annotation.concurrent.Immutable; import java.net.InetSocketAddress; import java.util.concurrent.TimeUnit; /** * Configuration properties for ConfigPusher. Contains delays and timeouts for netconf * connection establishment, netconf capabilities stabilization and configuration push. */ @Immutable public final class ConfigPusherConfiguration { public static final long DEFAULT_CONNECTION_ATTEMPT_TIMEOUT_MS = TimeUnit.SECONDS.toMillis(5); public static final int DEFAULT_CONNECTION_ATTEMPT_DELAY_MS = 5000; public static final int DEFAULT_NETCONF_SEND_MESSAGE_MAX_ATTEMPTS = 20; public static final int DEFAULT_NETCONF_SEND_MESSAGE_DELAY_MS = 1000; public static final long DEFAULT_NETCONF_CAPABILITIES_WAIT_TIMEOUT_MS = TimeUnit.MINUTES.toMillis(2); public static final int DEFAULT_NETCONF_PUSH_CONFIG_ATTEMPTS = 30; public static final long DEFAULT_NETCONF_PUSH_CONFIG_DELAY_MS = TimeUnit.MINUTES.toMillis(1); final InetSocketAddress netconfAddress; final EventLoopGroup eventLoopGroup; /** * Total time to wait for capability stabilization */ final long netconfCapabilitiesWaitTimeoutMs; /** * Delay between message send attempts */ final int netconfSendMessageDelayMs; /** * Total number attempts to send a message */ final int netconfSendMessageMaxAttempts; /** * Delay between connection establishment attempts */ final int connectionAttemptDelayMs; /** * Total number of attempts to perform connection establishment */ final long connectionAttemptTimeoutMs; /** * Total number of attempts to push configuration to netconf */ final int netconfPushConfigAttempts; /** * Delay between configuration push attempts */ final long netconfPushConfigDelayMs; ConfigPusherConfiguration(InetSocketAddress netconfAddress, long netconfCapabilitiesWaitTimeoutMs, int netconfSendMessageDelayMs, int netconfSendMessageMaxAttempts, int connectionAttemptDelayMs, long connectionAttemptTimeoutMs, EventLoopGroup eventLoopGroup, int netconfPushConfigAttempts, long netconfPushConfigDelayMs) { this.netconfAddress = netconfAddress; this.netconfCapabilitiesWaitTimeoutMs = netconfCapabilitiesWaitTimeoutMs; this.netconfSendMessageDelayMs = netconfSendMessageDelayMs; this.netconfSendMessageMaxAttempts = netconfSendMessageMaxAttempts; this.connectionAttemptDelayMs = connectionAttemptDelayMs; this.connectionAttemptTimeoutMs = connectionAttemptTimeoutMs; this.eventLoopGroup = eventLoopGroup; this.netconfPushConfigAttempts = netconfPushConfigAttempts; this.netconfPushConfigDelayMs = netconfPushConfigDelayMs; } }