提交 e0bc87ca 编写于 作者: J Ján Tomko

vmware: use virCommand instead of virRun

Signed-off-by: NJán Tomko <jtomko@redhat.com>
Reviewed-by: NMichal Privoznik <mprivozn@redhat.com>
上级 5c911bcd
...@@ -436,8 +436,7 @@ vmwareVmxPath(virDomainDefPtr vmdef, char **vmxPath) ...@@ -436,8 +436,7 @@ vmwareVmxPath(virDomainDefPtr vmdef, char **vmxPath)
int int
vmwareMoveFile(char *srcFile, char *dstFile) vmwareMoveFile(char *srcFile, char *dstFile)
{ {
const char *cmdmv[] = g_autoptr(virCommand) cmd = NULL;
{ "mv", PROGRAM_SENTINEL, PROGRAM_SENTINEL, NULL };
if (!virFileExists(srcFile)) { if (!virFileExists(srcFile)) {
virReportError(VIR_ERR_INTERNAL_ERROR, _("file %s does not exist"), virReportError(VIR_ERR_INTERNAL_ERROR, _("file %s does not exist"),
...@@ -448,9 +447,9 @@ vmwareMoveFile(char *srcFile, char *dstFile) ...@@ -448,9 +447,9 @@ vmwareMoveFile(char *srcFile, char *dstFile)
if (STREQ(srcFile, dstFile)) if (STREQ(srcFile, dstFile))
return 0; return 0;
vmwareSetSentinal(cmdmv, srcFile); cmd = virCommandNewArgList("mv", srcFile, dstFile, NULL);
vmwareSetSentinal(cmdmv, dstFile);
if (virRun(cmdmv, NULL) < 0) { if (virCommandRun(cmd, NULL) < 0) {
virReportError(VIR_ERR_INTERNAL_ERROR, virReportError(VIR_ERR_INTERNAL_ERROR,
_("failed to move file to %s "), dstFile); _("failed to move file to %s "), dstFile);
return -1; return -1;
......
...@@ -347,15 +347,12 @@ vmwareStopVM(struct vmware_driver *driver, ...@@ -347,15 +347,12 @@ vmwareStopVM(struct vmware_driver *driver,
virDomainObjPtr vm, virDomainObjPtr vm,
virDomainShutoffReason reason) virDomainShutoffReason reason)
{ {
const char *cmd[] = { g_autoptr(virCommand) cmd = virCommandNew(driver->vmrun);
driver->vmrun, "-T", PROGRAM_SENTINEL, "stop",
PROGRAM_SENTINEL, "soft", NULL
};
vmwareSetSentinal(cmd, vmwareDriverTypeToString(driver->type)); virCommandAddArgList(cmd, "-T", vmwareDriverTypeToString(driver->type),
vmwareSetSentinal(cmd, ((vmwareDomainPtr) vm->privateData)->vmxPath); "stop", ((vmwareDomainPtr) vm->privateData)->vmxPath, "soft", NULL);
if (virRun(cmd, NULL) < 0) if (virCommandRun(cmd, NULL) < 0)
return -1; return -1;
vm->def->id = -1; vm->def->id = -1;
...@@ -367,26 +364,22 @@ vmwareStopVM(struct vmware_driver *driver, ...@@ -367,26 +364,22 @@ vmwareStopVM(struct vmware_driver *driver,
static int static int
vmwareStartVM(struct vmware_driver *driver, virDomainObjPtr vm) vmwareStartVM(struct vmware_driver *driver, virDomainObjPtr vm)
{ {
const char *cmd[] = { g_autoptr(virCommand) cmd = virCommandNew(driver->vmrun);
driver->vmrun, "-T", PROGRAM_SENTINEL, "start",
PROGRAM_SENTINEL, PROGRAM_SENTINEL, NULL
};
const char *vmxPath = ((vmwareDomainPtr) vm->privateData)->vmxPath; const char *vmxPath = ((vmwareDomainPtr) vm->privateData)->vmxPath;
virCommandAddArgList(cmd, "-T", vmwareDriverTypeToString(driver->type),
"start", vmxPath, NULL);
if (virDomainObjGetState(vm, NULL) != VIR_DOMAIN_SHUTOFF) { if (virDomainObjGetState(vm, NULL) != VIR_DOMAIN_SHUTOFF) {
virReportError(VIR_ERR_OPERATION_INVALID, "%s", virReportError(VIR_ERR_OPERATION_INVALID, "%s",
_("domain is not in shutoff state")); _("domain is not in shutoff state"));
return -1; return -1;
} }
vmwareSetSentinal(cmd, vmwareDriverTypeToString(driver->type));
vmwareSetSentinal(cmd, vmxPath);
if (!((vmwareDomainPtr) vm->privateData)->gui) if (!((vmwareDomainPtr) vm->privateData)->gui)
vmwareSetSentinal(cmd, NOGUI); virCommandAddArg(cmd, NOGUI);
else
vmwareSetSentinal(cmd, NULL);
if (virRun(cmd, NULL) < 0) if (virCommandRun(cmd, NULL) < 0)
return -1; return -1;
if ((vm->def->id = vmwareExtractPid(vmxPath)) < 0) { if ((vm->def->id = vmwareExtractPid(vmxPath)) < 0) {
...@@ -543,12 +536,9 @@ static int ...@@ -543,12 +536,9 @@ static int
vmwareDomainSuspend(virDomainPtr dom) vmwareDomainSuspend(virDomainPtr dom)
{ {
struct vmware_driver *driver = dom->conn->privateData; struct vmware_driver *driver = dom->conn->privateData;
g_autoptr(virCommand) cmd = virCommandNew(driver->vmrun);
virDomainObjPtr vm; virDomainObjPtr vm;
const char *cmd[] = {
driver->vmrun, "-T", PROGRAM_SENTINEL, "pause",
PROGRAM_SENTINEL, NULL
};
int ret = -1; int ret = -1;
if (driver->type == VMWARE_DRIVER_PLAYER) { if (driver->type == VMWARE_DRIVER_PLAYER) {
...@@ -561,15 +551,17 @@ vmwareDomainSuspend(virDomainPtr dom) ...@@ -561,15 +551,17 @@ vmwareDomainSuspend(virDomainPtr dom)
if (!(vm = vmwareDomObjFromDomain(driver, dom->uuid))) if (!(vm = vmwareDomObjFromDomain(driver, dom->uuid)))
return -1; return -1;
vmwareSetSentinal(cmd, vmwareDriverTypeToString(driver->type));
vmwareSetSentinal(cmd, ((vmwareDomainPtr) vm->privateData)->vmxPath);
if (virDomainObjGetState(vm, NULL) != VIR_DOMAIN_RUNNING) { if (virDomainObjGetState(vm, NULL) != VIR_DOMAIN_RUNNING) {
virReportError(VIR_ERR_INTERNAL_ERROR, "%s", virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
_("domain is not in running state")); _("domain is not in running state"));
goto cleanup; goto cleanup;
} }
if (virRun(cmd, NULL) < 0) virCommandAddArgList(cmd, "-T", vmwareDriverTypeToString(driver->type),
"pause", ((vmwareDomainPtr) vm->privateData)->vmxPath,
NULL);
if (virCommandRun(cmd, NULL) < 0)
goto cleanup; goto cleanup;
virDomainObjSetState(vm, VIR_DOMAIN_PAUSED, VIR_DOMAIN_PAUSED_USER); virDomainObjSetState(vm, VIR_DOMAIN_PAUSED, VIR_DOMAIN_PAUSED_USER);
...@@ -584,12 +576,9 @@ static int ...@@ -584,12 +576,9 @@ static int
vmwareDomainResume(virDomainPtr dom) vmwareDomainResume(virDomainPtr dom)
{ {
struct vmware_driver *driver = dom->conn->privateData; struct vmware_driver *driver = dom->conn->privateData;
g_autoptr(virCommand) cmd = virCommandNew(driver->vmrun);
virDomainObjPtr vm; virDomainObjPtr vm;
const char *cmd[] = {
driver->vmrun, "-T", PROGRAM_SENTINEL, "unpause", PROGRAM_SENTINEL,
NULL
};
int ret = -1; int ret = -1;
if (driver->type == VMWARE_DRIVER_PLAYER) { if (driver->type == VMWARE_DRIVER_PLAYER) {
...@@ -602,15 +591,17 @@ vmwareDomainResume(virDomainPtr dom) ...@@ -602,15 +591,17 @@ vmwareDomainResume(virDomainPtr dom)
if (!(vm = vmwareDomObjFromDomain(driver, dom->uuid))) if (!(vm = vmwareDomObjFromDomain(driver, dom->uuid)))
return -1; return -1;
vmwareSetSentinal(cmd, vmwareDriverTypeToString(driver->type));
vmwareSetSentinal(cmd, ((vmwareDomainPtr) vm->privateData)->vmxPath);
if (virDomainObjGetState(vm, NULL) != VIR_DOMAIN_PAUSED) { if (virDomainObjGetState(vm, NULL) != VIR_DOMAIN_PAUSED) {
virReportError(VIR_ERR_INTERNAL_ERROR, "%s", virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
_("domain is not in suspend state")); _("domain is not in suspend state"));
goto cleanup; goto cleanup;
} }
if (virRun(cmd, NULL) < 0) virCommandAddArgList(cmd, "-T", vmwareDriverTypeToString(driver->type),
"unpause", ((vmwareDomainPtr) vm->privateData)->vmxPath,
NULL);
if (virCommandRun(cmd, NULL) < 0)
goto cleanup; goto cleanup;
virDomainObjSetState(vm, VIR_DOMAIN_RUNNING, VIR_DOMAIN_RUNNING_UNPAUSED); virDomainObjSetState(vm, VIR_DOMAIN_RUNNING, VIR_DOMAIN_RUNNING_UNPAUSED);
...@@ -625,12 +616,8 @@ static int ...@@ -625,12 +616,8 @@ static int
vmwareDomainReboot(virDomainPtr dom, unsigned int flags) vmwareDomainReboot(virDomainPtr dom, unsigned int flags)
{ {
struct vmware_driver *driver = dom->conn->privateData; struct vmware_driver *driver = dom->conn->privateData;
const char * vmxPath = NULL; g_autoptr(virCommand) cmd = virCommandNew(driver->vmrun);
virDomainObjPtr vm; virDomainObjPtr vm;
const char *cmd[] = {
driver->vmrun, "-T", PROGRAM_SENTINEL,
"reset", PROGRAM_SENTINEL, "soft", NULL
};
int ret = -1; int ret = -1;
virCheckFlags(0, -1); virCheckFlags(0, -1);
...@@ -638,10 +625,6 @@ vmwareDomainReboot(virDomainPtr dom, unsigned int flags) ...@@ -638,10 +625,6 @@ vmwareDomainReboot(virDomainPtr dom, unsigned int flags)
if (!(vm = vmwareDomObjFromDomain(driver, dom->uuid))) if (!(vm = vmwareDomObjFromDomain(driver, dom->uuid)))
return -1; return -1;
vmxPath = ((vmwareDomainPtr) vm->privateData)->vmxPath;
vmwareSetSentinal(cmd, vmwareDriverTypeToString(driver->type));
vmwareSetSentinal(cmd, vmxPath);
if (vmwareUpdateVMStatus(driver, vm) < 0) if (vmwareUpdateVMStatus(driver, vm) < 0)
goto cleanup; goto cleanup;
...@@ -651,7 +634,11 @@ vmwareDomainReboot(virDomainPtr dom, unsigned int flags) ...@@ -651,7 +634,11 @@ vmwareDomainReboot(virDomainPtr dom, unsigned int flags)
goto cleanup; goto cleanup;
} }
if (virRun(cmd, NULL) < 0) virCommandAddArgList(cmd, "-T", vmwareDriverTypeToString(driver->type),
"reset", ((vmwareDomainPtr) vm->privateData)->vmxPath,
"soft", NULL);
if (virCommandRun(cmd, NULL) < 0)
goto cleanup; goto cleanup;
ret = 0; ret = 0;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册