Class BuildAgentConfigurationImpl
- java.lang.Object
-
- jetbrains.buildServer.agent.impl.config.BuildAgentConfigurationImpl
-
- All Implemented Interfaces:
AgentConfiguration,BuildAgentConfiguration,BuildAgentConfigurationEx,InternalPropertiesHolder
public class BuildAgentConfigurationImpl extends Object implements BuildAgentConfigurationEx, AgentConfiguration
- Author:
- Kir
-
-
Field Summary
Fields Modifier and Type Field Description static intOWN_PORT
-
Constructor Summary
Constructors Constructor Description BuildAgentConfigurationImpl(BuildAgentSystemInfo systemInfo, BuildParametersMapsFactory mapsFactory, AgentUnresolvedParametersFactory parametersFactory, BuildAgentConfigurablePaths paths, BuildAgentConfigurationWellKnownAgentProperties wellknown, BuildAgentConfigurationInitializer initializer, BuildAgentConfigurationPersister persister, BuildAgentConfigurationImplicitParameters parameters, AgentOperationModeHolder agentOperationModeHolder)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddAlternativeAgentAddress(String address)Adds alternative agent address that may be used by the server to communicate with agent.voidaddConfigurationParameter(String name, String value)Adds all-builds wide configuration parameter.voidaddCustomProperty(String name, String value)Adds new custom property to the configurationvoidaddEnvironmentVariable(String key, String value)Adds all-builds wide environment variable.voidaddSystemProperty(String key, String value)Adds all-builds wide system property.FilegetAgentConfDirectory()AgentContextExgetAgentContext()FilegetAgentHomeDirectory()FilegetAgentInfoFile()FilegetAgentLibDirectory()FilegetAgentLogsDirectory()Returns directory containing agent log filesFilegetAgentPluginsDirectory()FilegetAgentPluginsUnpackingInfoFile()FilegetAgentTempDirectory()Returns path to a folder underBuildAgentConfiguration.getTempDirectory().FilegetAgentToolsDirectory()Provides path to tools folder on build agent.FilegetAgentUpdateDirectory()FilegetAgentUpgradeFiltersFile()StringgetAgentZipName()Collection<String>getAlternativeAddresses()StringgetAuthorizationToken()Returns agent authorization token which should be used to authorize build agentBuildParametersMapgetBuildParameters()Returns build parameters.FilegetBuildTempDirectory()Returns path to a folder underBuildAgentConfiguration.getTempDirectory().FilegetCacheDirectory()Returns path to a folder underBuildAgentConfiguration.getTempDirectory()Temp directory for build agent instance is set to that folder.FilegetCacheDirectory(String key)Returns path to a folder under agent's system directory by a key.Map<String,String>getConfigurationParameters()Returns configuration parameters of this buildMap<String,String>getCustomProperties()Returns map of custom properties (defined in buildAgent.properties file and added by extensions).StringgetInternalProperty(String name, String def)StringgetName()Returns name of the agentAgentOperationModegetOperationMode()Returns agent's current operation mode.StringgetOwnAddress()Returns IP address where agent accepts commands from the serverintgetOwnPort()Returns port where agent accepts commands from the serverValueResolvergetParametersResolver()Creates value resolver for parameters resolution in strings.StringgetPingCode()Returns the code to be returned from the ping methodFilegetPropertiesFile()intgetServerConnectionTimeout()Returns connection timeout in seconds.SimpleCredentialsgetServerProxyCredentials()StringgetServerProxyHost()intgetServerProxyPort()StringgetServerUrl()Returns server URLFilegetSystemDirectory()Returns path to a folder containing all system caches.BuildAgentSystemInfogetSystemInfo()Returns agent jvm(system) informationFilegetTempDirectory()Returns path to temp directory: parent folder of agent temp directory and build temp directory By default it returns INSTALL_DIR/temp, but that may be changes in buildAgent.properties file.StringgetUpdateContentsXmlName()StringgetUpdatePluginsBasePath()FilegetVcsCheckoutdirStateFile(File checkoutDir)File[]getVcsCheckoutdirStateFiles()FilegetWorkDirectory()Returns path to AGENT_INSTALL_DIR/work directoryvoidinitFrom(File propertiesFile)Loads configuration from the properties filebooleanisAgentUpgradeWithoutRestartAllowed()booleanisLoadingToolsOnDemandAllowing()booleanisToolsRemovalWithoutRestartAllowed()booleanisUpgradeDisabled()Checks for system property that disables build agent upgradebooleanremoveConfigurationParameter(String name)Remove build agent configuration parameter added via @code(addConfigurationParameter) method.voidsetAuthorizationToken(String token)Changes agent authorization tokenvoidsetName(String name)Changes agent namevoidsetOwnPort(int ownPort)Changes agent portvoidsetServerUrl(String serverUrl)Sets new server URLvoidsetTempDir(String pathToTempDir)Sets new path to temp directoryvoidsetWorkDir(String pathToWorkDir)Sets new path to work directorybooleanshouldSkipPluginsHashCheck()voidupdateConfiguration(AgentRegistrationDetails details)Updates configuration to reflect changes from AgentRegistrationDetailsvoidvalidateParameters()Validated build agent configuration.
-
-
-
Field Detail
-
OWN_PORT
public static final int OWN_PORT
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
BuildAgentConfigurationImpl
public BuildAgentConfigurationImpl(@NotNull BuildAgentSystemInfo systemInfo, @NotNull BuildParametersMapsFactory mapsFactory, @NotNull AgentUnresolvedParametersFactory parametersFactory, @NotNull BuildAgentConfigurablePaths paths, @NotNull BuildAgentConfigurationWellKnownAgentProperties wellknown, @NotNull BuildAgentConfigurationInitializer initializer, @NotNull BuildAgentConfigurationPersister persister, @NotNull BuildAgentConfigurationImplicitParameters parameters, @NotNull AgentOperationModeHolder agentOperationModeHolder)
-
-
Method Detail
-
getCustomProperties
@NotNull public Map<String,String> getCustomProperties()
Description copied from interface:BuildAgentConfigurationReturns map of custom properties (defined in buildAgent.properties file and added by extensions). The property names are normally prefixed with env. and system.- Specified by:
getCustomPropertiesin interfaceBuildAgentConfiguration- Returns:
- map of custom properties
-
getConfigurationParameters
@NotNull public Map<String,String> getConfigurationParameters()
Description copied from interface:BuildAgentConfigurationReturns configuration parameters of this build- Specified by:
getConfigurationParametersin interfaceBuildAgentConfiguration- Returns:
- unmodifiable configuration parameters map
-
getParametersResolver
@NotNull public ValueResolver getParametersResolver()
Description copied from interface:BuildAgentConfigurationCreates value resolver for parameters resolution in strings. The resolution rules are the same as for build parameters- Specified by:
getParametersResolverin interfaceBuildAgentConfiguration- Returns:
- value resolver to perform resolution of all parameters references within string
-
getOperationMode
@NotNull public AgentOperationMode getOperationMode()
Description copied from interface:BuildAgentConfigurationReturns agent's current operation mode. SeeAgentOperationMode- Specified by:
getOperationModein interfaceBuildAgentConfiguration- Returns:
-
setWorkDir
public void setWorkDir(@NotNull String pathToWorkDir)Description copied from interface:BuildAgentConfigurationExSets new path to work directory- Specified by:
setWorkDirin interfaceBuildAgentConfigurationEx- Parameters:
pathToWorkDir- new path to work directory
-
getAuthorizationToken
@NotNull public String getAuthorizationToken()
Description copied from interface:BuildAgentConfigurationReturns agent authorization token which should be used to authorize build agent- Specified by:
getAuthorizationTokenin interfaceBuildAgentConfiguration- Returns:
- agent authorization token which should be used to authorize build agent
-
getPingCode
@NotNull public String getPingCode()
Description copied from interface:BuildAgentConfigurationReturns the code to be returned from the ping method- Specified by:
getPingCodein interfaceBuildAgentConfiguration- Returns:
- see above
-
updateConfiguration
public void updateConfiguration(@NotNull AgentRegistrationDetails details)Description copied from interface:BuildAgentConfigurationExUpdates configuration to reflect changes from AgentRegistrationDetails- Specified by:
updateConfigurationin interfaceBuildAgentConfigurationEx- Parameters:
details- server data
-
getInternalProperty
@Nullable public String getInternalProperty(@NotNull String name, String def)
- Specified by:
getInternalPropertyin interfaceInternalPropertiesHolder
-
isUpgradeDisabled
public boolean isUpgradeDisabled()
Description copied from interface:BuildAgentConfigurationExChecks for system property that disables build agent upgrade- Specified by:
isUpgradeDisabledin interfaceBuildAgentConfigurationEx- Returns:
- true if upgrade is disabled
-
getServerConnectionTimeout
public int getServerConnectionTimeout()
Description copied from interface:BuildAgentConfigurationReturns connection timeout in seconds. This timeout should be specified to all HTTP connections to the server.- Specified by:
getServerConnectionTimeoutin interfaceAgentConfiguration- Specified by:
getServerConnectionTimeoutin interfaceBuildAgentConfiguration- Returns:
- see above.
-
addAlternativeAgentAddress
public void addAlternativeAgentAddress(@NotNull String address)Description copied from interface:BuildAgentConfigurationAdds alternative agent address that may be used by the server to communicate with agent.- Specified by:
addAlternativeAgentAddressin interfaceBuildAgentConfiguration- Parameters:
address- ip address
-
getAlternativeAddresses
@NotNull public Collection<String> getAlternativeAddresses()
- Specified by:
getAlternativeAddressesin interfaceBuildAgentConfigurationEx- Returns:
- a list of plugin provided own addresses.
-
getAgentContext
@NotNull public AgentContextEx getAgentContext()
- Specified by:
getAgentContextin interfaceBuildAgentConfigurationEx- Returns:
- agent parameters context
-
getAgentInfoFile
@NotNull public File getAgentInfoFile()
- Specified by:
getAgentInfoFilein interfaceAgentConfiguration- Specified by:
getAgentInfoFilein interfaceBuildAgentConfigurationEx- Returns:
- teamcity-agent.xml file path
-
getAgentPluginsUnpackingInfoFile
@NotNull public File getAgentPluginsUnpackingInfoFile()
- Specified by:
getAgentPluginsUnpackingInfoFilein interfaceAgentConfiguration- Specified by:
getAgentPluginsUnpackingInfoFilein interfaceBuildAgentConfigurationEx- Returns:
- file where agent manager stores information about unpacked plugins location
-
getAgentUpgradeFiltersFile
@NotNull public File getAgentUpgradeFiltersFile()
- Specified by:
getAgentUpgradeFiltersFilein interfaceAgentConfiguration- Specified by:
getAgentUpgradeFiltersFilein interfaceBuildAgentConfigurationEx- Returns:
- path to a file that accepts agent upgrade configuration
-
getVcsCheckoutdirStateFile
@NotNull public File getVcsCheckoutdirStateFile(@NotNull File checkoutDir)
- Specified by:
getVcsCheckoutdirStateFilein interfaceBuildAgentConfigurationEx- Returns:
- xml file containing vcs revision information for provided directory (must be checkout directory of one or more configurations).
-
getVcsCheckoutdirStateFiles
@NotNull public File[] getVcsCheckoutdirStateFiles()
- Specified by:
getVcsCheckoutdirStateFilesin interfaceBuildAgentConfigurationEx- Returns:
- array of xml files with vcs revision informations available on current agent
-
validateParameters
public void validateParameters() throws BuildAgentStartFailedExceptionDescription copied from interface:BuildAgentConfigurationExValidated build agent configuration.- Specified by:
validateParametersin interfaceBuildAgentConfigurationEx- Throws:
BuildAgentStartFailedException- if validation is failed
-
getServerProxyHost
@Nullable public String getServerProxyHost()
- Specified by:
getServerProxyHostin interfaceAgentConfiguration- Specified by:
getServerProxyHostin interfaceBuildAgentConfigurationEx- Returns:
- proxy host that should be used for connections to TeamCity Server, or null of no proxy should be used
-
getServerProxyPort
public int getServerProxyPort()
- Specified by:
getServerProxyPortin interfaceAgentConfiguration- Specified by:
getServerProxyPortin interfaceBuildAgentConfigurationEx- Returns:
- proxy port that should be used for connections to TeamCity Server, or -1 if default port should be used.
- See Also:
BuildAgentConfigurationEx.getServerProxyHost()
-
getServerProxyCredentials
@Nullable public SimpleCredentials getServerProxyCredentials()
- Specified by:
getServerProxyCredentialsin interfaceAgentConfiguration- Specified by:
getServerProxyCredentialsin interfaceBuildAgentConfigurationEx- Returns:
- proxy login/password pair that should be used for connection to TeamCity Server, or null if proxy doesn't requre authentication
- See Also:
BuildAgentConfigurationEx.getServerProxyHost()
-
setTempDir
public void setTempDir(@NotNull String pathToTempDir)Description copied from interface:BuildAgentConfigurationExSets new path to temp directory- Specified by:
setTempDirin interfaceBuildAgentConfigurationEx- Parameters:
pathToTempDir- new path to temp directory
-
getSystemInfo
@NotNull public BuildAgentSystemInfo getSystemInfo()
Description copied from interface:BuildAgentConfigurationReturns agent jvm(system) information- Specified by:
getSystemInfoin interfaceBuildAgentConfiguration- Returns:
- agent jvm(system) information
-
getWorkDirectory
@NotNull public File getWorkDirectory()
Description copied from interface:BuildAgentConfigurationReturns path to AGENT_INSTALL_DIR/work directory- Specified by:
getWorkDirectoryin interfaceBuildAgentConfiguration- Returns:
- see above
-
getTempDirectory
@NotNull public File getTempDirectory()
Description copied from interface:BuildAgentConfigurationReturns path to temp directory: parent folder of agent temp directory and build temp directory By default it returns INSTALL_DIR/temp, but that may be changes in buildAgent.properties file.- Specified by:
getTempDirectoryin interfaceAgentConfiguration- Specified by:
getTempDirectoryin interfaceBuildAgentConfiguration- Returns:
- see above
-
getSystemDirectory
@NotNull public File getSystemDirectory()
Description copied from interface:BuildAgentConfigurationReturns path to a folder containing all system caches.- Specified by:
getSystemDirectoryin interfaceBuildAgentConfiguration- Returns:
- see above
-
getBuildTempDirectory
@NotNull public File getBuildTempDirectory()
Description copied from interface:BuildAgentConfigurationReturns path to a folder underBuildAgentConfiguration.getTempDirectory(). This folder is cleaned before build is started.- Specified by:
getBuildTempDirectoryin interfaceBuildAgentConfiguration- Returns:
- see above
-
getAgentTempDirectory
@NotNull public File getAgentTempDirectory()
Description copied from interface:BuildAgentConfigurationReturns path to a folder underBuildAgentConfiguration.getTempDirectory(). This folder is cleaned before build is started.- Specified by:
getAgentTempDirectoryin interfaceBuildAgentConfiguration- Returns:
- file to agent's temp dir. All temp files of agent should be put under that folder
-
getAgentToolsDirectory
@NotNull public File getAgentToolsDirectory()
Description copied from interface:BuildAgentConfigurationProvides path to tools folder on build agent. Returned folder is an existing path on the disk.- Specified by:
getAgentToolsDirectoryin interfaceAgentConfiguration- Specified by:
getAgentToolsDirectoryin interfaceBuildAgentConfiguration- Returns:
- path to agent tools folder
-
getCacheDirectory
@NotNull public File getCacheDirectory()
Description copied from interface:BuildAgentConfigurationExReturns path to a folder underBuildAgentConfiguration.getTempDirectory()Temp directory for build agent instance is set to that folder. This folder is cleaned on build agent start. The same values is set to java.io.tmpdir system property- Specified by:
getCacheDirectoryin interfaceBuildAgentConfigurationEx- Returns:
- see above
-
getCacheDirectory
@NotNull public File getCacheDirectory(@NotNull String key)
Description copied from interface:BuildAgentConfigurationReturns path to a folder under agent's system directory by a key. It is guaranteed the folder exists. Use this folder to store some persistent data on the agent. Note: No cleaning is performed by the agent!- Specified by:
getCacheDirectoryin interfaceBuildAgentConfiguration- Parameters:
key- plugin unique key- Returns:
- path to a directory
-
getServerUrl
@NonNls public String getServerUrl()
Description copied from interface:BuildAgentConfigurationReturns server URL- Specified by:
getServerUrlin interfaceAgentConfiguration- Specified by:
getServerUrlin interfaceBuildAgentConfiguration- Returns:
- server URL
-
addCustomProperty
public void addCustomProperty(@NotNull String name, @NotNull String value)Description copied from interface:BuildAgentConfigurationAdds new custom property to the configuration- Specified by:
addCustomPropertyin interfaceBuildAgentConfiguration- Parameters:
name- property namevalue- property value
-
addConfigurationParameter
public void addConfigurationParameter(@NotNull String name, @NotNull String value)Description copied from interface:BuildAgentConfigurationAdds all-builds wide configuration parameter. Modifications will be available for all builds on this agent- Specified by:
addConfigurationParameterin interfaceBuildAgentConfiguration- Parameters:
name- namevalue- value
-
removeConfigurationParameter
public boolean removeConfigurationParameter(@NotNull String name)Description copied from interface:BuildAgentConfigurationRemove build agent configuration parameter added via @code(addConfigurationParameter) method. Will not remove parameter specified in buildAgent.properties file.- Specified by:
removeConfigurationParameterin interfaceBuildAgentConfiguration- Parameters:
name- name- Returns:
- true if parameter was actually deleted, false otherwise (e.g parameter doesn't exist or is specified in buildAgent.properties file)
-
getOwnPort
public int getOwnPort()
Description copied from interface:BuildAgentConfigurationReturns port where agent accepts commands from the server- Specified by:
getOwnPortin interfaceBuildAgentConfiguration- Returns:
- see above
-
getOwnAddress
public String getOwnAddress()
Description copied from interface:BuildAgentConfigurationReturns IP address where agent accepts commands from the server- Specified by:
getOwnAddressin interfaceBuildAgentConfiguration- Returns:
- see above
-
initFrom
public void initFrom(File propertiesFile)
Description copied from interface:BuildAgentConfigurationExLoads configuration from the properties file- Specified by:
initFromin interfaceBuildAgentConfigurationEx- Parameters:
propertiesFile- properties file
-
getPropertiesFile
public File getPropertiesFile()
-
getName
public String getName()
Description copied from interface:BuildAgentConfigurationReturns name of the agent- Specified by:
getNamein interfaceBuildAgentConfiguration- Returns:
- name of the agent
-
setServerUrl
public void setServerUrl(String serverUrl)
Description copied from interface:BuildAgentConfigurationExSets new server URL- Specified by:
setServerUrlin interfaceBuildAgentConfigurationEx- Parameters:
serverUrl- server URL
-
setOwnPort
public void setOwnPort(int ownPort)
Description copied from interface:BuildAgentConfigurationExChanges agent port- Specified by:
setOwnPortin interfaceBuildAgentConfigurationEx- Parameters:
ownPort- port
-
setName
public void setName(String name)
Description copied from interface:BuildAgentConfigurationExChanges agent name- Specified by:
setNamein interfaceBuildAgentConfigurationEx- Parameters:
name- agent name
-
setAuthorizationToken
public void setAuthorizationToken(@NotNull String token)Description copied from interface:BuildAgentConfigurationExChanges agent authorization token- Specified by:
setAuthorizationTokenin interfaceBuildAgentConfigurationEx- Parameters:
token- agent authorization token
-
shouldSkipPluginsHashCheck
public boolean shouldSkipPluginsHashCheck()
- Specified by:
shouldSkipPluginsHashCheckin interfaceAgentConfiguration
-
isLoadingToolsOnDemandAllowing
public boolean isLoadingToolsOnDemandAllowing()
- Specified by:
isLoadingToolsOnDemandAllowingin interfaceAgentConfiguration- Specified by:
isLoadingToolsOnDemandAllowingin interfaceBuildAgentConfigurationEx- Returns:
- true if agent can download tools which support loading on demand at runtime, false otherwise
-
isAgentUpgradeWithoutRestartAllowed
public boolean isAgentUpgradeWithoutRestartAllowed()
- Specified by:
isAgentUpgradeWithoutRestartAllowedin interfaceAgentConfiguration
-
isToolsRemovalWithoutRestartAllowed
public boolean isToolsRemovalWithoutRestartAllowed()
- Specified by:
isToolsRemovalWithoutRestartAllowedin interfaceAgentConfiguration
-
addEnvironmentVariable
public void addEnvironmentVariable(@NotNull String key, @NotNull String value)Description copied from interface:BuildAgentConfigurationAdds all-builds wide environment variable. Creates build parameters withConstants.ENV_PREFIXprefix Note, on Windows machines environment size can be limited. Modifications will be available for all builds on this agent- Specified by:
addEnvironmentVariablein interfaceBuildAgentConfiguration- Parameters:
key- name (without the "env." prefix), may be case sensitive or not depending on OSvalue- value
-
addSystemProperty
public void addSystemProperty(@NotNull String key, @NotNull String value)Description copied from interface:BuildAgentConfigurationAdds all-builds wide system property. Creates build parameters withConstants.SYSTEM_PREFIXprefix Modifications will be available for all builds on this agent- Specified by:
addSystemPropertyin interfaceBuildAgentConfiguration- Parameters:
key- property name (without the "system." prefix)value- property value
-
getBuildParameters
@NotNull public BuildParametersMap getBuildParameters()
Description copied from interface:BuildAgentConfigurationReturns build parameters. Some of values may not be fully resolved.- Specified by:
getBuildParametersin interfaceBuildAgentConfiguration- Returns:
- build-wide build parameters
-
getAgentConfDirectory
@NotNull public File getAgentConfDirectory()
- Specified by:
getAgentConfDirectoryin interfaceBuildAgentConfigurationEx- Returns:
- path to agent conf directory
-
getAgentLibDirectory
@NotNull public File getAgentLibDirectory()
- Specified by:
getAgentLibDirectoryin interfaceBuildAgentConfiguration- Returns:
- returns path to agent's lib dir
-
getAgentPluginsDirectory
@NotNull public File getAgentPluginsDirectory()
- Specified by:
getAgentPluginsDirectoryin interfaceAgentConfiguration- Specified by:
getAgentPluginsDirectoryin interfaceBuildAgentConfiguration- Returns:
- path to agent's plugins dir
-
getAgentUpdateDirectory
@NotNull public File getAgentUpdateDirectory()
- Specified by:
getAgentUpdateDirectoryin interfaceAgentConfiguration- Specified by:
getAgentUpdateDirectoryin interfaceBuildAgentConfiguration- Returns:
- path to agent's update dir
-
getAgentHomeDirectory
@NotNull public File getAgentHomeDirectory()
- Specified by:
getAgentHomeDirectoryin interfaceAgentConfiguration- Specified by:
getAgentHomeDirectoryin interfaceBuildAgentConfiguration- Returns:
- path to agent home
-
getAgentLogsDirectory
@NotNull public File getAgentLogsDirectory()
Description copied from interface:BuildAgentConfigurationReturns directory containing agent log files- Specified by:
getAgentLogsDirectoryin interfaceBuildAgentConfiguration- Returns:
- directory containing agent log files
-
getAgentZipName
@NotNull public String getAgentZipName()
- Specified by:
getAgentZipNamein interfaceAgentConfiguration
-
getUpdateContentsXmlName
@NotNull public String getUpdateContentsXmlName()
- Specified by:
getUpdateContentsXmlNamein interfaceAgentConfiguration
-
getUpdatePluginsBasePath
@NotNull public String getUpdatePluginsBasePath()
- Specified by:
getUpdatePluginsBasePathin interfaceAgentConfiguration
-
-