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: Stefan Berger <stefanb@linux.ibm.com>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
<ref name='usageceph'/>
<ref name='usageiscsi'/>
<ref name='usagetls'/>
+ <ref name='usagevtpm'/>
<!-- More choices later -->
</choice>
</element>
</element>
</define>
+ <define name='usagevtpm'>
+ <attribute name='type'>
+ <value>vtpm</value>
+ </attribute>
+ <element name='name'>
+ <ref name='genericName'/>
+ </element>
+ </define>
+
</grammar>
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
}
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"),
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"),
VIR_ENUM_IMPL(virSecretUsage,
VIR_SECRET_USAGE_TYPE_LAST,
- "none", "volume", "ceph", "iscsi", "tls",
+ "none", "volume", "ceph", "iscsi", "tls", "vtpm",
);
void
--- /dev/null
+<secret ephemeral='no' private='yes'>
+ <uuid>aa6c7af2-45a7-477c-85a2-fe86d9f2514e</uuid>
+ <description>vTPM secret</description>
+ <usage type='vtpm'>
+ <name>vTPMvTPMvTPM</name>
+ </usage>
+</secret>
DO_TEST("usage-ceph");
DO_TEST("usage-iscsi");
DO_TEST("usage-tls");
+ DO_TEST("usage-vtpm");
return ret == 0 ? EXIT_SUCCESS : EXIT_FAILURE;
}