提交 50a7b0cb 编写于 作者: S Stefan Berger 提交者: Daniel P. Berrangé

secret: Add support for usage type vTPM, extend schema and test case

Add support for usage type vTPM to secret.
Extend the schema for the Secret to support the vTPM usage type
and add a test case for parsing the Secret with usage type vTPM.
Signed-off-by: NStefan Berger <stefanb@linux.ibm.com>
Reviewed-by: NMarc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: NDaniel P. Berrangé <berrange@redhat.com>
上级 c1d34702
......@@ -37,6 +37,7 @@
<ref name='usageceph'/>
<ref name='usageiscsi'/>
<ref name='usagetls'/>
<ref name='usagevtpm'/>
<!-- More choices later -->
</choice>
</element>
......@@ -81,4 +82,13 @@
</element>
</define>
<define name='usagevtpm'>
<attribute name='type'>
<value>vtpm</value>
</attribute>
<element name='name'>
<ref name='genericName'/>
</element>
</define>
</grammar>
......@@ -43,6 +43,7 @@ typedef enum {
VIR_SECRET_USAGE_TYPE_CEPH = 2,
VIR_SECRET_USAGE_TYPE_ISCSI = 3,
VIR_SECRET_USAGE_TYPE_TLS = 4,
VIR_SECRET_USAGE_TYPE_VTPM = 5,
# ifdef VIR_ENUM_SENTINELS
VIR_SECRET_USAGE_TYPE_LAST
......
......@@ -110,6 +110,15 @@ virSecretDefParseUsage(xmlXPathContextPtr ctxt,
}
break;
case VIR_SECRET_USAGE_TYPE_VTPM:
def->usage_id = virXPathString("string(./usage/name)", ctxt);
if (!def->usage_id) {
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
_("vTPM usage specified, but name is missing"));
return -1;
}
break;
default:
virReportError(VIR_ERR_INTERNAL_ERROR,
_("unexpected secret usage type %d"),
......@@ -257,6 +266,10 @@ virSecretDefFormatUsage(virBufferPtr buf,
virBufferEscapeString(buf, "<name>%s</name>\n", def->usage_id);
break;
case VIR_SECRET_USAGE_TYPE_VTPM:
virBufferEscapeString(buf, "<name>%s</name>\n", def->usage_id);
break;
default:
virReportError(VIR_ERR_INTERNAL_ERROR,
_("unexpected secret usage type %d"),
......
......@@ -34,7 +34,7 @@ VIR_LOG_INIT("util.secret");
VIR_ENUM_IMPL(virSecretUsage,
VIR_SECRET_USAGE_TYPE_LAST,
"none", "volume", "ceph", "iscsi", "tls",
"none", "volume", "ceph", "iscsi", "tls", "vtpm",
);
void
......
<secret ephemeral='no' private='yes'>
<uuid>aa6c7af2-45a7-477c-85a2-fe86d9f2514e</uuid>
<description>vTPM secret</description>
<usage type='vtpm'>
<name>vTPMvTPMvTPM</name>
</usage>
</secret>
......@@ -80,6 +80,7 @@ mymain(void)
DO_TEST("usage-ceph");
DO_TEST("usage-iscsi");
DO_TEST("usage-tls");
DO_TEST("usage-vtpm");
return ret == 0 ? EXIT_SUCCESS : EXIT_FAILURE;
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册