Hi Everyone,
I would like to automate the vCO appliance reboot in our environment.
Before taking the reboot decision I would like to know if the vCO server is currently in use or not.
I'm thinking about:
1. Retrieving logged users
2. Check if they are some running/waiting workflows
I can do this one by getting the list of all existing workflows with the REST api, and then going through each of them to know if there is a running execution.
But is there a better way to do this?
function vCO_runningWorkflow ($vcoapi,$headers) { $workflowlist = Invoke-WebRequest -uri:"$vcoapi/content/workflows/?keys=id" -Method:"GET" -Headers:$headers -ContentType:"application/json" $workflowExecutions = @() foreach ($workflow in (($workflowlist.Content | ConvertFrom-Json).link.attributes | where {$_.name -match "itemHref"}).value) { $workflowExecution = Invoke-WebRequest -uri:"$workflow/executions/?conditions=state=running" -Method:"GET" -Headers:$headers -ContentType:"application/json" if(($workflowExecution.Content | ConvertFrom-Json).relations.total -ne 0 ) { $workflowExecutions += $workflowExecution $workflowExecution = $null } $workflowExecution = Invoke-WebRequest -uri:"$workflow/executions/?conditions=state=waiting" -Method:"GET" -Headers:$headers -ContentType:"application/json" if(($workflowExecution.Content | ConvertFrom-Json).relations.total -ne 0 ) { $workflowExecutions += $workflowExecution $workflowExecution = $null } } return $workflowExecutions }
Thanks a lot.
Manuel