|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectcom.dtolabs.rundeck.core.execution.utils.ResponderTask
public class ResponderTask
ResponderTask interacts with an input and outputstream, using a Responder
instance to define the interaction.
It looks for lines on the input stream that match the "inputSuccess" regular expression (e.g. password prompt). If it
detects the "inputFailure" regular expression, it fails. If successful, it writes the "inputString" to the output
stream.
ResponderTask.ResultHandler
is set, it will call the handleResult method after the response logic.
If it the thread running the ResponderTask is interrupted, then the process will stop as soon as it is detected.
Implements Callable
so it can be submitted to a ExecutorService
.
Example: wait for "[sudo] password for user: ", write a password, and fail on "try again" response:
Nested Class Summary | |
---|---|
static class |
ResponderTask.ResponderResult
Result from a responder execution, which contains success, the original Responder, a failure reason if unsuccessful and a boolean indicating if the process was interrupted. |
static interface |
ResponderTask.ResultHandler
Handles result of responder thread run |
static class |
ResponderTask.Sequence<T extends ResponderTask.SuccessResult>
Creates a callable by executing the first step, and only if successful executing the next step. |
static interface |
ResponderTask.SuccessResult
Success/failure result interface |
Constructor Summary | |
---|---|
ResponderTask(Responder responder,
java.io.InputStream inputStream,
java.io.OutputStream outputStream,
ResponderTask.ResultHandler resultHandler)
Create a ResponderTask with a responder, io streams, and result handler which can be null. |
Method Summary | |
---|---|
ResponderTask.ResponderResult |
call()
|
java.util.concurrent.Callable<ResponderTask.ResponderResult> |
createSequence(Responder responder)
Create a Callable that will execute another responder if this one is successful, with the same resultHandler for the second one. |
java.util.concurrent.Callable<ResponderTask.ResponderResult> |
createSequence(Responder responder,
ResponderTask.ResultHandler resultHandler)
Create a Callable that will execute another responder if this one is successful, with a specified resultHandler for the second one. |
java.lang.String |
getFailureReason()
|
boolean |
isFailed()
|
boolean |
isSuccess()
|
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public ResponderTask(Responder responder, java.io.InputStream inputStream, java.io.OutputStream outputStream, ResponderTask.ResultHandler resultHandler)
Method Detail |
---|
public ResponderTask.ResponderResult call() throws java.lang.Exception
call
in interface java.util.concurrent.Callable<ResponderTask.ResponderResult>
java.lang.Exception
public boolean isFailed()
public java.util.concurrent.Callable<ResponderTask.ResponderResult> createSequence(Responder responder)
public java.util.concurrent.Callable<ResponderTask.ResponderResult> createSequence(Responder responder, ResponderTask.ResultHandler resultHandler)
public boolean isSuccess()
public java.lang.String getFailureReason()
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |