[jbosstools-issues] [JBoss JIRA] (JBIDE-23039) Need an interactive terminal that fits specific requirements

Rob Stryker (JIRA) issues at jboss.org
Mon Aug 29 19:16:01 EDT 2016


    [ https://issues.jboss.org/browse/JBIDE-23039?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13285658#comment-13285658 ] 

Rob Stryker commented on JBIDE-23039:
-------------------------------------

[~rgrunber] Doesn't work.  When I do it this way, I get the following errors:

{code}
    ==> default: Registering box with vagrant-registration...
Vagrant is attempting to interface with the UI in a way that requires
a TTY. Most actions in Vagrant that require a TTY have configuration
switches to disable this requirement. Please do that or run Vagrant
with TTY.
{code}

http://i.imgur.com/rMjt7s5.png

Using Runtime.getRuntime().exec(etc) does not behave like a TTY terminal, and so most vagrant plugins that require TTY fail in this fashion. 

> Need an interactive terminal that fits specific requirements
> ------------------------------------------------------------
>
>                 Key: JBIDE-23039
>                 URL: https://issues.jboss.org/browse/JBIDE-23039
>             Project: Tools (JBoss Tools)
>          Issue Type: Feature Request
>          Components: server
>    Affects Versions: 4.4.1.AM2
>            Reporter: Rob Stryker
>            Assignee: Rob Stryker
>
> CDK Tools requires a terminal that allows interactivity of i/o. The full set of requirements is a bit difficult to find a solution for. 
> 1) I must be able to get a Process or IProcess object when a command is run
> 2) I must be able to get an event or know when the process terminates
> 3) The terminal or console must be interactive and allow user input when prompted. 
> 4) It must behave as in 3) for 'vagrant' commands and any and all associated plugins. 
> These three requirements thus far seem impossible to solve. Solutions that have been attempted are:
> 1) Creating a java Process by myself via Runtime.exec.  The interactive prompts never arrive and there is no API for Process to know when it is waiting for input. 
> 2) Using the external-tools launch configuration. When running a command like mvn, the console that pops up seems to allow input from the user, and functions as expected. However, when running a command such as vagrant, such prompts are not provided. In our usecase, the following behavior is observed:
>    a) During vagrant-registration prompts, the console indicates it is not a TTY terminal and cannot allow input
>    b) During a landrush prompt for superuser status, no prompt is made, no TTY message is listed, and the process appears to have frozen
> 3) Launching / Opening a tm.terminal view.  This solution fails requirements 1 and 2.  We are not able to get a Process or an IProcess when a command is launched in a proper interactive terminal. This means we can have no way to know when the process has completed. 
> Other options have been explored but ended up at dead ends and not worth mentioning. The real question is why interactive behavior is visible when using external-tools launch config for maven, but is not visible when running vagrant. 
> Is this a function of the way the vagrant commands display or prompt for input? Why does vagrant-registration require a TTY terminal, but maven does not? Is this something that can be fixed upstream? 
> No other obvious solutions have presented themselves in the past year. 



--
This message was sent by Atlassian JIRA
(v6.4.11#64026)


More information about the jbosstools-issues mailing list