提交 f01fe54e 编写于 作者: C Cédric Bosdonnat 提交者: Daniel P. Berrange

LXC from native: convert lxc.tty to console devices

上级 69fc2362
......@@ -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>
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册