Introduction
- The JS7 inventory holds scheduling objects such as JS7 - Workflows, JS7 - Calendars and Schedules etc. that are stored with the JS7 - Database.
- Users can integrate the JS7 inventory with Git repositories for JS7 - Rollout of Scheduling Objects, see scenarios and use cases from the JS7 - Git Repository Interface article.
- The below sections explain use of operations for Git repositories available from the JOC Cockpit GUI. For automation see PowerShell CLI 2.0 - Use Cases - CI/CD Pipeline Automation.
- Availability of Git integration is provided along the following JS7 releases:
- FEATURE AVAILABILITY STARTING FROM RELEASE 2.2.0
- FEATURE AVAILABILITY STARTING FROM RELEASE 2.3.0
Settings
The following JS7 - Settings are used for Git integration:
Explanation:
- Settings are used to determine which scheduling objects are considered
local
to an environment and which scheduling objects should be used forrollout
to subsequent environments such as in a sequence dev -> test -> prod. For details see JS7 - Git Repository Interface, chapter: Scheduling Object Mappings - For each scheduling object type settings determine if this should be considered for
local
use or forrollout
to a remote Git repository:git_hold_workflows
: see JS7 - Workflowsgit_hold_resource_locks
: see JS7 - Resource Locksgit_hold_file_order_sources
: see JS7 - Job Resourcesgit_hold_notice_boards
: see JS7 - Notice Boardsgit_hold_script_includes
: see JS7 - Script Includesgit_hold_job_resources
: see JS7 - Job Resourcesgit_hold_calendars
: see JS7 - Calendarsgit_hold_schedules
: see JS7 - Schedules
Git Repositories
JS7 scheduling objects are transparently managed in a Git repository via the JOC Cockpit GUI that makes use of the JS7 - REST Web Service API. In addition, tools such as Git Extensions and Git command line clients can be used for repository operations.
JOC Cockpit holds a number of local repositories inside the JETTY_BASE/resources/joc/repositories
folders subfolder /local
and /rollout
. Each top-level folder in the JS7 Configuration view can be mapped to a Git repository.
- The local repository for a JS7 top-level folder is created when a user performs the
checkout
orclone
operation for the Git repository via JOC Cockpit. - The local repository is persistent and is updated from the JOC Cockpit database (
store
operation) and from the remote Git repository (pull
operation). - The remote Git repository is updated from the local repository by use of the
push
operation. - The JS7 - Cleanup Service removes any local repositories if the JS7 top-level folder no longer exists, i.e. if a top-level folder is dropped from JOC Cockpit.
JS7 JOC Cockpit can be used to interface with remote Git repositories to store and to rollout its scheduling objects such as workflows and jobs.
- JS7 supports use of Git compliant servers to manage remote repositories such as GitLab, GitHub.
- JS7 makes use of a Git CLI Client that has to be provided by the user.
Basic Inventory Operations
Any inventory operations are based on top-level folders that are mapped to Git repositories, see JS7 - Git Repository Interface, chapter: Folder Mappings. Basic inventory operations do not require a Git Client but are performed directly by JOC Cockpit.
The JOC Cockpit GUI offers the action menu Repository to select objects for local and rollout repository use like this:
Operations offered by the above action menu items are explained with the following chapters.
Store Objects to local Repository
This operation is performed to store objects managed with the JOC Cockpit database to the file system that holds the local Git repository.
When storing objects local to the environment via the Repository->Local->Store to repository action then a popup window is displayed like this:
When storing objects intended for rollout to other environments via the Repository->Rollout->Store to repository action then a popup window is displayed like this:
Explanation:
- Filter
- Filters can be applied to select Draft objects only or objects that have been deployed or released.
- Valid objects that match the schema for their object type.
- Objects deployed to a Controller and to Agents include for example workflows, job resources etc.
- Objects released within JOC Cockpit include for example calendars and schedules.
- Filters can be applied to select Draft objects only or objects that have been deployed or released.
- Handle recursively
- The checkbox allows to select from a top-level folder any included sub-folders and objects.
- Tree
- The tree allows to navigate included folders and objects for selection. Individual selection of objects requires the
Handle recursively
checkbox to be unchecked. - Object types offered such as Workflows, Resource Locks etc. depend on the settings for the object type, see chapter Settings.
- The tree allows to navigate included folders and objects for selection. Individual selection of objects requires the
Update Objects from local Repository
This operation is performed to update the JOC Cockpit database from objects in the file system that holds the local Git repository.
When updating objects local to the environment via the Repository->Local->Update from repository action then a popup window is displayed like this:
When updating objects intended for rollout to other environments via the Repository->Rollout->Update from repository action then a popup window is displayed like this:
Explanation:
- Handle recursively
- This checkbox allows to select from a top-level folder any included folders and objects.
- Tree
- Object types offered such as Workflows, Resource Locks etc. depend on the settings for the object type, see chapter Settings.
Delete Objects from local Repository
This operation is performed to delete objects from the file system that holds the local Git repository.
When deleting objects local to the environment via the Repository->Local->Delete from repository action then a popup window is displayed like this:
When deleting objects intended for rollout to other environments via the Repository->Rollout->Delete from repository action then a popup window is displayed like this:
Explanation:
- Handle recursively
- This checkbox allows to select from a top-level folder any included folders and objects.
- Tree
- Object types offered such as Workflows, Resource Locks etc. depend on the settings for the object type, see chapter Settings.