Info | ||||
---|---|---|---|---|
| ||||
|
Table of Contents | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
|
...
Scope
- You can use the JobScheduler PowerShell Adapter to create jobs or
...
- pre-processing and post-processing Monitors that use
...
- the JobScheduler API in PowerShell.
- This feature is provided by
Jira server SOS JIRA columns key,summary,type,created,updated,due,assignee,reporter,priority,status,resolution serverId 6dc67751-9d67-34cd-985b-194a8cdc9602 key JS-1596 Display feature availability EndingWithRelease 1.10 StartingFromRelease 1.9
- Future releases will use a new interface that is available with
Jira server SOS JIRA columns key,summary,type,created,updated,due,assignee,reporter,priority,status,resolution serverId 6dc67751-9d67-34cd-985b-194a8cdc9602 key JS-1595
Requirements
- Windows Machine with a JobScheduler installation
- .Net Framework 4
...
- PowerShell 2 or newer
Installation
- Download the JobScheduler Powershell Adapter from here (link)PowerShell Adapter from http://www.sos-berlin.com/download/scheduler/JobSchedulerPowershellAdapter.zip
- Unzip the file to the
bin
directory of your JobScheduler installation Register the assembly by running
Code Block language bash title Registration for Windows 32 bit operating systems No Format C:\Windows\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe "[install_path]\bin\JobSchedulerPowershellAdapter.dll" /codebase
Code Block language bash title Registration for Windows 64 bit operating systems C:\Windows\Microsoft.NET\Framework64\v4.0.30319\RegAsm.exe "[install_path]\bin\JobSchedulerPowershellAdapter.dll" /codebase
Usage
- The
...
- PowerShell Adapter uses the JobScheduler COM interface.
- Currently, neither COM
...
- jobs nor
...
- PowerShell jobs are supported by JOE. So,
...
- PowerShell jobs need to be configured by manually editing XML files.
...
Configuring a
...
PowerShell job
...
- Have the
<script>
use thecom_class JSPowershellAdapter.JobAdapter
- define a parameter
powershell_script
which that points to the location of the Powershell Job implementationPowerShell job implementation- If the path is relative, it needs to be relative to the SCHEDULER_DATA directory
- write a PowerShell job implementation that write a powershell Job implementation which at least implements
Function spooler_process()
Example job definition
Code Block | |
---|---|
| |
| |
<?xml versioh1. version="1.0" encoding="ISO-8859-1"?> |
<job>
No Format |
---|
<job> <params> <param name namh1.= "test" value = "12345"/> <param name namh1.= "powershell_script" value = "powershell\powershell_job.ps1"/> </params> <script com_clash1.class = "JSPowershellAdapter.JobAdapter"/> <run_time once = "no"/> </job> |
Example
...
PowerShell job script
Code Block | ||||
---|---|---|---|---|
| ||||
No Format | ||||
Function spooler_init() \{ if ($spooler_log) \{ $spooler_log.info("This is spooler_init()") $spooler_log.info("TaskID: "+ $spooler_task.id) \} return $true \} |
...
Function spooler_open() |
...
No Format |
---|
\{ $spooler_log.info("This is spooler_open()") return $true; \} |
...
Function spooler_process() |
...
No Format |
---|
\{ $taskId = $spooler_task.id $spooler_log.info("This is spooler_process, in task id " + $taskId) $order = $spooler_task.order if ($order) { $orderId = $order.id $spooler_log.info("processing order " + $orderId) return $true } return $false; \} |
...
Function spooler_close() |
...
No Format |
---|
\{ $spooler_log.info("This is spooler_close()") \} |
...
Function spooler_exit() |
...
No Format |
---|
\{ $spooler_log.info("This is spooler_exit()") \} |
...
Function spooler_on_success() |
...
No Format |
---|
\{ $spooler_log.info("This is spooler_on_success()") \} |
...
Function spooler_on_error() |
...
{
$spooler_log.info("This is spooler_on_error()")
} |
Configuring a PowerShell pre-/post-processing Monitor
Only one Powershell pre-/post-processing Monitor can be configured per job.
- Have the
<monitor><script/></monitor>
use thecom_class JSPowershellAdapter.JobAdapter
- define a parameter
powershell_monitor_script
that points to the location of the PowerShell pre-/post-processing Monitor implementation- If the path is relative, it needs to be relative to the SCHEDULER_DATA directory
- write a PowerShell pre-/post-processing Monitor implementation
Example job definition
Code Block | ||
---|---|---|
| ||
<?xml version="1.0" encoding="ISO-8859-1"?>
<job>
<params>
<param name="powershell_monitor_script" value="powershell\powershell_monitor.ps1"/>
</params>
<script language="javascript">
<![CDATA[
function spooler_process(){
spooler_log.info("this is javascript");
return false;
}
]]>
</script>
<monitor>
<script com_class="JSPowershellAdapter.JobAdapter"/>
</monitor>
</job> |
Example PowerShell pre-/post-processing script
Code Block | ||
---|---|---|
| ||
Function spooler_task_before()
{
$spooler_log.info("powershell: This is spooler_task_before()")
return $true
}
Function spooler_process_before()
{ | ||
No Format | ||
\{ $spooler_log.info("powershell: This is spooler_on_error") _process_before()") return $true } Function spooler_process_after(bool $spooler_process_result) { $spooler_log.info("powershell: This is spooler_process_after with result $spooler_process_result()") return $spooler_process_result \} } Function spooler_task_after() { $spooler_log.info("powershell: This is spooler_task_after()") } |
References
Change Management References
Jira | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
|