Liron Ar has uploaded a new change for review.

Change subject: core: RegisterDiskCommand - correct storage domain
......................................................................

core: RegisterDiskCommand - correct storage domain

When registering new disk, the disk was saved to the db using the domain
information stored on it's metadata - this can cause to failure during
registration or to have incorrect information stored in the engine db.
The domain on which the disk was existed on isn't necessarily the
new one on which the disk is now, so it shouldn't be saved with it.

The following patch set the saved storage domain to the current one and
is part of the complete fix which involves also setting the current id
to the image metadata in vdsm.

Change-Id: I568668fc1a8024ff255754287afbaa5d35b8a2ed
Signed-off-by: Liron Aravot <[email protected]>
---
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RegisterDiskCommand.java
M 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/RegisterDiskParameters.java
M 
backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendStorageDomainDisksResource.java
3 files changed, 7 insertions(+), 2 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/93/15193/1

diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RegisterDiskCommand.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RegisterDiskCommand.java
index 3d66eb9..4fb9059 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RegisterDiskCommand.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RegisterDiskCommand.java
@@ -56,6 +56,9 @@
         final DiskImage newDiskImage = getParameters().getDiskImage();
         
newDiskImage.setDiskAlias(ImagesHandler.getDiskAliasWithDefault(newDiskImage,
                 generateDefaultAliasForRegiteredDisk(Calendar.getInstance())));
+        ArrayList<Guid> storageIds = new ArrayList<>();
+        storageIds.add(getParameters().getStorageDomainId());
+        newDiskImage.setStorageIds(storageIds);
         addDiskImageToDb(newDiskImage, getCompensationContext());
         getReturnValue().setActionReturnValue(newDiskImage.getId());
         getReturnValue().setSucceeded(true);
diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/RegisterDiskParameters.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/RegisterDiskParameters.java
index 0959a24..ce952a3 100644
--- 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/RegisterDiskParameters.java
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/RegisterDiskParameters.java
@@ -1,6 +1,7 @@
 package org.ovirt.engine.core.common.action;
 
 import org.ovirt.engine.core.common.businessentities.DiskImage;
+import org.ovirt.engine.core.compat.Guid;
 
 public class RegisterDiskParameters extends ImagesActionsParametersBase {
 
@@ -8,9 +9,10 @@
 
     private DiskImage diskImage;
 
-    public RegisterDiskParameters(DiskImage diskImage) {
+    public RegisterDiskParameters(DiskImage diskImage, Guid storageDomainId) {
         super(diskImage.getId());
         this.diskImage = diskImage;
+        setStorageDomainId(storageDomainId);
     }
 
     public DiskImage getDiskImage() {
diff --git 
a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendStorageDomainDisksResource.java
 
b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendStorageDomainDisksResource.java
index 647e44d..77a830b 100644
--- 
a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendStorageDomainDisksResource.java
+++ 
b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendStorageDomainDisksResource.java
@@ -61,7 +61,7 @@
             unregisteredDisk =
                     (DiskImage) getMapper(Disk.class, 
org.ovirt.engine.core.common.businessentities.Disk.class).map(disk,
                             unregisteredDisk);
-            RegisterDiskParameters registerDiskParams = new 
RegisterDiskParameters(unregisteredDisk);
+            RegisterDiskParameters registerDiskParams = new 
RegisterDiskParameters(unregisteredDisk, storageDomainId);
             return performCreate(VdcActionType.RegisterDisk, 
registerDiskParams, ID_RESOLVER);
         } else {
             validateDiskForCreation(disk);


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

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

Reply via email to