diff options
| author | Anthony Young <sleepsonthefloor@gmail.com> | 2011-03-02 01:21:54 -0800 |
|---|---|---|
| committer | Anthony Young <sleepsonthefloor@gmail.com> | 2011-03-02 01:21:54 -0800 |
| commit | 7825b7ce81dec97e997d296c3e30b5d143948abc (patch) | |
| tree | d075eb1a08c4cad41df318a33f320e2799f76d71 /nova/virt | |
| parent | bb7c1b8c63632c789ed0cd3785a22b7baa90fd83 (diff) | |
initial commit of vnc support
Diffstat (limited to 'nova/virt')
| -rw-r--r-- | nova/virt/libvirt.xml.template | 1 | ||||
| -rw-r--r-- | nova/virt/libvirt_conn.py | 17 |
2 files changed, 18 insertions, 0 deletions
diff --git a/nova/virt/libvirt.xml.template b/nova/virt/libvirt.xml.template index 88bfbc668..7b4c23211 100644 --- a/nova/virt/libvirt.xml.template +++ b/nova/virt/libvirt.xml.template @@ -101,5 +101,6 @@ <target port='0'/> </serial> + <graphics type='vnc' port='-1' autoport='yes' keymap='en-us' listen='0.0.0.0'/> </devices> </domain> diff --git a/nova/virt/libvirt_conn.py b/nova/virt/libvirt_conn.py index 4e0fd106f..4fca84639 100644 --- a/nova/virt/libvirt_conn.py +++ b/nova/virt/libvirt_conn.py @@ -511,6 +511,23 @@ class LibvirtConnection(object): subprocess.Popen(cmd, shell=True) return {'token': token, 'host': host, 'port': port} + @exception.wrap_exception + def get_vnc_console(self, instance): + def get_vnc_port_for_instance(instance_name): + virt_dom = self._conn.lookupByName(instance_name) + xml = virt_dom.XMLDesc(0) + dom = minidom.parseString(xml) + + for graphic in dom.getElementsByTagName('graphics'): + if graphic.getAttribute('type') == 'vnc': + return graphic.getAttribute('port') + + port = get_vnc_port_for_instance(instance['name']) + token = str(uuid.uuid4()) + host = instance['host'] + + return {'token': token, 'host': host, 'port': port} + def _cache_image(self, fn, target, fname, cow=False, *args, **kwargs): """Wrapper for a method that creates an image that caches the image. |
