virsh: Use option alias for outmoded "--persistent"

Since VIR_DOMAIN_AFFECT_{LIVE,CONFIG,CURRENT} was created,
all new virsh commands use "--config" to represents the
persistent changing. This patch add "--config" option
for the old commands which still use "--persistent",
and "--persistent" is now alias of "--config".

tools/virsh.c: (use "--config", and "--persistent" is
    alias of "--config" now).
    cmdDomIfSetLink, cmdDomIfGetLink, cmdAttachDevice,
    cmdDetachDevice, cmdUpdateDevice, cmdAttachInterface,
    cmdDetachInterface, cmdAttachDisk, cmdDetachDisk

toos/virsh.pod: Update docs of the changed commands, and
    add some missed docs for "--config" (detach-interface,
    detach-disk, and detach-device).
This commit is contained in:
Osier Yang 2012-03-08 19:38:57 +08:00
parent f51be165e4
commit 1e31b83560
2 changed files with 69 additions and 41 deletions

View File

@ -1643,7 +1643,8 @@ static const vshCmdOptDef opts_domif_setlink[] = {
{"domain", VSH_OT_DATA, VSH_OFLAG_REQ, N_("domain name, id or uuid")}, {"domain", VSH_OT_DATA, VSH_OFLAG_REQ, N_("domain name, id or uuid")},
{"interface", VSH_OT_DATA, VSH_OFLAG_REQ, N_("interface device (MAC Address)")}, {"interface", VSH_OT_DATA, VSH_OFLAG_REQ, N_("interface device (MAC Address)")},
{"state", VSH_OT_DATA, VSH_OFLAG_REQ, N_("new state of the device")}, {"state", VSH_OT_DATA, VSH_OFLAG_REQ, N_("new state of the device")},
{"persistent", VSH_OT_BOOL, 0, N_("persist interface state")}, {"persistent", VSH_OT_ALIAS, 0, "config"},
{"config", VSH_OT_BOOL, 0, N_("affect next boot")},
{NULL, 0, 0, NULL} {NULL, 0, 0, NULL}
}; };
@ -1658,7 +1659,7 @@ cmdDomIfSetLink (vshControl *ctl, const vshCmd *cmd)
unsigned char macaddr[VIR_MAC_BUFLEN]; unsigned char macaddr[VIR_MAC_BUFLEN];
const char *element; const char *element;
const char *attr; const char *attr;
bool persistent; bool config;
bool ret = false; bool ret = false;
unsigned int flags = 0; unsigned int flags = 0;
int i; int i;
@ -1680,7 +1681,7 @@ cmdDomIfSetLink (vshControl *ctl, const vshCmd *cmd)
if (vshCommandOptString(cmd, "state", &state) <= 0) if (vshCommandOptString(cmd, "state", &state) <= 0)
goto cleanup; goto cleanup;
persistent = vshCommandOptBool(cmd, "persistent"); config = vshCommandOptBool(cmd, "config");
if (STRNEQ(state, "up") && STRNEQ(state, "down")) { if (STRNEQ(state, "up") && STRNEQ(state, "down")) {
vshError(ctl, _("invalid link state '%s'"), state); vshError(ctl, _("invalid link state '%s'"), state);
@ -1688,13 +1689,13 @@ cmdDomIfSetLink (vshControl *ctl, const vshCmd *cmd)
} }
/* get persistent or live description of network device */ /* get persistent or live description of network device */
desc = virDomainGetXMLDesc(dom, persistent?VIR_DOMAIN_XML_INACTIVE:0); desc = virDomainGetXMLDesc(dom, config ? VIR_DOMAIN_XML_INACTIVE : 0);
if (desc == NULL) { if (desc == NULL) {
vshError(ctl, _("Failed to get domain description xml")); vshError(ctl, _("Failed to get domain description xml"));
goto cleanup; goto cleanup;
} }
if (persistent) if (config)
flags = VIR_DOMAIN_AFFECT_CONFIG; flags = VIR_DOMAIN_AFFECT_CONFIG;
else else
flags = VIR_DOMAIN_AFFECT_LIVE; flags = VIR_DOMAIN_AFFECT_LIVE;
@ -1818,7 +1819,8 @@ static const vshCmdInfo info_domif_getlink[] = {
static const vshCmdOptDef opts_domif_getlink[] = { static const vshCmdOptDef opts_domif_getlink[] = {
{"domain", VSH_OT_DATA, VSH_OFLAG_REQ, N_("domain name, id or uuid")}, {"domain", VSH_OT_DATA, VSH_OFLAG_REQ, N_("domain name, id or uuid")},
{"interface", VSH_OT_DATA, VSH_OFLAG_REQ, N_("interface device (MAC Address)")}, {"interface", VSH_OT_DATA, VSH_OFLAG_REQ, N_("interface device (MAC Address)")},
{"persistent", VSH_OT_BOOL, 0, N_("Get persistent interface state")}, {"persistent", VSH_OT_ALIAS, 0, "config"},
{"config", VSH_OT_BOOL, 0, N_("Get persistent interface state")},
{NULL, 0, 0, NULL} {NULL, 0, 0, NULL}
}; };
@ -1852,7 +1854,7 @@ cmdDomIfGetLink (vshControl *ctl, const vshCmd *cmd)
return false; return false;
} }
if (vshCommandOptBool(cmd, "persistent")) if (vshCommandOptBool(cmd, "config"))
flags = VIR_DOMAIN_XML_INACTIVE; flags = VIR_DOMAIN_XML_INACTIVE;
desc = virDomainGetXMLDesc(dom, flags); desc = virDomainGetXMLDesc(dom, flags);
@ -13460,7 +13462,8 @@ static const vshCmdInfo info_attach_device[] = {
static const vshCmdOptDef opts_attach_device[] = { static const vshCmdOptDef opts_attach_device[] = {
{"domain", VSH_OT_DATA, VSH_OFLAG_REQ, N_("domain name, id or uuid")}, {"domain", VSH_OT_DATA, VSH_OFLAG_REQ, N_("domain name, id or uuid")},
{"file", VSH_OT_DATA, VSH_OFLAG_REQ, N_("XML file")}, {"file", VSH_OT_DATA, VSH_OFLAG_REQ, N_("XML file")},
{"persistent", VSH_OT_BOOL, 0, N_("persist device attachment")}, {"persistent", VSH_OT_ALIAS, 0, "config"},
{"config", VSH_OT_BOOL, 0, N_("affect next boot")},
{NULL, 0, 0, NULL} {NULL, 0, 0, NULL}
}; };
@ -13490,7 +13493,7 @@ cmdAttachDevice(vshControl *ctl, const vshCmd *cmd)
return false; return false;
} }
if (vshCommandOptBool(cmd, "persistent")) { if (vshCommandOptBool(cmd, "config")) {
flags = VIR_DOMAIN_AFFECT_CONFIG; flags = VIR_DOMAIN_AFFECT_CONFIG;
if (virDomainIsActive(dom) == 1) if (virDomainIsActive(dom) == 1)
flags |= VIR_DOMAIN_AFFECT_LIVE; flags |= VIR_DOMAIN_AFFECT_LIVE;
@ -13771,7 +13774,8 @@ static const vshCmdInfo info_detach_device[] = {
static const vshCmdOptDef opts_detach_device[] = { static const vshCmdOptDef opts_detach_device[] = {
{"domain", VSH_OT_DATA, VSH_OFLAG_REQ, N_("domain name, id or uuid")}, {"domain", VSH_OT_DATA, VSH_OFLAG_REQ, N_("domain name, id or uuid")},
{"file", VSH_OT_DATA, VSH_OFLAG_REQ, N_("XML file")}, {"file", VSH_OT_DATA, VSH_OFLAG_REQ, N_("XML file")},
{"persistent", VSH_OT_BOOL, 0, N_("persist device detachment")}, {"persistent", VSH_OT_ALIAS, 0, "config"},
{"config", VSH_OT_BOOL, 0, N_("affect next boot")},
{NULL, 0, 0, NULL} {NULL, 0, 0, NULL}
}; };
@ -13799,7 +13803,7 @@ cmdDetachDevice(vshControl *ctl, const vshCmd *cmd)
goto cleanup; goto cleanup;
} }
if (vshCommandOptBool(cmd, "persistent")) { if (vshCommandOptBool(cmd, "config")) {
flags = VIR_DOMAIN_AFFECT_CONFIG; flags = VIR_DOMAIN_AFFECT_CONFIG;
if (virDomainIsActive(dom) == 1) if (virDomainIsActive(dom) == 1)
flags |= VIR_DOMAIN_AFFECT_LIVE; flags |= VIR_DOMAIN_AFFECT_LIVE;
@ -13835,7 +13839,8 @@ static const vshCmdInfo info_update_device[] = {
static const vshCmdOptDef opts_update_device[] = { static const vshCmdOptDef opts_update_device[] = {
{"domain", VSH_OT_DATA, VSH_OFLAG_REQ, N_("domain name, id or uuid")}, {"domain", VSH_OT_DATA, VSH_OFLAG_REQ, N_("domain name, id or uuid")},
{"file", VSH_OT_DATA, VSH_OFLAG_REQ, N_("XML file")}, {"file", VSH_OT_DATA, VSH_OFLAG_REQ, N_("XML file")},
{"persistent", VSH_OT_BOOL, 0, N_("persist device update")}, {"persistent", VSH_OT_ALIAS, 0, "config"},
{"config", VSH_OT_BOOL, 0, N_("affect next boot")},
{"force", VSH_OT_BOOL, 0, N_("force device update")}, {"force", VSH_OT_BOOL, 0, N_("force device update")},
{NULL, 0, 0, NULL} {NULL, 0, 0, NULL}
}; };
@ -13866,7 +13871,7 @@ cmdUpdateDevice(vshControl *ctl, const vshCmd *cmd)
return false; return false;
} }
if (vshCommandOptBool(cmd, "persistent")) { if (vshCommandOptBool(cmd, "config")) {
flags = VIR_DOMAIN_AFFECT_CONFIG; flags = VIR_DOMAIN_AFFECT_CONFIG;
if (virDomainIsActive(dom) == 1) if (virDomainIsActive(dom) == 1)
flags |= VIR_DOMAIN_AFFECT_LIVE; flags |= VIR_DOMAIN_AFFECT_LIVE;
@ -13910,7 +13915,8 @@ static const vshCmdOptDef opts_attach_interface[] = {
{"mac", VSH_OT_DATA, 0, N_("MAC address")}, {"mac", VSH_OT_DATA, 0, N_("MAC address")},
{"script", VSH_OT_DATA, 0, N_("script used to bridge network interface")}, {"script", VSH_OT_DATA, 0, N_("script used to bridge network interface")},
{"model", VSH_OT_DATA, 0, N_("model type")}, {"model", VSH_OT_DATA, 0, N_("model type")},
{"persistent", VSH_OT_BOOL, 0, N_("persist interface attachment")}, {"persistent", VSH_OT_ALIAS, 0, "config"},
{"config", VSH_OT_BOOL, 0, N_("affect next boot")},
{"inbound", VSH_OT_DATA, VSH_OFLAG_NONE, N_("control domain's incoming traffics")}, {"inbound", VSH_OT_DATA, VSH_OFLAG_NONE, N_("control domain's incoming traffics")},
{"outbound", VSH_OT_DATA, VSH_OFLAG_NONE, N_("control domain's outgoing traffics")}, {"outbound", VSH_OT_DATA, VSH_OFLAG_NONE, N_("control domain's outgoing traffics")},
{NULL, 0, 0, NULL} {NULL, 0, 0, NULL}
@ -14067,7 +14073,7 @@ cmdAttachInterface(vshControl *ctl, const vshCmd *cmd)
xml = virBufferContentAndReset(&buf); xml = virBufferContentAndReset(&buf);
if (vshCommandOptBool(cmd, "persistent")) { if (vshCommandOptBool(cmd, "config")) {
flags = VIR_DOMAIN_AFFECT_CONFIG; flags = VIR_DOMAIN_AFFECT_CONFIG;
if (virDomainIsActive(dom) == 1) if (virDomainIsActive(dom) == 1)
flags |= VIR_DOMAIN_AFFECT_LIVE; flags |= VIR_DOMAIN_AFFECT_LIVE;
@ -14105,7 +14111,8 @@ static const vshCmdOptDef opts_detach_interface[] = {
{"domain", VSH_OT_DATA, VSH_OFLAG_REQ, N_("domain name, id or uuid")}, {"domain", VSH_OT_DATA, VSH_OFLAG_REQ, N_("domain name, id or uuid")},
{"type", VSH_OT_DATA, VSH_OFLAG_REQ, N_("network interface type")}, {"type", VSH_OT_DATA, VSH_OFLAG_REQ, N_("network interface type")},
{"mac", VSH_OT_STRING, 0, N_("MAC address")}, {"mac", VSH_OT_STRING, 0, N_("MAC address")},
{"persistent", VSH_OT_BOOL, 0, N_("persist interface detachment")}, {"persistent", VSH_OT_ALIAS, 0, "config"},
{"config", VSH_OT_BOOL, 0, N_("affect next boot")},
{NULL, 0, 0, NULL} {NULL, 0, 0, NULL}
}; };
@ -14199,7 +14206,7 @@ cmdDetachInterface(vshControl *ctl, const vshCmd *cmd)
goto cleanup; goto cleanup;
} }
if (vshCommandOptBool(cmd, "persistent")) { if (vshCommandOptBool(cmd, "config")) {
flags = VIR_DOMAIN_AFFECT_CONFIG; flags = VIR_DOMAIN_AFFECT_CONFIG;
if (virDomainIsActive(dom) == 1) if (virDomainIsActive(dom) == 1)
flags |= VIR_DOMAIN_AFFECT_LIVE; flags |= VIR_DOMAIN_AFFECT_LIVE;
@ -14246,7 +14253,8 @@ static const vshCmdOptDef opts_attach_disk[] = {
{"cache", VSH_OT_STRING, 0, N_("cache mode of disk device")}, {"cache", VSH_OT_STRING, 0, N_("cache mode of disk device")},
{"type", VSH_OT_STRING, 0, N_("target device type")}, {"type", VSH_OT_STRING, 0, N_("target device type")},
{"mode", VSH_OT_STRING, 0, N_("mode of device reading and writing")}, {"mode", VSH_OT_STRING, 0, N_("mode of device reading and writing")},
{"persistent", VSH_OT_BOOL, 0, N_("persist disk attachment")}, {"persistent", VSH_OT_ALIAS, 0, "config"},
{"config", VSH_OT_BOOL, 0, N_("affect next boot")},
{"sourcetype", VSH_OT_STRING, 0, N_("type of source (block|file)")}, {"sourcetype", VSH_OT_STRING, 0, N_("type of source (block|file)")},
{"serial", VSH_OT_STRING, 0, N_("serial of disk device")}, {"serial", VSH_OT_STRING, 0, N_("serial of disk device")},
{"shareable", VSH_OT_BOOL, 0, N_("shareable between domains")}, {"shareable", VSH_OT_BOOL, 0, N_("shareable between domains")},
@ -14555,7 +14563,7 @@ cmdAttachDisk(vshControl *ctl, const vshCmd *cmd)
xml = virBufferContentAndReset(&buf); xml = virBufferContentAndReset(&buf);
if (vshCommandOptBool(cmd, "persistent")) { if (vshCommandOptBool(cmd, "config")) {
flags = VIR_DOMAIN_AFFECT_CONFIG; flags = VIR_DOMAIN_AFFECT_CONFIG;
if (virDomainIsActive(dom) == 1) if (virDomainIsActive(dom) == 1)
flags |= VIR_DOMAIN_AFFECT_LIVE; flags |= VIR_DOMAIN_AFFECT_LIVE;
@ -14805,7 +14813,8 @@ static const vshCmdInfo info_detach_disk[] = {
static const vshCmdOptDef opts_detach_disk[] = { static const vshCmdOptDef opts_detach_disk[] = {
{"domain", VSH_OT_DATA, VSH_OFLAG_REQ, N_("domain name, id or uuid")}, {"domain", VSH_OT_DATA, VSH_OFLAG_REQ, N_("domain name, id or uuid")},
{"target", VSH_OT_DATA, VSH_OFLAG_REQ, N_("target of disk device")}, {"target", VSH_OT_DATA, VSH_OFLAG_REQ, N_("target of disk device")},
{"persistent", VSH_OT_BOOL, 0, N_("persist disk detachment")}, {"persistent", VSH_OT_ALIAS, 0, "config"},
{"config", VSH_OT_BOOL, 0, N_("affect next boot")},
{NULL, 0, 0, NULL} {NULL, 0, 0, NULL}
}; };
@ -14841,7 +14850,7 @@ cmdDetachDisk(vshControl *ctl, const vshCmd *cmd)
VSH_PREPARE_DISK_XML_NONE))) VSH_PREPARE_DISK_XML_NONE)))
goto cleanup; goto cleanup;
if (vshCommandOptBool(cmd, "persistent")) { if (vshCommandOptBool(cmd, "config")) {
flags = VIR_DOMAIN_AFFECT_CONFIG; flags = VIR_DOMAIN_AFFECT_CONFIG;
if (virDomainIsActive(dom) == 1) if (virDomainIsActive(dom) == 1)
flags |= VIR_DOMAIN_AFFECT_LIVE; flags |= VIR_DOMAIN_AFFECT_LIVE;

View File

@ -551,17 +551,20 @@ B<Explanation of fields> (fields appear in the folowing order):
Get network interface stats for a running domain. Get network interface stats for a running domain.
=item B<domif-setlink> I<domain> I<interface-device> I<state> I<--persistent> =item B<domif-setlink> I<domain> I<interface-device> I<state> [I<--config>]
Modify link state of the domain's virtual interface. Possible values for Modify link state of the domain's virtual interface. Possible values for
state are "up" and "down. If --persistent is specified, only the persistent state are "up" and "down. If I<--config> is specified, only the persistent
configuration of the domain is modified. configuration of the domain is modified, for compatibility purposes,
I<--persistent> is alias of I<--config>.
I<interface-device> can be the interface's target name or the MAC address. I<interface-device> can be the interface's target name or the MAC address.
=item B<domif-getlink> I<domain> I<interface-device> I<--persistent> =item B<domif-getlink> I<domain> I<interface-device> [I<--config>]
Query link state of the domain's virtual interface. If I<--config>
is specified, query the persistent configuration, for compatibility
purposes, I<--persistent> is alias of I<--config>.
Query link state of the domain's virtual interface. If --persistent
is specified, query the persistent configuration.
I<interface-device> can be the interface's target name or the MAC address. I<interface-device> can be the interface's target name or the MAC address.
=item B<domiftune> I<domain> I<interface-device> =item B<domiftune> I<domain> I<interface-device>
@ -1475,10 +1478,13 @@ format of the device sections to get the most accurate set of accepted values.
=over 4 =over 4
=item B<attach-device> I<domain-id> I<FILE> =item B<attach-device> I<domain-id> I<FILE> [I<--config>]
Attach a device to the domain, using a device definition in an XML file. Attach a device to the domain, using a device definition in an XML file.
See the documentation to learn about libvirt XML format for a device. See the documentation to learn about libvirt XML format for a device.
If I<--config> is specified, alter persistent configuration, effect observed
on next boot, for compatibility purposes, I<--persistent> is alias of
I<--config>.
For cdrom and floppy devices, this command only replaces the media within For cdrom and floppy devices, this command only replaces the media within
the single existing device; consider using B<update-device> for this usage. the single existing device; consider using B<update-device> for this usage.
For passthrough host devices, see also B<nodedev-detach>, needed if For passthrough host devices, see also B<nodedev-detach>, needed if
@ -1486,7 +1492,7 @@ the device does not use managed mode.
=item B<attach-disk> I<domain-id> I<source> I<target> =item B<attach-disk> I<domain-id> I<source> I<target>
[I<--driver driver>] [I<--subdriver subdriver>] [I<--cache cache>] [I<--driver driver>] [I<--subdriver subdriver>] [I<--cache cache>]
[I<--type type>] [I<--mode mode>] [I<--persistent>] [I<--sourcetype soucetype>] [I<--type type>] [I<--mode mode>] [I<--config>] [I<--sourcetype soucetype>]
[I<--serial serial>] [I<--shareable>] [I<--rawio>] [I<--address address>] [I<--serial serial>] [I<--shareable>] [I<--rawio>] [I<--address address>]
[I<--multifunction>] [I<--multifunction>]
@ -1498,7 +1504,8 @@ I<type> can indicate I<cdrom> or I<floppy> as alternative to the disk default,
although this use only replaces the media within the existing virtual cdrom or although this use only replaces the media within the existing virtual cdrom or
floppy device; consider using B<update-device> for this usage instead. floppy device; consider using B<update-device> for this usage instead.
I<mode> can specify the two specific mode I<readonly> or I<shareable>. I<mode> can specify the two specific mode I<readonly> or I<shareable>.
I<persistent> indicates the changes will affect the next boot of the domain. I<--config> indicates the changes will affect the next boot of the domain,
for compatibility purposes, I<--persistent> is alias of I<--config>.
I<sourcetype> can indicate the type of source (block|file) I<sourcetype> can indicate the type of source (block|file)
I<cache> can be one of "default", "none", "writethrough", "writeback", I<cache> can be one of "default", "none", "writethrough", "writeback",
"directsync" or "unsafe". "directsync" or "unsafe".
@ -1512,7 +1519,7 @@ address.
=item B<attach-interface> I<domain-id> I<type> I<source> =item B<attach-interface> I<domain-id> I<type> I<source>
[I<--target target>] [I<--mac mac>] [I<--script script>] [I<--model model>] [I<--target target>] [I<--mac mac>] [I<--script script>] [I<--model model>]
[I<--persistent>] [I<--inbound average,peak,burst>] [I<--outbound average,peak,burst>] [I<--config>] [I<--inbound average,peak,burst>] [I<--outbound average,peak,burst>]
Attach a new network interface to the domain. Attach a new network interface to the domain.
I<type> can be either I<network> to indicate a physical network device or I<type> can be either I<network> to indicate a physical network device or
@ -1523,7 +1530,8 @@ I<mac> allows to specify the MAC address of the network interface.
I<script> allows to specify a path to a script handling a bridge instead of I<script> allows to specify a path to a script handling a bridge instead of
the default one. the default one.
I<model> allows to specify the model type. I<model> allows to specify the model type.
I<persistent> indicates the changes will affect the next boot of the domain. I<--config> indicates the changes will affect the next boot of the domain,
for compatibility purposes, I<--persistent> is alias of I<--config>.
I<inbound> and I<outbound> control the bandwidth of the interface. I<peak> I<inbound> and I<outbound> control the bandwidth of the interface. I<peak>
and I<burst> are optional, so "average,peak", "average,,burst" and and I<burst> are optional, so "average,peak", "average,,burst" and
"average" are also legal. "average" are also legal.
@ -1532,34 +1540,45 @@ B<Note>: the optional target value is the name of a device to be created
as the back-end on the node. If not provided a device named "vnetN" or "vifN" as the back-end on the node. If not provided a device named "vnetN" or "vifN"
will be created automatically. will be created automatically.
=item B<detach-device> I<domain-id> I<FILE> =item B<detach-device> I<domain-id> I<FILE> [I<--config>]
Detach a device from the domain, takes the same kind of XML descriptions Detach a device from the domain, takes the same kind of XML descriptions
as command B<attach-device>. as command B<attach-device>.
If I<--config> is specified, alter persistent configuration, effect observed
on next boot, for compatibility purposes, I<--persistent> is alias of
I<--config>.
For passthrough host devices, see also B<nodedev-reattach>, needed if For passthrough host devices, see also B<nodedev-reattach>, needed if
the device does not use managed mode. the device does not use managed mode.
=item B<detach-disk> I<domain-id> I<target> =item B<detach-disk> I<domain-id> I<target> [I<--config>]
Detach a disk device from a domain. The I<target> is the device as seen Detach a disk device from a domain. The I<target> is the device as seen
from the domain. from the domain.
If I<--config> is specified, alter persistent configuration, effect observed
on next boot, for compatibility purposes, I<--persistent> is alias of
I<--config>.
=item B<detach-interface> I<domain-id> I<type> [I<--mac mac>] =item B<detach-interface> I<domain-id> I<type> [I<--mac mac>] [I<--config>]
Detach a network interface from a domain. Detach a network interface from a domain.
I<type> can be either I<network> to indicate a physical network device or I<type> can be either I<network> to indicate a physical network device or
I<bridge> to indicate a bridge to a device. It is recommended to use the I<bridge> to indicate a bridge to a device. It is recommended to use the
I<mac> option to distinguish between the interfaces if more than one are I<mac> option to distinguish between the interfaces if more than one are
present on the domain. present on the domain.
If I<--config> is specified, alter persistent configuration, effect observed
on next boot, for compatibility purposes, I<--persistent> is alias of
I<--config>.
=item B<update-device> I<domain-id> I<file> [I<--persistent>] [I<--force>] =item B<update-device> I<domain-id> I<file> [I<--config>] [I<--force>]
Update the characteristics of a device associated with I<domain-id>, based on Update the characteristics of a device associated with I<domain-id>, based on
the device definition in an XML I<file>. If the I<--persistent> option is the device definition in an XML I<file>.
used, the changes will affect the next boot of the domain. The I<--force> If the I<--config> option is used, the changes will affect the next boot of
option can be used to force device update, e.g., to eject a CD-ROM even if it the domain, for compatibility purposes, I<--persistent> is alias of
is locked/mounted in the domain. See the documentation to learn about libvirt I<--config>.
XML format for a device. The I<--force> option can be used to force device update, e.g., to eject a
CD-ROM even if it is locked/mounted in the domain. See the documentation to
learn about libvirt XML format for a device.
=item B<change-media> I<domain-id> I<path> [I<--eject>] [I<--insert>] =item B<change-media> I<domain-id> I<path> [I<--eject>] [I<--insert>]
[I<--update>] [I<source>] [I<--force>] [[I<--live>] [I<--config>] | [I<--current>]] [I<--update>] [I<source>] [I<--force>] [[I<--live>] [I<--config>] | [I<--current>]]