edu.isi.pegasus.planner.refiner.createdir

## Class Tentacles

- java.lang.Object
- - edu.isi.pegasus.planner.refiner.createdir.AbstractStrategy
  - - edu.isi.pegasus.planner.refiner.createdir.Tentacles

All Implemented Interfaces:
  Strategy

    public class Tentacles
    extends AbstractStrategy

This Strategy instance places the create directory jobs at the top of the graph. However instead of constricting it to an hour glass shape, this class links it to all the relevant nodes for which the create dir job is necessary. It is like that it spreads its tentacles all around. This potentially ends up putting more load on the DagMan with all the dependencies but removes the restriction of the plan progressing only when all the create directory jobs have progressed on the remote pools, as in the HourGlass model.

Version:
  $Revision$
Author:
  Karan Vahi, Gaurang Mehta

### Field Summary

### Fields inherited from class edu.isi.pegasus.planner.refiner.createdir.AbstractStrategy

`CREATE_DIR_PREFIX, CREATE_DIR_SUFFIX, mImpl, mJobPrefix, mLogger, mSiteStore, mUseMkdir`

### Fields inherited from interface edu.isi.pegasus.planner.refiner.createdir.Strategy

`VERSION`

### Constructor Summary

Constructors
Constructor and Description
`Tentacles()`

### Method Summary

All Methods Instance Methods Concrete Methods
`ADag` `addCreateDirectoryNodes(ADag dag)` Modifies the workflow to add create directory nodes.
`void` `initialize(PegasusBag bag, Implementation impl)` Intializes the class.

### Methods inherited from class edu.isi.pegasus.planner.refiner.createdir.AbstractStrategy

`getCreateDirJobName, getCreateDirSites`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### Tentacles

    public Tentacles()

### Method Detail

#### initialize

    public void initialize(PegasusBag bag,
                           Implementation impl)

Intializes the class.

Specified by:
  `initialize` in interface `Strategy`
Overrides:
  `initialize` in class `AbstractStrategy`
Parameters:
  `bag` - bag of initialization objects
  `impl` - the implementation instance that creates create dir job

#### addCreateDirectoryNodes

    public ADag addCreateDirectoryNodes(ADag dag)

Modifies the workflow to add create directory nodes. The workflow passed is a worklow, where the jobs have been mapped to sites.

Parameters:
  `dag` - the workflow to which the nodes have to be added.
Returns:
  the added workflow