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

Reply via email to