mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-07-12 21:05:48 +00:00
virsh: Add support for VIR_DOMAIN_BLOCK_COPY_TRANSIENT_JOB
Allow using the new flag with virsh.
This commit is contained in:
parent
b7e534c651
commit
880b1a2e25
@ -2184,6 +2184,10 @@ static const vshCmdOptDef opts_block_copy[] = {
|
|||||||
.type = VSH_OT_BOOL,
|
.type = VSH_OT_BOOL,
|
||||||
.help = N_("the bandwidth limit is in bytes/s rather than MiB/s")
|
.help = N_("the bandwidth limit is in bytes/s rather than MiB/s")
|
||||||
},
|
},
|
||||||
|
{.name = "transient-job",
|
||||||
|
.type = VSH_OT_BOOL,
|
||||||
|
.help = N_("the copy job is not persisted if VM is turned off")
|
||||||
|
},
|
||||||
{.name = NULL}
|
{.name = NULL}
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -2205,6 +2209,7 @@ cmdBlockCopy(vshControl *ctl, const vshCmd *cmd)
|
|||||||
bool blocking = vshCommandOptBool(cmd, "wait") || finish || pivot;
|
bool blocking = vshCommandOptBool(cmd, "wait") || finish || pivot;
|
||||||
bool async = vshCommandOptBool(cmd, "async");
|
bool async = vshCommandOptBool(cmd, "async");
|
||||||
bool bytes = vshCommandOptBool(cmd, "bytes");
|
bool bytes = vshCommandOptBool(cmd, "bytes");
|
||||||
|
bool transientjob = vshCommandOptBool(cmd, "transient-job");
|
||||||
int timeout = 0;
|
int timeout = 0;
|
||||||
const char *path = NULL;
|
const char *path = NULL;
|
||||||
int abort_flags = 0;
|
int abort_flags = 0;
|
||||||
@ -2234,6 +2239,8 @@ cmdBlockCopy(vshControl *ctl, const vshCmd *cmd)
|
|||||||
flags |= VIR_DOMAIN_BLOCK_REBASE_SHALLOW;
|
flags |= VIR_DOMAIN_BLOCK_REBASE_SHALLOW;
|
||||||
if (vshCommandOptBool(cmd, "reuse-external"))
|
if (vshCommandOptBool(cmd, "reuse-external"))
|
||||||
flags |= VIR_DOMAIN_BLOCK_REBASE_REUSE_EXT;
|
flags |= VIR_DOMAIN_BLOCK_REBASE_REUSE_EXT;
|
||||||
|
if (transientjob)
|
||||||
|
flags |= VIR_DOMAIN_BLOCK_COPY_TRANSIENT_JOB;
|
||||||
if (vshCommandOptTimeoutToMs(ctl, cmd, &timeout) < 0)
|
if (vshCommandOptTimeoutToMs(ctl, cmd, &timeout) < 0)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
@ -2282,7 +2289,8 @@ cmdBlockCopy(vshControl *ctl, const vshCmd *cmd)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (granularity || buf_size || (format && STRNEQ(format, "raw")) || xml) {
|
if (granularity || buf_size || (format && STRNEQ(format, "raw")) || xml ||
|
||||||
|
transientjob) {
|
||||||
/* New API */
|
/* New API */
|
||||||
if (bandwidth || granularity || buf_size) {
|
if (bandwidth || granularity || buf_size) {
|
||||||
params = vshCalloc(ctl, 3, sizeof(*params));
|
params = vshCalloc(ctl, 3, sizeof(*params));
|
||||||
|
@ -1078,6 +1078,7 @@ command.
|
|||||||
| I<--xml> B<file> } [I<--shallow>] [I<--reuse-external>] [I<bandwidth>]
|
| I<--xml> B<file> } [I<--shallow>] [I<--reuse-external>] [I<bandwidth>]
|
||||||
[I<--wait> [I<--async>] [I<--verbose>]] [{I<--pivot> | I<--finish>}]
|
[I<--wait> [I<--async>] [I<--verbose>]] [{I<--pivot> | I<--finish>}]
|
||||||
[I<--timeout> B<seconds>] [I<granularity>] [I<buf-size>] [I<--bytes>]
|
[I<--timeout> B<seconds>] [I<granularity>] [I<buf-size>] [I<--bytes>]
|
||||||
|
[I<--transient-job>]
|
||||||
|
|
||||||
Copy a disk backing image chain to a destination. Either I<dest> as
|
Copy a disk backing image chain to a destination. Either I<dest> as
|
||||||
the destination file name, or I<--xml> with the name of an XML file containing
|
the destination file name, or I<--xml> with the name of an XML file containing
|
||||||
@ -1132,6 +1133,11 @@ within a certain range. Specifying I<buf-size> will control how much data can
|
|||||||
be simultaneously in-flight during the copy; larger values use more memory but
|
be simultaneously in-flight during the copy; larger values use more memory but
|
||||||
may allow faster completion (the default value is usually correct).
|
may allow faster completion (the default value is usually correct).
|
||||||
|
|
||||||
|
I<--transient-job> allows to specify that the user does not require the job to
|
||||||
|
be recovered if the VM crashes or is turned off before the job completes. This
|
||||||
|
flag removes the restriction of copy jobs to transient domains if that
|
||||||
|
restriction is applied by the hypervisor.
|
||||||
|
|
||||||
=item B<blockpull> I<domain> I<path> [I<bandwidth>] [I<--bytes>] [I<base>]
|
=item B<blockpull> I<domain> I<path> [I<bandwidth>] [I<--bytes>] [I<base>]
|
||||||
[I<--wait> [I<--verbose>] [I<--timeout> B<seconds>] [I<--async>]]
|
[I<--wait> [I<--verbose>] [I<--timeout> B<seconds>] [I<--async>]]
|
||||||
[I<--keep-relative>]
|
[I<--keep-relative>]
|
||||||
|
Loading…
Reference in New Issue
Block a user