mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-12-22 13:45:38 +00:00
LXC from native: convert lxc.tty to console devices
This commit is contained in:
parent
69fc236243
commit
f01fe54e75
@ -503,6 +503,46 @@ lxcConvertNetworkSettings(virDomainDefPtr def, virConfPtr properties)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
lxcCreateConsoles(virDomainDefPtr def, virConfPtr properties)
|
||||
{
|
||||
virConfValuePtr value;
|
||||
int nbttys = 0;
|
||||
virDomainChrDefPtr console;
|
||||
size_t i;
|
||||
|
||||
if (!(value = virConfGetValue(properties, "lxc.tty")) || !value->str)
|
||||
return 0;
|
||||
|
||||
if (virStrToLong_i(value->str, NULL, 10, &nbttys) < 0) {
|
||||
virReportError(VIR_ERR_INTERNAL_ERROR, _("failed to parse int: '%s'"),
|
||||
value->str);
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (VIR_ALLOC_N(def->consoles, nbttys) < 0)
|
||||
return -1;
|
||||
|
||||
def->nconsoles = nbttys;
|
||||
for (i = 0; i < nbttys; i++) {
|
||||
if (!(console = virDomainChrDefNew()))
|
||||
goto error;
|
||||
|
||||
console->deviceType = VIR_DOMAIN_CHR_DEVICE_TYPE_CONSOLE;
|
||||
console->targetType = VIR_DOMAIN_CHR_CONSOLE_TARGET_TYPE_LXC;
|
||||
console->target.port = i;
|
||||
console->source.type = VIR_DOMAIN_CHR_TYPE_PTY;
|
||||
|
||||
def->consoles[i] = console;
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
||||
error:
|
||||
virDomainChrDefFree(console);
|
||||
return -1;
|
||||
}
|
||||
|
||||
virDomainDefPtr
|
||||
lxcParseConfigString(const char *config)
|
||||
{
|
||||
@ -567,6 +607,10 @@ lxcParseConfigString(const char *config)
|
||||
if (lxcConvertNetworkSettings(vmdef, properties) < 0)
|
||||
goto error;
|
||||
|
||||
/* Consoles */
|
||||
if (lxcCreateConsoles(vmdef, properties) < 0)
|
||||
goto error;
|
||||
|
||||
goto cleanup;
|
||||
|
||||
error:
|
||||
|
@ -31,5 +31,11 @@
|
||||
<source bridge='virbr0'/>
|
||||
<link state='up'/>
|
||||
</interface>
|
||||
<console type='pty'>
|
||||
<target type='lxc' port='0'/>
|
||||
</console>
|
||||
<console type='pty'>
|
||||
<target type='lxc' port='1'/>
|
||||
</console>
|
||||
</devices>
|
||||
</domain>
|
||||
|
Loading…
Reference in New Issue
Block a user