Maor Lipchuk has uploaded a new change for review.

Change subject: core: Adding a new command for register VMs
......................................................................

core: Adding a new command for register VMs

Adding a bll command to register an unregistered VM to a cluster.
Also adding a parameter class.

WIP : Tests should be added

Change-Id: I5ee64651eb614feb6ac9d7fde88a4ee6348aff06
Signed-off-by: Maor Lipchuk <[email protected]>

Add to new command RegisterVMToClusterCommand

Change-Id: I21aca8932ae29a02de82f369e8ff8801b422173e
Signed-off-by: Maor Lipchuk <[email protected]>
---
A 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RegisterVMToClusterCommand.java
A 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/ImportVmFromConfigurationParameters.java
M 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/VdcActionType.java
3 files changed, 92 insertions(+), 0 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/81/26481/1

diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RegisterVMToClusterCommand.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RegisterVMToClusterCommand.java
new file mode 100644
index 0000000..3ce3749
--- /dev/null
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RegisterVMToClusterCommand.java
@@ -0,0 +1,54 @@
+package org.ovirt.engine.core.bll;
+
+import org.ovirt.engine.core.bll.job.ExecutionHandler;
+import org.ovirt.engine.core.bll.storage.StorageDomainCommandBase;
+import org.ovirt.engine.core.common.action.ImportVmFromConfigurationParameters;
+import org.ovirt.engine.core.common.action.ImportVmParameters;
+import org.ovirt.engine.core.common.action.VdcActionType;
+import org.ovirt.engine.core.common.action.VdcReturnValueBase;
+import org.ovirt.engine.core.common.businessentities.OvfEntityData;
+import org.ovirt.engine.core.common.businessentities.VM;
+import org.ovirt.engine.core.compat.Guid;
+import org.ovirt.engine.core.dal.dbbroker.DbFacade;
+import org.ovirt.engine.core.dao.UnregisteredOVFDataDAO;
+import org.ovirt.engine.core.utils.ovf.OvfReaderException;
+
+public class RegisterVMToClusterCommand<T extends 
ImportVmFromConfigurationParameters> extends StorageDomainCommandBase<T> {
+
+    protected RegisterVMToClusterCommand(Guid commandId) {
+        super(commandId);
+    }
+
+    public RegisterVMToClusterCommand(T parameters) {
+        super(parameters);
+        setCommandShouldBeLogged(false);
+    }
+
+    @Override
+    protected boolean canDoAction() {
+        return true;
+    }
+
+    @Override
+    protected void executeCommand() {
+        OvfEntityData ovfEntityData = 
getUnregisteredOVFDataDao().getByVmId(getParameters().getVmId());
+        OvfHelper ovfHelper = new OvfHelper();
+        try {
+            VM vmFromConfiguration = 
ovfHelper.readVmFromOvf(ovfEntityData.getOvfData());
+            ImportVmParameters parameters = new ImportVmParameters();
+            parameters.setVm(vmFromConfiguration);
+            parameters.setVdsGroupId(getParameters().getVdsGroupId());
+            VdcReturnValueBase result =
+                    
getBackend().runInternalAction(VdcActionType.ImportVmFromConfiguration,
+                            parameters,
+                            
ExecutionHandler.createDefaultContexForTasks(getExecutionContext()));
+        } catch (OvfReaderException e) {
+            log.errorFormat("failed to parse a given ovf configuration: \n" + 
ovfEntityData.getOvfData(), e);
+            return;
+        }
+    }
+
+    protected static UnregisteredOVFDataDAO getUnregisteredOVFDataDao() {
+        return DbFacade.getInstance().getUnregisteredOVFDataDao();
+    }
+}
diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/ImportVmFromConfigurationParameters.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/ImportVmFromConfigurationParameters.java
new file mode 100644
index 0000000..d253342
--- /dev/null
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/ImportVmFromConfigurationParameters.java
@@ -0,0 +1,37 @@
+package org.ovirt.engine.core.common.action;
+
+import java.io.Serializable;
+
+import org.ovirt.engine.core.compat.Guid;
+
+public class ImportVmFromConfigurationParameters extends 
StorageDomainParametersBase implements Serializable {
+
+    private static final long serialVersionUID = -7202189901604706014L;
+    private Guid vmId;
+    private Guid vdsGroupId;
+
+    public ImportVmFromConfigurationParameters() {
+    }
+
+    public ImportVmFromConfigurationParameters(Guid vmId, Guid vdsGroupId) {
+        this.vmId = vmId;
+        this.vdsGroupId = vdsGroupId;
+    }
+
+    public Guid getVmId() {
+        return vmId;
+    }
+
+    public void setVmId(Guid vmId) {
+        this.vmId = vmId;
+    }
+
+    public Guid getVdsGroupId() {
+        return vdsGroupId;
+    }
+
+    public void setVdsGroupId(Guid vdsGroupId) {
+        this.vdsGroupId = vdsGroupId;
+    }
+
+}
diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/VdcActionType.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/VdcActionType.java
index 2bd8d96..79da3f7 100644
--- 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/VdcActionType.java
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/VdcActionType.java
@@ -53,6 +53,7 @@
     AddVmFromSnapshot(52, ActionGroup.CREATE_VM, QuotaDependency.BOTH),
     ImportVmFromConfiguration(43, ActionGroup.IMPORT_EXPORT_VM, 
QuotaDependency.NONE),
     UpdateVmVersion(44, QuotaDependency.NONE),
+    RegisterVMToClusterCommand(45, ActionGroup.IMPORT_EXPORT_VM, 
QuotaDependency.NONE),
     // VdsCommands
     AddVds(101, ActionGroup.CREATE_HOST, QuotaDependency.NONE),
     UpdateVds(102, ActionGroup.EDIT_HOST_CONFIGURATION, false, 
QuotaDependency.NONE),


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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I21aca8932ae29a02de82f369e8ff8801b422173e
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Maor Lipchuk <[email protected]>
_______________________________________________
Engine-patches mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to