Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Status
colourYellow
titleIn Progress

Table of Contents

Scope

  • YADE implements a Virtual File System that supports a number of data providers, e.g. SMB/CIFS protocol implementation by Samba JCifs, SFTP protocol implemented by JSch library.
  • Data providers can make use of individual Java properties, e.g. 
    • for SMB/CIFS to specify compatibility levels for authentication with NTLMv2 and newer
    or
    • for SFTP to specify packet compression to zlib, compression level 9 or
    Cipher
    • specific ciphers such as blowfish-cbc,
    aes192
    • aes128-ctr etc.
  • YADE allows to specify Java property System Property files at a global level and individually per file transfer fragment.
    • Jira
      serverSOS JIRA
      columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
      serverId6dc67751-9d67-34cd-985b-194a8cdc9602
      keyYADE-400
    • Properties from Java property files properties are applied as system properties System Properties by YADE.
  • YADE allows to specify Java Application Property files as configuration files that are applied individually per file transfer fragment.
    • Jira
      serverSOS JIRA
      columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
      serverId6dc67751-9d67-34cd-985b-194a8cdc9602
      keyYADE-403
    • An application configuration file contains settings that are specific to an app/Java properties are applied as Application Properties from configuration files. Such properties are specific for a data provider.

YADE Java System Property

...

Files

YADE Configuration by System Property

...

Files

The Java properties configured using the system_property_files options are global properties available to all protocol fragments. The system_property_files option can be assign assigned a semicolon separated list of property files. A property file can contain on one or more properties as key value pairs.

Example

Sample System Properties

Following is the example of such a System Property File which contains global are two examples of such  system property files that contain global Java properties for a data providersprovider. One System Property File system property file can also contain properties for multiple data provider. The providers. At run-time the YADE will apply automatically apply applicable properties to the respective data provider, e.g. SFTP properties to the JSch data provider and SMB properties to the JCifs data provider. 

  • sftp_system_.properties.ini

    Code Block
    languagebash
    titleSystemProperyFile System Propery File sftp_system_.proprerties.in
    # SFTP properties
    known_hosts=/home/gollum.sos/.ssh/known_hosts
    remote_exec=true
  • smb_system_.properties.ini

    Code Block
    languagebash
    titleSystemProperyFile System Propery File smb_system_.properties.ini
    # SMB properties
    jcifs.smb.client.useExtendedSecurity=false

Sample YADE Configuration

...

Code Block
Description 

...

  1. Globals section 
  2. ProtocolsFragments section
  3. Transfer Profiles section
languagebash
titleYADE Settings file with

...

system_property_files

...

yade_settings.ini
collapsetrue
[globals]
history                             = /home/test/sos-berlin.com/jade_client/logs/jade_history.csv
system_property_files               = /home/test/sos-berlin.com/jade_client/configurations/sftp_system.properties ; /home/test/sos-berlin.com/jade_client/configurations/smb_system.properties

[protocol_fragment_sftp@sftp-uk.sos]
protocol                
YADE Settings
Code Block
languagebash
titleYADE Settings file with system_property_files yade_settings.ini
collapsetrue
[globals]
history            = sftp
host                = /home/test/sos-berlin.com/jade_client/logs/jade_history.csv
system_property_files               = /home/test/sos-berlin.com/jade_client/configurations/sftp_system_properties.ini ; /home/test/sos-berlin.com/jade_client/configurations/smb_system_properties.ini

[protocol_fragment_sftp@sftp-uk.sos]
protocol  uk.sos
port                                = sftp22
hostuser                                = uk.sos
portlondon
ssh_auth_method                        = publickey
ssh_auth_file        = 22
user                 = ${HOME}/.ssh/id_rsa

[protocol_fragment_sftp@sftp-japan.sos]
protocol               = london
ssh_auth_method            = sftp
host        = publickey
ssh_auth_file                       = ${HOME}/.ssh/id_rsa

[protocol_fragment_sftp@sftp-japan.sos]
protocoluser                            = sftp
host        = tokyo
ssh_auth_method                        = japan.sos
userpublickey
ssh_auth_file                           = ${HOME}/.ssh/id_rsa

[CopyLocal2SFTPUKSOS]
operation     = tokyo
ssh_auth_method                     = publickeycopy
sshfile_auth_filespec                       = ${HOME}/.ssh/id_rsa

[CopyLocal2SFTPUKSOS]
operation     = TEST-M-1111.TXT
source_protocol                     = copylocal
filesource_specdir                           = TEST-M-1111.TXT
source_protocol= /mnt/r2d2/nobackup/data/from_galadriel
target_include                      = local
sourceprotocol_fragment_sftp@sftp-uk.sos
target_dir                          = /mnthome/r2d2london/nobackupdata/data/from_galadriel
target_includeto_london/

[CopySFTPJapanSOS2Local]
operation                      = protocol_fragment_sftp@sftp-uk.sos
target_dir    = copy
file_spec                     = /home/london/data/to_london/

[CopySFTPJapanSOS2Local]
operation                           = copy
file_spec                           = = TEST-M-2222.TXT
source_protocol                     = sftp
source_include                      = protocol_fragment_sftp@sftp-japan.sos
source_dir                          = /home/tokyo/data/from_tokyo/
target_protocol                     = local
target_dir                          = /mnt/r2d2/nobackup/data/to_galadriel

YADE Configuration Files Configuration

The protocol fragment specific Java properties can be configured using configuration_files option on protocol fragment level . The configuration_files option can be assign a semicolon separated list of property files. A property file can contain on or more properties as key value pairs.

Example

  • Code Block
    languagebash
    titleSFTP packet compression configuration sftp-zlip-compression.ini
    # ssh packet compression
    compression.s2c=zlib@openssh.com,zlib,none
    compression.c2s=zlib@openssh.com,zlib,none
    compression_level=9
    
  • Code Block
    languagebash
    titleSFTP Cipher configuration sftp-cipher-aes128-ctr.ini
    # ssh transfer cipher
    cipher=aes128-ctr
Description 
  • The global SystemProperty file will be applicable as described in the previous section YADE System Property Configuration. 
  • In the following YADE Settings example two configuration files are created, both of them has configuration properties for the SFTP data provider;
    1. sftp-zlip-compression.ini :  effects packet compression during transfer over SFTP.
    2. sftp-cipher-aes128-ctr.ini : effects Cipher used by SFTP data provider.
  • The sftp-zlip-compression.ini is referred by the protocol fragment protocol_fragment_sftp@sftp-uk.sos using configuration_files option, thus the packet compression properties will only be applicable to the transfers using protocol fragment protocol_fragment_sftp@sftp-uk.sos e.g. CopyLocal2SFTPUKSOS

  • Similarly the sftp-cipher-aes128-ctr.ini is referred by the protocol fragment protocol_fragment_sftp@sftp-japan.sos using configuration_files option, thus the Cipher aes128-ctr will only be applicable to the transfers using the protocol fragment protocol_fragment_sftp@sftp-japan.sos e.g. CopySFTPJapanSOS2Local.

...

Explanations

  • The YADE settings consist of the following types of sections:
    1. Globals section 
    2. Protocol Fragment sections
    3. Transfer Profile sections
  • In the sample yade_settings.ini file, under the globals section the system property files are configure as semicolon separated list of files by the option system_property_files.
  • The properties defined in the files sftp_system.properties and  smb_system.properties will be available to all protocol fragments.
  • The known_hosts and remote_exec system property will be available and applied to all the fragments using protocol SFTP,  e.g. to the protocol  fragments protocol_fragment_sftp@sftp-uk.sos and protocol_fragment_sftp@sftp-japan.sos.

YADE Java Application Property Files

YADE Confguration by Application Property Files

The protocol fragment specific Java properties can be configured using the configuration_files option at protocol fragment level. The configuration_files option can be assigned a semicolon separated list of property files. A property file can contain one or more properties as key value pairs.

Example

Sample Application Properties for Data Provider

  • Code Block
    languagebash
    titleSFTP packet compression configuration sftp_zlip_compression.properties
    # ssh packet compression
    compression.s2c=zlib@openssh.com,zlib,none
    compression.c2s=zlib@openssh.com,zlib,none
    compression_level=9
    
  • Code Block
    languagebash
    titleSFTP Cipher configuration sftp_cipher_aes128-ctr.properties
    # ssh transfer cipher
    cipher=aes256-ctr

Sample YADE Configuration

Code Block
languagebash
titleYADE Settings with system_property_files and configuration_files yade_settings.ini
collapsetrue
[globals]
history                             = /home/test/sos-berlin.com/jade_client/logs/jade_history.csv
system_property_files               = /home/test/sos-berlin.com/jade_client/configurations/sftp_system

...

.properties

...

 ; /home/test/sos-berlin.com/jade_client/configurations/smb_system

...

.properties

...


 
[protocol_fragment_sftp@sftp-uk.sos]
protocol                            = sftp
host                                = uk.sos
port                                = 22
user                                = london
ssh_auth_method                     = publickey
ssh_auth_file                       = ${HOME}/.ssh/id_rsa
configuration_files                 = /home/test/sos-berlin.com/jade_client/configurations/sftp

...

_zlib_compression.

...

properties
 
[protocol_fragment_sftp@sftp-japan.sos]
protocol                            = sftp
host                                = japan.sos
user                                = tokyo
ssh_auth_method                     = publickey
ssh_auth_file                       = ${HOME}/.ssh/id_rsa
configuration_files                 = /home/test/sos-berlin.com/jade_client/configurations/sftp

...

_cipher

...

_aes128-ctr.

...

properties

[CopyLocal2SFTPUKSOS]
operation                           = copy
file_spec                           = TEST-M-1111.TXT
source_protocol                     = local
source_dir                          = /mnt/r2d2/nobackup/data/from_galadriel
target_include                      = protocol_fragment_sftp@sftp-uk.sos
target_dir                          = /home/london/data/to_london/
 
[CopySFTPJapanSOS2Local]
operation                           = copy
file_spec                           = TEST-M-2222.TXT
source_protocol                     = sftp
source_include                      = protocol_fragment_sftp@sftp-japan.sos
source_dir                          = /home/tokyo/data/from_tokyo/
target_protocol                     = local
target_dir                          = /mnt/r2d2/nobackup/data/to_galadriel

Explanations

  • The global system property file will be applicable as explained in the previous chapter on YADE Java System Property Files. 
  • In the YADE Settings sample two configuration files are created, both of them include configuration properties for the SFTP data provider;
    1. sftp_zlip_compression.properties :  effects packet compression during transfer by SFTP data provider.
    2. sftp_cipher_aes128-ctr.properties : effects Cipher used by SFTP data provider.
  • The sftp_zlip_compression.properties is referred to by the protocol fragment protocol_fragment_sftp@sftp-uk.sos using the configuration_files option, thus the packet compression properties will only be applicable to the transfers using protocol fragment protocol_fragment_sftp@sftp-uk.sos, e.g. CopyLocal2SFTPUKSOS.

  • Similarly the sftp_cipher_aes128-ctr.properties is referred to by the protocol fragment protocol_fragment_sftp@sftp-japan.sos using the configuration_files option, thus the cipher aes128-ctr will only be applicable to the transfers using the protocol fragment protocol_fragment_sftp@sftp-japan.sos, e.g. CopySFTPJapanSOS2Local.

  • At run-time the YADE will automatically apply applicable properties to respective data provider, e.g. SFTP properties to the JSch data provider and SMB properties to the JCifs data provider.

References

Change Management References

...