mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-08-26 18:41:17 +00:00
Added support for -incoming option in prepare for restore
This commit is contained in:
parent
af7378db35
commit
79a3754210
@ -1,3 +1,8 @@
|
|||||||
|
Mon Aug 13 21:26:48 EST 2007 Daniel P. Berrange <berrange@redhat.com>
|
||||||
|
|
||||||
|
* src/qemu_conf.c, src/qemu_conf.h, src/qemu_driver.c: Add support
|
||||||
|
for passing -incoming option to QEMU for migration/restore.
|
||||||
|
|
||||||
Mon Aug 13 21:18:48 EST 2007 Daniel P. Berrange <berrange@redhat.com>
|
Mon Aug 13 21:18:48 EST 2007 Daniel P. Berrange <berrange@redhat.com>
|
||||||
|
|
||||||
* src/util.h, src/util.c: Allow a file descriptor to be supplied
|
* src/util.h, src/util.c: Allow a file descriptor to be supplied
|
||||||
|
@ -1518,7 +1518,8 @@ int qemudBuildCommandLine(virConnectPtr conn,
|
|||||||
(vm->def->os.initrd[0] ? 2 : 0) + /* initrd */
|
(vm->def->os.initrd[0] ? 2 : 0) + /* initrd */
|
||||||
(vm->def->os.cmdline[0] ? 2 : 0) + /* cmdline */
|
(vm->def->os.cmdline[0] ? 2 : 0) + /* cmdline */
|
||||||
(vm->def->graphicsType == QEMUD_GRAPHICS_VNC ? 2 :
|
(vm->def->graphicsType == QEMUD_GRAPHICS_VNC ? 2 :
|
||||||
(vm->def->graphicsType == QEMUD_GRAPHICS_SDL ? 0 : 1)); /* graphics */
|
(vm->def->graphicsType == QEMUD_GRAPHICS_SDL ? 0 : 1)) + /* graphics */
|
||||||
|
(vm->migrateFrom[0] ? 3 : 0); /* migrateFrom */
|
||||||
|
|
||||||
snprintf(memory, sizeof(memory), "%d", vm->def->memory/1024);
|
snprintf(memory, sizeof(memory), "%d", vm->def->memory/1024);
|
||||||
snprintf(vcpus, sizeof(vcpus), "%d", vm->def->vcpus);
|
snprintf(vcpus, sizeof(vcpus), "%d", vm->def->vcpus);
|
||||||
@ -1767,6 +1768,15 @@ int qemudBuildCommandLine(virConnectPtr conn,
|
|||||||
/* SDL is the default. no args needed */
|
/* SDL is the default. no args needed */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (vm->migrateFrom[0]) {
|
||||||
|
if (!((*argv)[++n] = strdup("-S")))
|
||||||
|
goto no_memory;
|
||||||
|
if (!((*argv)[++n] = strdup("-incoming")))
|
||||||
|
goto no_memory;
|
||||||
|
if (!((*argv)[++n] = strdup(vm->migrateFrom)))
|
||||||
|
goto no_memory;
|
||||||
|
}
|
||||||
|
|
||||||
(*argv)[++n] = NULL;
|
(*argv)[++n] = NULL;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
@ -1884,6 +1894,7 @@ qemudAssignVMDef(virConnectPtr conn,
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
vm->stdin = -1;
|
||||||
vm->stdout = -1;
|
vm->stdout = -1;
|
||||||
vm->stderr = -1;
|
vm->stderr = -1;
|
||||||
vm->monitor = -1;
|
vm->monitor = -1;
|
||||||
|
@ -199,6 +199,7 @@ struct qemud_vm_def {
|
|||||||
|
|
||||||
/* Guest VM runtime state */
|
/* Guest VM runtime state */
|
||||||
struct qemud_vm {
|
struct qemud_vm {
|
||||||
|
int stdin;
|
||||||
int stdout;
|
int stdout;
|
||||||
int stderr;
|
int stderr;
|
||||||
int monitor;
|
int monitor;
|
||||||
@ -212,6 +213,7 @@ struct qemud_vm {
|
|||||||
|
|
||||||
char configFile[PATH_MAX];
|
char configFile[PATH_MAX];
|
||||||
char autostartLink[PATH_MAX];
|
char autostartLink[PATH_MAX];
|
||||||
|
char migrateFrom[PATH_MAX];
|
||||||
|
|
||||||
struct qemud_vm_def *def; /* The current definition */
|
struct qemud_vm_def *def; /* The current definition */
|
||||||
struct qemud_vm_def *newDef; /* New definition to activate at shutdown */
|
struct qemud_vm_def *newDef; /* New definition to activate at shutdown */
|
||||||
|
@ -656,9 +656,9 @@ static int qemudStartVMDaemon(virConnectPtr conn,
|
|||||||
errno, strerror(errno));
|
errno, strerror(errno));
|
||||||
|
|
||||||
if (virExecNonBlock(conn, argv, &vm->pid,
|
if (virExecNonBlock(conn, argv, &vm->pid,
|
||||||
-1, &vm->stdout, &vm->stderr) == 0) {
|
vm->stdin, &vm->stdout, &vm->stderr) == 0) {
|
||||||
vm->id = driver->nextvmid++;
|
vm->id = driver->nextvmid++;
|
||||||
vm->state = VIR_DOMAIN_RUNNING;
|
vm->state = vm->migrateFrom[0] ? VIR_DOMAIN_PAUSED : VIR_DOMAIN_RUNNING;
|
||||||
|
|
||||||
driver->ninactivevms--;
|
driver->ninactivevms--;
|
||||||
driver->nactivevms++;
|
driver->nactivevms++;
|
||||||
|
Loading…
Reference in New Issue
Block a user