Quantcast
Channel: THWACK: Popular Discussions - Orion SDK
Viewing all articles
Browse latest Browse all 3719

Testing Agent with API

$
0
0

We have a lot of remote  Agent based nodes that get re-imaged and therefore we have an UP (new one) and a DOWN one. Sometimes the re-image fails to correctly install the agent I have a PowerShell script, that runs as a scheduled task, that finds Down agent polled Windows devices.

If the script finds an UP one with a matching node caption to the DOWN one, it deleted the DOWN one.

If the script finds an no UP one with a matching node caption to the DOWN one, it Unmanages the DOWN one.

 

The next challenge is to test the Unmanaged nodes to see if the agent is connectable again (the node was down, the WAN link was down, etc). I am trying to use the Orion.AgentManagement.Agent TestWithEngine verb to see if the agent is responding. Here is my code section and returns:

 

# Test Unamanaged ATMs connectability between the poller and the agent. Remanage any that have connectable agents
$agentToTest = Get-SwisData $swis 'SELECT Agent.AgentID, Agent.PollingEngineId, Agent.Node.Caption as Name, Agent.Node.NodeID FROM Orion.AgentManagement.Agent where Agent.Node.status = 9' ;

for ($i=0; $i -lt $agentToTest.Length; $i++)
{
    $testResults = Invoke-SwisVerb $swis Orion.AgentManagement.Agent TestWithEngine @($agentToTest[$i].AgentID, $agentToTest[$i].PollingEngineId)    If($testResults.'#text' -eq "True")    {        $msg+= ("{0} INFO: Remanaging ATM {1} since it is now connectable. `n" -f `        ((get-date -Format s).Replace("T", " ")), (($agentToTest[$i].name | Out-String).Replace("`n", "")) );        $node = "N:" + $agentToTest.nodeID[$i]        Invoke-SwisVerb $swis Orion.Nodes Remanage @($node)           }    else    {       $msg+= ("{0} INFO: ATM {1} agent is still unconnectable. `n" -f `        ((get-date -Format s).Replace("T", " ")), (($agentToTest[$i].name | Out-String).Replace("`n", "")) );    }
}

 

 

The first get-SwisData call returns this:

 

AgentID    PollingEngineId      Name              NodeID
76          10                  Node026A154P      9690
159         10                  Node544A013P      9092
222         10                  Node211A202P      9536
256         10                  Node086A075P      9699
259         10                  Node521A271P      9679
265         10                  Node026A154P      9690
269         10                  Node086A075P      9699
270         10                  Node544A013P      9700
276         10                  Node544A013P      9708

 

Regardless of the state of the agent, I get the same thing as a return from $testResults = Invoke-SwisVerb $swis Orion.AgentManagement.Agent TestWithEngine @($agentToTest[$i].AgentID, $agentToTest[$i].PollingEngineId)

xmlns                                                                                            #text                                                                                         
-----                                                                                            -----                                                                                         
http://schemas.datacontract.org/2004/07/SolarWinds.InformationService.Contract                   true                                                                                          

 

I thought of using the DiscoverInterfacesOnNode but agent based nodes' NodeID returns InvalidNode as the Result regardless of the Agent state.

 

Any assistance will be appreciated.

 

...


Viewing all articles
Browse latest Browse all 3719

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>