[Openstack] [XenAPI] Implementing text console (log)

Mohammed Naser mnaser at vexxhost.com
Fri May 25 22:02:55 UTC 2012


Thanks for the reply.  It's a bit annoying to see the FAKE text in there.

On Fri, May 25, 2012 at 5:52 AM, John Garbutt <John.Garbutt at citrix.com> wrote:
> Awesome, this has been on my team's TODO list for far too long.
>
> Have you added back the xapi-serial-console blueprint anywhere?

I haven't had the chance to do that, not sure on where to add that
from, but I did create a bug report:
https://bugs.launchpad.net/nova/+bug/1004175

>
>> At the moment, I have a sort-of working concept of it that only runs under
>> XS6 (the only one that offers VT100 terminals), however it has a fallback to
>> returning nothing if it doesn't find one, however, there is an issue.
> Yep, we got it added into XS6 especially for OpenStack, certainly missing in previous version.
> Maybe the API should return some kind of "Not Supported" response?
We could do that, however I'm not sure how the exception is handled
and propagated through the RPC system, at the moment, the VMWare
driver just returns nothing.  If we raise an exception, I think it
will give something along the lines of not being able to retrieve the
console logs.

>
>> The way to get the console output is by getting the console URL and
>> CONNECT-ing to it, an example of this in a curl is the following:
>> curl -k -X CONNECT
>> 'https://192.168.1.215/console?uuid=6e12b329-6d72-19a4-f8ea-
>> 61dedcd049b9&session_id=OpaqueRef:d04043d3-4328-c1b6-1a2a-
>> 4a3638419967'
>> The curl process will appear to be hanging, but if you run any commands or
>> type anything, you'll see it appear in the screen.
>> Obviously, you need your own session_id and console UUID with type VT100.
> Right, that seems odd.

It seems that basically the console is streaming the output, but it
does not buffer/store it anywhere in XenServer (or maybe it does?  I
found VT100 console by my own research)..

>
> I have added Wu who was working on this when he was at Citrix. He may have some ideas for you.
>

Great, hope that we can get some information

> I can have a word with the XenServer developers about the best way do this, and take a look myself. Have you gone through how KVM/LibVirt code deals with this?
>

I've taken a look at the libvirt/KVM & VMWARE code before:

Libvirt (https://github.com/openstack/nova/blob/master/nova/virt/libvirt/connection.py#L933):
It seems that it gets the PTY for the console first, sets the correct
permissions for it and stores it in the instance folder under
console.log, and the "_flush_libvirt_console" runs a dd from the PTY
to stdout and adding that into the console.log -- This is not
something that can be done by us because nova-compute runs on a DomU
so no access to the console directly.

VMware (https://github.com/openstack/nova/blob/master/nova/virt/vmwareapi/vmops.py#L710):
Looks like they have a built in API that stores all the console and
it's just read out easily.

> Cheers,
> John



-- 
Mohammed Naser — vexxhost
-----------------------------------------------------
D. 514-316-8872
D. 800-910-1726 ext. 200
E. mnaser at vexxhost.com
W. http://vexxhost.com




More information about the Openstack mailing list