You are viewing a plain text version of this content. The canonical link for it is here.
Posted to yarn-issues@hadoop.apache.org by "Eric Yang (JIRA)" <ji...@apache.org> on 2018/10/30 22:43:00 UTC

[jira] [Commented] (YARN-8839) Define a protocol exchange between websocket client and server for interactive shell

    [ https://issues.apache.org/jira/browse/YARN-8839?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16669405#comment-16669405 ] 

Eric Yang commented on YARN-8839:
---------------------------------

In the current implementation, there is one control implemented.  The structure of the protocol is leading by number one, and follow by a JSON string, for example, sending heartbeat looks like:

1{}

This is used to ping server to check if there is any output.  We can use the same format to set terminal size:

1{cols:80, rows:25}

The rest of the data stream are treated as byte array.

> Define a protocol exchange between websocket client and server for interactive shell
> ------------------------------------------------------------------------------------
>
>                 Key: YARN-8839
>                 URL: https://issues.apache.org/jira/browse/YARN-8839
>             Project: Hadoop YARN
>          Issue Type: Sub-task
>          Components: nodemanager
>            Reporter: Eric Yang
>            Assignee: Eric Yang
>            Priority: Major
>              Labels: docker
>
> Running interactive shell is more than piping stdio from docker exec through a web socket.  For enabling terminal based program to run, there are certain functions that work outside of stdio streams to the destination program.  A couple known functions to improve terminal usability:
> # Resize terminal columns and rows
> # Set title of the window
> # Upload files via zmodem protocol
> # Set terminal type
> # Heartbeat (poll server side for more data)
> # Send keystroke payload to server side
> If we want to be on parity with commonly supported ssh terminal functions, we need to develop a set of protocols between websocket client and server.  Client and server intercept the messages to enable functions that are normally outside of the stdio streams.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: yarn-issues-unsubscribe@hadoop.apache.org
For additional commands, e-mail: yarn-issues-help@hadoop.apache.org