/******************************************************************************* * Copyright (c) 2011 GigaSpaces Technologies Ltd. All rights reserved * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the * specific language governing permissions and limitations under the License. *******************************************************************************/ package org.cloudifysource.domain.cloud; import org.cloudifysource.domain.internal.CloudifyDSLEntity; /******** * DSL POJO for template specific installer settings, like connection timeouts and retries. Uses sensible default - most * templates should not need to set this. * * @author barakme * @since 2.5.0 * */ @CloudifyDSLEntity(name = "installer", clazz = CloudTemplateInstallerConfiguration.class, allowInternalNode = true, allowRootNode = true, parent = "computeTemplate") public class CloudTemplateInstallerConfiguration { private static final int DEFAULT_ROUTE_RESOLUTION_TIMEOUT = 2 * 60 * 1000; // 2 minutes /***** * Default interval between consecutive connection attempts. */ public static final int DEFAULT_CONNECTION_RETRY_INTERVAL_MILLIS = 5000; /*** * Indicates that installer should use default port for protocol used. */ public static final int DEFAULT_PORT = -1; /*** * Number of file transfer retries before file transfer is considered failed. */ public static final int DEFAULT_FILE_TRANSFER_RETRIES = 3; /******** * Connection timeout for connection attempts. */ public static final int DEFAULT_CONNECTION_TIMEOUT = 10 * 1000; private int connectionTestRouteResolutionTimeoutMillis = DEFAULT_ROUTE_RESOLUTION_TIMEOUT; private int connectionTestIntervalMillis = DEFAULT_CONNECTION_RETRY_INTERVAL_MILLIS; private int connectionTestConnectTimeoutMillis = DEFAULT_CONNECTION_TIMEOUT; private int fileTransferConnectionTimeoutMillis = DEFAULT_CONNECTION_TIMEOUT; private int fileTransferRetries = DEFAULT_FILE_TRANSFER_RETRIES; private int fileTransferPort = DEFAULT_PORT; private int fileTransferConnectionRetryIntervalMillis = DEFAULT_CONNECTION_RETRY_INTERVAL_MILLIS; private int remoteExecutionPort = DEFAULT_PORT; private int remoteExecutionConnectionTimeoutMillis = DEFAULT_CONNECTION_TIMEOUT; public CloudTemplateInstallerConfiguration() { } /****** * Number of connection retries before file transfer is considered failed. Defaults to 3. * * @return number of retries. * */ public int getFileTransferRetries() { return fileTransferRetries; } public void setFileTransferRetries(final int fileTransferRetries) { this.fileTransferRetries = fileTransferRetries; } /********* * Port number to use for file transfer. Defaults to standard protocol port. * * @return port number for file transfer. */ public int getFileTransferPort() { return fileTransferPort; } public void setFileTransferPort(final int fileTransferPort) { this.fileTransferPort = fileTransferPort; } /********* * The port number for remote execution. Default to standard protocol port. * * @return the port number for remote exection. */ public int getRemoteExecutionPort() { return remoteExecutionPort; } /******* * File transfer connection timeout, in milliseconds. Default to 10 seconds. * * @return the file tranfer connection timeout. */ public int getFileTransferConnectionTimeoutMillis() { return fileTransferConnectionTimeoutMillis; } public void setFileTransferConnectionTimeoutMillis(final int fileTransferConnectionTimeoutMillis) { this.fileTransferConnectionTimeoutMillis = fileTransferConnectionTimeoutMillis; } public void setRemoteExecutionPort(final int remoteExecutionPort) { this.remoteExecutionPort = remoteExecutionPort; } /******* * Timeout for remote execution connection, in milliseconds. Defaults to 10 seconds. * * @return the timeout for remote execution connections. */ public int getRemoteExecutionConnectionTimeoutMillis() { return remoteExecutionConnectionTimeoutMillis; } /****** * Interval between consecutive file transfer connection attempts, in milliseconds. Defaults to 5 seconds. * * @return interval between connection attempts. */ public int getFileTransferConnectionRetryIntervalMillis() { return fileTransferConnectionRetryIntervalMillis; } public void setFileTransferConnectionRetryIntervalMillis(final int fileTransferConnectionRetryIntervalMillis) { this.fileTransferConnectionRetryIntervalMillis = fileTransferConnectionRetryIntervalMillis; } /******** * Connection test route resolution timeout in millis. Defaults to 2 minutes. * * @return router resolution timeout. */ public int getConnectionTestRouteResolutionTimeoutMillis() { return connectionTestRouteResolutionTimeoutMillis; } public void setConnectionTestRouteResolutionTimeoutMillis(final int connectionTestRouteResolutionTimeoutMillis) { this.connectionTestRouteResolutionTimeoutMillis = connectionTestRouteResolutionTimeoutMillis; } /******* * Connection test interval in millis. Defaults to 5 seconds. * * @return the connection test interval. */ public int getConnectionTestIntervalMillis() { return connectionTestIntervalMillis; } public void setConnectionTestIntervalMillis(final int connectionTestIntervalMillis) { this.connectionTestIntervalMillis = connectionTestIntervalMillis; } /********* * connection test connect timeout, in millis. Defaults to 10 seconds. * * @return connection test connect timeout. */ public int getConnectionTestConnectTimeoutMillis() { return connectionTestConnectTimeoutMillis; } public void setConnectionTestConnectTimeoutMillis(final int connectionTestConnectTimeoutMillis) { this.connectionTestConnectTimeoutMillis = connectionTestConnectTimeoutMillis; } public void setRemoteExecutionConnectionTimeoutMillis(final int remoteExecutionConnectionTimeoutMillies) { this.remoteExecutionConnectionTimeoutMillis = remoteExecutionConnectionTimeoutMillies; } }