Executing tasks dynamically |
Under certain conditions you may want to create and execute tasks on the fly. An example of such a situation might be when the command for the next task depends on the response of the previous task. Dynamic TelnetTask usually have a null start prompt value as they are not waiting on data from the telnet server. To illustrate we will use the following use case.
Example
The example below demonstrates the following using case:
1. Login to system 2. Execute run.sh command 3. If response of run.sh command contains the text "Success" then logout Else execute fail.sh command and logout.
String loginPrompt = "login:"; String passwordPrompt = "Password:"; String shellPrompt = "#"; String username = "jsmith"; String password = "secret";
// build task to submit username TelnetTask loginTask = new TelnetTask(loginPrompt, login, passwordPrompt);
// build task to submit password TelnetTask passwordTask = new TelnetTask(passwordPrompt, password, shellPrompt);
// build task to execute command TelnetTask commandTask = new TelnetTask(shellPrompt, "run.sh", shellPrompt); while (!commandTask.isComplete()) { try { Thread.sleep(1000); } catch (Exception e) { } }
// commandTask complete … check response if (commandTask.getResponse().indexOf("Success") != -1) { // success … logout telnet.disconnect(); } else { // failure … run fail.sh (no start prompt needed) then logout TelnetTask failTask = new TelnetTask(null, "fail.sh", "#");
// wait for fail task to complete
while (!fail.isComplete()) { try { Thread.sleep(1000); } catch (Exception e) { } }
// logout telnet.disconnect(); } |