Martin Betak has uploaded a new change for review. Change subject: restapi: Start VM not as RunOnce ......................................................................
restapi: Start VM not as RunOnce The BackendVmResource.start issued RunVmOnce command even if none additional parameters were provided. Now we check if a Vm is passed in the Action and if not, we issue regular RunVmCommand. Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1005562 Change-Id: I40be200c8742d8b31b7881926c59deaf345992ec Signed-off-by: Martin Betak <[email protected]> --- M backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendVmResource.java M backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendVmResourceTest.java 2 files changed, 31 insertions(+), 18 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/67/19267/1 diff --git a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendVmResource.java b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendVmResource.java index 72f019b..0ccd2ec 100644 --- a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendVmResource.java +++ b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendVmResource.java @@ -39,6 +39,7 @@ import org.ovirt.engine.core.common.action.MoveVmParameters; import org.ovirt.engine.core.common.action.RemoveVmFromPoolParameters; import org.ovirt.engine.core.common.action.RunVmOnceParams; +import org.ovirt.engine.core.common.action.RunVmParams; import org.ovirt.engine.core.common.action.SetVmTicketParameters; import org.ovirt.engine.core.common.action.ShutdownVmParameters; import org.ovirt.engine.core.common.action.StopVmParameters; @@ -221,23 +222,35 @@ @Override public Response start(Action action) { - RunVmOnceParams params = - map(map(getEntity(entityType, VdcQueryType.GetVmByVmId, new IdQueryParameters(guid), id, true), - new VM()), - new RunVmOnceParams(guid)); - if (action.isSetVm()) { - validateEnums(VM.class, action.getVm()); - VM vm = action.getVm(); - params = map(vm, params); - if (vm.isSetPlacementPolicy() && vm.getPlacementPolicy().isSetHost()) { - validateParameters(vm.getPlacementPolicy(), "host.id|name"); - params.setDestinationVdsId(getHostId(vm.getPlacementPolicy().getHost())); + if (isStartRunOnce(action)) { + RunVmOnceParams params = + map(map(getEntity(entityType, VdcQueryType.GetVmByVmId, new IdQueryParameters(guid), id, true), + new VM()), + new RunVmOnceParams(guid)); + if (action.isSetVm()) { + validateEnums(VM.class, action.getVm()); + VM vm = action.getVm(); + params = map(vm, params); + if (vm.isSetPlacementPolicy() && vm.getPlacementPolicy().isSetHost()) { + validateParameters(vm.getPlacementPolicy(), "host.id|name"); + params.setDestinationVdsId(getHostId(vm.getPlacementPolicy().getHost())); + } } + if (action.isSetPause() && action.isPause()) { + params.setRunAndPause(true); + } + return doAction(VdcActionType.RunVmOnce, params, action); + } else { + RunVmParams params = new RunVmParams(guid); + if (action.isSetPause() && action.isPause()) { + params.setRunAndPause(true); + } + return doAction(VdcActionType.RunVm, params, action); } - if (action.isSetPause() && action.isPause()) { - params.setRunAndPause(true); - } - return doAction(VdcActionType.RunVmOnce, params, action); + } + + private boolean isStartRunOnce(Action action) { + return action.isSetVm(); } @Override diff --git a/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendVmResourceTest.java b/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendVmResourceTest.java index cf0d526..624095a 100644 --- a/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendVmResourceTest.java +++ b/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendVmResourceTest.java @@ -44,6 +44,7 @@ import org.ovirt.engine.core.common.action.MoveVmParameters; import org.ovirt.engine.core.common.action.RemoveVmFromPoolParameters; import org.ovirt.engine.core.common.action.RunVmOnceParams; +import org.ovirt.engine.core.common.action.RunVmParams; import org.ovirt.engine.core.common.action.SetVmTicketParameters; import org.ovirt.engine.core.common.action.ShutdownVmParameters; import org.ovirt.engine.core.common.action.StopVmParameters; @@ -384,9 +385,8 @@ @Test public void testStart() throws Exception { - setUpWindowsGetEntityExpectations(1, false); - setUriInfo(setUpActionExpectations(VdcActionType.RunVmOnce, - RunVmOnceParams.class, + setUriInfo(setUpActionExpectations(VdcActionType.RunVm, + RunVmParams.class, new String[] { "VmId" }, new Object[] { GUIDS[0] })); -- To view, visit http://gerrit.ovirt.org/19267 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I40be200c8742d8b31b7881926c59deaf345992ec Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Martin Betak <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
