[Kimchi-devel] [PATCH] [Kimchi 0/6] Web serial console

Lucio Correia luciojhc at linux.vnet.ibm.com
Fri Feb 5 12:25:34 UTC 2016


Reviewed-By: Lucio Correia <luciojhc at linux.vnet.ibm.com>

On 04-02-2016 17:47, Jose Ricardo Ziviani wrote:
> 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 (6):
>    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
>    Implement the Kimchi front-end for the web serial console
>    Add test case for the socket server
>
>   control/vms.py                  |    3 +-
>   i18n.py                         |    4 +-
>   kimchi.conf                     |    6 +
>   model/vms.py                    |   43 +-
>   root.py                         |    8 +-
>   serial_console.py               |  291 ++
>   tests/test_model.py             |   30 +-
>   ui/js/src/kimchi.api.js         |   25 +
>   ui/js/src/kimchi.guest_main.js  |   16 +-
>   ui/pages/guest.html.tmpl        |    5 +-
>   ui/serial/images/favicon.ico    |  Bin 0 -> 15086 bytes
>   ui/serial/images/logo-white.png |  Bin 0 -> 7583 bytes
>   ui/serial/serial.html           |   80 +
>   ui/serial/term.js               | 5973 +++++++++++++++++++++++++++++++++++++++
>   vnc.py                          |   92 -
>   websocket.py                    |  122 +
>   16 files changed, 6587 insertions(+), 111 deletions(-)
>   create mode 100644 serial_console.py
>   create mode 100644 ui/serial/images/favicon.ico
>   create mode 100644 ui/serial/images/logo-white.png
>   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