Skip to content
This repository was archived by the owner on Jan 22, 2026. It is now read-only.

Commit 8298f27

Browse files
committed
VirtualGraphics: Refactor XML building
1 parent d911c2f commit 8298f27

1 file changed

Lines changed: 52 additions & 34 deletions

File tree

virtinst/VirtualGraphics.py

Lines changed: 52 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -244,49 +244,67 @@ def set_tlsPort(self, val):
244244
channel_playback_mode = _get_mode_prop(CHANNEL_TYPE_PLAYBACK)
245245
channel_record_mode = _get_mode_prop(CHANNEL_TYPE_RECORD)
246246

247+
def _build_xml(self, port=None, listen=None, keymap=None, passwd=None,
248+
display=None, xauth=None, tlsPort=None, autoport=False,
249+
passwdValidTo=None):
250+
251+
doautoport = (autoport and (port == -1 or tlsPort == -1))
252+
portxml = (port != None and (" port='%d'" % port) or "")
253+
tlsportxml = (tlsPort != None and (" tlsPort='%d'" % tlsPort) or "")
254+
autoportxml = (doautoport and " autoport='yes'" or "")
255+
256+
keymapxml = (keymap and (" keymap='%s'" % keymap) or "")
257+
listenxml = (listen and (" listen='%s'" % listen) or "")
258+
passwdxml = (passwd and (" passwd='%s'" % passwd) or "")
259+
passwdValidToxml = (passwdValidTo and
260+
( "passwdValidTo='%s'" % passwdValidTo) or "")
261+
262+
xauthxml = (xauth and (" xauth='%s'" % xauth) or "")
263+
displayxml = (display and (" display='%s'" % display) or "")
264+
265+
#socketxml = (socket and (" socket='%s'" % socket) or "")
266+
267+
xml = (" " +
268+
"<graphics type='%s'" % self.type +
269+
portxml +
270+
tlsportxml +
271+
autoportxml +
272+
keymapxml +
273+
listenxml +
274+
passwdxml +
275+
passwdValidToxml +
276+
#socketxml +
277+
displayxml +
278+
xauthxml +
279+
"/>")
280+
return xml
281+
247282
def _sdl_config(self):
248283
if "DISPLAY" not in os.environ and not self.display:
249284
raise RuntimeError("No DISPLAY environment variable set.")
250285

251286
disp = self.display or os.environ["DISPLAY"]
252287
xauth = self.xauth or os.path.expanduser("~/.Xauthority")
253288

254-
return """ <graphics type='sdl' display='%s' xauth='%s'/>""" % \
255-
(disp, xauth)
289+
return self._build_xml(display=disp, xauth=xauth)
290+
291+
def _spice_config(self):
292+
return self._build_xml(port=self.port, keymap=self.keymap,
293+
passwd=self.passwd, listen=self.listen,
294+
tlsPort=self.tlsPort, autoport=True,
295+
passwdValidTo=self.passwdValidTo)
296+
297+
def _vnc_config(self):
298+
return self._build_xml(port=self.port, keymap=self.keymap,
299+
passwd=self.passwd, listen=self.listen,
300+
passwdValidTo=self.passwdValidTo)
256301

257302
def _get_xml_config(self):
258303
if self._type == self.TYPE_SDL:
259304
return self._sdl_config()
260-
261-
if self._type not in [self.TYPE_VNC, self.TYPE_SPICE]:
262-
raise ValueError(_("Unknown graphics type %r" % self._type))
263-
264-
tlsportxml = ""
265-
autoportxml = ""
266-
keymapxml = ""
267-
listenxml = ""
268-
passwdxml = ""
269-
passwdValidToxml = ""
270305
if self._type == self.TYPE_SPICE:
271-
if self._port == -1 or self._tlsPort == -1:
272-
autoportxml = "autoport='yes'"
273-
tlsportxml = " tlsPort='%(tlsPort)d' " % { "tlsPort" : self._tlsPort }
274-
if self.keymap:
275-
keymapxml = " keymap='%s'" % self.keymap
276-
if self.listen:
277-
listenxml = " listen='%s'" % self.listen
278-
if self.passwd:
279-
passwdxml = " passwd='%s'" % self.passwd
280-
if self.passwdValidTo:
281-
passwdValidToxml = " passwdValidTo='%s'" % self.passwdValidTo
282-
283-
xml = " <graphics type='%(type)s' " % { "type" : self._type } + \
284-
"port='%(port)d'" % { "port" : self._port } + \
285-
"%(tlsport)s" % { "tlsport" : tlsportxml } + \
286-
"%(autoport)s" % { "autoport" : autoportxml } + \
287-
"%(keymapxml)s" % { "keymapxml" : keymapxml } + \
288-
"%(listenxml)s" % { "listenxml" : listenxml } + \
289-
"%(passwdxml)s" % { "passwdxml" : passwdxml } + \
290-
"%(passwdValidToxml)s" % { "passwdValidToxml" : passwdValidToxml } + \
291-
"/>"
292-
return xml
306+
return self._spice_config()
307+
if self._type == self.TYPE_VNC:
308+
return self._vnc_config()
309+
else:
310+
raise ValueError(_("Unknown graphics type"))

0 commit comments

Comments
 (0)