Skip to content
Snippets Groups Projects
Configurations.md 6.79 KiB
Newer Older
Armin Costa's avatar
Armin Costa committed
# Configuration #


Armin Costa's avatar
Armin Costa committed
## Startup configuration ##
Armin Costa's avatar
Armin Costa committed
The DES startup configuration contains initialization variables that are loaded at DES startup or restart
Armin Costa's avatar
Armin Costa committed
 
### Parameters ###
 
  
[System]  
Armin Costa's avatar
Armin Costa committed
**RDS_ID** DES identifier (ex. DES_yourID@yourdomain.org)  
Armin Costa's avatar
Armin Costa committed
**RDS_HOME** HOME directory of DES  
**CONFIG_FILE_PATH** Path where processor configuration files are located ( $PROCESSOR.processor_config.xml)  
**LOGS_PATH** STOUT print to stdout | LOG4J : use log4j2| Path of the log file dir (ending with / , ex: ./testdata/logs/ ) directory will be created  
**BASE_PATH** Basepath at which logical directory tree starts: $BASE_PATH/$AoiName/$ProcessorName  
**STAMPS_PATH** Directory for Stamp files  
**COMPILECODE_PATH** Temporary directory where class files are compiled on the fly. Content will be deleted at every restart  
**MAX_PROCESSOR_THREADS** Max processor Threads  
**MAX_AOI_THREADS** Max Threads per AOI  
**MAX_AOI_TASKGROUP_THREADS** Max Threads per TaskGroup  
**AOI_THREAD_SLEEP** Time interval for AOI Thread   
**MAX_NR_FILTER_FILES** Max number of files filtered in each iteration  
**DEBUG** Write to log files  
**STDOUT_STDERR** Print Tasks output streams to STDOUT/STDERR)  
[DB]  
**USE_STATUS_DB** Enable Task status logging in DB  
**DB_SERVER** = Database server  
**DB_DATABASE** = Database name  
**DB_PORT** = Database port  
**DB_USER** = Database user  
**DB_PWD** Database password  
[Mail]  
**FROM_EMAIL** e-mail for delivery  
**SMTP** = URL for SMTP  
**SMTP_PORT** Port for SMTP   
[Plugin]  
**CONFIG_PLUGIN** Configuration file for Plugins. Java class variable: DistributionServerConfig.CONFIG_PLUGIN    
 
Armin Costa's avatar
Armin Costa committed
### Sample configuration
Armin Costa's avatar
Armin Costa committed
```
[System]
RDS_ID=DES_YOURIDC@yourdomain.org
RDS_HOME=/DES
CONFIG_FILE_PATH=./test_data/config/
LOGS_PATH=LOG4J
BASE_PATH=./test_data/data/
STAMPS_PATH=./test_data/stamps
COMPILECODE_PATH=./test_data/tmp
MAX_PROCESSOR_THREADS=50
MAX_AOI_THREADS=50
MAX_AOI_TASKGROUP_THREADS=50
AOI_THREAD_SLEEP=10000
MAX_NR_FILTER_FILES=5
DEBUG=true
STDOUT_STDERR=false
[DB]
USE_STATUS_DB=false
DB_SERVER=server.yourdomain
DB_DATABASE=des
DB_PORT=5432
DB_USER=user
DB_PWD=pwd
[Mail]
FROM_EMAIL=des@yourdomain.org
SMTP=mailsubmit.yourdomain.org
SMTP_PORT=25
[Plugin]
CONFIG_PLUGIN=./plugins/plugin.ini
```
Armin Costa's avatar
Armin Costa committed
## Processors
  
  
The DES executes concurrently a given set of *Processor* definition files that are defined in XML format.
A *Processor* configuraiton file ( *.processor_config.xml ) is the main executable entity for the DES. 
 
- There can be 1 - n *Processor* configuration files running on a given DES instance. 
- Each processor configuration file can have 1 - n *AOI* (Areas Of Interest).
- Each *AOI* can have 1 - n functional entities (*Distribution, Download, DataCleaner, Task, TaskGroup*) 
- The same xml format is used also by EGPF (Eurac Generic Processor Framework)


Armin Costa's avatar
Armin Costa committed
A typical DES *Processor" may have the following layout:
```xml
<EURAC_GENERIC_P>
	<Processing>
		<AOI name="myAOI" active="yes">
Armin Costa's avatar
Armin Costa committed
			<!-- Download data -->
			<Download type="sftp" active="yes" priority="NORM">
				...
			</Download>

			<!-- Process data -->
			<TaskGroup name="processAOI" type="serial" active="yes" priority="NORM">
				<Task name="task1" type="class" active="yes" priority="NORM">
					...
				</Task>
				<Task name="task2" type="class" active="yes" priority="NORM">
					...
				</Task>
			</TaskGroup>

			<!-- Distribute data -->
			<Distribution type="sftp" active="yes" priority="NORM">
				...
			</Distribution>
		</AOI>
	</Processing>
</EURAC_GENERIC_P>
```

Armin Costa's avatar
Armin Costa committed
The *Processor* configuration options available are documented here:
 
 
Armin Costa's avatar
Armin Costa committed
https://gitlab.inf.unibz.it/css-public/des_documentation/blob/master/Processors.md
Armin Costa's avatar
Armin Costa committed
## Authentication configuration file ##
Armin Costa's avatar
Armin Costa committed
Authentication parameters used in the operations **<Distribution>** and **<Download>** are stored within the file :

**DistributionAuth.xml:** ./config/DistributionAuth.xml
Armin Costa's avatar
Armin Costa committed
Sample entry:

```xml
<Auth>
	<AuthRef name="testuser@server.yourdomain" active="yes">
		<Host>server.yourdomain</Host>
		<User>testuser</User>
		<Pwd>test</Pwd>
		<Param>nativejava</Param>
	</AuthRef>
</Auth>
```
Armin Costa's avatar
Armin Costa committed
In the DES processor operation declarations the authentication entry can be references as follows: 

```xml
<consumer name="testuser@server.yourdomain" active="yes">
	<ProductType>*.txt</ProductType>
	<EMail>notifymail@yourdomain</EMail>
	<NotifyEmail>false</NotifyEmail>
	<Recursive>true</Recursive>
</Consumer>
```
Armin Costa's avatar
Armin Costa committed
### Built-in variables
Armin Costa's avatar
Armin Costa committed
Inside a *Processor* definition configuration file some build-in parameter can be used to abstract some configurations. 
Armin Costa's avatar
Armin Costa committed
The build-in parameters are replaced at runtime in all <Parameter> and in all custom tags (eg. *$DAY*)
Armin Costa's avatar
Armin Costa committed
  
*$BASEPATH* The base path variable configured in *DES.ini*
Armin Costa's avatar
Armin Costa committed
*$AOI* The name of the executing *AOI*
Armin Costa's avatar
Armin Costa committed
*$PROCESSOR* The name of the executing *Processor*
Armin Costa's avatar
Armin Costa committed
*$CWD* The current working directory, that expands to *$BASEPATH/$AOI/$PROCESSOR*
Armin Costa's avatar
Armin Costa committed
*$STAMPS_PATH* The path for Stamp files configured in *DES.ini*
Armin Costa's avatar
Armin Costa committed
*$FILE* Iff *<FileType>* is configured, references the current File being processed (*<ProductType>* is deprecated but still valid for backward compatibility)
Armin Costa's avatar
Armin Costa committed
*$YEAR* The current year
Armin Costa's avatar
Armin Costa committed
*$MONTH* The current month
Armin Costa's avatar
Armin Costa committed
*$DAY* The current day
Armin Costa's avatar
Armin Costa committed
## Start a DES instance ##
Armin Costa's avatar
Armin Costa committed
1.	Edit the ./config/DES.ini to fit your environment
Armin Costa's avatar
Armin Costa committed
2.	Create the set of *.processor_config.xml files that you want to run and place them in the path CONFIG_FILE_PATH as defined in DistributionServer.ini config file 
3.	Choose a suitable operation mode
Armin Costa's avatar
Armin Costa committed
print program arguments:
```
java -jar DES.jar –h
```
Armin Costa's avatar
Armin Costa committed
### Operation modes ###
Armin Costa's avatar
Armin Costa committed
1) Start a DES instance with default configuration defined in DES.ini and run all Processors (*.processor_config.xml files) located in CONFIG_PATH 
 
Armin Costa's avatar
Armin Costa committed
```
java -jar DES.jar
```
Armin Costa's avatar
Armin Costa committed
2) Start a DES instance with default configuration defined in DES.ini and run a single Processor
 
Armin Costa's avatar
Armin Costa committed
```
java -jar DES.jar -p yourtest.processor_config.xml
```
Armin Costa's avatar
Armin Costa committed
3) Start a DES instance with a different configuration (eg. DES_test.ini) and run all Processors (*.processor_config.xml files) located in CONFIG_PATH
 
Armin Costa's avatar
Armin Costa committed
```
java -jar DES.jar -c ./config/DES_test.ini
```
Armin Costa's avatar
Armin Costa committed
4) Start a DES instance with a different configuration (eg. DES_test.ini) and run a given Processor
 
Armin Costa's avatar
Armin Costa committed
```
java -jar DES.jar -c ./config/DES_test.ini -p yourtest.processor_config.xml
```
Armin Costa's avatar
Armin Costa committed
### Passing command line startup variables to be referenced in DES Processor  ###  
 
 
Custom arguments can be passed to the startup command line
Armin Costa's avatar
Armin Costa committed
```
java -jar DES.jar -v HOSTNAME=des.yourdomain -v IP=192.168.2.2
```
Armin Costa's avatar
Armin Costa committed
The defined variables can than be referenced in a given Processor definition with the '@' reference (eg. @HOSTNAME)
Armin Costa's avatar
Armin Costa committed
```xml
<Task name="testCmd" type="cmd" active="no" priority="NORM">
	<EMail>support.rs@eurac.edu</EMail>
	<NotifyEmail>false</NotifyEmail>
	<Command>ping</Command>
	<Parameter>@HOSTNAME</Parameter>
</Task>
```