Introduction

Users can define their own job templates for use with workflows.

  • Job templates allow existing jobs to be re-used in a number of workflows.
  • Job templates can be used to update any workflows which include jobs that have been derived from a given job template.

User Defined Job Templates are available for Shell Jobs and for JITL Jobs.

  • Access to Job Templates is subject to folder permissions.

FEATURE AVAILABILITY STARTING FROM RELEASE 2.4.1

Managing Job Templates

Adding Job Templates

The following example Job Templates are available:

Job Templates are available in the Configuration->Inventory view. They are to be found in object folders of the same name which are available in any user folder:


When clicking the New Job Template button a popup window is displayed that asks for the name of the Job Template:


An empty Job Template is added to the list of objects in the current folder:


When clicking the name of the Job Template then the a window is displayed to add properties to the Job Template.

Adding Job Properties to Job Templates

Properties to a Job Template correspond to the properties of a job in a workflow, see the JS7 - Job Instruction
 article.


Explanation:

  • The above example is used to create a Shell Job. All of the properties available for Shell Jobs can be added, see JS7 - Job Instruction.
  • The Update Jobs button allows to update any jobs referencing the Job Template from the released version of the template.
  • This window offers the same sub-views for Script, Argument, Environment Variables and Notification as for any job.
  • Job Templates are not deployed to a Controller or Agent. Instead, they are released to allow use with workflows.

Adding Arguments to Job Templates

Arguments can be added to a Job Template by clicking the Arguments tab:

  • Arguments can be used for Shell Jobs and for JITL JVM Jobs.
    • For Shell Jobs the Job Template's arguments are added to the Node Arguments.
    • For JITL JVM Jobs arguments are added to the Job Arguments.


Explanation:

  • Any number of arguments can be added.
  • Each argument is specified by its Name, Data Type and optionally its Value.
    • Note that argument names are case-sensitive.
    • The data type can be one of String, Number or Boolean.
    • Values have to correspond to their data type, for example a value true or false matches the Boolean data type.
    • Empty values are allowed, in accordance with the Required checkbox.
  • Arguments can be specified to be Required. When creating a job from a Job Template the user then has to specify a value for a required argument.

Adding Environment Variables to Job Templates

Environment Variables can be added to a Job Template by clicking the Arguments tab:

  • Environment Variables can be used for Shell Jobs only.
    • The Job Template's Environment Variables are added to the job's environment variables.
    • Environment Variables can reference Arguments should these be available from the Arguments tab.

Updating Job Templates

The following example workflows use two jobs which reference two distinct Job Templates:

Job Templates can be selected from the tree panel in the Configuration->Inventory view.

  • Users can modify any attributes of a Job Template.
  • After the Job Template is released, related jobs can be updated from the Job Template.

Scoping of Jobs to be updated from Job Templates 

When modifying properties of a Job Template users have the option to propagate changes to jobs that have been derived from the given Job Template. This operation is available:

  • from the Job Template that offers the Update Jobs button.
    • The operation is used to update any workflows that include jobs derived from the current Job Template and to select specific workflows for updating.

  • from any user folder including the top level folder which offers the Update Jobs from Templates action menu in the tree panel.
    • The operation updates all jobs included with workflows located in folders recursively from any referenced Job Templates.



  • from the Workflow's action menu in the tree panel that offers to Update Jobs from Templates.
    • The operation updates any jobs in the workflow from any referenced Job Templates.



  • from the Job that offers an action menu in the JS7 - Workflow Editor. to Update from Job Template.
    • The operation updates the current job in the workflow. Should the same job occur a number of times in the workflow then all occurrences will reflect the update.



When clicking the Update Jobs button from a Job Template and when using one of the related action menu items at folder level then a popup window with a list of workflows is displayed which include jobs making use of Job Templates.

  • The popup window:
    • allows filtering for draft and deployed workflows.
    • allows specifying whether job properties related to JS7 - Notification and JS7 - Admission Times for Jobs should be updated.
    • displays a blue bullet for deployed workflows and an orange bullet for draft workflows that include affected jobs.
    • displays the status:
      • synchronized for workflows which hold jobs that are in sync with the Job Template, i.e. use the same properties and values.
      • not synchronized for workflows which include jobs that are not in sync with the Job Template.
  • Users can select individual workflows or all workflows recursively to be updated.
    • The update step includes adding or modifying a job's properties from the Job Template.
    • Note that updating workflows from a Job Template will create a draft of the given workflow and requires later deployment of the workflow.

Report of updated Jobs

Performing the update jobs operation in a number of workflows will results in a report that is available from a popup window.

  • The report displays the workflows and jobs that have been updated.
  • The jobs per workflow that have been changed or skipped.
  • The tooltip icon provides additional information why a job was not updated. For example, if the job was not derived from the Job Template for which the update operation has been performed.

Job Properties subject to Update from Job Templates

When updating jobs in workflows from a changed Job Template then:

  • the following properties will not be updated:
    • Job Properties
      • Job Name
      • Label
      • Agent
    • Job Options
      • Skip Job if no admission for Order's date
  • the following properties will be updated:
    • Job Properties
      • Job Template: Reference to the Job Template which includes the name and hash of the Job Template being used
      • Title
      • Documentation: Reference to the JS7 - User Documentation
      • Job Resources: References to JS7 - Job Resources
      • Return Codes: On Success, On Failure
      • Return Codes: On Warning
      • Job Class: Shell Job or JITL JVM Job
      • Script/Class Name: Content of a Shell job script or Java class of a JVM job.
    • Job Options
      • Parallelism
      • Timeout
      • Grace Timeout
      • Warn on shorter execution period
      • Warn on longer execution period
      • Criticality
      • Fail on output to stderr / Warn on output to stderr
      • Admission Times: users can choose to overwrite existing properties when updating the job.
    • Notification
      • Mail related properties for job notifications: users can choose to overwrite existing properties when updating the job.
    • Parameterization
      • Arguments:
        • For Shell Jobs arguments are added to the job's Node Arguments
        • For JITL Jobs arguments are added to the job's Arguments
        • The update of Arguments is performed in a way that
          • in case they are added to the Job Template then they will be added to the job,
          • in case they are removed from the Job Template then they will be removed from the job,
          • in case of changes to arguments in the Job Template the changes will not be applied when updating jobs.
      • Environment Variables
        • Names and values of Environment Variables are updated from the Job Template;
          • this includes to add Environment Variables that have been added to the Job Template,
          • this includes to remove Environment Variables that have been removed from the Job Template.

Removing Job Templates

Job Templates can be removed using the Remove action menu item that is available in the tree panel:

  • for individual Job Templates,
  • for Job Templates at any folder level.

If a Job Template is removed then the jobs holding a reference to the Job Template will continue to work.

  • Users can drop the reference to the Job Template at any later point in time.
  • Dropping a reference does not modify the job's properties.
  • Optionally the job can be updated later on from an existing Job Template using the Wizard button.

Searching Job Templates

The Search button in the JOC Cockpit's Configuration->Inventory view allows searching for Job Templates:


Clicking the Search button brings forward the following popup window:

  • The Search input field offers to search by names and titles of Job Templates.
    • The * placeholder can be used for any number of characters.
    • The ? placeholder can be used for a single character.
    • Search is case-insensitive.
  • The Return input field offers Job Templates from the list of scheduling object types.
  • Users can click one of the resulting Job Templates displayed to navigate to the respective Job Template.

Resources



  • No labels