Is it possible to add a FireTask to a FireWork a-posteriori

Hello,

I realize that a Firework has a unique id and comprises of various FireTasks. My question is, is it possible to add an additional Task to an existing Firework a-posteriori (after it has been added to mongodb and run), and run the Firework again only from the newly added task.

To provide more details, consider the fw_test.yaml in introduction

spec:
_tasks:

  • _fw_name: ScriptTask
    script: echo “howdy, your job launched successfully!” >> howdy.txt

``

Now I add this yaml file to the mongodb and launch it through commandline

lpad reset
lpad add fw_test.yaml
rlaunch singleshot

``

Now is it possible for me to add a new task directly to the FireWork in database, so that it will look like

spec:
_tasks:

  • _fw_name: ScriptTask
    script: echo “howdy, your first task launched successfully!” >> howdy.txt
  • _fw_name: ScriptTask
    script: echo “howdy, your second task launched successfully!” >> howdy.txt

``

and if I run this Firework again, it must run the second task so that the *howdy.txt * has

howdy, your first task launched successfully!
howdy, your second task launched successfully!

``

Hi Janakiraman,

There is no way to do this at the FireTask level, unless you really hack the update_spec method (not recommended). However, you can add another FireWork or Workflow to the end using the LaunchPad.append_wf() method. This will also make sure that your initial job does not get run again.

Also - this is tangential - but there is task-level recovery mechanism for FireWorks that originated with multiple FireTasks: https://pythonhosted.org/FireWorks/rerun_tutorial.html

Best,

Anubhav

···

On Wed, Feb 3, 2016 at 9:33 AM, Janakiraman Balachandran [email protected] wrote:

Hello,

I realize that a Firework has a unique id and comprises of various FireTasks. My question is, is it possible to add an additional Task to an existing Firework a-posteriori (after it has been added to mongodb and run), and run the Firework again only from the newly added task.

To provide more details, consider the fw_test.yaml in introduction

spec:
_tasks:

  • _fw_name: ScriptTask
    script: echo “howdy, your job launched successfully!” >> howdy.txt

``

Now I add this yaml file to the mongodb and launch it through commandline

lpad reset
lpad add fw_test.yaml
rlaunch singleshot

``

Now is it possible for me to add a new task directly to the FireWork in database, so that it will look like

spec:
_tasks:

  • _fw_name: ScriptTask
    script: echo “howdy, your first task launched successfully!” >> howdy.txt
  • _fw_name: ScriptTask
    script: echo “howdy, your second task launched successfully!” >> howdy.txt

``

and if I run this Firework again, it must run the second task so that the *howdy.txt * has

howdy, your first task launched successfully!
howdy, your second task launched successfully!

``

You received this message because you are subscribed to the Google Groups “fireworkflows” group.

To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].

To post to this group, send email to [email protected].

Visit this group at https://groups.google.com/group/fireworkflows.

To view this discussion on the web visit https://groups.google.com/d/msgid/fireworkflows/38d08395-13e6-4b7c-b690-40684b6556ee%40googlegroups.com.

For more options, visit https://groups.google.com/d/optout.

Hi Anubhav,

Thank you. I’m working on fireworks 1.04 and cannot update for some dependency issues. I tested LaunchPad.add_wf_to_fws() for some simple tasks and it seems to work. Let me know if there is anything important that is different between append_wf () in latest version and add_wf_to_fws() that I’m currently using.

Thank you,

Best
Ram

···

On Wednesday, February 3, 2016 at 4:00:10 PM UTC-5, ajain wrote:

Hi Janakiraman,

There is no way to do this at the FireTask level, unless you really hack the update_spec method (not recommended). However, you can add another FireWork or Workflow to the end using the LaunchPad.append_wf() method. This will also make sure that your initial job does not get run again.

Also - this is tangential - but there is task-level recovery mechanism for FireWorks that originated with multiple FireTasks: https://pythonhosted.org/FireWorks/rerun_tutorial.html

Best,

Anubhav

On Wed, Feb 3, 2016 at 9:33 AM, Janakiraman Balachandran [email protected] wrote:

Hello,

I realize that a Firework has a unique id and comprises of various FireTasks. My question is, is it possible to add an additional Task to an existing Firework a-posteriori (after it has been added to mongodb and run), and run the Firework again only from the newly added task.

To provide more details, consider the fw_test.yaml in introduction

spec:
_tasks:

  • _fw_name: ScriptTask
    script: echo “howdy, your job launched successfully!” >> howdy.txt

``

Now I add this yaml file to the mongodb and launch it through commandline

lpad reset
lpad add fw_test.yaml
rlaunch singleshot

``

Now is it possible for me to add a new task directly to the FireWork in database, so that it will look like

spec:
_tasks:

  • _fw_name: ScriptTask
    script: echo “howdy, your first task launched successfully!” >> howdy.txt
  • _fw_name: ScriptTask
    script: echo “howdy, your second task launched successfully!” >> howdy.txt

``

and if I run this Firework again, it must run the second task so that the *howdy.txt * has

howdy, your first task launched successfully!
howdy, your second task launched successfully!

``

You received this message because you are subscribed to the Google Groups “fireworkflows” group.

To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].

To post to this group, send email to [email protected].

Visit this group at https://groups.google.com/group/fireworkflows.

To view this discussion on the web visit https://groups.google.com/d/msgid/fireworkflows/38d08395-13e6-4b7c-b690-40684b6556ee%40googlegroups.com.

For more options, visit https://groups.google.com/d/optout.

It would also be helpful if you explain what does the other two options ’ detour=False, pull_spec_mods=True ’ in the function actually mean.

···

On Wednesday, February 3, 2016 at 4:18:37 PM UTC-5, Janakiraman Balachandran wrote:

Hi Anubhav,

Thank you. I’m working on fireworks 1.04 and cannot update for some dependency issues. I tested LaunchPad.add_wf_to_fws() for some simple tasks and it seems to work. Let me know if there is anything important that is different between append_wf () in latest version and add_wf_to_fws() that I’m currently using.

Thank you,

Best
Ram

On Wednesday, February 3, 2016 at 4:00:10 PM UTC-5, ajain wrote:

Hi Janakiraman,

There is no way to do this at the FireTask level, unless you really hack the update_spec method (not recommended). However, you can add another FireWork or Workflow to the end using the LaunchPad.append_wf() method. This will also make sure that your initial job does not get run again.

Also - this is tangential - but there is task-level recovery mechanism for FireWorks that originated with multiple FireTasks: https://pythonhosted.org/FireWorks/rerun_tutorial.html

Best,

Anubhav

On Wed, Feb 3, 2016 at 9:33 AM, Janakiraman Balachandran [email protected] wrote:

Hello,

I realize that a Firework has a unique id and comprises of various FireTasks. My question is, is it possible to add an additional Task to an existing Firework a-posteriori (after it has been added to mongodb and run), and run the Firework again only from the newly added task.

To provide more details, consider the fw_test.yaml in introduction

spec:
_tasks:

  • _fw_name: ScriptTask
    script: echo “howdy, your job launched successfully!” >> howdy.txt

``

Now I add this yaml file to the mongodb and launch it through commandline

lpad reset
lpad add fw_test.yaml
rlaunch singleshot

``

Now is it possible for me to add a new task directly to the FireWork in database, so that it will look like

spec:
_tasks:

  • _fw_name: ScriptTask
    script: echo “howdy, your first task launched successfully!” >> howdy.txt
  • _fw_name: ScriptTask
    script: echo “howdy, your second task launched successfully!” >> howdy.txt

``

and if I run this Firework again, it must run the second task so that the *howdy.txt * has

howdy, your first task launched successfully!
howdy, your second task launched successfully!

``

You received this message because you are subscribed to the Google Groups “fireworkflows” group.

To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].

To post to this group, send email to [email protected].

Visit this group at https://groups.google.com/group/fireworkflows.

To view this discussion on the web visit https://groups.google.com/d/msgid/fireworkflows/38d08395-13e6-4b7c-b690-40684b6556ee%40googlegroups.com.

For more options, visit https://groups.google.com/d/optout.

Hi Ram

Important changes are typically listed here:

https://pythonhosted.org/FireWorks/changelog.html

(normally the refactor would also be listed there, but missing this time)

In this case, there should be no important differences. For the options, I’ve just documented append_wf() parameters for the future. They are

:param new_wf: (Workflow) The new workflow to append

:param fw_ids: ([int]) The parent fw_ids at which to append the workflow

:param detour: (bool) Whether to connect the new Workflow in a “detour” style, i.e., move original children of the parent fw_ids to the new_wf

:param pull_spec_mods: (bool) Whether the new Workflow should pull the FWActions of the parent fw_ids

···

On Wednesday, February 3, 2016 at 1:20:13 PM UTC-8, Janakiraman Balachandran wrote:

It would also be helpful if you explain what does the other two options ’ detour=False, pull_spec_mods=True ’ in the function actually mean.

On Wednesday, February 3, 2016 at 4:18:37 PM UTC-5, Janakiraman Balachandran wrote:

Hi Anubhav,

Thank you. I’m working on fireworks 1.04 and cannot update for some dependency issues. I tested LaunchPad.add_wf_to_fws() for some simple tasks and it seems to work. Let me know if there is anything important that is different between append_wf () in latest version and add_wf_to_fws() that I’m currently using.

Thank you,

Best
Ram

On Wednesday, February 3, 2016 at 4:00:10 PM UTC-5, ajain wrote:

Hi Janakiraman,

There is no way to do this at the FireTask level, unless you really hack the update_spec method (not recommended). However, you can add another FireWork or Workflow to the end using the LaunchPad.append_wf() method. This will also make sure that your initial job does not get run again.

Also - this is tangential - but there is task-level recovery mechanism for FireWorks that originated with multiple FireTasks: https://pythonhosted.org/FireWorks/rerun_tutorial.html

Best,

Anubhav

On Wed, Feb 3, 2016 at 9:33 AM, Janakiraman Balachandran [email protected] wrote:

Hello,

I realize that a Firework has a unique id and comprises of various FireTasks. My question is, is it possible to add an additional Task to an existing Firework a-posteriori (after it has been added to mongodb and run), and run the Firework again only from the newly added task.

To provide more details, consider the fw_test.yaml in introduction

spec:
_tasks:

  • _fw_name: ScriptTask
    script: echo “howdy, your job launched successfully!” >> howdy.txt

``

Now I add this yaml file to the mongodb and launch it through commandline

lpad reset
lpad add fw_test.yaml
rlaunch singleshot

``

Now is it possible for me to add a new task directly to the FireWork in database, so that it will look like

spec:
_tasks:

  • _fw_name: ScriptTask
    script: echo “howdy, your first task launched successfully!” >> howdy.txt
  • _fw_name: ScriptTask
    script: echo “howdy, your second task launched successfully!” >> howdy.txt

``

and if I run this Firework again, it must run the second task so that the *howdy.txt * has

howdy, your first task launched successfully!
howdy, your second task launched successfully!

``

You received this message because you are subscribed to the Google Groups “fireworkflows” group.

To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].

To post to this group, send email to [email protected].

Visit this group at https://groups.google.com/group/fireworkflows.

To view this discussion on the web visit https://groups.google.com/d/msgid/fireworkflows/38d08395-13e6-4b7c-b690-40684b6556ee%40googlegroups.com.

For more options, visit https://groups.google.com/d/optout.