[libvirt] [PATCH] qemu: Redundant listen address entry in quest xml
by Erik Skultety
When editing guest's XML (on QEMU), it was possible to add multiple
listen elements into graphics parent element. However QEMU does not
support listening on multiple addresses. This patch causes qemu
post-parse callback to remove any redundant entries, leaving only 1
listening address if provided, otherwise the configuration remains
untouched.
---
src/qemu/qemu_domain.c | 19 +++++++++++++++++++
1 file changed, 19 insertions(+)
diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c
index 4f63c88..75a4446 100644
--- a/src/qemu/qemu_domain.c
+++ b/src/qemu/qemu_domain.c
@@ -827,6 +827,25 @@ qemuDomainDefPostParse(virDomainDefPtr def,
VIR_DOMAIN_INPUT_BUS_USB) < 0)
return -1;
+ /* loop over all graphics connections and all listening addresses,
+ * removing all redundant listening address entries, thus leaving
+ * only 1 entry
+ */
+ if (def->ngraphics > 0 && def->graphics) {
+ size_t i, j;
+ for (i = 0; i < def->ngraphics; i++) {
+ virDomainGraphicsListenDefPtr listens = def->graphics[i]->listens;
+ size_t nListens = def->graphics[i]->nListens;
+ if (nListens <= 1 || !listens)
+ continue;
+ for (j = 1; j < nListens; j++) {
+ VIR_FREE(listens[j].address);
+ VIR_FREE(listens[j].network);
+ }
+ def->graphics[i]->nListens = 1;
+ }
+ }
+
return 0;
}
--
1.9.3
10 years, 3 months
[libvirt] [PATCH] docs: fix missing forward slash
by Jianwei Hu
Should like below:
<interface type='server'>
<mac address='52:54:00:22:c9:42'/>
<source address='192.168.0.1' port='5558'/>
</interface>
...
<interface type='client'>
<mac address='52:54:00:8b:c9:51'/>
<source address='192.168.0.1' port='5558'/>
</interface>
---
docs/formatdomain.html.in | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/docs/formatdomain.html.in b/docs/formatdomain.html.in
index bd99ae0..ed17389 100644
--- a/docs/formatdomain.html.in
+++ b/docs/formatdomain.html.in
@@ -3701,12 +3701,12 @@
...
<devices>
<interface type='server'>
- <mac address='52:54:00:22:c9:42'>
+ <mac address='52:54:00:22:c9:42'/>
<source address='192.168.0.1' port='5558'/>
</interface>
...
<interface type='client'>
- <mac address='52:54:00:8b:c9:51'>
+ <mac address='52:54:00:8b:c9:51'/>
<source address='192.168.0.1' port='5558'/>
</interface>
</devices>
--
1.8.3.1
10 years, 3 months
[libvirt] [PATCH v3 0/9] Series on passing FDs to daemon
by Martin Kletzander
This started as a fix for virsh 20s timeout of waiting for session
daemon that failed to start:
http://www.redhat.com/archives/libvir-list/2013-April/msg01351.html
Then there was a idea that we can pass some FDs around:
http://www.redhat.com/archives/libvir-list/2013-April/msg01356.html
So we did:
https://www.redhat.com/archives/libvir-list/2014-July/msg00841.html
And now we are even able to start with socket-activation with systemd;
see patch 9/9.
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=927369
Martin Kletzander (9):
util: abstract parsing of passed FDs into virGetListenFDs()
remote: create virNetServerServiceNewFDOrUNIX() wrapper
rpc: set listen backlog on FDs as well as on other sockets
daemon: support passing FDs from the calling process
cfg.mk: allow integers to be assigned a value computed with i|j|k
tests: support dynamic prefixes in commandtest
util: add virCommandPassListenFDs() function
rpc: pass listen FD to the daemon being started
daemon: use socket activation with systemd
.gitignore | 1 +
cfg.mk | 2 +-
daemon/Makefile.am | 14 +++++-
daemon/libvirtd.c | 45 ++++++++++--------
daemon/libvirtd.conf | 5 ++
daemon/libvirtd.service.in | 5 --
daemon/libvirtd.socket.in | 6 +++
libvirt.spec.in | 26 +++++++++--
src/libvirt_private.syms | 2 +
src/libvirt_remote.syms | 1 +
src/locking/lock_daemon.c | 47 ++-----------------
src/rpc/virnetserverservice.c | 55 +++++++++++++++++++++-
src/rpc/virnetserverservice.h | 15 +++++-
src/rpc/virnetsocket.c | 102 ++++++++++++++++++++++++++++++++--------
src/util/vircommand.c | 99 +++++++++++++++++++++++++++++++++++++++
src/util/vircommand.h | 4 +-
src/util/virutil.c | 62 +++++++++++++++++++++++++
src/util/virutil.h | 2 +
tests/commanddata/test24.log | 7 +++
tests/commandtest.c | 105 ++++++++++++++++++++++++++++++++++--------
20 files changed, 491 insertions(+), 114 deletions(-)
create mode 100644 daemon/libvirtd.socket.in
create mode 100644 tests/commanddata/test24.log
--
2.0.2
10 years, 3 months
[libvirt] [PATCH] conf: fix parsing 'cmd_per_lun' and 'max_sectors'
by Wang Rui
From: Mo yuxiang <moyuxiang(a)huawei.com>
commit d9504941 introduces two new attributes "cmd_per_lun" and
"max_sectors" same with the names QEMU uses for virtio-scsi.
But the case of parsing them is not exact. Change to parse
them if controller has "driver" element.
Signed-off-by: Mo yuxiang <moyuxiang(a)huawei.com>
---
src/conf/domain_conf.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index 934f6cb..5c762fa 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -6295,10 +6295,11 @@ virDomainControllerDefParseXML(xmlNodePtr node,
cur = node->children;
while (cur != NULL) {
if (cur->type == XML_ELEMENT_NODE) {
- if (xmlStrEqual(cur->name, BAD_CAST "driver"))
+ if (xmlStrEqual(cur->name, BAD_CAST "driver")) {
queues = virXMLPropString(cur, "queues");
cmd_per_lun = virXMLPropString(cur, "cmd_per_lun");
max_sectors = virXMLPropString(cur, "max_sectors");
+ }
}
cur = cur->next;
}
--
1.7.12.4
10 years, 3 months
[libvirt] [PATCH] qemu: Issue rtc_reset_reinjection command after guest-set-time
by Michal Privoznik
An advice appeared there on the qemu-devel list [1]. When a domain is
suspended and then resumed guest kernel is not aware of this. So we've
introduced virDomainSetTime API that resets the time within guest
using qemu-ga. On the other hand, qemu itself is trying to make RTC
beat faster to catch the difference. But if we don't tell qemu that
guest's time was reset via the other method, both mechanisms are
applied resulting in again wrong guest time. In order to avoid summing
both corrections we need to tell qemu that it should not use the RTC
injection if the guest time is set via guest agent.
1: http://www.mail-archive.com/qemu-devel@nongnu.org/msg236435.html
Signed-off-by: Michal Privoznik <mprivozn(a)redhat.com>
---
src/qemu/qemu_driver.c | 10 ++++++++++
src/qemu/qemu_monitor.c | 33 +++++++++++++++++++++++++++++++++
src/qemu/qemu_monitor.h | 2 ++
src/qemu/qemu_monitor_json.c | 21 +++++++++++++++++++++
src/qemu/qemu_monitor_json.h | 2 ++
5 files changed, 68 insertions(+)
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index b6219ba..bdfd155 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -16879,6 +16879,16 @@ qemuDomainSetTime(virDomainPtr dom,
rv = qemuAgentSetTime(priv->agent, seconds, nseconds, rtcSync);
qemuDomainObjExitAgent(vm);
+ if (!virDomainObjIsActive(vm)) {
+ virReportError(VIR_ERR_OPERATION_INVALID,
+ "%s", _("domain is not running"));
+ goto endjob;
+ }
+
+ qemuDomainObjEnterMonitor(driver, vm);
+ rv = qemuMonitorRTCResetReinjection(priv->mon);
+ qemuDomainObjExitMonitor(driver, vm);
+
if (rv < 0)
goto endjob;
diff --git a/src/qemu/qemu_monitor.c b/src/qemu/qemu_monitor.c
index 3d9f87b..77627bc 100644
--- a/src/qemu/qemu_monitor.c
+++ b/src/qemu/qemu_monitor.c
@@ -4037,3 +4037,36 @@ qemuMonitorGetGuestCPU(qemuMonitorPtr mon,
return qemuMonitorJSONGetGuestCPU(mon, arch, data);
}
+
+/**
+ * qemuMonitorRTCResetReinjection:
+ * @mon: Pointer to the monitor
+ *
+ * Issue rtc-reset-reinjection command.
+ * This should be used in cases where guest time is restored via
+ * guest agent so RTC injection is not needed (in fact it will
+ * confuse guest's RTC).
+ *
+ * Returns 0 on success
+ * -1 on error.
+ */
+int
+qemuMonitorRTCResetReinjection(qemuMonitorPtr mon)
+{
+
+ VIR_DEBUG("mon=%p", mon);
+
+ if (!mon) {
+ virReportError(VIR_ERR_INVALID_ARG, "%s",
+ _("monitor must not be NULL"));
+ return -1;
+ }
+
+ if (!mon->json) {
+ virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s",
+ _("JSON monitor is required"));
+ return -1;
+ }
+
+ return qemuMonitorJSONRTCResetReinjection(mon);
+}
diff --git a/src/qemu/qemu_monitor.h b/src/qemu/qemu_monitor.h
index c3695f2..4fd6f01 100644
--- a/src/qemu/qemu_monitor.h
+++ b/src/qemu/qemu_monitor.h
@@ -790,6 +790,8 @@ int qemuMonitorGetGuestCPU(qemuMonitorPtr mon,
virArch arch,
virCPUDataPtr *data);
+int qemuMonitorRTCResetReinjection(qemuMonitorPtr mon);
+
/**
* When running two dd process and using <> redirection, we need a
* shell that will not truncate files. These two strings serve that
diff --git a/src/qemu/qemu_monitor_json.c b/src/qemu/qemu_monitor_json.c
index a62c02f..538110c 100644
--- a/src/qemu/qemu_monitor_json.c
+++ b/src/qemu/qemu_monitor_json.c
@@ -5851,3 +5851,24 @@ qemuMonitorJSONGetGuestCPU(qemuMonitorPtr mon,
return -1;
}
}
+
+int
+qemuMonitorJSONRTCResetReinjection(qemuMonitorPtr mon)
+{
+ int ret = -1;
+ virJSONValuePtr cmd;
+ virJSONValuePtr reply = NULL;
+
+ if (!(cmd = qemuMonitorJSONMakeCommand("rtc-reset-reinjection",
+ NULL)))
+ return ret;
+
+ ret = qemuMonitorJSONCommand(mon, cmd, &reply);
+
+ if (ret == 0)
+ ret = qemuMonitorJSONCheckError(cmd, reply);
+
+ virJSONValueFree(cmd);
+ virJSONValueFree(reply);
+ return ret;
+}
diff --git a/src/qemu/qemu_monitor_json.h b/src/qemu/qemu_monitor_json.h
index 5f6c846..d8c9308 100644
--- a/src/qemu/qemu_monitor_json.h
+++ b/src/qemu/qemu_monitor_json.h
@@ -437,4 +437,6 @@ int qemuMonitorJSONGetDeviceAliases(qemuMonitorPtr mon,
int qemuMonitorJSONGetGuestCPU(qemuMonitorPtr mon,
virArch arch,
virCPUDataPtr *data);
+
+int qemuMonitorJSONRTCResetReinjection(qemuMonitorPtr mon);
#endif /* QEMU_MONITOR_JSON_H */
--
1.8.5.5
10 years, 3 months
[libvirt] ★ Libvir List, Mig vám poslal zprávu
by Mig
Mig vám poslal zprávu
Zpráva i osoba, která ji odeslala, budou zobrazeny pouze vám a vy je můžete kdykoliv smazat. Můžete ihned odpovědět prostřednictvím výměny zpráv. Chcete-li vidět, co ve zprávě stojí, jednoduše následujte tento odkaz:
http://eu1.badoo.com/michal.novotny.6/in/JrkdHLhur0o/?lang_id=16&g=57-0-4...
Pokud kliknutí na odkazy v této zprávě nefunguje, zkopírujte je a vložte do adresního řádku vašeho prohlížeče.
Tento e-mail je součástí procesu doručování zpráv od uživaetle Mig. Pokud vám byla tato zpráva odeslána omylem, prosím ignorujte ji. Zakrátko bude odstraněna ze systému.
Dobře se bavte!
Tým Badoo
Tento e-mail jste obdržel/a od Badoo Trading Limited (korespondeční adresa níže).
Pokud si nepřejete dostávat žádné další e-maily od Badoo, klikněte zde k odhlášení: https://eu1.badoo.com/impersonation.phtml?lang_id=16&email=libvir-list%40....
Badoo Trading Limited je společnost s ručením omezeným registrovaná v Anglii a Walesu pod číslem CRN 7540255 se sídlem na adrese Media Village, 131 - 151 Great Titchfield Street, Londýn, W1W 5BB.
10 years, 3 months
[libvirt] [PATCH] To provide more accurate help messages of iface/net/pool-define in virsh help and man virsh
by Jianwei Hu
---
tools/virsh-interface.c | 4 ++--
tools/virsh-network.c | 4 ++--
tools/virsh-pool.c | 4 ++--
tools/virsh.pod | 8 +++++---
4 files changed, 11 insertions(+), 9 deletions(-)
diff --git a/tools/virsh-interface.c b/tools/virsh-interface.c
index d4ec854..6b4fd5f 100644
--- a/tools/virsh-interface.c
+++ b/tools/virsh-interface.c
@@ -507,10 +507,10 @@ cmdInterfaceDumpXML(vshControl *ctl, const vshCmd *cmd)
*/
static const vshCmdInfo info_interface_define[] = {
{.name = "help",
- .data = N_("define (but don't start) a physical host interface from an XML file")
+ .data = N_("define (but don't start) or update a physical host interface from an XML file")
},
{.name = "desc",
- .data = N_("Define a physical host interface.")
+ .data = N_("Define a physical host interface or update an existing one.")
},
{.name = NULL}
};
diff --git a/tools/virsh-network.c b/tools/virsh-network.c
index fc08b09..0db333c 100644
--- a/tools/virsh-network.c
+++ b/tools/virsh-network.c
@@ -189,10 +189,10 @@ cmdNetworkCreate(vshControl *ctl, const vshCmd *cmd)
*/
static const vshCmdInfo info_network_define[] = {
{.name = "help",
- .data = N_("define (but don't start) a network from an XML file")
+ .data = N_("define (but don't start) or update a network from an XML file")
},
{.name = "desc",
- .data = N_("Define a network.")
+ .data = N_("Define a network or update an existing one.")
},
{.name = NULL}
};
diff --git a/tools/virsh-pool.c b/tools/virsh-pool.c
index 7c40b5b..b0acd89 100644
--- a/tools/virsh-pool.c
+++ b/tools/virsh-pool.c
@@ -342,10 +342,10 @@ cmdPoolCreateAs(vshControl *ctl, const vshCmd *cmd)
*/
static const vshCmdInfo info_pool_define[] = {
{.name = "help",
- .data = N_("define (but don't start) a pool from an XML file")
+ .data = N_("define (but don't start) or update a pool from an XML file")
},
{.name = "desc",
- .data = N_("Define a pool.")
+ .data = N_("Define a pool or update an existing one.")
},
{.name = NULL}
};
diff --git a/tools/virsh.pod b/tools/virsh.pod
index 849ae31..8086885 100644
--- a/tools/virsh.pod
+++ b/tools/virsh.pod
@@ -2472,7 +2472,8 @@ to get a description of the XML network format used by libvirt.
=item B<net-define> I<file>
Define a persistent virtual network from an XML I<file>, the network is just
-defined but not instantiated (started).
+defined but not instantiated (started). If a persistent virtual network with
+the same name and UUID already exists, it will be replaced with the new XML.
=item B<net-destroy> I<network>
@@ -2631,7 +2632,7 @@ See also B<iface-unbridge> for undoing this operation.
=item B<iface-define> I<file>
Define a host interface from an XML I<file>, the interface is just defined but
-not started.
+not started. If a host interface with the same name already exists, it will be replaced with the new XML.
=item B<iface-destroy> I<interface>
@@ -2778,7 +2779,8 @@ I<type>.
=item B<pool-define> I<file>
-Create, but do not start, a pool object from the XML I<file>.
+Create, but do not start, a pool object from the XML I<file>. If a pool object
+with the same name and UUID already exists, it will be replaced with the new XML.
=item B<pool-define-as> I<name> I<--print-xml> I<type> [I<source-host>]
[I<source-path>] [I<source-dev>] [I<source-name>] [<target>]
--
1.8.1.4
10 years, 3 months
[libvirt] [PATCH v2 0/2] add support for --config in setmaxmem command
by Chen Hanxiao
Currently, setmaxmem return success on an active
domain, but nothing happened, which is not correct.
This series will disable changing max memory on
an active domain;
then add --config support for setmaxmem command.
v2: disable changing max memory on an active domain
drop useless as_assert
Chen Hanxiao (2):
LXC: add support for persistent config in lxcDomainSetMemoryFlags
LXC: add support for --config in setmaxmem command
src/lxc/lxc_driver.c | 100 ++++++++++++++++++++++++---------------------------
1 file changed, 46 insertions(+), 54 deletions(-)
--
1.9.0
10 years, 3 months
[libvirt] [PATCH] Always add 'console' matching the 'serial' device
by Ján Tomko
We have been formatting the first serial device also
as a console device, but only if there were no other consoles.
If there is a <serial> device present in the XML, but no serial
<console>, or if there isn't any <console> at all but the domain
definition hasn't gone through a parse->format->parse round-trip,
the <console> device would not be formatted.
Change the code to always add the stub device for the first
serial device.
Fixes https://bugzilla.redhat.com/show_bug.cgi?id=1089914
---
src/conf/domain_conf.c | 23 +++++++++++++
.../qemuxml2argv-console-compat2.xml | 35 ++++++++++++++++++++
.../qemuxml2xmlout-console-compat2.xml | 38 ++++++++++++++++++++++
tests/qemuxml2xmltest.c | 1 +
4 files changed, 97 insertions(+)
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-console-compat2.xml
create mode 100644 tests/qemuxml2xmloutdata/qemuxml2xmlout-console-compat2.xml
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index 934f6cb..2a9510e 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -2965,6 +2965,25 @@ virDomainDefPostParseInternal(virDomainDefPtr def,
def->consoles[0]->deviceType = VIR_DOMAIN_CHR_DEVICE_TYPE_CONSOLE;
def->consoles[0]->targetType = VIR_DOMAIN_CHR_CONSOLE_TARGET_TYPE_SERIAL;
}
+ } else if (STREQ(def->os.type, "hvm") && def->nserials > 0 &&
+ def->serials[0]->deviceType == VIR_DOMAIN_CHR_DEVICE_TYPE_SERIAL &&
+ def->serials[0]->targetType == VIR_DOMAIN_CHR_SERIAL_TARGET_TYPE_ISA) {
+ /* Create a stub console to match the serial port.
+ * console[0] either does not exist
+ * or has a different type than SERIAL or NONE.
+ */
+ virDomainChrDefPtr chr;
+ if (VIR_ALLOC(chr) < 0)
+ return -1;
+
+ if (VIR_INSERT_ELEMENT(def->consoles,
+ 0,
+ def->nconsoles,
+ chr) < 0)
+ return -1;
+
+ def->consoles[0]->deviceType = VIR_DOMAIN_CHR_DEVICE_TYPE_CONSOLE;
+ def->consoles[0]->targetType = VIR_DOMAIN_CHR_CONSOLE_TARGET_TYPE_SERIAL;
}
if (virDomainDefRejectDuplicateControllers(def) < 0)
@@ -18288,6 +18307,10 @@ virDomainDefFormatInternal(virDomainDefPtr def,
if (virDomainChrDefFormat(buf, &console, flags) < 0)
goto error;
}
+ /* The back-compat console device stub is added when parsing the domain XML
+ * and handled above, this is for formatting definitions created via other
+ * means.
+ */
if (STREQ(def->os.type, "hvm") &&
def->nconsoles == 0 &&
def->nserials > 0) {
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-console-compat2.xml b/tests/qemuxml2argvdata/qemuxml2argv-console-compat2.xml
new file mode 100644
index 0000000..ded204a
--- /dev/null
+++ b/tests/qemuxml2argvdata/qemuxml2argv-console-compat2.xml
@@ -0,0 +1,35 @@
+<domain type='qemu'>
+ <name>QEMUGuest1</name>
+ <uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid>
+ <memory unit='KiB'>219100</memory>
+ <currentMemory unit='KiB'>219100</currentMemory>
+ <vcpu placement='static'>1</vcpu>
+ <os>
+ <type arch='i686' machine='pc'>hvm</type>
+ <boot dev='hd'/>
+ </os>
+ <clock offset='utc'/>
+ <on_poweroff>destroy</on_poweroff>
+ <on_reboot>restart</on_reboot>
+ <on_crash>destroy</on_crash>
+ <devices>
+ <emulator>/usr/bin/qemu</emulator>
+ <disk type='block' device='disk'>
+ <driver name='qemu' type='raw'/>
+ <source dev='/dev/HostVG/QEMUGuest1'/>
+ <target dev='hda' bus='ide'/>
+ <address type='drive' controller='0' bus='0' target='0' unit='0'/>
+ </disk>
+ <controller type='usb' index='0'/>
+ <controller type='ide' index='0'/>
+ <controller type='pci' index='0' model='pci-root'/>
+ <controller type='virtio-serial' index='0'/>
+ <serial type='pty'>
+ <target port='0'/>
+ </serial>
+ <console type='pty'>
+ <target type='virtio' port='0'/>
+ </console>
+ <memballoon model='none'/>
+ </devices>
+</domain>
diff --git a/tests/qemuxml2xmloutdata/qemuxml2xmlout-console-compat2.xml b/tests/qemuxml2xmloutdata/qemuxml2xmlout-console-compat2.xml
new file mode 100644
index 0000000..636e984
--- /dev/null
+++ b/tests/qemuxml2xmloutdata/qemuxml2xmlout-console-compat2.xml
@@ -0,0 +1,38 @@
+<domain type='qemu'>
+ <name>QEMUGuest1</name>
+ <uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid>
+ <memory unit='KiB'>219100</memory>
+ <currentMemory unit='KiB'>219100</currentMemory>
+ <vcpu placement='static'>1</vcpu>
+ <os>
+ <type arch='i686' machine='pc'>hvm</type>
+ <boot dev='hd'/>
+ </os>
+ <clock offset='utc'/>
+ <on_poweroff>destroy</on_poweroff>
+ <on_reboot>restart</on_reboot>
+ <on_crash>destroy</on_crash>
+ <devices>
+ <emulator>/usr/bin/qemu</emulator>
+ <disk type='block' device='disk'>
+ <driver name='qemu' type='raw'/>
+ <source dev='/dev/HostVG/QEMUGuest1'/>
+ <target dev='hda' bus='ide'/>
+ <address type='drive' controller='0' bus='0' target='0' unit='0'/>
+ </disk>
+ <controller type='usb' index='0'/>
+ <controller type='ide' index='0'/>
+ <controller type='pci' index='0' model='pci-root'/>
+ <controller type='virtio-serial' index='0'/>
+ <serial type='pty'>
+ <target port='0'/>
+ </serial>
+ <console type='pty'>
+ <target type='serial' port='0'/>
+ </console>
+ <console type='pty'>
+ <target type='virtio' port='0'/>
+ </console>
+ <memballoon model='none'/>
+ </devices>
+</domain>
diff --git a/tests/qemuxml2xmltest.c b/tests/qemuxml2xmltest.c
index 5941323..f87f7ea 100644
--- a/tests/qemuxml2xmltest.c
+++ b/tests/qemuxml2xmltest.c
@@ -278,6 +278,7 @@ mymain(void)
DO_TEST("serial-spiceport-nospice");
DO_TEST("parallel-tcp");
DO_TEST("console-compat");
+ DO_TEST_DIFFERENT("console-compat2");
DO_TEST("console-virtio-many");
DO_TEST("channel-guestfwd");
DO_TEST("channel-virtio");
--
1.8.5.5
10 years, 3 months
[libvirt] Pass additional environmental variables
by Sean Noonan
We're using sasl+gssapi+kerberos to do authentication for libvirt,
including from hypervisor to hypervisor. However, the environmental
variable filtering implemented in libvirt prevents this from working, so
we're forced to run a locally patched version.
Thoughts on the following patch to pass the location of the local
credential cache as well?
--- a/src/util/vircommand.c 2014-01-07 14:14:11.388934108 +0000
+++ b/src/util/vircommand.c 2014-01-07 14:18:14.725082505 +0000
@@ -1314,6 +1314,7 @@
virCommandAddEnvPair(cmd, "LC_ALL", "C");
+ virCommandAddEnvPassBlockSUID(cmd, "KRB5CCNAME", NULL);
virCommandAddEnvPassBlockSUID(cmd, "LD_PRELOAD", NULL);
virCommandAddEnvPassBlockSUID(cmd, "LD_LIBRARY_PATH", NULL);
virCommandAddEnvPassBlockSUID(cmd, "PATH", "/bin:/usr/bin");
10 years, 3 months