VRO USING TELNET TO TEST PORT CONNECTVITIY
vRealize Orchestrator has a
TelnetClient scripting class that you can use to test port connectivity. This
is far easier to use than dropping to a telnet client on a cli and test
connectivity that way. Together with using the TelnetClient scripting class and
a workflow that would loop and wait for the port to be open, fail gracefully or
continue the workflow but notify that connectivity wasn’t available, the
options the TelnetClient scripting class gives you are very handy.
Here a screenshot of what the
scripting class looks like in the API browser:
The constructor looks like this:
var telnet = new TelnetClient(string)
The parameter is a string and takes a
terminal type, which be default is VT100. Other terminal types would be ANSI,
VT52, VT102, VTNT and so on. VVT stands for video terminal so mostly you can
use the default value of VT100.
Here is some simple code to test
telnet connectivity:
var port = 22; // number
var target = "localhost"; // string
try {
// testing for port connectivity
on target host
System.log("Trying to
connect to port " + port + " on host " + target);
var telnet = new TelnetClient("vt100") ;
telnet.connect(target, port);
connectionSuccess =
telnet.isConnected();
System.log("Connectivity to
target host " + target + " is successful")
} catch (e) {
connectionSuccess =
telnet.isConnected();
System.log("Connection
failed: " + e)
} finally {
telnet.disconnect()
}
The isConnected() method returns a
boolean of true or false, depending on the connection result, so together with
this block of code and a loop workflow, you can test connectivity to a telnet
port or wait for a socket to be up. Using a try / catch / finally statement, you
catch any errors and disconnect appropriately, although strictly speaking
disconnec() can go in the try statement as you’ll only ever connect in the try
block so you can only ever disconnect there as well. Skin a cat in several ways
on that one. Up to you
Here’s a screenshot of a workflow
that puts it all together. The decision just checks for true or false which is
set depending on the connection response.
Obviously, in the sample
code above, you should configure the inputs appropriately for the target and
the port. This is also a good way to check if a service is available, for
example, check for SMTP or a REST API service by using telnet.
Comments
Post a Comment