Omer Frenkel has uploaded a new change for review.

Change subject: core, rest, frontend: fix re-initialization flow
......................................................................

core, rest, frontend: fix re-initialization flow

Change-Id: I2ff258809c7fedcb7336f4e37be9bc53f2678824
Signed-off-by: Omer Frenkel <ofren...@redhat.com>
---
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AttachUserToVmFromPoolAndRunCommand.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RunVmCommand.java
M 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/RunVmParams.java
M 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/VmPoolUserParameters.java
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
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/userportal/PoolItemBehavior.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/userportal/VmItemBehavior.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/SpiceConsoleModel.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmListModel.java
10 files changed, 22 insertions(+), 79 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/26/17626/1

diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AttachUserToVmFromPoolAndRunCommand.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AttachUserToVmFromPoolAndRunCommand.java
index 56e4e31..691a980 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AttachUserToVmFromPoolAndRunCommand.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AttachUserToVmFromPoolAndRunCommand.java
@@ -19,7 +19,6 @@
 import org.ovirt.engine.core.common.action.VdcReturnValueBase;
 import org.ovirt.engine.core.common.action.VmPoolUserParameters;
 import org.ovirt.engine.core.common.asynctasks.EntityInfo;
-import org.ovirt.engine.core.common.businessentities.InitializationType;
 import org.ovirt.engine.core.common.businessentities.Snapshot.SnapshotType;
 import org.ovirt.engine.core.common.businessentities.VM;
 import org.ovirt.engine.core.common.businessentities.VMStatus;
@@ -31,7 +30,6 @@
 import org.ovirt.engine.core.common.job.Step;
 import org.ovirt.engine.core.common.job.StepEnum;
 import org.ovirt.engine.core.common.locks.LockingGroup;
-import org.ovirt.engine.core.common.osinfo.OsRepositoryImpl;
 import org.ovirt.engine.core.common.utils.Pair;
 import org.ovirt.engine.core.compat.Guid;
 import org.ovirt.engine.core.compat.TransactionScopeOption;
@@ -211,12 +209,6 @@
             runVmParams.setSessionId(getParameters().getSessionId());
             runVmParams.setParentParameters(getParameters());
             runVmParams.setEntityInfo(new EntityInfo(VdcObjectType.VM, 
vmToAttach));
-            // if reinitialize needed, select sysprep for windows and 
cloud-init for linux
-            // sysprep / cloud-init info will be taken from vm
-            runVmParams.setInitializationType(getParameters().isReinitialize() 
?
-                    OsRepositoryImpl.INSTANCE.isWindows(getVm().getVmOsId()) ?
-                            InitializationType.Sysprep : 
InitializationType.CloudInit
-                    : InitializationType.None);
             
runVmParams.setParentCommand(VdcActionType.AttachUserToVmFromPoolAndRun);
             runVmParams.setRunAsStateless(true);
             ExecutionContext runVmContext = createRunVmContext();
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RunVmCommand.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RunVmCommand.java
index e2e7c7b..388a938 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RunVmCommand.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RunVmCommand.java
@@ -41,6 +41,7 @@
 import org.ovirt.engine.core.common.businessentities.DisplayType;
 import org.ovirt.engine.core.common.businessentities.Entities;
 import org.ovirt.engine.core.common.businessentities.ImageFileType;
+import org.ovirt.engine.core.common.businessentities.InitializationType;
 import org.ovirt.engine.core.common.businessentities.Provider;
 import org.ovirt.engine.core.common.businessentities.RepoImage;
 import org.ovirt.engine.core.common.businessentities.Snapshot;
@@ -617,7 +618,16 @@
                      // the VM can run with display type which is different 
from its default display type
                     (getParameters().getUseVnc() ? DisplayType.vnc : 
DisplayType.qxl));
 
-            
getVm().setInitializationType(getParameters().getInitializationType());
+            if (getParameters().getInitializationType() == null) {
+                // if vm not initialized, use sysprep/cloud-init
+                if (!getVm().isInitialized()) {
+                    
getVm().setInitializationType(OsRepositoryImpl.INSTANCE.isWindows(getVm().getVmOsId())
 ?
+                            InitializationType.Sysprep :
+                            InitializationType.CloudInit);
+                }
+            } else {
+                
getVm().setInitializationType(getParameters().getInitializationType());
+            }
 
             // if we attach floppy we don't need the sysprep
             if (!StringUtils.isEmpty(getVm().getFloppyPath())) {
diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/RunVmParams.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/RunVmParams.java
index 7e7c93b..daa67c0 100644
--- 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/RunVmParams.java
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/RunVmParams.java
@@ -21,7 +21,7 @@
     private String privateClientIp;
     private VdcUser privateRequestingUser;
     private Guid _destinationVdsId;
-    private InitializationType privateInitializationType = 
InitializationType.None;
+    private InitializationType privateInitializationType;
     private Boolean privateRunAsStateless;
     private String initrd_url;
     private String kernel_url;
diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/VmPoolUserParameters.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/VmPoolUserParameters.java
index 4efd16f..4735612 100644
--- 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/VmPoolUserParameters.java
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/VmPoolUserParameters.java
@@ -34,14 +34,6 @@
         privateIsInternal = value;
     }
 
-    public boolean isReinitialize() {
-        return reinitialize;
-    }
-
-    public void setReinitialize(boolean reinitialize) {
-        this.reinitialize = reinitialize;
-    }
-
     public VmPoolUserParameters() {
     }
 }
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 a6faa20..72f019b 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
@@ -47,17 +47,14 @@
 import org.ovirt.engine.core.common.action.VdcActionType;
 import org.ovirt.engine.core.common.action.VmManagementParametersBase;
 import org.ovirt.engine.core.common.action.VmOperationParameterBase;
-import org.ovirt.engine.core.common.businessentities.InitializationType;
 import org.ovirt.engine.core.common.businessentities.VDS;
 import org.ovirt.engine.core.common.businessentities.VDSGroup;
 import org.ovirt.engine.core.common.businessentities.VmStatic;
 import org.ovirt.engine.core.common.interfaces.SearchType;
-import org.ovirt.engine.core.common.osinfo.OsRepository;
 import org.ovirt.engine.core.common.queries.GetPermissionsForObjectParameters;
 import org.ovirt.engine.core.common.queries.IdQueryParameters;
 import org.ovirt.engine.core.common.queries.VdcQueryReturnValue;
 import org.ovirt.engine.core.common.queries.VdcQueryType;
-import org.ovirt.engine.core.common.utils.SimpleDependecyInjector;
 import org.ovirt.engine.core.compat.Guid;
 
 
@@ -240,23 +237,7 @@
         if (action.isSetPause() && action.isPause()) {
             params.setRunAndPause(true);
         }
-        return doAction(VdcActionType.RunVmOnce, 
setInitializationType(params), action);
-    }
-
-    private VdcActionParametersBase setInitializationType(RunVmOnceParams 
params) {
-        //REVISE when BE supports default val. for 
RunVmOnceParams.privateReinitialize
-        org.ovirt.engine.core.common.businessentities.VM vm = 
getEntity(org.ovirt.engine.core.common.businessentities.VM.class,
-                                                                        
VdcQueryType.GetVmByVmId,
-                                                                        new 
IdQueryParameters(guid),
-                                                                        "VM");
-        if 
(SimpleDependecyInjector.getInstance().get(OsRepository.class).isWindows(vm.getVmOsId())
 && vm.isFirstRun()) {
-            params.setInitializationType(InitializationType.Sysprep);
-        } else if 
(SimpleDependecyInjector.getInstance().get(OsRepository.class).isLinux(vm.getVmOsId())
 && params.getCloudInitParameters() != null) {
-            params.setInitializationType(InitializationType.CloudInit);
-        } else {
-            params.setInitializationType(InitializationType.None);
-        }
-        return params;
+        return doAction(VdcActionType.RunVmOnce, params, action);
     }
 
     @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 30a8be3..cf0d526 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
@@ -384,7 +384,7 @@
 
     @Test
     public void testStart() throws Exception {
-        setUpWindowsGetEntityExpectations(2, false);
+        setUpWindowsGetEntityExpectations(1, false);
         setUriInfo(setUpActionExpectations(VdcActionType.RunVmOnce,
                                            RunVmOnceParams.class,
                                            new String[] { "VmId" },
@@ -397,7 +397,7 @@
 
     @Test
     public void testStartWithPauseAndStateless() throws Exception {
-        setUpWindowsGetEntityExpectations(2, false);
+        setUpWindowsGetEntityExpectations(1, false);
         setUriInfo(setUpActionExpectations(VdcActionType.RunVmOnce,
                                            RunVmOnceParams.class,
                                            new String[] { "VmId", 
"RunAndPause", "RunAsStateless" },
@@ -413,7 +413,7 @@
 
     @Test
     public void testStartWithVnc() throws Exception {
-        setUpWindowsGetEntityExpectations(2, false);
+        setUpWindowsGetEntityExpectations(1, false);
         setUriInfo(setUpActionExpectations(VdcActionType.RunVmOnce,
                                            RunVmOnceParams.class,
                                            new String[] { "VmId", "UseVnc" },
@@ -429,7 +429,7 @@
 
     @Test
     public void testStartWithBootDev() throws Exception {
-        setUpWindowsGetEntityExpectations(2, false);
+        setUpWindowsGetEntityExpectations(1, false);
         setUriInfo(setUpActionExpectations(VdcActionType.RunVmOnce,
                                            RunVmOnceParams.class,
                                            new String[] { "VmId", 
"BootSequence" },
@@ -446,7 +446,7 @@
 
     @Test
     public void testStartWithCdRomAndFloppy() throws Exception {
-        setUpWindowsGetEntityExpectations(2, false);
+        setUpWindowsGetEntityExpectations(1, false);
         setUriInfo(setUpActionExpectations(VdcActionType.RunVmOnce,
                                            RunVmOnceParams.class,
                                            new String[] { "VmId", "DiskPath", 
"FloppyPath" },
@@ -485,7 +485,7 @@
     }
 
     protected void testStartWithHost(Host host, Guid hostId) throws Exception {
-        setUpWindowsGetEntityExpectations(2, false);
+        setUpWindowsGetEntityExpectations(1, false);
         setUriInfo(setUpActionExpectations(VdcActionType.RunVmOnce,
                                            RunVmOnceParams.class,
                                            new String[] { "VmId", 
"DestinationVdsId" },
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/userportal/PoolItemBehavior.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/userportal/PoolItemBehavior.java
index 9800fc4..4a41b8f 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/userportal/PoolItemBehavior.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/userportal/PoolItemBehavior.java
@@ -16,7 +16,6 @@
 import org.ovirt.engine.ui.frontend.Frontend;
 import org.ovirt.engine.ui.frontend.INewAsyncCallback;
 import org.ovirt.engine.ui.uicommonweb.UICommand;
-import org.ovirt.engine.ui.uicommonweb.dataprovider.AsyncDataProvider;
 import org.ovirt.engine.ui.uicompat.Event;
 import org.ovirt.engine.ui.uicompat.EventArgs;
 import org.ovirt.engine.ui.uicompat.FrontendActionAsyncResult;
@@ -69,8 +68,6 @@
         VmPoolUserParameters params = new 
VmPoolUserParameters(entity.getVmPoolId(),
                 Frontend.getLoggedInUser(),
                 false);
-
-        params.setReinitialize(!getItem().isInitialized() && 
AsyncDataProvider.isWindowsOsType(getItem().getOsId()));
 
         Frontend.RunAction(VdcActionType.AttachUserToVmFromPoolAndRun, params,
                 new IFrontendActionAsyncCallback() {
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/userportal/VmItemBehavior.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/userportal/VmItemBehavior.java
index 23b0507..5323c6f 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/userportal/VmItemBehavior.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/userportal/VmItemBehavior.java
@@ -10,7 +10,6 @@
 import org.ovirt.engine.core.common.action.StopVmTypeEnum;
 import org.ovirt.engine.core.common.action.VdcActionType;
 import org.ovirt.engine.core.common.action.VmOperationParameterBase;
-import org.ovirt.engine.core.common.businessentities.InitializationType;
 import org.ovirt.engine.core.common.businessentities.VM;
 import org.ovirt.engine.core.common.businessentities.VmPool;
 import org.ovirt.engine.core.common.businessentities.VmPoolType;
@@ -136,16 +135,8 @@
     private void run()
     {
         VM entity = (VM) getItem().getEntity();
-        // use sysprep iff the vm is not initialized and vm has Win OS
-        RunVmParams tempVar = new RunVmParams(entity.getId());
-        if (!entity.isInitialized() && 
AsyncDataProvider.isWindowsOsType(entity.getVmOsId())) {
-            tempVar.setInitializationType(InitializationType.Sysprep);
-        } else if (!entity.isInitialized() && 
AsyncDataProvider.isLinuxOsType(entity.getVmOsId())) {
-            tempVar.setInitializationType(InitializationType.CloudInit);
-        } else {
-            tempVar.setInitializationType(InitializationType.None);
-        }
-        Frontend.RunAction(VdcActionType.RunVm, tempVar);
+
+        Frontend.RunAction(VdcActionType.RunVm, new 
RunVmParams(entity.getId()));
     }
 
     private void updateProperties()
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/SpiceConsoleModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/SpiceConsoleModel.java
index 2d43a49..0e8a7af 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/SpiceConsoleModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/SpiceConsoleModel.java
@@ -15,7 +15,6 @@
 import org.ovirt.engine.core.common.action.VmOperationParameterBase;
 import org.ovirt.engine.core.common.businessentities.DisplayType;
 import org.ovirt.engine.core.common.businessentities.ImageFileType;
-import org.ovirt.engine.core.common.businessentities.InitializationType;
 import org.ovirt.engine.core.common.businessentities.RepoImage;
 import org.ovirt.engine.core.common.businessentities.StorageDomain;
 import org.ovirt.engine.core.common.businessentities.UsbPolicy;
@@ -208,13 +207,6 @@
                     // use sysprep iff the vm is not initialized and vm has 
Win OS
                     RunVmParams tempVar = new RunVmParams(getEntity().getId());
                     tempVar.setRunAsStateless(getEntity().isStateless());
-                    if (!getEntity().isInitialized() && 
AsyncDataProvider.isWindowsOsType(getEntity().getVmOsId())) {
-                        
tempVar.setInitializationType(InitializationType.Sysprep);
-                    } else if (!getEntity().isInitialized() && 
AsyncDataProvider.isLinuxOsType(getEntity().getVmOsId())) {
-                        
tempVar.setInitializationType(InitializationType.CloudInit);
-                    } else {
-                        tempVar.setInitializationType(InitializationType.None);
-                    }
                     Frontend.RunMultipleAction(VdcActionType.RunVm,
                             new 
ArrayList<VdcActionParametersBase>(Arrays.asList(new VdcActionParametersBase[] 
{ tempVar })));
 
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmListModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmListModel.java
index 65cd92a..31511a1 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmListModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmListModel.java
@@ -31,7 +31,6 @@
 import org.ovirt.engine.core.common.businessentities.Disk.DiskStorageType;
 import org.ovirt.engine.core.common.businessentities.DiskImage;
 import org.ovirt.engine.core.common.businessentities.DisplayType;
-import org.ovirt.engine.core.common.businessentities.InitializationType;
 import org.ovirt.engine.core.common.businessentities.MigrationSupport;
 import org.ovirt.engine.core.common.businessentities.Quota;
 import org.ovirt.engine.core.common.businessentities.StorageDomain;
@@ -1740,18 +1739,7 @@
         for (Object item : getSelectedItems())
         {
             VM a = (VM) item;
-            // use sysprep iff the vm is not initialized and vm has Win OS
-            RunVmParams tempVar = new RunVmParams(a.getId());
-            if (!a.isInitialized() && 
AsyncDataProvider.isWindowsOsType(a.getVmOsId())) {
-                tempVar.setInitializationType(InitializationType.Sysprep);
-            }
-            else if (!a.isInitialized() && 
AsyncDataProvider.isLinuxOsType(a.getVmOsId())) {
-                tempVar.setInitializationType(InitializationType.CloudInit);
-            }
-            else {
-                tempVar.setInitializationType(InitializationType.None);
-            }
-            list.add(tempVar);
+            list.add(new RunVmParams(a.getId()));
         }
 
         Frontend.RunMultipleAction(VdcActionType.RunVm, list,


-- 
To view, visit http://gerrit.ovirt.org/17626
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I2ff258809c7fedcb7336f4e37be9bc53f2678824
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Omer Frenkel <ofren...@redhat.com>
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to