virt-install: Add --tpm /dev/tpm convenience option
This commit is contained in:
parent
b3719f25ac
commit
5329a9afc9
|
@ -1219,6 +1219,10 @@ An example invocation:
|
||||||
|
|
||||||
Make the host's TPM accessible to a single guest.
|
Make the host's TPM accessible to a single guest.
|
||||||
|
|
||||||
|
=item B<--tpm /dev/tpm>
|
||||||
|
|
||||||
|
Convenience option for passing through the hosts TPM.
|
||||||
|
|
||||||
=back
|
=back
|
||||||
|
|
||||||
See C<http://libvirt.org/formatdomain.html#elementsTpm> for complete
|
See C<http://libvirt.org/formatdomain.html#elementsTpm> for complete
|
||||||
|
|
|
@ -493,7 +493,7 @@ c.add_compare("""--hvm --pxe \
|
||||||
--network bridge=foobar,model=virtio \
|
--network bridge=foobar,model=virtio \
|
||||||
--channel spicevmc \
|
--channel spicevmc \
|
||||||
--smartcard passthrough,type=spicevmc \
|
--smartcard passthrough,type=spicevmc \
|
||||||
--tpm passthrough,model=tpm-tis,path=/dev/tpm0 \
|
--tpm /dev/tpm0 \
|
||||||
--security type=static,label='system_u:object_r:svirt_image_t:s0:c100,c200',relabel=yes \
|
--security type=static,label='system_u:object_r:svirt_image_t:s0:c100,c200',relabel=yes \
|
||||||
--numatune \\"1-3,5\\",mode=preferred \
|
--numatune \\"1-3,5\\",mode=preferred \
|
||||||
--boot loader=/foo/bar \
|
--boot loader=/foo/bar \
|
||||||
|
|
|
@ -893,7 +893,7 @@ def add_device_options(devg):
|
||||||
"--memballoon model=virtio"))
|
"--memballoon model=virtio"))
|
||||||
devg.add_option("--tpm", dest="tpm", action="append",
|
devg.add_option("--tpm", dest="tpm", action="append",
|
||||||
help=_("Configure a guest TPM device. Ex:\n"
|
help=_("Configure a guest TPM device. Ex:\n"
|
||||||
"--tpm type=passthrough"))
|
"--tpm /dev/tpm"))
|
||||||
devg.add_option("--rng", dest="rng", action="append",
|
devg.add_option("--rng", dest="rng", action="append",
|
||||||
help=_("Configure a guest RNG device. Ex:\n"
|
help=_("Configure a guest RNG device. Ex:\n"
|
||||||
"--rng /dev/random\n"
|
"--rng /dev/random\n"
|
||||||
|
@ -989,6 +989,9 @@ def _build_set_param(inst, opts, support_cb=None):
|
||||||
if type(paramname) is not str:
|
if type(paramname) is not str:
|
||||||
paramname(val)
|
paramname(val)
|
||||||
else:
|
else:
|
||||||
|
if not hasattr(inst, paramname):
|
||||||
|
raise RuntimeError("programming error: obj=%s does not have "
|
||||||
|
"member=%s" % (inst, paramname))
|
||||||
setattr(inst, paramname, val)
|
setattr(inst, paramname, val)
|
||||||
return _set_param
|
return _set_param
|
||||||
|
|
||||||
|
@ -1596,9 +1599,14 @@ def parse_tpm(guest, optstr, dev=None):
|
||||||
opts = parse_optstr(optstr, remove_first="type")
|
opts = parse_optstr(optstr, remove_first="type")
|
||||||
set_param = _build_set_param(dev, opts)
|
set_param = _build_set_param(dev, opts)
|
||||||
|
|
||||||
set_param("type", "type")
|
# Allow --tpm /dev/tpm
|
||||||
|
if opts.get("type", "").startswith("/"):
|
||||||
|
dev.device_path = opts.pop("type")
|
||||||
|
else:
|
||||||
|
set_param("type", "type")
|
||||||
|
|
||||||
set_param("model", "model")
|
set_param("model", "model")
|
||||||
set_param("path", "path")
|
set_param("device_path", "path")
|
||||||
|
|
||||||
_check_leftover_opts(opts)
|
_check_leftover_opts(opts)
|
||||||
return dev
|
return dev
|
||||||
|
@ -1618,9 +1626,8 @@ def parse_rng(guest, optstr, dev):
|
||||||
opts = parse_optstr(optstr, remove_first="type")
|
opts = parse_optstr(optstr, remove_first="type")
|
||||||
set_param = _build_set_param(dev, opts)
|
set_param = _build_set_param(dev, opts)
|
||||||
|
|
||||||
|
# Allow --rng /dev/random
|
||||||
if opts.get("type", "").startswith("/"):
|
if opts.get("type", "").startswith("/"):
|
||||||
# if the provided type begins with '/' then assume it is the name of
|
|
||||||
# the RNG device and that its type is "random".
|
|
||||||
dev.device = opts.pop("type")
|
dev.device = opts.pop("type")
|
||||||
dev.type = "random"
|
dev.type = "random"
|
||||||
else:
|
else:
|
||||||
|
|
Loading…
Reference in New Issue