Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
SEO Metadata
keywordsMigration, JS1, Branch 1.xAutoSys, JS7

JS7 offers a migration utility to convert *.xml files of JobScheduler branch 1.x AutoSys® job configurations to the JS7. Usage of the Converter and its parameterization are explained.

Table of Contents

Introduction

JS7 is a rewrite from scratch of the JobScheduler components available with branch 1.x (JS1). This includes that existing *.xml files for scheduling objects have to be migratedoffers more capabilities than AutoSys® Workload Automation. This includes that existing AutoSys® job configurations canbe migrated to JS7.

Converter

With Release 2.47.0 a Converter becomes available to migrate JS1 *.xml files of scheduling objects job configurations from AutoSys® JIL files to JS7:

Jira
serverSOS JIRA
columnIdsissuekey,summary,issuetype,created,updated,duedate,assignee,reporter,priority,status,resolution
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId6dc67751-9d67-34cd-985b-194a8cdc9602
keyJOC-13181154
Jira
serverSOS JIRA
columnIdsissuekey,summary,issuetype,created,updated,duedate,assignee,reporter,priority,status,resolution
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId6dc67751-9d67-34cd-985b-194a8cdc9602
keyJOC-1921

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

...

  • The Converter Java classes can be used with Java LTS editions of JRE or JDK 1.8, 11, 1717 and newer.
  • The Converter Start Script is available for
    • Linux, MacOS® and AIX® using bash, dash, ksh and zsh shells.
    • Windows 7, 8, 1010, 11, Windows Server

Download

Find Download of the Job Converter for download from JS7 - Downloadfrom the js7_converter_autosys.tar.gz tarball and js7_converter_autosys.zip archive file is available within the scope of migration services.

After extraction of the .tar.gz archive for Unix or .zip archive for Windows find the following files:

  • js7_converter_autosys
    • js7_convert_
    js1
    • autosys.sh | .cmd  (Converter Start Script)
    • js7_convert_
    js1
    • autosys.config (Converter Configuration File)
    • lib (Directory for Java Classes)

Usage

Invoking the Converter Start Script without arguments displays the usage clause:

Code Block
languagetext
titleConverter Start Script: js7_converterconvert_autosys.sh | .cmd
Usage: js7_convert_js1autosys.sh | .cmd [Options]

  Options:
    --input-dir=<location of input directory>                         | required argument
    --output-dir=<location of output directory>                       | default: ./output/js7_converted_autosys
    --report-dir=<location of report directory>                       | default: ./output/report
    --archive=<location of resulting .zip archive for JS7 import>     | default: ./js7_converted_js1autosys.tar.gzzip | .zip
    --config=<location of config file>                                | default: ./js7_convert_js1autosys.config
 Switches:
    -h | --help                                                                                                             | displays usage


Explanation:

  • Options
    • --input-dir
      • Specifies the input directory of JS1 AutoSys® *.xml jil files for scheduling objects. Such files typically are located in the SCHEDULER_DATA/config/live folder. If you do not want to run the converter directly on the machine in which the *.xml files are located then you can copy the live folder or any sub-folder to a Unix or Windows machine on which to run the converter. The operating system of JobScheduler Master using the *.xml files is independent from the operating system of the converter.
      • The Converter recursively traverses the input directory.
    • --output-dir
      • Specifies the output directory to which converted .*json files are written. For a number of *.xml files there is a corresponding *.json file.
      • 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.
      • 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 *.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
      --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.
        • parserconverter_analyzersummary.csv: includes debugging information.converter_summary.csv: reports the reports the number converted objects per object type such as workflows and scheduled.
        • converter_warningsanalyzer.csv: includes information and warnings about XML elements that could not be perfectly convertedJIL 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 Unix with minimum Arguments
linenumberstrue
js7_converter_home=./js7_converter_autosys
${js7_converter_home}/js7_convert_js1autosys.sh \
    --input-dir=/var/sos-berlin.com/jobscheduler/config/live./input --config=./js7_convert_autosys.config

# reads *.xmljil files from the Master's "live" folderinput directory and creates the corresponding output directory hierarchy in the "output" sub-directory of the working directory;
# reportsreport files are written to the "reportsreport" sub-directory of the working directory, the resulting "js7_converted_autosys.tar.gzzip" archive file is written to the working directory.



Code Block
titleExample for running the Converter Start Script for Unix with more Arguments
linenumberstrue
js7_converter_home=./js7_converter_autosys
${js7_converter_home}/js7_convert_js1autosys.sh \
    --input-dir=/var/sos-berlin.com/jobscheduler/config/liveinput \
    --output-dir=./tmp/output \
    --report-dir=./tmp/report \
    --archive=./tmp/js7-importjs7_converted_autosys.zip

# reads *.xmljil files directly from the Master's "live" sub-input directory and creates the corresponding output directory hierarchy in the "/tmp/output"; sub-directory of the working directory
# report files are written to "/tmp/report" sub-directory, the resulting "js7_converted_autosys.zip" archive file is written to "/tmp/js7-import.zip".the working directory

Windows

Code Block
titleExample for running the Converter Start Script for Windows with minimum Arguments
linenumberstrue
js7_convert_js1autosys.cmd --input-dir=C:\ProgramData\sos-berlin.com\jobscheduler\config\liveTEMP\AutoSys

@rem reads *.xmljil files from the Master's "live" folder input directory and creates the corresponding directory hierarchy in the "output" sub-directory of the working directory;
@rem reportsreport files are written to the "reportsreport" sub-directory of the working directory, the resulting "js7_converted_autosys.zip" archive file is written to the working directory.



Code Block
titleExample for running the Converter Start Script for Windows with more Arguments
linenumberstrue
js7_convert_js1.cmd ^
    --input-dir=C:\ProgramData\sos-berlin.com\jobscheduler\config\liveTEMP\AutoSys ^
    --output-dir=C:\tmpTEMP\output ^
    --report-dir=C:\tmpTEMP\report ^
    --archive=C:\tmpTEMP\js7-import.zip

@rem reads *.xmljil files directly from the Master's "live" sub-"C:\TEMP\AutoSys" input directory and creates the corresponding directory hierarchy in "C:\tmpTEMP\output";
@rem report files are written to the "C:\tmpTEMP\report" directory, the resulting archive file is written to "C:\tmpTEMP\js7-import.zip".

Configuration

The Converter is configured from a properties file that can be specified with the --config option when invoking the Converter. By default he file the js7_convert_js1autosys.config file is assumed that ships with the Converter.

Users should adjust the configuration to their needs, for example, to map Agents and Calendars.

Download: js7_convert_js1autosys.config

Code Block
titleDefault Configuration from js7_convert_js1autosys.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# Generate
;generateConfig.workflows                        = false10
;generateConfig.agents    jobConfig.forced.retry.delays                       = 30;60;60

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

#   = false
;generateConfig.jobTemplatesdefault: #!/bin/bash
;jobConfig.default.shell.unix.shebang                =     = false
;generateConfig.schedules #!/bin/sh
########################################################################################################################################################
# Agent
########################################################################################################################################################
;agentConfig.forced.controllerId                       = falsejs7
;generateConfig.calendarsagentConfig.forced.agent                            = false{"platform":"WINDOWS"}
;generateConfigagentConfig.forced.locksagent                            = false{"platform":"UNIX"}
;generateConfigagentConfig.forced.cyclicOrdersagent                     = true

# JobScheduler 1.x
;js1.jobStream.generateJobFileIfNotExists        = true

# Parser
parserConfig.excludedDirectoryNames             = .sos-templates;.svn;.configuration
parserConfig.excludedDirectoryPaths= {"platform":"WINDOWS","standaloneAgent":{"agentName":"primaryAgent","url":"http://localhost:4445"}}
;agentConfig.forced.agent              = sos/

# Workflow
;workflowConfig.defaultTimeZone                  = Etc/UTC

# Workflow Job
;jobConfig.jitl.logLevel= {"platform":"UNIX","standaloneAgent":{"agentName":"primaryAgent","url":"http://localhost:4445"}}
;agentConfig.forced.agent                          = INFO
# default:= #!/bin/bashexamples/agent_standalone.json

;jobConfigagentConfig.shell.unix.defaultShebangdefault.controllerId              = #!/bin/sh
# default: @@findstr/v "^@@f.*&" "%~f0"|pwsh.exe -&goto:eof
;jobConfig.shell.windows.powershellShebang   = js7
;agentConfig.default.agent           = @@findstr/v "^@@f.*&" "%~f0"|powershell.exe -&goto:eof
;jobConfig.forcedGraceTimeout            = examples/cluster_agent.json

# 1) configure agent mappings in this =configuration 15file
;jobConfig.forcedParallelismagentConfig.mappings                        = 1
;jobConfig.forcedFailOnErrWritten       = autosys_agent1=agent_standalone.json; \
        = false
jobConfig.forcedV1Compatible                    = true

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

# INFO      Log arguments and always end successfully
# ERROR    = examples/cluster_agent.json
;agentConfig.mappings         Log arguments and fail if required parameters are missing
;mockConfig.forced.jitl.mockLevel                    = js1_agent1=examples/agent_standalone.json; \
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     js1_agent2=examples/cluster_agent.json
             = true

scheduleConfig.default.workingDayCalendarName       = AnyDays
scheduleConfig.default.nonWorkingDayCalendarName    = AnyDays
# default: Etc/UTC
scheduleConfig.default.timezone                     = US/Pacific
########################################################################################################################################################
# Mock
;mockConfig.jitl.mockLevel                       = INFO
# INFO 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       Log arguments and always end successfully
# ERROR     Log arguments and fail if required parameters are missing
;mockConfig.shell.unixScript         = Calendars
########################################################################################################################################################
# Lock
########################################################################################################################################################
;lockConfig.forced.capacity            = $HOME/MockScript.sh
;mockConfig.shell.windowsScript                  = %UserProfile%\MockScript.cmd9999

# Schedule
;scheduleConfig.forcedWorkingDayCalendarName        = AnyDays
;scheduleConfig.forcedNonWorkingDayCalendarNameDefault capacity for locks is based on Autosys resources
# default: 1
;lockConfig.default.capacity     = AnyDays
;scheduleConfig.defaultWorkingDayCalendarName       = AnyDays
;scheduleConfig.defaultNonWorkingDayCalendarName    = AnyDays   
;scheduleConfig.defaultTimeZone   = 9999
########################################################################################################################################################
# Boards
########################################################################################################################################################
# lifetime - in minutes or days
;boardConfig.forced.lifetime       = Etc/UTC
scheduleConfig.planOrders                   = 2 * 24 =* true
scheduleConfig.submitOrders                     = true

# Calendar
;calendarConfig.forcedFolder60

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

Settings

Section: Generate

...