AnsibleJob.ps1
function Get-AnsibleJob { [CmdletBinding()] Param ( [Parameter(ValueFromPipelineByPropertyName=$true)] [int]$id ) if ($id) { $Return = Invoke-GetAnsibleInternalJsonResult -ItemType "jobs" -Id $id } Else { $Return = Invoke-GetAnsibleInternalJsonResult -ItemType "jobs" } if (!($Return)) { #Nothing returned from the call Return } $returnobj = @() foreach ($jsonorg in $return) { #Shift back to json and let newtonsoft parse it to a strongly named object instead $jsonorgstring = $jsonorg | ConvertTo-Json $org = $JsonParsers.ParseToJob($jsonorgstring) $returnobj += $org; $org = $null } #return the things $returnobj } function Invoke-AnsibleJob { [CmdletBinding()] Param ( [Parameter(ValueFromPipelineByPropertyName=$true,Mandatory=$true,ParameterSetName='ByObj')] [AnsibleTower.JobTemplate]$JobTemplate, [Parameter(ValueFromPipelineByPropertyName=$true,Mandatory=$true,ParameterSetName='ById')] [int]$id ) if ($JobTemplate) { $ThisJobTemplate = $JobTemplate $id = $ThisJobTemplate.id } Else { $ThisJobTemplate = Get-AnsibleJobTemplate -id $id } if (!$ThisJobTemplate) {Write-Error "No Job template with id $id"; return} Write-Verbose "Submitting job from template $id" $result = Invoke-PostAnsibleInternalJsonResult -ItemType "job_templates" -itemId $id -ItemSubItem "jobs" $JobId = $result.id Write-Verbose "Starting job with jobid $jobid" $result = Invoke-PostAnsibleInternalJsonResult -ItemType "jobs" -itemId $JobId -ItemSubItem "start" $job = get-ansibleJob -id $JobId $job } |