ofri masad has uploaded a new change for review.

Change subject: core: Move quota to Image_storage_domain_map
......................................................................

core: Move quota to Image_storage_domain_map

In order to allow assigning different quota to the same image on
different storage domains, the quota id was moved from the images table
to Image_storage_domain_map table.

Backend entities were change to suit this change - so that quota is no
longer a field of Image but a field DiskImage and multiple quotas can be
assign to the same DiskImage for different Storage Domains.

Change-Id: I2a48bbc63960a6b3e3a3a90ea2a96603ea21381d
Signed-off-by: Ofri Masad <[email protected]>
---
M backend/manager/dbscripts/create_views.sql
M backend/manager/dbscripts/image_storage_domain_map_sp.sql
M backend/manager/dbscripts/images_sp.sql
A backend/manager/dbscripts/upgrade/03_01_1520_add_qouta_id_to_image_sd_map.sql
A backend/manager/dbscripts/upgrade/03_01_1530_move_qouta_id.sql
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/BaseImagesCommand.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ChangeQuotaForDiskCommand.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImagesHandler.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/MoveOrCopyImageGroupCommand.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/lsm/VmReplicateDiskFinishTaskHandler.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/snapshots/SnapshotsManager.java
M 
backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/GetAllDisksByVmIdQueryTest.java
M 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/DiskImage.java
M 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/DiskImageBase.java
M 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/Image.java
M 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/image_storage_domain_map.java
M 
backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/ImageDao.java
M 
backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/ImageDaoDbFacadeImpl.java
M 
backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/ImageStorageDomainMapDao.java
M 
backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/ImageStorageDomainMapDaoDbFacadeImpl.java
M 
backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/ImageDaoTest.java
M 
backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/ImageStorageDomainMapDaoTest.java
M backend/manager/modules/dal/src/test/resources/fixtures.xml
M 
backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/DiskMapper.java
M 
frontend/webadmin/modules/gwt-common/src/main/resources/org/ovirt/engine/core/Common.gwt.xml
25 files changed, 156 insertions(+), 118 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/60/9460/1

diff --git a/backend/manager/dbscripts/create_views.sql 
b/backend/manager/dbscripts/create_views.sql
index d6dd745..f82673c 100644
--- a/backend/manager/dbscripts/create_views.sql
+++ b/backend/manager/dbscripts/create_views.sql
@@ -61,7 +61,7 @@
     base_disks.wipe_after_delete as wipe_after_delete,
     base_disks.propagate_errors,
     base_disks.boot as boot,
-    images.quota_id as quota_id,
+    image_storage_domain_map.quota_id as quota_id,
     quota.quota_name as quota_name,
     storage_pool.quota_enforcement_type,
     disk_image_dynamic.actual_size as actual_size,
@@ -78,7 +78,7 @@
 LEFT JOIN image_storage_domain_map ON image_storage_domain_map.image_id = 
images.image_guid
 LEFT OUTER JOIN storage_domain_static_view ON 
image_storage_domain_map.storage_domain_id = storage_domain_static_view.id
 LEFT OUTER JOIN snapshots ON images.vm_snapshot_id = snapshots.snapshot_id
-LEFT OUTER JOIN quota ON images.quota_id = quota.id
+LEFT OUTER JOIN quota ON image_storage_domain_map.quota_id = quota.id
 LEFT OUTER JOIN storage_pool ON storage_pool.id = quota.storage_pool_id
 WHERE images.image_guid != '00000000-0000-0000-0000-000000000000';
 
diff --git a/backend/manager/dbscripts/image_storage_domain_map_sp.sql 
b/backend/manager/dbscripts/image_storage_domain_map_sp.sql
index 4b32ede..06a5452 100644
--- a/backend/manager/dbscripts/image_storage_domain_map_sp.sql
+++ b/backend/manager/dbscripts/image_storage_domain_map_sp.sql
@@ -8,12 +8,12 @@
 
 
 Create or replace FUNCTION Insertimage_storage_domain_map(v_image_id UUID,
-    v_storage_domain_id UUID)
+    v_storage_domain_id UUID, v_quota_id UUID)
 RETURNS VOID
    AS $procedure$
 BEGIN
-INSERT INTO image_storage_domain_map(image_id, storage_domain_id)
-       VALUES(v_image_id, v_storage_domain_id);
+INSERT INTO image_storage_domain_map(image_id, storage_domain_id, v_quota_id)
+       VALUES(v_image_id, v_storage_domain_id, quota_id);
 END; $procedure$
 LANGUAGE plpgsql;
 
@@ -72,3 +72,14 @@
 LANGUAGE plpgsql;
 
 
+Create or replace FUNCTION updateQuotaForImageAndSnapshots(v_image_group_id 
UUID, v_storage_domain_id UUID, v_quota_id UUID)
+RETURNS VOID
+AS $procedure$
+BEGIN
+UPDATE image_storage_domain_map
+    SET quota_id = v_quota_id
+    WHERE image_group_id = v_image_group_id AND storage_domain_id = 
v_storage_domain_id;
+END; $procedure$
+LANGUAGE plpgsql;
+
+
diff --git a/backend/manager/dbscripts/images_sp.sql 
b/backend/manager/dbscripts/images_sp.sql
index 65f829e..b1d7ea8 100644
--- a/backend/manager/dbscripts/images_sp.sql
+++ b/backend/manager/dbscripts/images_sp.sql
@@ -19,8 +19,7 @@
     v_volume_type INTEGER,
     v_volume_format INTEGER,
     v_image_group_id UUID ,
-    v_active BOOLEAN,
-    v_quota_id UUID)
+    v_active BOOLEAN)
 RETURNS VOID
 AS $procedure$
 BEGIN
@@ -36,8 +35,7 @@
         volume_type,
         image_group_id,
         volume_format,
-        active,
-        quota_id)
+        active)
     VALUES(
         v_creation_date,
         v_image_guid,
@@ -50,8 +48,7 @@
         v_volume_type,
         v_image_group_id,
         v_volume_format,
-        v_active,
-        v_quota_id);
+        v_active);
 END; $procedure$
 LANGUAGE plpgsql;
 
@@ -100,8 +97,7 @@
     v_volume_type INTEGER,
     v_volume_format INTEGER,
     v_image_group_id UUID ,
-    v_active BOOLEAN,
-    v_quota_id UUID)
+    v_active BOOLEAN)
 RETURNS VOID
 AS $procedure$
 BEGIN
@@ -117,7 +113,6 @@
            image_group_id = v_image_group_id,
            volume_format = v_volume_format,
            active = v_active,
-           quota_id = v_quota_id,
            _update_date = LOCALTIMESTAMP
     WHERE  image_guid = v_image_guid;
 END; $procedure$
@@ -167,13 +162,4 @@
 END; $procedure$
 LANGUAGE plpgsql;
 
-Create or replace FUNCTION updateQuotaForImageAndSnapshots(v_image_group_id 
UUID, v_quota_id UUID)
-RETURNS VOID
-AS $procedure$
-BEGIN
-UPDATE images
-    SET quota_id = v_quota_id
-    WHERE image_group_id = v_image_group_id;
-END; $procedure$
-LANGUAGE plpgsql;
 
diff --git 
a/backend/manager/dbscripts/upgrade/03_01_1520_add_qouta_id_to_image_sd_map.sql 
b/backend/manager/dbscripts/upgrade/03_01_1520_add_qouta_id_to_image_sd_map.sql
new file mode 100644
index 0000000..fc1533a
--- /dev/null
+++ 
b/backend/manager/dbscripts/upgrade/03_01_1520_add_qouta_id_to_image_sd_map.sql
@@ -0,0 +1 @@
+select fn_db_add_column('image_storage_domain_map','quota_id', 'UUID NULL');
diff --git a/backend/manager/dbscripts/upgrade/03_01_1530_move_qouta_id.sql 
b/backend/manager/dbscripts/upgrade/03_01_1530_move_qouta_id.sql
new file mode 100644
index 0000000..a2e8815
--- /dev/null
+++ b/backend/manager/dbscripts/upgrade/03_01_1530_move_qouta_id.sql
@@ -0,0 +1,3 @@
+update image_storage_domain_map set quota_id = (select quota_id from images
+      where image_id = image_guid);
+alter table images drop column quota_id;
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/BaseImagesCommand.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/BaseImagesCommand.java
index 4e25ab4..ba07231 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/BaseImagesCommand.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/BaseImagesCommand.java
@@ -297,7 +297,7 @@
         diskDynamic.setactual_size(image.getactual_size());
         getDiskImageDynamicDAO().save(diskDynamic);
         image_storage_domain_map image_storage_domain_map = new 
image_storage_domain_map(image.getImageId(),
-                image.getstorage_ids().get(0));
+                image.getstorage_ids().get(0), image.getQuotaId());
         getImageStorageDomainMapDao().save(image_storage_domain_map);
         boolean isDiskAdded = saveDiskIfNotExists(image);
         if (compensationContext != null) {
@@ -420,8 +420,7 @@
     static public image_storage_domain_map saveImage(DiskImage diskImage) {
         DbFacade.getInstance().getImageDao().save(diskImage.getImage());
         image_storage_domain_map image_storage_domain_map = new 
image_storage_domain_map(diskImage.getImageId(),
-                diskImage.getstorage_ids()
-                        .get(0));
+                diskImage.getstorage_ids().get(0), diskImage.getQuotaId());
         DbFacade.getInstance()
                 .getImageStorageDomainMapDao()
                 .save(image_storage_domain_map);
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ChangeQuotaForDiskCommand.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ChangeQuotaForDiskCommand.java
index df98811..7f70760 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ChangeQuotaForDiskCommand.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ChangeQuotaForDiskCommand.java
@@ -40,8 +40,8 @@
 
     @Override
     protected void executeCommand() {
-        
getDbFacade().getImageDao().updateQuotaForImageAndSnapshots(getParameters().getObjectId(),
-                getParameters().getQuotaId());
+        
getDbFacade().getImageStorageDomainMapDao().updateQuotaForImageAndSnapshots(getParameters().getObjectId(),
+                getParameters().getQuotaId(), getParameters().getQuotaId());
         setSucceeded(true);
     }
 
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImagesHandler.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImagesHandler.java
index 0c9a85e..9e87f7c 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImagesHandler.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImagesHandler.java
@@ -244,7 +244,7 @@
     public static void addDiskImageWithNoVmDevice(DiskImage image) {
         addDiskImageWithNoVmDevice(image,
                 image.getactive(),
-                new image_storage_domain_map(image.getImageId(), 
image.getstorage_ids().get(0)));
+                new image_storage_domain_map(image.getImageId(), 
image.getstorage_ids().get(0), image.getQuotaId()));
     }
 
     /**
@@ -270,7 +270,7 @@
      */
     public static void addDiskImage(DiskImage image, Guid vmId) {
         addDiskImage(image, image.getactive(), new 
image_storage_domain_map(image.getImageId(), image.getstorage_ids()
-                .get(0)), vmId);
+                .get(0), image.getQuotaId()), vmId);
     }
 
     /**
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/MoveOrCopyImageGroupCommand.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/MoveOrCopyImageGroupCommand.java
index 96f1a21..fa72004 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/MoveOrCopyImageGroupCommand.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/MoveOrCopyImageGroupCommand.java
@@ -113,13 +113,13 @@
             if (!shouldUpdateStorageDisk() && 
getParameters().getAddImageDomainMapping()) {
                 getImageStorageDomainMapDao().save
                         (new 
image_storage_domain_map(getParameters().getImageId(),
-                                getParameters().getStorageDomainId()));
+                                getParameters().getStorageDomainId(), 
getParameters().getQuotaId()));
             }
             //update qutoa
             if (getParameters().getQuotaId() != null) {
                 
getDestinationDiskImage().setQuotaId(getParameters().getQuotaId());
-                
getImageDao().updateQuotaForImageAndSnapshots(getParameters().getDestImageGroupId(),
-                        getParameters().getQuotaId());
+                
getImageStorageDomainMapDao().updateQuotaForImageAndSnapshots(getParameters().getDestImageGroupId(),
+                        getParameters().getStorageDomainId(), 
getParameters().getQuotaId());
             }
 
             setSucceeded(true);
@@ -155,7 +155,7 @@
                 getImageStorageDomainMapDao().remove
                         (new 
image_storage_domain_map_id(snapshot.getImageId(), 
snapshot.getstorage_ids().get(0)));
                 getImageStorageDomainMapDao().save
-                        (new image_storage_domain_map(snapshot.getImageId(), 
getParameters().getStorageDomainId()));
+                        (new image_storage_domain_map(snapshot.getImageId(), 
getParameters().getStorageDomainId(), getParameters().getQuotaId()));
             }
         }
         super.endSuccessfully();
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/lsm/VmReplicateDiskFinishTaskHandler.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/lsm/VmReplicateDiskFinishTaskHandler.java
index b209e21..a75e498 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/lsm/VmReplicateDiskFinishTaskHandler.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/lsm/VmReplicateDiskFinishTaskHandler.java
@@ -67,7 +67,7 @@
                                             
getEnclosingCommand().getParameters().getSourceStorageDomainId()));
                             getImageStorageDomainMapDao().save
                                     (new 
image_storage_domain_map(di.getImageId(),
-                                            
getEnclosingCommand().getParameters().getTargetStorageDomainId()));
+                                            
getEnclosingCommand().getParameters().getTargetStorageDomainId(), 
getEnclosingCommand().getParameters().getQuotaId()));
                         }
                         return null;
                     }
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/snapshots/SnapshotsManager.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/snapshots/SnapshotsManager.java
index 32c9466..88ad76a 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/snapshots/SnapshotsManager.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/snapshots/SnapshotsManager.java
@@ -358,7 +358,7 @@
                     diskImage.setvm_snapshot_id(activeSnapshotId);
 
                     ImagesHandler.addImage(diskImage, true, 
(diskImage.getstorage_ids() == null) ? null :
-                            new 
image_storage_domain_map(diskImage.getImageId(), 
diskImage.getstorage_ids().get(0)));
+                            new 
image_storage_domain_map(diskImage.getImageId(), 
diskImage.getstorage_ids().get(0), diskImage.getQuotaId()));
                 }
                 ImagesHandler.addDiskToVm(diskImage, vmId);
             }
diff --git 
a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/GetAllDisksByVmIdQueryTest.java
 
b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/GetAllDisksByVmIdQueryTest.java
index df008e0..5066c6d 100644
--- 
a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/GetAllDisksByVmIdQueryTest.java
+++ 
b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/GetAllDisksByVmIdQueryTest.java
@@ -119,7 +119,7 @@
                 Guid.NewGuid(),
                 ImageStatus.OK,
                 new Date(),
-                "", VmEntityType.VM, 1, null, null, 
QuotaEnforcementTypeEnum.DISABLED, false);
+                "", VmEntityType.VM, 1, null, 
QuotaEnforcementTypeEnum.DISABLED, false);
     }
 
     private DiskImage createDiskSnapshot(Guid diskId) {
@@ -136,7 +136,7 @@
                 diskId,
                 ImageStatus.OK,
                 new Date(),
-                "", VmEntityType.VM, 1, null, null, 
QuotaEnforcementTypeEnum.DISABLED, false);
+                "", VmEntityType.VM, 1, null, 
QuotaEnforcementTypeEnum.DISABLED, false);
     }
 
     @Test
diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/DiskImage.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/DiskImage.java
index 9558db4..26f348a 100644
--- 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/DiskImage.java
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/DiskImage.java
@@ -59,7 +59,6 @@
         setBoot(diskImageBase.isBoot());
         setWipeAfterDelete(diskImageBase.isWipeAfterDelete());
         setPropagateErrors(diskImageBase.getPropagateErrors());
-        setQuotaId(diskImageBase.getQuotaId());
         setQuotaName(diskImageBase.getQuotaName());
         setQuotaEnforcementType(diskImageBase.getQuotaEnforcementType());
         setIsQuotaDefault(diskImageBase.isQuotaDefault());
@@ -80,7 +79,6 @@
             String appList,
             VmEntityType vmEntityType,
             int numberOfVms,
-            Guid quotaId,
             String quotaName,
             QuotaEnforcementTypeEnum quotaEnforcementType,
             boolean isQuotaDefault) {
@@ -98,7 +96,6 @@
         this.setappList(appList);
         this.setVmEntityType(vmEntityType);
         this.setNumberOfVms(numberOfVms);
-        this.setQuotaId(quotaId);
         this.setQuotaName(quotaName);
         setQuotaEnforcementType(quotaEnforcementType);
         setIsQuotaDefault(isQuotaDefault);
@@ -263,6 +260,20 @@
         storageIds = value;
     }
 
+    @Override
+    public void setQuotaId(Guid quotaId) {
+        if (getImage_storage_domain_mapList() != null && 
!getImage_storage_domain_mapList().isEmpty()) {
+            getImage_storage_domain_mapList().get(0).setQuotaId(quotaId);
+        } else {
+            if (getstorage_ids() != null && !getstorage_ids ().isEmpty()) {
+                setImage_storage_domain_mapList(new 
ArrayList<image_storage_domain_map>());
+                getImage_storage_domain_mapList().add(new 
image_storage_domain_map(getId(),
+                        getstorage_ids().get(0),
+                        quotaId));
+            }
+        }
+    }
+
     public NGuid getvm_snapshot_id() {
         return getImage().getSnapshotId();
     }
diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/DiskImageBase.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/DiskImageBase.java
index 796a94f..5bf42b8 100644
--- 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/DiskImageBase.java
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/DiskImageBase.java
@@ -4,12 +4,17 @@
 
 import org.ovirt.engine.core.compat.Guid;
 
+import java.util.ArrayList;
+import java.util.List;
+
 public class DiskImageBase extends Disk {
 
     private static final long serialVersionUID = 4913899921353163969L;
 
     @Valid
     private Image image = new Image();
+
+    private List<image_storage_domain_map> image_storage_domain_mapList = new 
ArrayList<image_storage_domain_map>();
 
     /** Transient field for GUI presentation purposes. */
     private String quotaName;
@@ -50,12 +55,34 @@
     }
 
     public Guid getQuotaId() {
-        return getImage().getQuotaId();
+        if (getImage_storage_domain_mapList() != null && 
!getImage_storage_domain_mapList().isEmpty()) {
+            return getImage_storage_domain_mapList().get(0).getQuotaId();
+        } else {
+            return null;
+        }
     }
 
     public void setQuotaId(Guid quotaId) {
-        getImage().setQuotaId(quotaId);
+        if (getImage_storage_domain_mapList() != null && 
!getImage_storage_domain_mapList().isEmpty()) {
+            getImage_storage_domain_mapList().get(0).setQuotaId(quotaId);
+        }
     }
+
+    public Guid getQuotaId(Guid storage_domain_id) {
+        for (image_storage_domain_map image_storage_domain_map : 
getImage_storage_domain_mapList()) {
+            if (image_storage_domain_map.getId().equals(storage_domain_id)) {
+                return image_storage_domain_map.getQuotaId();
+            }
+        }
+        return null;
+    }
+
+    public void setQuotaId(Guid quotaId, Guid storage_domain_id) {
+        for (image_storage_domain_map image_storage_domain_map : 
getImage_storage_domain_mapList()) {
+            if (image_storage_domain_map.getId().equals(storage_domain_id)) {
+                image_storage_domain_map.setQuotaId(quotaId);
+            }
+        }    }
 
     @Override
     public long getsize() {
@@ -116,4 +143,12 @@
         super.setId(id);
         getImage().setDiskId(id);
     }
+
+    public List<image_storage_domain_map> getImage_storage_domain_mapList() {
+        return image_storage_domain_mapList;
+    }
+
+    public void setImage_storage_domain_mapList(List<image_storage_domain_map> 
image_storage_domain_mapList) {
+        this.image_storage_domain_mapList = image_storage_domain_mapList;
+    }
 }
diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/Image.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/Image.java
index dc681e6..5074144 100644
--- 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/Image.java
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/Image.java
@@ -38,11 +38,6 @@
     @NotNull(message = "VALIDATION.VOLUME_FORMAT.NOT_NULL", groups = { 
CreateEntity.class, UpdateEntity.class })
     private VolumeFormat volumeFormat;
 
-    /**
-     * The quota id the image consumes from.
-     */
-    private Guid quotaId;
-
     public Image() {
     }
 
@@ -58,8 +53,7 @@
             ImageStatus status,
             VolumeType volumeType,
             long size,
-            VolumeFormat volumeFormat,
-            Guid quotaId) {
+            VolumeFormat volumeFormat) {
         this.id = id;
         this.active = active;
         this.creationDate = creationDate;
@@ -72,7 +66,6 @@
         this.volumeType = volumeType;
         this.size = size;
         this.volumeFormat = volumeFormat;
-        this.quotaId = quotaId;
     }
 
     @Override
@@ -171,14 +164,6 @@
 
     public void setVolumeFormat(VolumeFormat volumeFormat) {
         this.volumeFormat = volumeFormat;
-    }
-
-    public Guid getQuotaId() {
-        return quotaId;
-    }
-
-    public void setQuotaId(Guid quotaId) {
-        this.quotaId = quotaId;
     }
 
     @Override
diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/image_storage_domain_map.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/image_storage_domain_map.java
index d9943bd..c6c5b67 100644
--- 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/image_storage_domain_map.java
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/image_storage_domain_map.java
@@ -23,13 +23,18 @@
             @AttributeOverride(name = "storageDomainId", column = @Column(name 
= "storage_domain_id")) })
     private image_storage_domain_map_id id = new image_storage_domain_map_id();
 
+    /**
+     * The quota id the image consumes from.
+     */
+    private Guid quotaId;
 
     public image_storage_domain_map() {
     }
 
-    public image_storage_domain_map(Guid image_id, Guid storage_domain_id) {
+    public image_storage_domain_map(Guid image_id, Guid storage_domain_id, 
Guid quotaId) {
         this.id.setImageId(image_id);
         this.id.setStorageDomainId(storage_domain_id);
+        this.quotaId = quotaId;
     }
 
     public Guid getstorage_domain_id() {
@@ -87,4 +92,12 @@
     public void setId(image_storage_domain_map_id id) {
         this.id = id;
     }
+
+    public Guid getQuotaId() {
+        return quotaId;
+    }
+
+    public void setQuotaId(Guid quotaId) {
+        this.quotaId = quotaId;
+    }
 }
diff --git 
a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/ImageDao.java
 
b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/ImageDao.java
index 17bda44..9c45cae 100644
--- 
a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/ImageDao.java
+++ 
b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/ImageDao.java
@@ -3,13 +3,11 @@
 import org.ovirt.engine.core.common.businessentities.Image;
 import org.ovirt.engine.core.common.businessentities.ImageStatus;
 import org.ovirt.engine.core.compat.Guid;
-import org.ovirt.engine.core.compat.NGuid;
 
 /**
  * <code>ImageDAO</code> defines a type for performing CRUD operations on 
instances of {@link Image}.
  */
 public interface ImageDao extends GenericDao<Image, Guid>, 
StatusAwareDao<Guid, ImageStatus> {
-    void updateQuotaForImageAndSnapshots(Guid imageGroupId, NGuid quotaId);
 
     public void updateImageVmSnapshotId(Guid id, Guid vmSnapshotId);
 }
diff --git 
a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/ImageDaoDbFacadeImpl.java
 
b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/ImageDaoDbFacadeImpl.java
index f8ce502..cfa30d1 100644
--- 
a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/ImageDaoDbFacadeImpl.java
+++ 
b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/ImageDaoDbFacadeImpl.java
@@ -8,7 +8,6 @@
 import org.ovirt.engine.core.common.businessentities.VolumeFormat;
 import org.ovirt.engine.core.common.businessentities.VolumeType;
 import org.ovirt.engine.core.compat.Guid;
-import org.ovirt.engine.core.compat.NGuid;
 import org.ovirt.engine.core.dal.dbbroker.DbFacadeUtils;
 import org.springframework.jdbc.core.namedparam.MapSqlParameterSource;
 import org.springframework.jdbc.core.simple.ParameterizedRowMapper;
@@ -48,8 +47,7 @@
                 .addValue("volume_type", entity.getVolumeType())
                 .addValue("volume_format", entity.getVolumeFormat())
                 .addValue("image_group_id", entity.getDiskId())
-                .addValue("active", entity.isActive())
-                .addValue("quota_id", entity.getQuotaId());
+                .addValue("active", entity.isActive());
     }
 
     @Override
@@ -83,17 +81,9 @@
             
entity.setVolumeType(VolumeType.forValue(rs.getInt("volume_type")));
             
entity.setVolumeFormat(VolumeFormat.forValue(rs.getInt("volume_format")));
             
entity.setDiskId(Guid.createGuidFromString(rs.getString("image_group_id")));
-            
entity.setQuotaId(Guid.createGuidFromString(rs.getString("quota_id")));
             entity.setActive((Boolean) rs.getObject("active"));
             return entity;
         }
     }
 
-    @Override
-    public void updateQuotaForImageAndSnapshots(Guid imageGroupId, NGuid 
quotaId) {
-        MapSqlParameterSource parameterSource = 
getCustomMapSqlParameterSource()
-                .addValue("image_group_id", imageGroupId)
-                .addValue("quota_id", quotaId);
-        
getCallsHandler().executeModification("updateQuotaForImageAndSnapshots", 
parameterSource);
-    }
 }
diff --git 
a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/ImageStorageDomainMapDao.java
 
b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/ImageStorageDomainMapDao.java
index ea86517..83b8411 100644
--- 
a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/ImageStorageDomainMapDao.java
+++ 
b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/ImageStorageDomainMapDao.java
@@ -4,6 +4,7 @@
 import org.ovirt.engine.core.common.businessentities.image_storage_domain_map;
 import 
org.ovirt.engine.core.common.businessentities.image_storage_domain_map_id;
 import org.ovirt.engine.core.compat.Guid;
+import org.ovirt.engine.core.compat.NGuid;
 
 /**
  * Interface for having DB related operations on {@link 
image_storage_domain_map} entities
@@ -37,4 +38,5 @@
      */
     List<image_storage_domain_map> getAllByImageId(Guid imageId);
 
+    public void updateQuotaForImageAndSnapshots(Guid imageGroupId, Guid 
storageDomainId, NGuid quotaId);
 }
diff --git 
a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/ImageStorageDomainMapDaoDbFacadeImpl.java
 
b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/ImageStorageDomainMapDaoDbFacadeImpl.java
index e989b0c..2ab5583 100644
--- 
a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/ImageStorageDomainMapDaoDbFacadeImpl.java
+++ 
b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/ImageStorageDomainMapDaoDbFacadeImpl.java
@@ -8,6 +8,8 @@
 import org.ovirt.engine.core.common.businessentities.image_storage_domain_map;
 import 
org.ovirt.engine.core.common.businessentities.image_storage_domain_map_id;
 import org.ovirt.engine.core.compat.Guid;
+import org.ovirt.engine.core.compat.NGuid;
+import org.springframework.jdbc.core.namedparam.MapSqlParameterSource;
 import org.springframework.jdbc.core.simple.ParameterizedRowMapper;
 
 public class ImageStorageDomainMapDaoDbFacadeImpl extends BaseDAODbFacade 
implements ImageStorageDomainMapDao {
@@ -77,4 +79,14 @@
                     return entity;
                 }
             };
+
+    @Override
+    public void updateQuotaForImageAndSnapshots(Guid imageGroupId, Guid 
storageDomainId, NGuid quotaId) {
+        MapSqlParameterSource parameterSource = 
getCustomMapSqlParameterSource()
+                .addValue("image_group_id", imageGroupId)
+                .addValue("storage_domain_id", storageDomainId)
+                .addValue("quota_id", quotaId);
+        
getCallsHandler().executeModification("updateQuotaForImageAndSnapshots", 
parameterSource);
+    }
+
 }
diff --git 
a/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/ImageDaoTest.java
 
b/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/ImageDaoTest.java
index d982541..62e8a40 100644
--- 
a/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/ImageDaoTest.java
+++ 
b/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/ImageDaoTest.java
@@ -2,7 +2,6 @@
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.fail;
 
 import org.junit.Test;
 import org.ovirt.engine.core.common.businessentities.Image;
@@ -65,7 +64,6 @@
         newImage.setVolumeFormat(VolumeFormat.COW);
         newImage.setVolumeType(VolumeType.Sparse);
         newImage.setDiskId(Guid.NewGuid());
-        newImage.setQuotaId(Guid.NewGuid());
     }
 
     @Test
@@ -85,22 +83,4 @@
         assertEquals("Image snapshot id wasn't updated properly", guid, 
imageFromDb.getSnapshotId());
     }
 
-    @Test
-    public void testChangeQuotaForDisk() {
-        // fetch image
-        Image image = dao.get(FixturesTool.IMAGE_ID);
-        Guid diskId = image.getDiskId();
-        Guid quotaId = image.getQuotaId();
-        // test that the current quota doesn't equal with the new quota
-        if(quotaId.equals(FixturesTool.DEFAULT_QUOTA_GENERAL)){
-            fail("Same source and dest quota id, cannot perform test");
-        }
-        // change quota to the new quota
-        dao.updateQuotaForImageAndSnapshots(diskId, 
FixturesTool.DEFAULT_QUOTA_GENERAL);
-        // fetch the image again
-        image = dao.get(FixturesTool.IMAGE_ID);
-        quotaId = image.getQuotaId();
-        // check that the new quota is the inserted one
-        assertEquals("quota wasn't changed", quotaId, 
FixturesTool.DEFAULT_QUOTA_GENERAL);
-    }
 }
diff --git 
a/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/ImageStorageDomainMapDaoTest.java
 
b/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/ImageStorageDomainMapDaoTest.java
index 8f50181..f358ae3 100644
--- 
a/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/ImageStorageDomainMapDaoTest.java
+++ 
b/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/ImageStorageDomainMapDaoTest.java
@@ -1,10 +1,5 @@
 package org.ovirt.engine.core.dao;
 
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.assertNotNull;
-
 import java.util.List;
 
 import org.junit.Test;
@@ -12,11 +7,14 @@
 import 
org.ovirt.engine.core.common.businessentities.image_storage_domain_map_id;
 import org.ovirt.engine.core.compat.Guid;
 
+import static org.junit.Assert.*;
+
 public class ImageStorageDomainMapDaoTest extends BaseDAOTestCase {
 
     private static final Guid EXISTING_DOMAIN_ID = new 
Guid("72e3a666-89e1-4005-a7ca-f7548004a9ab");
     private static final Guid EXISTING_IMAGE_ID = new 
Guid("c9a559d9-8666-40d1-9967-759502b19f0b");
     private static final Guid EXISTING_IMAGE_ID_WITH_NO_MAP_ENTRY = new 
Guid("f9a559d9-8666-40d1-9967-759502b19f0f");
+
     private ImageStorageDomainMapDao dao;
 
     @Override
@@ -52,7 +50,7 @@
     @Test
     public void testSave() {
         image_storage_domain_map entry =
-                new 
image_storage_domain_map(EXISTING_IMAGE_ID_WITH_NO_MAP_ENTRY, 
EXISTING_DOMAIN_ID);
+                new 
image_storage_domain_map(EXISTING_IMAGE_ID_WITH_NO_MAP_ENTRY, 
EXISTING_DOMAIN_ID, FixturesTool.DEFAULT_QUOTA_GENERAL);
         dao.save(entry);
         List<image_storage_domain_map> entries = 
dao.getAllByImageId(EXISTING_IMAGE_ID_WITH_NO_MAP_ENTRY);
         assertNotNull(entries);
@@ -80,4 +78,23 @@
         assertTrue(entries.isEmpty());
     }
 
+    @Test
+    public void testChangeQuotaForDisk() {
+        // fetch image
+        image_storage_domain_map image_storage_domain_map = dao.get(new 
image_storage_domain_map_id(EXISTING_IMAGE_ID, EXISTING_DOMAIN_ID));
+        Guid imageId = image_storage_domain_map.getimage_id();
+        Guid quotaId = image_storage_domain_map.getQuotaId();
+        // test that the current quota doesn't equal with the new quota
+        if(quotaId.equals(FixturesTool.DEFAULT_QUOTA_GENERAL)){
+            fail("Same source and dest quota id, cannot perform test");
+        }
+        // change quota to the new quota
+        dao.updateQuotaForImageAndSnapshots(imageId, EXISTING_DOMAIN_ID, 
FixturesTool.DEFAULT_QUOTA_GENERAL);
+        // fetch the image again
+        image_storage_domain_map = dao.get(new 
image_storage_domain_map_id(EXISTING_IMAGE_ID, EXISTING_DOMAIN_ID));
+        quotaId = image_storage_domain_map.getQuotaId();
+        // check that the new quota is the inserted one
+        assertEquals("quota wasn't changed", quotaId, 
FixturesTool.DEFAULT_QUOTA_GENERAL);
+    }
+
 }
diff --git a/backend/manager/modules/dal/src/test/resources/fixtures.xml 
b/backend/manager/modules/dal/src/test/resources/fixtures.xml
index 37c3347..b3ab8ca 100644
--- a/backend/manager/modules/dal/src/test/resources/fixtures.xml
+++ b/backend/manager/modules/dal/src/test/resources/fixtures.xml
@@ -1902,7 +1902,6 @@
         <column>image_group_id</column>
         <column>_create_date</column>
         <column>_update_date</column>
-        <column>quota_id</column>
         <column>active</column>
         <!-- template images -->
         <row>
@@ -1919,7 +1918,6 @@
             <null />
             <value>2010-11-18 11:11:35</value>
             <value>2010-12-01 14:13:07</value>
-            <value>88296e00-0cad-4e5a-9291-008a7b7f4399</value>
             <value>1</value>
         </row>
         <row>
@@ -1936,7 +1934,6 @@
             <value>1b26a52b-b60f-44cb-9f46-3ef333b04a34</value>
             <value>2010-11-18 11:11:35</value>
             <value>2010-12-01 14:13:07</value>
-            <value>88296e00-0cad-4e5a-9291-008a7b7f4399</value>
             <value>1</value>
         </row>
         <row>
@@ -1953,7 +1950,6 @@
             <value>1b26a52b-b60f-44cb-9f46-3ef333b04a37</value>
             <value>2010-11-18 11:11:45</value>
             <value>2010-12-01 14:13:47</value>
-            <value>88296e00-0cad-4e5a-9291-008a7b7f4399</value>
             <value>1</value>
         </row>
         <row>
@@ -1970,7 +1966,6 @@
             <value>1b26a52b-b60f-44cb-9f46-3ef333b04a34</value>
             <value>2010-11-18 11:11:35</value>
             <value>2010-12-01 14:13:07</value>
-            <value>88296e00-0cad-4e5a-9291-008a7b7f4399</value>
             <value>0</value>
         </row>
         <!-- end of template images -->
@@ -1988,7 +1983,6 @@
             <value>1b26a52b-b60f-44cb-9f46-3ef333b04a36</value>
             <value>2010-11-18 11:11:35</value>
             <value>2010-12-01 14:13:07</value>
-            <null/>
             <value>1</value>
         </row>
         <row>
@@ -2005,7 +1999,6 @@
             <value>1b26a52b-b60f-44cb-9f46-3ef333b04a35</value>
             <value>2010-11-18 11:11:35</value>
             <value>2010-12-01 14:13:07</value>
-            <value>88296e00-0cad-4e5a-9291-008a7b7f4399</value>
             <value>1</value>
         </row>
         <row>
@@ -2022,7 +2015,6 @@
             <value>1b26a52b-b60f-44cb-9f46-3ef333b04a35</value>
             <value>2010-11-18 11:11:35</value>
             <value>2010-12-01 14:13:07</value>
-            <value>88296e00-0cad-4e5a-9291-008a7b7f4399</value>
             <value>0</value>
         </row>
         <row>
@@ -2039,7 +2031,6 @@
             <value>1b26a52b-b60f-44cb-9f46-3ef333b04a35</value>
             <value>2010-11-18 11:11:35</value>
             <value>2010-12-01 14:13:07</value>
-            <value>88296e00-0cad-4e5a-9291-008a7b7f4401</value>
             <value>1</value>
         </row>
         <row>
@@ -2056,7 +2047,6 @@
             <value>fb26a52b-b60f-44cb-9f46-3ef333b04a3f</value>
             <value>2010-11-18 11:11:35</value>
             <value>2010-12-01 14:13:07</value>
-            <value>88296e00-0cad-4e5a-9291-008a7b7f4401</value>
             <value>0</value>
         </row>
         <row>
@@ -2073,7 +2063,6 @@
             <value>1b26a52b-b60f-44cb-9f46-3ef333b04a36</value>
             <value>2010-11-18 11:11:35</value>
             <value>2010-12-01 14:13:07</value>
-            <value>88296e00-0cad-4e5a-9291-008a7b7f4401</value>
             <value>0</value>
         </row>
         <row>
@@ -2090,7 +2079,6 @@
             <value>1b26a52b-b60f-44cb-9f46-3ef333b04a38</value>
             <value>2010-11-18 11:11:35</value>
             <value>2010-12-01 14:13:07</value>
-            <value>88296e00-0cad-4e5a-9291-008a7b7f4401</value>
             <value>1</value>
         </row>
     </table>
@@ -2775,25 +2763,31 @@
     <table name="image_storage_domain_map">
         <column>image_id</column>
         <column>storage_domain_id</column>
+        <column>quota_id</column>
         <row>
             <value>52058975-3d5e-484a-80c1-01c31207f578</value>
             <value>72e3a666-89e1-4005-a7ca-f7548004a9ab</value>
+            <value>88296e00-0cad-4e5a-9291-008a7b7f4401</value>
         </row>
         <row>
             <value>c9a559d9-8666-40d1-9967-759502b19f0b</value>
             <value>72e3a666-89e1-4005-a7ca-f7548004a9ab</value>
+            <value>88296e00-0cad-4e5a-9291-008a7b7f4401</value>
         </row>
         <row>
             <value>42058975-3d5e-484a-80c1-01c31207f578</value>
             <value>72e3a666-89e1-4005-a7ca-f7548004a9ab</value>
+            <value>88296e00-0cad-4e5a-9291-008a7b7f4401</value>
         </row>
         <row>
             <value>42058975-3d5e-484a-80c1-01c31207f579</value>
             <value>72e3a666-89e1-4005-a7ca-f7548004a9ab</value>
+            <null/>
         </row>
         <row>
             <value>42058975-3d5e-484a-80c1-01c31207f577</value>
             <value>72e3a666-89e1-4005-a7ca-f7548004a9ab</value>
+            <value>88296e00-0cad-4e5a-9291-008a7b7f4401</value>
         </row>
     </table>
 
diff --git 
a/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/DiskMapper.java
 
b/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/DiskMapper.java
index 158ea91..f111853 100644
--- 
a/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/DiskMapper.java
+++ 
b/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/DiskMapper.java
@@ -11,13 +11,8 @@
 import org.ovirt.engine.api.model.Storage;
 import org.ovirt.engine.api.model.StorageDomain;
 import org.ovirt.engine.api.model.StorageDomains;
+import org.ovirt.engine.core.common.businessentities.*;
 import org.ovirt.engine.core.common.businessentities.Disk.DiskStorageType;
-import org.ovirt.engine.core.common.businessentities.DiskImage;
-import org.ovirt.engine.core.common.businessentities.ImageStatus;
-import org.ovirt.engine.core.common.businessentities.LunDisk;
-import org.ovirt.engine.core.common.businessentities.PropagateErrors;
-import org.ovirt.engine.core.common.businessentities.VolumeFormat;
-import org.ovirt.engine.core.common.businessentities.VolumeType;
 import org.ovirt.engine.core.compat.Guid;
 
 public class DiskMapper {
@@ -111,6 +106,10 @@
             StorageDomain storageDomain = 
disk.getStorageDomains().getStorageDomains().get(0);
             diskImage.setstorage_ids(new ArrayList<Guid>());
             
diskImage.getstorage_ids().add(Guid.createGuidFromString(storageDomain.getId()));
+            diskImage.setImage_storage_domain_mapList(new 
ArrayList<image_storage_domain_map>());
+            diskImage.getImage_storage_domain_mapList().add(new 
image_storage_domain_map(diskImage.getId(),
+                    Guid.createGuidFromString(storageDomain.getId()),
+                    null));
         }
         if (disk.isSetQuota() && disk.getQuota().isSetId()) {
             diskImage.setQuotaId(new Guid(disk.getQuota().getId()));
diff --git 
a/frontend/webadmin/modules/gwt-common/src/main/resources/org/ovirt/engine/core/Common.gwt.xml
 
b/frontend/webadmin/modules/gwt-common/src/main/resources/org/ovirt/engine/core/Common.gwt.xml
index 2daa132..70560d8 100644
--- 
a/frontend/webadmin/modules/gwt-common/src/main/resources/org/ovirt/engine/core/Common.gwt.xml
+++ 
b/frontend/webadmin/modules/gwt-common/src/main/resources/org/ovirt/engine/core/Common.gwt.xml
@@ -25,7 +25,9 @@
                <include name="common/businessentities/DiskImage.java" />
                <include name="common/businessentities/DiskImageBase.java" />
                <include name="common/businessentities/DiskImageDynamic.java" />
-               <include name="common/businessentities/DiskInterface.java" />
+        <include name="common/businessentities/image_storage_domain_map.java" 
/>
+        <include 
name="common/businessentities/image_storage_domain_map_id.java" />
+        <include name="common/businessentities/DiskInterface.java" />
                <include name="common/businessentities/DiskType.java" />
                <include name="common/businessentities/DisplayType.java" />
                <include 
name="common/businessentities/event_notification_methods.java" />


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

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

Reply via email to