Changelog

Transfer Module

Version 3.4 - 2021-xx-xx
  • enhancement
    • downloads are performed asynchronously, using only one protocol (http) and under the control of asyncio

    • std.conf new entries : big_file_size, big_file_chunksize

    • internal.conf entry : transfer_protocol

  • tests :
    • remove subcommand : new data file embedded is ten times smaller than previous one

  • deprecated features
    • gridftp protocol

    • wget http client

    • std.conf entries : gridftp_opt

    • internal.conf entry : transfer_protocols

    • documentation update

Version 3.35 - 2021-05-07
  • bug correction :
    • init-env subcommand now provides empty default selection files (see conf/default directory)

    • issue # 185 : ‘synda remove’ fails to import sdsimplefilter

Version 3.34 - 2021-04-02
  • bug correction :
    • Default selection file for CMIP6 project is now delivered empty. It can be customized under user control (issue # 178 : Dataset not found but available on ESGF web interface)

  • Documentation update

Version 3.33 - 2021-03-31
  • bug correction :
    • issue # 177 : synda now allows that ESGF openIDs are case sensitive

Version 3.32 - 2021-03-24 - (PYTHON 3)
  • enhancement
    • code migration : third attempt to migrate synda from python 2 to python 3 (success)

  • bug correction :
    • issue # 176 (conda channel changed : now : conda-forge [ipsl channel has been removed])

Version 3.31 - 2021-03-22
  • enhancement
    • code migration : second attempt to migrate synda from python 2 to python 3 (failure)

  • bug correction :
    • issue # 168 (Master branch update broke sdnexturl.py)

Version 3.30 - 2021-03-22
  • enhancement
    • code migration : first attempt to migrate synda from python 2 to python 3 (failure)

  • bugs correction :
    • synda -h and synda -V sub-commands are now operational

  • deprecated features
    • ‘open’ subcommand

    • packages : sdpoodlefix, sdxml, sdhtmlbasic, sdselectionfile, sdview

Version 3.2 - 2021-01-11
  • config parameters externalisation

    • ‘sdt.conf’ file has new customizable parameters

    • New ‘internal.conf’ file, for advanced parameters (not customizable, located into the /conf directory)

  • enhancements

    • init-env subcommand is enabled to build user environment

    • synda raises on the command line the problems encountered by esgf_search api service

    • In sdparam.get_name_from_value method, if more than one match, the print message has now a ‘info’ level

    • store stacktrace log files in /log directory.

  • bugs correction :

    • help subcommand can be used even if user has not built yet any environment

  • deprecated features

    • ‘pexec’ subcommand

    • ‘thredds_catalog’ & ‘apache_default_listing’ APIS (synda operates only the ‘esgf_search’ API)

    • synda ihm

    • packages : sdevent, sdeventdao, sddatasetpattern, sdoperation

Version 3.15 - 2020-11-17
  • cleaning & packages reorganization

  • issue #158 - bug correction - daemon stopping without reporting errors

Version 3.14 - 2020-10-29
  • new files encoding : ISO-8859-1 => utf8

Version 3.13 - 2020-10-28
  • entry point moved to setup.py instead of meta.yaml file

Version 3.9 - 2017-02-19
  • add gridftp_opt option in sdt.conf.

  • dataset attributes can be used in ‘local_path_drs_template’.

  • use decimal prefix instead of binary prefix in ‘synda metrics’ command.

  • do not include checksum computation time in download time metric.

  • enable supplementary groups support if available.

Version 3.8 - 2017-02-19
  • add info action to synda certificate command

  • add security_dir_mode option

  • add subfolder to the ESGF certificate path (named after the user UID)

  • all deletions now occurs synchronously (deferred mode is disabled)

  • follow symlinks during synda remove operation

  • add manual routines to refresh dataset status

  • new cleanup algo for synda remove command (run faster)

  • add full path support in local_path_drs_template var

  • add write test in sddaemon module

  • store stacktrace file in /tmp

  • add uuid to stacktrace file name

  • move try/except block upstream to enclose the daemon context

  • fix permission in sys-pkg for /srv/synda/sdt folder (g+sw)

Version 3.7 - 2017-01-15
  • ESGF certificate path set to $HOME/sdt/tmp/.esg for source install.

  • disable sdfilepermission module.

  • add user personal env (SDT_USER_ENV).

  • synda group can be used instead of sudo (system package).

  • set specific version for pillow package.

  • bugfixes.

Version 3.6 - 2016-12-04
  • use search-api json format instead of xml

  • add end-of-transfer events replay mode (trigger all EOT events in batch mode)

  • add synda count subcommand

  • add synda config subcommand

  • add incremental mode for discovery operation

  • add dataset version consistency check

Version 3.5 - 2016-09-19
  • use requests (pypi) to resolve openid

  • add ~/.sdt/conf/credentials.conf

  • add ~/.sdt/conf/sdt.conf

  • remove ~/.syndarc

  • add open subcommand

  • add check subcommand for selection

  • add check subcommand for file’s variable

  • use myproxyclient latest version

  • add default_path option in sdt.conf

  • use sdpyproxy python module to renew X509 certificate (replace obsolete sdlogon.sh script)

  • change tarball location for source installation (use install.sh latest version)

  • replace argparse RawTextHelpFormatter with RawDescriptionHelpFormatter

  • set metadata_parallel_download to False

  • add support for lowmem machine

  • add sdsqlitedict module

  • add sdmts module

  • add ignorecase filter for upgrade and facet subcommands

  • remove -n option from synda facet subcommand

  • do not stop daemon anymore when error occurs during download (except for certificate renewal error)

  • always print stacktrace when error occurs (ST_DEBUG env. var. is not used anymore)

  • write yes/no confirmation message on stderr

  • prevent adding predefined values for version facet in local cache

  • add checksum type normalization routine

  • add url_replace selection file parameter

  • add http_fallback option (switch protocol on error)

  • add default_listing_size configuration option

  • add -m option to synda remove subcommand

  • ergonomy improvements

Version 3.4 - 2016-05-04
  • add synda variable subcommand

  • add synda get subcommand

  • remove synda test subcommand (synda test is replaced by synda get)

  • add urllib2 based download impl

  • add sandbox folder for untracked data

  • set data folder default value to /srv/synda/sdt/data (system package installation only)

  • disable parameter checking by default

  • insert event in db even if post-processing module is disabled

  • improve obs4MIPs project support

  • user documentation reorganization

  • add parameter reference documentation

  • add commands reference documentation

  • add selection file documentation

Version 3.3 - 2016-04-04
  • localpath DRS can be customized by user in configuration file (local_path_drs_template)

  • add hpss configuration parameter to retry transfer on error

  • add index_host and project options to the synda update subcommand

  • add examples for each subcommands

  • use argparse.RawTextHelpFormatter in subcommand help

  • add globus online support

  • set gridftp port range to 50000-51000

  • in sdget.sh and sdgetg.sh, -v option replace -d option (verbose replace debug_level)

  • add new value format for synda dump -F option

  • enable debug mode when using synda test <url> subcommand

  • synda list now list everything by default

  • add missing initialization in install.sh (g__transfer=0)

  • add configuration file documentation

  • move post_processing parameter from daemon section to module section

  • rename configuration file [path] section to [core] section

  • do not remove ca certs when using synda certificate renew option

  • add force_renew_ca_certficates option to remove ca certs

  • remove cache subcommand

  • remove sdreducecol filter from sdfilepipeline module

  • fix pkg_resources.DistributionNotFound: setuptools>=1.0 bug

  • move common method from Dataset and File class to BaseType class

  • set prevent_daemon_and_modification to false for source installation

  • move max_parallel_download from [daemon] to [download] section

  • untar ihm_pid_file only if mutually exclusive lock is enabled

  • increase daemon sqlite timeout from 120s to 12000s

  • do not parse wget output by default and increase wget --tries to prevent hpss failure

  • default indexes set to dkrz

  • daemon non-privileged mode

Version 3.2 - 2016-02-03
  • DEB package

  • retrieve dataset timestamp in batch mode

  • modify Synda scheduler to ease Globus Online integration

  • prevent normal user to run admin commands in multi-user mode

  • set model attribute as optional

  • improve documentation

Version 3.1 - 2015-12-29
  • multi-user

  • daemon integrated in systemd

  • RPM package

  • per-user config file (~/.syndarc)

  • online help

  • parameter discovery (list parameter based on other parameters)

  • support for free syntax in template (e.g. [realm experiment frequency]=v1 v2)

  • default indexes set to pcmdi9

  • add inline tutorial

  • -z option replace -y option

  • -y option replace -N option

  • --yes option replace --non-interactive option

  • openid/passwd moved from sdt.conf to credentials.conf

  • add check to prevent normal user from running synda in write mode

  • add ignorecase filter

Version 3.0 - 2015-03-25
  • add new local search filter (status, error_msg)

  • add --version option to print version in synda command

  • improve external files support

  • add next replica action (batch mode)

  • move default selection files in sdt/conf/default

  • move configuration file in sdt/conf folder

  • add history subcommand

  • move lfae_mode into sdt.conf

  • gridftp support

Version 2.9 - 2014-11-03
  • several template parameters names changed (e.g. tablename is now named cmor_table). See sdconvert.sh for more info

  • new synda command (apt-get like front-end)

  • support for most search-API parameters

  • “not” operation support (e.g. all models but one)

  • multi-DRS support

  • new formatting keyword

  • only localpath is mutable

  • support for different name for the same model (e.g. GFDL-CM2p1, GFDL-CM2.1 et GFDL-CM2-1)

  • default values per project

  • new searchapi_host parameter to specify which index to use

  • space are supported (e.g. “ISI-MIP Fasttrack”)

  • replica support

  • wildcard (all/_*) supported in all facets

  • local database reorganization

Version 2.8 - 2013-12-20
  • set CHUNKSIZE (search-API limit parameter) to 10000 (was 1000)

  • add time coverage filter

  • add support for sha256 checksum type

Version 2.7 - 2013-08-20
  • fix B0039 bug

  • fix B0034 bug

  • fix B0033 bug

  • add EUCLIPSE project

  • XML parsing module rewriting

  • add “timeout/retry” mechanism in the discovery process

  • models discovery module improvement

  • move tuning parameters into configuration file

  • increase thredds-catalog timeout from 10 to 100

  • add second logger for domain/functional messages

  • load readonly tables in memory to speed up the discovery process

  • add CMOR tables cache system

  • add orphan transfer detection (without selection match)

  • stat subcommand rewriting

  • add db_path option in configuration file

Version 2.6 - 2013-04-18
  • add search-api-nocache discovery engine

  • add support for “obs4MIPs” project

  • add wild card support for realm and frequency

  • fix B0032 bug

Version 2.5 - 2012-12-18
  • add url column in dataset tmp tables

  • add -G option (remove tmp tables)

  • set MyProxyClient as default myproxy client

  • set search-API as default search-engine

  • add selection based statistics

  • add new -E option to retrieve model list from search-API

  • fix B0031 bug

  • replace PCMDI3 with PCMDI9 in get_data.sh script (myproxy server)

  • add search-API multithreading to run several search in parallel

  • add search-API call metrics (to trace time spent in each call)

  • add search-API pagination

  • fix B0030 bug

  • fix B0029 bug

  • fix B0028 bug

  • fix B0027 bug

  • fix B0026 bug

Version 2.4 - 2012-06-19
  • add -x option to run discovery process and print ESGF checksums

  • add -X option to control if local checksum match remote checksum

  • fix B0025 bug

  • add “latest” symlink creation routine (last version identifier)

  • add old versions suppression routine

  • add search API mode

  • add -L option (set latest flag)

  • fix B0024 bug

  • mark CSTE_TRANSFERT_STATUS_DELETED status as deprecated

Version 2.3 - 2012-04-20
  • add PROC0001 method to list obsolete version

  • add new columns latest_date and last_done_transfer_date

  • fix B0023 bug

  • fix B0022 bug (MIGR0001() method broken)

  • fix B0021 bug. (variable missing when retrieving transfert from database)

  • add -y option (dataset-info)

Version 2.2 - 2012-04-07
  • fix B0020 bug. (fix 2.2 at 20120410)

  • fix B0019 bug. (fix 2.2 at 20120407)

  • add ESGF MyProxyLogon (MyProxy Java client)

  • replace ps fax with ps ax (Mac port)

  • add dependencies check in install.sh

  • add transfer_helper modules

  • add dataset in transfer queue (eot_queue)

  • fix B0018 bug

  • fix B0017 bug

  • fix “[Error 98] address already in use”

  • use wget tries and timeout parameters from conf. file

  • fix B0016 bug

  • add -r option (exec proc)

  • use transfert_id instead of local_image as primary key (for update)

  • add new table dataset

  • add new column dataset_id in transfer table

Version 2.1 - 2012-03-12
  • fix B0015 bug

  • add -V option in start.sh

  • add -b to myproxy-logon options (only if myproxy-logon >= 5.0)

  • set wget tries option to 1

  • fix B0014 bug

  • fix B0013 bug

  • add abnormal termination recovery routine

  • add ignore checksum option

  • fix B0012 bug

  • set SQLite lock timeout to 120s

  • improve scheduler (increase queue and dequeue performance)

  • frozen wget watchdog reactivation

Version 2.0 - 2012-02-14
  • add new synchronisation mode (retrieve dataset last version only)

  • fix B0011 bug (remove local files when checksum doesn’t match)

  • add list-local-files action

  • fix B0007 bug (replace urllib with urllib2 and set timeout to 10)

  • fix B0006 bug (add missing env. var. in stop.sh)

  • fix B0009 bug (catch exception and process others datasets)

  • remove non-working models from models table

Version 1.9 - 2012-01-30
  • fix B0005 bug

Version 1.8 - 2012-01-28
  • add -w option (shutdown immediate)

  • improve errors handling

  • fix B0003 bug

  • fix start.sh -e option (B0004 bug)

Version 1.7 - 2012-01-27
  • add start.sh -u option (refresh ESGF metadata)

  • add start.sh -q option (stop daemon)

  • add start.sh -l option (list selections)

Version 1.6 - 2012-01-26
  • fix B0001 and B0002 bugs

  • remove one-file-per-model logging

  • add metadata caching system

  • merge all logs in one file

  • add model in tmp tables (dataset_version and file_timeslice)

Version 1.5 - 2012-01-18
  • move models loop inside the feeder

  • add CMOR tablename forcing in template

  • add stat subcommand

  • add syncmode check in start.sh

  • move product out of local_image column

Version 1.4 - 2012-01-14
  • set myproxy-logon as default (change procedure in README to use install.sh -a)

  • add delete subcommand

  • add cancel subcommand

  • add retry subcommand

  • add info subcommand

  • merge output1 and output2 into output

  • improve installation process

  • use synchronous events to control the daemon

Version 1.3 - 2012-01-02
  • automatic update of model/datanode list

  • add remote and local checksum

  • unset X509_USER_PROXY variable (in get_data.sh script)

  • fix selection overlapping bug

  • fix product bug (check to prevent output value for product)

  • add license information

  • add svn properties in header

  • ignore blank lines in selection files

Version 1.2 - 2011-10-07
  • improve ensemble support

  • increase from 8 to 16 Wget threads

  • add per model priority

  • move main loop delay from 3 seconds to 6 seconds

  • support file ID with non-standard extension (.nc_0)

  • add upgrade and archive option in script install.sh

  • improve HTTP error handling in script get_data.sh

Version 1.1 - 2011-09-28
  • improve datanode and model configuration

  • improve HTTP error code handling

  • add watchdog to check for frozen wget

  • fix PCMDI datanode incorrect url

  • fix incorrect configuration for models GISS-E2-H, GISS-E2-R and inmcm4

  • add new models (HadCM3,IPSL-CM5A-LR,CanAM4,MIROC5,MIROC4h,CCSM4,MRI-CGCM3,MRI-AGCM3-2S,MRI-AGCM3-2H,MPI-ESM-LR)

Version 1.0 - 2011-09-09
  • support for myproxy-logon and myproxyclient

  • simple data selection with model, experiment, realm and variable

  • multi threaded downloads (8 tasks by default)

  • manage datasets version following new drs

  • incremental process (download only what’s new)

  • download history stored in a database

Post-Processing Module

Version 1.3 - 2017-01-15
  • synda group can be used instead of sudo (system package)

Version 1.2 - 2016-12-04
  • move hard-coded pipeline dependencies into configuration files

  • add credentials.conf file

  • add pipeline samples

  • bugfixes

Version 1.1 - 2016-09-19
  • add CORDEX support

  • add pexec support

  • add multivalues support for job_class option

  • add conf folder

  • add pipeline_path

  • improve worker log routines

Version 1.0 - 2014-12-25
  • pipeline engine

  • Jsonrpc server

  • database environment

  • worker script