Versions Compared

Key

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

Migration to ecflow 5 series is simplestraightforward, if you are using ecFlow version 4.7.0 or later. 

  • Stop all jobs in the old server, then terminate the server. Check that the checkpoint file was written.
  • Load the latest ecflow 5

    Code Block
    module load ecflow/5new
    Module load ecflow/5.3.0


  • Start the new ecflow 5

    .3.0 server. It

    server with the same port.  It will automatically read

    the 

    the checkpoint file that were created in

    version4

    version 4.7.X and above.

 If you are using earlier versions, then :

  •  

    Code Block
    ecflow_start.sh -p <port> # Open with same port.


  • If you used the '-d' option for location of ECF_HOME directory(i.e. for checkpoint and log file, includes, etc), make sure you use the same location. 

    Code Block
    ecflow_start.sh -p <port> -d <dir> # Open with same port and -d dir as used for ecflow 4


  • For the very first use of ecflow_ui, then move aside the old  .ecflowrc directory.  

    Code Block
    mv $HOME/.ecflowrc $HOME/.ecflowrc_old4


Migration( only required for ecflow < 4.7.0)

In most cases, we can easily migrate from one version of ecflow to another. Since the checkpoint file will be readable by the new version of ecflow.

However, occasionally this may not always be possible. (i.e. if there has been large internal re-factoring). On these occasions we can use ecflow_client --migrate.

The simplest migration involves running:

Code Block
titleUsing ecflow4 ecflow_client
Code Block
module load ecflow/4.6.0           
ecflow_client --migrate > migrate.def # run on old.def

module load ecflow/5.3.0 
ecflow_start.sh  server


migrate.def is like a normal definition file where the state is encoded as comments.
Then run the following with the new client/server:

Code Block
titleUsing ecflow5 ecflow_client
ecflow_client --load migrate.def # run on new server


This will load the file into the new server preserving all state information.

 If the backup servers functionality is used, then backup servers should also be migrated at the same time.
The following notes provide more detailed guidance on the migration process.
This assumes you are migrating halfway through running some experiments, and want to continue where you left.

 Steps for Old ecflow4 server:

  • shut-down

    Code Block
    languagebash
    titleshutdown
    ecflow_client --shutdown


  • suspend all suites

    Code Block
    languagebash
    titlesuspend
    CL="ecflow_client --port 3142 --host machineX"        
    for s in $($CL --suites); do $CL 

...

  • --suspend /$s; done


  • wait for active/submitted tasks to complete
  • halt the server:

    Code Block
    languagebash
    titlehalt
    ecflow_client --halt


  • Use --migrate to dump state and structure to a file:

    Code Block
    languagebash
    titlemigrate
    ecflow_client --migrate > all_suites.def


  • terminate server *or* leave the server running but start a new server on a different machine to avoid port number clash.
  • remove checkpt and backup checkpt files, to prevent the new server from loading them

     *Only* applicable if starting a new server on the same machine

 Steps for New ecflow5 server:

  • module load the latest release

    Code Block
    titleLoad latest ecflow
    > module load ecflow/5new
    > module load python3


  • start-server 

    Code Block
    ecflow_start.sh


  • load the migration file:

    Code Block
    languagebash
    titleLoad
    ecflow_client --load=all_suites.def


  • set server running:

    Code Block
    languagebash
    titlerestart
     ecflow_client --restart


  • resume suspended suites:

    Code Block
    languagebash
    titleResume
    CL="ecflow_client --port 3142 --host machineX"       
    for s in $($CL --suites); do $CL --resume=/$s; done


However, However the client/server/GUI between ecflow 4.x.x and ecflow 5.0X.0 Y are not compatible.

Please see Switching between ecFlowUI version 4 and 5


The python api API remains backward compatible.

...