ecFlow's documentation is now on readthedocs!

 

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 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

Embedded software may have migration concerns if they use SMS client command to communicate with tasks.:

  • In our case the IFS model calls to call smsevent, smsmeter,  These can
  • our archive system MARS transmits information to sms using smslabel, smsevent.
  • hopefully, these calls are through a system commands. However SMS extensions, linked with the sms library, are obsolete with ecFlow and cannot be simply migrated.

When both SMS/ecFlow systems have to run in parellel, we have to decide what is part of the suite configuration (user side), and what is part of the system responsibility.
On the system side:

  • 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.