This document describes the main steps in moving from an SMS system to a suite managed by an ecFlow server.
Multiple migration scenarios are available, from migrating everything in one big step to modifying definition files and header files to allow suites to run under both SMS or ecFlow. This is the strategy we adopted as it allowed us to test SMS and ecflow ecFlow suites in parallel.
The steps for migration are described in the following pages:
- Modify task wrapper files
- Upgrade header files
- Write a suite definition describing the expected suite.
For SMS, the play environment keywords available are (CDP>man -s play):EOF abort action autocancel automigrate autorestore clock complete cron date day defstatus edit endfamily endsuite endtask event extern family inlimit label late limit meter owner repeat suite task text time today trigger
For ecFlow this list is slightly smaller:
autocancel clock complete cron date day defstatus edit endfamily endsuite endtask event extern family inlimit label late limit meter repeat suite task time today trigger
...
- smssubmit, smskill, smsstatus: have to decide if the same script can be used, if the name has to be changed or if we take this opportunity to modify their behaviour.
- child command calls (smsinit, smscomplete, smsabort ...) can be intercepted by changing the PATH variable in order to use the same shell scripts that can call an SMS child command if SMS_PROG is part of the environment or an ecFlow child command when ECF_PORT is defined and not null.
- When the link between a job and its parent server cannot be established, the file $HOME/.smshostfile is used by child commands to identify potential backup servers to contact (network zombie). It has to be decided if the ecFlow servers deployment needs to match exactly what was chosen for SMS.