[Kimchi-devel] [PATCH v2] [Kimchi 0/8] Web serial console
Lucio Correia
luciojhc at linux.vnet.ibm.com
Wed Feb 10 12:26:36 UTC 2016
Reviewed-By: Lucio Correia <luciojhc at linux.vnet.ibm.com>
On 09-02-2016 16:23, Jose Ricardo Ziviani wrote:
> v2:
> - applied code review
> - updated the build system
>
> This is the initial version of a web serial console for kimchi/libvirt
> VMs.
>
> When a VM is turned on, a new action is displayed named "Connect
> Serial", this will open a new tab with an interface like the existing
> novnc.
>
> That interface opens a websocket to kimchi webserver (nginx), then
> it is redirected to websockify. Websockify will proxy that connection to
> a local unix socket server to finally communicate with the guest
> console.
>
> I chose to create one server per guest because that's the way websockify
> was designed (it was born inside novnc), so I could reuse the token
> security plugin implemented in websockify. In order to avoid wasting
> resources I decided to user unix socket, a local/lightweight/reliable
> socket if compared with internet sockets, this uses files instead of
> ports to accept connections.
>
> When a connection is established no one else can get that console (I'm
> not multiplexing it but it's possible in future). The serial console
> will be available again if the current user does one of:
> - type ctrl+q
> - close the tab
> - 2 min. timeout
>
> Thanks
>
> Jose Ricardo Ziviani (8):
> Rename vnc.py to websocket.py
> Implement the web serial console server
> Implement the backend to support web serial console
> Implement the web serial console front-end
> Import term.js to Kimchi project
> Implement the Kimchi front-end for the web serial console
> Update the build system to make the serial console
> Add test case for the socket server
>
> Makefile.am | 4 +-
> config.py.in | 6 +-
> configure.ac | 2 +
> control/vms.py | 3 +-
> i18n.py | 3 +
> model/vms.py | 43 +-
> root.py | 6 +-
> serialconsole.py | 315 +++
> tests/test_model.py | 28 +-
> ui/Makefile.am | 2 +-
> ui/js/src/kimchi.api.js | 27 +
> ui/js/src/kimchi.guest_main.js | 14 +-
> ui/pages/guest.html.tmpl | 3 +-
> ui/serial/Makefile.am | 23 +
> ui/serial/images/Makefile.am | 21 +
> ui/serial/images/favicon.ico | Bin 0 -> 15086 bytes
> ui/serial/serial.html | 99 +
> ui/serial/term.js | 5973 ++++++++++++++++++++++++++++++++++++++++
> vnc.py | 92 -
> websocket.py | 122 +
> 20 files changed, 6677 insertions(+), 109 deletions(-)
> create mode 100644 serialconsole.py
> create mode 100644 ui/serial/Makefile.am
> create mode 100644 ui/serial/images/Makefile.am
> create mode 100644 ui/serial/images/favicon.ico
> create mode 100644 ui/serial/serial.html
> create mode 100644 ui/serial/term.js
> delete mode 100644 vnc.py
> create mode 100644 websocket.py
>
--
Lucio Correia
Software Engineer
IBM LTC Brazil
More information about the Kimchi-devel
mailing list