Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

The following examples makes use of the JS7 PowerShell Module to manage Standalone Cluster Agents:

Code Block
languagepowershell
titleExample for use of PowerShell cmdlets
linenumberstrue
#!/usr/bin/env pwsh

# Parameterization

$Url = "http://localhost:4446"
$ControllerId = "controller"

$TestCaseClusterAgentId     = "TestCase_ClusterAgentID"
$TestCaseClusterAgentName   = "TestCase_ClusterAgentName"
$TestCaseClusterAgentUrl    = "https://TestCase_ClusterAgentUrl"

$TestCaseSubagentId         = "TestCase_SubagentID"
$TestCaseSubagentUrl        = "http://TestCase_SubagentUrl"

$TestCaseSubagentClusterId  = "TestCase_SubagentClusterID"

# Connection

Import-Module JS7 -Force
Connect-JS7 -Url $Url -Id $ControllerId | Out-Null

# ----- Create Cluster Agent and Subagents -----

# create one Director Agent and two additional Subagents
$subagents = @()
$subagents += New-JS7Subagent -SubagentId "$TestCaseSubagentId-001" -Url "$TestCaseSubagentUrl-001:4443" -DirectorType 'PRIMARY_DIRECTOR'
$subagents += New-JS7Subagent -SubagentId "$TestCaseSubagentId-002" -Url "$TestCaseSubagentUrl-002:4443"
$subagents += New-JS7Subagent -SubagentId "$TestCaseSubagentId-003" -Url "$TestCaseSubagentUrl-003:4443"

# create the Cluster Agent referencing the list of Subagents
Set-JS7ClusterAgent -AgentId "$TestCaseClusterAgentId-001" -AgentName "$TestCaseClusterAgentName-001" -Url "$TestCaseClusterAgentUrl-001:4443" -Subagents $subagents -ControllerId $ControllerId

# ----- Manage Cluster Agent -----

# read the Cluster Agent configuration
$agent = Get-JS7Agent -AgentId "$TestCaseClusterAgentId-001"

# deploy Cluster Agent and Subagents to Controller
Publish-JS7ClusterAgent -AgentId "$TestCaseClusterAgentId-001"

# reset Subagents if required
Reset-JS7Subagent -SubagentId "$TestCaseSubagentId-001"
Reset-JS7Subagent -SubagentId "$TestCaseSubagentId-002" -Force

# disable Subagents that should not be considered for job execution
Disable-JS7Subagent -SubagentId "$TestCaseSubagentId-001","$TestCaseSubagentId-002"
Enable-JS7Subagent -SubagentId "$TestCaseSubagentId-001","$TestCaseSubagentId-002"

#  revoke the Cluster Agent from the Controller
Revoke-JS7ClusterAgent -AgentId "$TestCaseClusterAgentId-001"
Publish-JS7ClusterAgent -AgentId "$TestCaseClusterAgentId-001"

# ----- Manage Subagent Cluster -----

# create an active-active Subagent Cluster from two Subagents using the same priorities
Set-JS7SubagentCluster -AgentId "$TestCaseClusterAgentId-001" -SubagentClusterId "$TestCaseSubagentClusterId-001" -SubagentId "$TestCaseSubagentId-001","$TestCaseSubagentId-002" -Priority 1,1
# create an active-passive Subagent Cluster from two Subagents using different priorities
Set-JS7SubagentCluster -AgentId "$TestCaseClusterAgentId-001" -SubagentClusterId "$TestCaseSubagentClusterId-002" -SubagentId "$TestCaseSubagentId-001","$TestCaseSubagentId-002" -Priority 2,1

# deploy Subagent Clusters to Controller
Publish-JS7SubagentCluster -SubagentClusterId "$TestCaseSubagentClusterId-001","$TestCaseSubagentClusterId-002"

# revoke Subagent Clusters from Controller
Revoke-JS7SubagentCluster -SubagentClusterId "$TestCaseSubagentClusterId-001","$TestCaseSubagentClusterId-002"

# ----- Remove Agent Cluster, Subagent Clusters, Subagents -----

# remove Subagent Clusters individually
Remove-JS7SubagentCluster -SubagentClusterId "$TestCaseSubagentClusterId-001","$TestCaseSubagentClusterId-002"

# remove Subagents individually
Remove-JS7Subagent -SubagentId "$TestCaseSubagentId-002","$TestCaseSubagentId-003"

# remove the Cluster Agent and any Subagents and Subagent Clusters included
Remove-JS7Agent -AgentId "$TestCaseClusterAgentId-001"

# Connection

Disconnect-JS7

...