Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

JS7 offers more capabilities than AutoSys® Workload Automation. This includes that existing AutoSys® job configurations canbe can be migrated to JS7.

...

The Converter reads AutoSys *.jil files and creates .json files that are added to a .tar.gz or .zip archive file for import into JS7, see JS7 - Inventory Export and Import.

...

  • Options
    • --input-dir
      • Specifies the input directory of AutoSys® *.jil files for job configurations.
      • The Converter recursively traverses the input directory.
    • --output-dir
      • Specifies the output directory to which converted .*json files are written. For a single *.jil file there can be a number ofcorresponding of corresponding *.json files.
      • For each sub-directory of the input directory the corresponding sub-directory is created in the output directory.
      • On start-up the Converter removes existing files and sub-directories from the output directory.
    • --report-dir
      • The Converter will report to the specified directory by use of a number of .csv files the extent to which the conversion is successful:
        • parser_summary.csv: reports the number of objects found in the input directory and sub-directories.
        • converter_summary.csv: reports the number converted objects per object type such as workflows and scheduled.
        • converter_analyzer.csv: includes information and warnings about JIL element conversion.
    • --archive
      • Specifies the path to an archive file with the .tar.gz or .zip extension that will be created by the Converter. Depending on the file extension the related archive format will be used on any OS platform.
      • The archive includes the *.json files of the output directory and can be used for later import into JS7, see JS7 - Inventory Export and Import.
      • An existing archive file will be overwritten.
    • --config
      • Specifies the location of the Converter Configuration File.. This file is required for the Converter to run. It includes a number of settings that can be adjusted.

...

Code Block
titleExample for running the Converter Start Script for Windows with more Arguments
linenumberstrue
js7_convert_js1autosys.cmd ^
    --input-dir=C:\TEMP\AutoSys ^
    --output-dir=C:\TEMP\output ^
    --report-dir=C:\TEMP\report ^
    --archive=C:\TEMP\js7-import.zip

@rem reads *.jil files from the "C:\TEMP\AutoSys" input directory and creates the corresponding directory hierarchy in "C:\TEMP\output"
@rem report files are written to the "C:\TEMP\report" directory, the resulting archive file is written to "C:\TEMP\js7-import.zip"

...

Code Block
titleDefault Configuration from js7_convert_autosys.config file
linenumberstrue
########################################################################################################################################################
# JS7 - Converter Download
# https://kb.sos-berlin.com/x/3dXqBg
########################################################################################################################################################
# Parser
########################################################################################################################################################
# default: jil
# case-insensitive
parserConfig.extensions                             = jil;txt
parserConfig.excluded.fileNames                     = machines.jil
########################################################################################################################################################
# Autosys
########################################################################################################################################################
# Creates separate XML files containing the original Autosys job definition for each standalone job (a job without any conditions) or for each BOX job.
#           Output directory: report/autosys.input.original/config
autosys.input.splitConfiguration                    = false

# diagram - Generates diagram files using the original Autosys definition. A Graphviz app installation is required.
#           Output directory: report/autosys.input.original/diagram
autosys.input.diagram.generate                      = false
# Attempts to resolve the Autosys conditions in order to reduce the displayed dependencies (arrows) between various jobs.
# Example: Display the dependencies as a sequence of jobs instead of showing multiple dependency arrows if such conditions are defined.
autosys.input.diagram.optimize.dependencies         = true
autosys.input.diagram.outputFormat                  = svg
autosys.input.diagram.size                          = 0
autosys.input.diagram.graphviz.executable           = C:/Program Files/Graphviz/bin/dot.exe
autosys.input.diagram.graphviz.cleanupDotFiles      = true
########################################################################################################################################################
# JS7
########################################################################################################################################################
# Generate
########################################################################################################################################################
;generateConfig.workflows                            = false
;generateConfig.agents                               = false
;generateConfig.schedules                            = false
;generateConfig.locks                                = false
;generateConfig.calendars                            = false
########################################################################################################################################################
# Workflow
########################################################################################################################################################
# default: Etc/UTC
workflowConfig.default.timezone                     = US/Pacific
########################################################################################################################################################
# Workflow Job
########################################################################################################################################################
;jobConfig.forced.graceTimeout                       = 15
;jobConfig.forced.parallelism                        = 2
jobConfig.forced.failOnErrWritten                   = true
;jobConfig.forced.warnOnErrWritten                   = true
;jobConfig.forced.v1Compatible                       = true

# Generate retry instructions for all jobs.
# default: Generate retry instructions if Autosys n_retrys is defined.
;jobConfig.forced.retry.maxTries                     = 10
;jobConfig.forced.retry.delays                       = 30;60;60

# default: empty
jobConfig.forced.shell.unix.commandPrefix           = source
;jobConfig.forced.shell.windows.commandPrefix        =

# default: #!/bin/bash
;jobConfig.default.shell.unix.shebang                = #!/bin/sh
########################################################################################################################################################
# Agent
########################################################################################################################################################
;agentConfig.forced.controllerId                     = js7
;agentConfig.forced.agent                            = {"platform":"WINDOWS"}
;agentConfig.forced.agent                            = {"platform":"UNIX"}
;agentConfig.forced.agent                            = {"platform":"WINDOWS","standaloneAgent":{"agentName":"primaryAgent","url":"http://localhost:4445"}}
;agentConfig.forced.agent                            = {"platform":"UNIX","standaloneAgent":{"agentName":"primaryAgent","url":"http://localhost:4445"}}
;agentConfig.forced.agent                            = examples/agent_standalone.json

;agentConfig.default.controllerId                    = js7
;agentConfig.default.agent                           = examples/cluster_agent.json

# 1) configure agent mappings in this configuration file
;agentConfig.mappings                                = autosys_agent1=agent_standalone.json; \
                                                      autosys_agent2=cluster_agent.json
# 2) use external agent mappings configuration file (should have .config extension)
#    example of the contents of the file agent_mappings.config:
#       autosys_agent1  = examples/agent_standalone.json
#       autosys_agent2  = {"platform":"UNIX","standaloneAgent":{"agentName":"primaryAgent","url":"http://localhost:4445"}}
#       autosys_agent3  = cluster_agent.json
#       autosys_agent4  = examples/agent_standalone.json
;agentConfig.mappings                                = agent_mappings.config
########################################################################################################################################################
# Mock
########################################################################################################################################################
;mockConfig.forced.shell.unixScript                  = $HOME/MockScript.sh
;mockConfig.forced.shell.windowsScript               = %UserProfile%\MockScript.cmd

# INFO      Log arguments and always end successfully
# ERROR     Log arguments and fail if required parameters are missing
;mockConfig.forced.jitl.mockLevel                    = INFO
########################################################################################################################################################
# Schedule
########################################################################################################################################################
;scheduleConfig.forced.workingDayCalendarName        = AnyDays
;scheduleConfig.forced.nonWorkingDayCalendarName     = AnyDays
# If date_conditions=y|1, these settings are used, otherwise "false" is set
scheduleConfig.forced.planOrders                    = true
scheduleConfig.forced.submitOrders                  = true

scheduleConfig.default.workingDayCalendarName       = AnyDays
scheduleConfig.default.nonWorkingDayCalendarName    = AnyDays
# default: Etc/UTC
;scheduleConfig.default.timezone                     = USEtc/PacificUTC
########################################################################################################################################################
# Calendar
########################################################################################################################################################
# All generated calendars will be placed in this folder; otherwise, they will be placed in the root directory
# default: root directory
calendarConfig.forced.folder                        = Calendars
########################################################################################################################################################
# Lock
########################################################################################################################################################
;lockConfig.forced.capacity                          = 9999

# Default capacity for locks is based on Autosys resources
# default: 1
;lockConfig.default.capacity                         = 9999
########################################################################################################################################################
# Boards
########################################################################################################################################################
# lifetime - in minutes or days
;boardConfig.forced.lifetime                          = 2 * 24 * 60

# Default lifetime if a condition does not define a lookback
# default: 24 * 60 (24h)
boardConfig.default.lifetime                         = 60d

...

SettingDefaultExplanation
mockConfig.forced.jitl.mockLevel

Mock levels are used for dry runs of the conversion for JS7 - Job Templates (JITL JVM Jobs). If a mock level is specified then JVM Jobs will not be executed but will log and will optionally check arguments only.

The following values can be specified for this setting:

  • INFO: arguments are logged, execution of JVM Jobs is considered successful.
  • ERROR: arguments are logged, required arguments of JVM Jobs are checked and errors are raised in case of missing arguments.

Without this setting being specified the JITL JVM Jobs will be executed from the converted jobs.

mockConfig.forced.shell.unixScript

Mock scripts are used for dry runs of the conversion. The job scripts of converted Shell Jobs are replaced by the call to a mock script for Unix platforms. Consider that mock scripts have to be provided by the user and have to be available for Agents at run-time.

This setting specifies the path to a mock script for Unix, for example, $HOME/MockScript.sh

A mock script for Unix can look like this:

Code Block
languagebash
titleExample for Mock Script on Unix
linenumberstrue
collapsetrue
#!/bin/sh
echo "------------------------------------------------------------"
echo "Start Unix Mock Script: $0"
echo "------------------------------------------------------------"
echo "Arguments: $*"
echo "------------------------------------------------------------"

If no mock script is specified then the original JS1 job script is used for the converted JS7 job.

mockConfig.forced.shell.windowsScript

Mock scripts are used for dry runs of the conversion. The job scripts of converted Shell Jobs are replaced by the call to a mock script for Windows platforms. Consider that mock scripts have to be provided by the user and have to be available for Agents at run-time.

Specifies the path to a mock script for Windows, for example, %UserProfile%\MockScript.cmd

A mock script for Windows can look like this: 

Code Block
languagebash
titleExample for Mock Script on Windows
linenumberstrue
collapsetrue
@echo off
@echo ------------------------------------------------------------
@echo Start Windows Mock Script: %0
@echo ------------------------------------------------------------
@echo Arguments: %*
@echo ------------------------------------------------------------

If no mock script is specified then the original JS1 AutoSys® job script is used for the converted JS7 job.

...

SettingDefaultExplanation
scheduleConfig.forced.forcedWorkingDayCalendarNameWorkingDayCalendarNameAnyDaysWith the JS1 use of calendars is optional, with the JS7 use of Use of JS7 - Calendars is required. This setting forces use of the same calendar for working days with any schedules that are created. By default a calendar with the name AnyDays is assumed. Users have to create a calendar with this name prior to running the Converter.
scheduleConfig.forcedNonWorkingDayCalendarNameforced.NonWorkingDayCalendarName
This setting forces use of the same calendar for non-working days with any schedules that are created. Use of a calendar for non-working days is optional. Users have to create a calendar with this name prior to running the Converter .with this setting. If the setting is not used, then no non-working day calendar will be applied by the Converter.
scheduleConfig.default.WorkingDayCalendarNamescheduleConfig.defaultWorkingDayCalendarNameAnyDaysThis setting specifies a default calendar for working days for schedules that do not specify a calendar on their own. By default a calendar with the name AnyDays is assumed. Users have to create a calendar with this name prior to running the Converter.
scheduleConfig.default.defaultNonWorkingDayCalendarNameNonWorkingDayCalendarNameAnyDaysThis setting specifies use of a default calendar for non-working days with schedules that do not specify a calendar on their own. Use of a calendar for non-working days is optional. Users If this setting is used, then users have to create a calendar with this name prior to running the Converter.
scheduleConfig.defaultTimeZonedefault.timezoneEtc/UTC

With the JS1 a schedule optionally specifies a time zone. With the JS7 a time zone is required for scheduled. This setting specifies the default time zone that is applied if a JS1 schedule does not specify a time zonefor Workflows.

See List of tz database time zones 

scheduleConfig.forced.planOrdersfalseOrders are automatically planned for the JS7 - Daily Plan. The setting is applied if a JIL file's date_condition setting specifies y or 1.
scheduleConfig.forced.submitOrdersfalseOrders are automatically submitted to Controllers for the JS7 - Daily Plan. The setting is applied if a JIL file's date_condition setting specifies y or 1.

Section: Calendar

SettingDefaultExplanation
calendarConfig.forcedFolderforced.folderRoot folder

Specifies the folder where the calendars are generated.

Example:

calendarConfig.forced.forcedFolderfolder = Calendars

Section:

...

Lock

SettingDefaultExplanation
lockConfig.forced.capacity

Specifies the capacity of JS7 - Resource Locks.

lockConfig.default.capacity1

Default capacity for Resource Locks is based on Autosys resources

Section: Boards

This section includes settings specified for JobScheduler 1.x.

...

SettingDefaultExplanation
js1
boardConfig.
jobStream
forced.
generateJobFileIfNotExistsfalse

This refers to a situation where there is only a JSON definition available for a job stream.

lifetime

Specifies the lifetime of Notices created by JS7 - Notice Boards

boardConfig.default.lifetime24*60

Specifies the default lifetime for Notices. The default value is 24*60 (24 hours).

Example:

boardConfig.default.lifetime = 60d

Note: the converter should be restarted if the JS1 <job name>.job.xml files have been created.

Recommendations

It is recommended to create the following objects in the JS7 inventory prior to conversion:

  • Agents
    • At least one Agent has to be available. In the JS1 jobs can be executed with a Master, in JS7 an Agent is requiredavailable.
    • The Converter offers to map Agent Names from JS1 process classes AutoSys® to JS7 Agents. Such Agents have to be available in the JS7 prior to conversion. Users can register Agents as Standalone Agents and as Cluster Agents, see JS7 - Agent Management.
  • Calendars
    • At lease one working day calendar has to be available. The calendar can be stored in an arbitrary folder. The name of the calendar can be specified with the scheduleConfig.forcedWorkingDayCalendarNameforced.workingDayCalendarName and scheduleConfig.default.defaultWorkingDayCalendarNameworkingDayCalendarName settings or it can will default to AnyDays.
    • Optionally a non-working day celandar can be available. The calendar can be stored in an arbitrary folder. The name of the calendar can be specified with the 
    • scheduleConfig.forced.nonWorkingDayCalendarName and scheduleConfig.default.nonWorkingDayCalendarName settings. By default no non-working day Calendar will be applied.
    • If the calendar specified by converted schedules is not available in the JS7 then imported schedules become invalid. They can be individually assigned a calendar in the JS7 inventory.

...

Support for the indicated configuration elements will be added before August 2022.

Further

...

Resources