Review Board 1.7.22

OOZIE-830 add support for multiple/configurable sharelibs for each action type

Review Request #5063 - Created May 8, 2012 and submitted

Alejandro Abdelnur
The sharelibrary override is supported at Oozie server level and at workflow job level.

The share library name will be resolved using the following precedence order:

action.sharelib.for.#ACTIONTYPE# in the action configuration (at action level)
action.sharelib.for.#ACTIONTYPE# in the job configuration (at job level)
action.sharelib.for.#ACTIONTYPE# in the oozie server configuration (at oozie server level)
action's ActionExecutor getDefaultShareLibName() method (default)
besides testcases, tested in a deployed setup
Review request changed
Updated (May 8, 2012, 7:06 a.m.)

    besides testcases, tested in a deployed setup
Posted (May 9, 2012, 12:07 a.m.)
Looks good...some comments mainly related to javadoc
javadoc missing
Does this sentence need modification as the function name has changed?.. Same comment at other places 
do you want to remove 'postfix' from method signature here too?
why is this function called twice? here and in submitLauncher
missing javadoc
'.' after distcp actions
Ship it!
Posted (May 9, 2012, 6:13 p.m.)
+1 looks good after virag's comments
Posted (May 9, 2012, 8:35 p.m.)
How will a user know what are the system supported versions? There could be a utility for that.

Another point, if a user gives a wrong or not supported version, how will that be communicated to the end-user.
  1. listing the contents of the HDFS /user/oozie/share/lib directory will tell the supported versions.
    a wrong version will make the action to fail with JARs not found, if the dir is not avail in HDFS the action won't have the JARs files in its classpath
If name is 'null' after that, what will happen?
Should we throw an error?

  1. no, if null it means the action does not have a sharelib (ie mapreduce or java)
Posted (May 9, 2012, 10:55 p.m.)
i'll prepare a patch addressing Virag's corrections.
here is injected into the launcherconf, in submitLauncher is injected into the actionconf.