Introduction
Users can define their own job templates for use with workflows.
- Job templates can be applied to re-use existing jobs in a number of workflows.
- Job templates can be used to update any workflows that 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
Job Templates are available from the Configuration->Inventory view. They are offered from object folders with the same name that 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 JS7 - Job Instruction.
Explanation:
- The above example is used to create a Shell Job. Any 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.
- Consider 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
orfalse
matches the Boolean data type. - Empty values are allowed, consider to use the Required checkbox.
- Arguments can be specified to be Required. When creating a job from a Job Template the user 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
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 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 update.
- The operation is used to update any workflows that include jobs derived from the current Job Template and to select specific workflows for update.
- from any user folder including the top level folder that offer the action menu in the tree panel to Update Jobs from Templates.
- The operation updates any jobs included with any workflows located in folders recursively from any referenced Job Templates.
- The operation updates any jobs included with any 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.
- 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 reflect the update.
- The operation updates the current job in the workflow. Should the same job occur a number of times in the workflow then all occurrences 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 that include jobs making use of Job Templates.
- The popup window
- allows to filter for draft workflows and deployed workflows.
- allows to specify if 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 that hold jobs that are in sync with the Job Template, i.e. use the same properties and values.
- not synchronized for workflows that 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 to add or to modify a job's properties from the Job Template.
- Consider that updating workflows from a Job Template will create a draft of the given workflow and requires later deployment of the workflow.
Job Properties subject to Updates form 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
- Job Properties
- the following properties will be updated:
- Job Properties
- Job Template: Reference to the Job Template that includes the name and hash of the Job Template in use
- 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.
- Names and values of Environment Variables are updated from the Job Template;
- Arguments:
- Job Properties
Removing Job Templates
Job Templates can be removed using the Remove action menu item that is available from the tree panel
- for individual Job Templates,
- for Job Templates at any folder level.
Searching Job Templates
TODO