Ravi Nori has uploaded a new change for review.

Change subject: <restapi>: WipeAfterDelete defaults to true in GUI, but false 
in REST API.
......................................................................

<restapi>: WipeAfterDelete defaults to true in GUI, but false in REST API.

WipeAfterDelete in gui default to false for File Storage Domains and for Block 
storage domains the value is defined by SANWipeAfterDelete' configuration 
value. The backend logic has been changed to mimic this behaviour.

Change-Id: I6d5a393667f8f5c663ee7f321dcf0fcdfdf5e527
Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=845466
Signed-off-by: Ravi Nori <rn...@redhat.com>
---
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddDiskCommand.java
A 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/utils/WipeAfterDeleteUtils.java
M 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/BaseDisk.java
M 
backend/manager/modules/restapi/interface/definition/src/main/resources/rsdl_metadata_v-3.1.yaml
4 files changed, 47 insertions(+), 4 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/69/8569/1

diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddDiskCommand.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddDiskCommand.java
index 85fb375..ce420b4 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddDiskCommand.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddDiskCommand.java
@@ -14,6 +14,7 @@
 import org.ovirt.engine.core.bll.storage.StorageDomainCommandBase;
 import org.ovirt.engine.core.bll.utils.PermissionSubject;
 import org.ovirt.engine.core.bll.utils.VmDeviceUtils;
+import org.ovirt.engine.core.bll.utils.WipeAfterDeleteUtils;
 import org.ovirt.engine.core.bll.validator.StorageDomainValidator;
 import org.ovirt.engine.core.common.AuditLogType;
 import org.ovirt.engine.core.common.VdcObjectType;
@@ -282,6 +283,10 @@
     @Override
     protected void executeVmCommand() {
         ImagesHandler.setDiskAlias(getParameters().getDiskInfo(), getVm());
+        if(!getParameters().getDiskInfo().isWipeAfterDeleteSet()) {
+            StorageType storageType = getStorageDomain().getstorage_type();
+            
getParameters().getDiskInfo().setWipeAfterDelete(WipeAfterDeleteUtils.getDefaultWipeAfterDeleteFlag(storageType));
+        }
         if (DiskStorageType.IMAGE == 
getParameters().getDiskInfo().getDiskStorageType()) {
             createDiskBasedOnImage();
         } else {
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/utils/WipeAfterDeleteUtils.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/utils/WipeAfterDeleteUtils.java
new file mode 100644
index 0000000..5a4442c
--- /dev/null
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/utils/WipeAfterDeleteUtils.java
@@ -0,0 +1,30 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package org.ovirt.engine.core.bll.utils;
+
+import org.ovirt.engine.core.common.businessentities.StorageType;
+import org.ovirt.engine.core.common.config.Config;
+import org.ovirt.engine.core.common.config.ConfigValues;
+
+public class WipeAfterDeleteUtils {
+
+    static Boolean wipeAfterDeleteBlockStorageDomain;
+
+    static boolean wipeAfterDeleteFileStorageDomain = false;
+
+    public static synchronized boolean getDefaultWipeAfterDeleteFlag(final 
StorageType storageType) {
+        if(storageType.isBlockDomain()) {
+            if(wipeAfterDeleteBlockStorageDomain == null) {
+                    wipeAfterDeleteBlockStorageDomain =
+                            
Config.<Boolean>GetValue(ConfigValues.SANWipeAfterDelete);
+            }
+            return wipeAfterDeleteBlockStorageDomain;
+        }
+        if(storageType.isFileDomain()) {
+            return wipeAfterDeleteFileStorageDomain;
+        }
+        return false;
+    }
+}
diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/BaseDisk.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/BaseDisk.java
index 8b533c0..b2df31b 100644
--- 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/BaseDisk.java
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/BaseDisk.java
@@ -64,7 +64,7 @@
     /**
      * Should the disk be wiped after it's deleted.
      */
-    private boolean wipeAfterDelete;
+    private Boolean wipeAfterDelete;
 
     /**
      * Should disk errors be propagated to the guest?
@@ -125,7 +125,14 @@
     }
 
     public boolean isWipeAfterDelete() {
-        return wipeAfterDelete;
+        if (isWipeAfterDeleteSet()) {
+            return wipeAfterDelete;
+        }
+        return false;
+    }
+
+    public boolean isWipeAfterDeleteSet() {
+        return wipeAfterDelete != null;
     }
 
     public void setWipeAfterDelete(boolean wipeAfterDelete) {
@@ -182,7 +189,7 @@
         result = prime * result + ((id == null) ? 0 : id.hashCode());
         result = prime * result + ((propagateErrors == null) ? 0 : 
propagateErrors.hashCode());
         result = prime * result + (shareable ? 1231 : 1237);
-        result = prime * result + (wipeAfterDelete ? 1231 : 1237);
+        result = prime * result + (isWipeAfterDelete() ? 1231 : 1237);
         result = prime * result + (boot ? 1231 : 1237);
         return result;
     }
@@ -217,7 +224,7 @@
             return false;
         if (shareable != other.shareable)
             return false;
-        if (wipeAfterDelete != other.wipeAfterDelete)
+        if (isWipeAfterDelete() != other.isWipeAfterDelete())
             return false;
         if (boot != other.boot)
             return false;
diff --git 
a/backend/manager/modules/restapi/interface/definition/src/main/resources/rsdl_metadata_v-3.1.yaml
 
b/backend/manager/modules/restapi/interface/definition/src/main/resources/rsdl_metadata_v-3.1.yaml
index e53ea55..2fa5375 100644
--- 
a/backend/manager/modules/restapi/interface/definition/src/main/resources/rsdl_metadata_v-3.1.yaml
+++ 
b/backend/manager/modules/restapi/interface/definition/src/main/resources/rsdl_metadata_v-3.1.yaml
@@ -241,6 +241,7 @@
         optionalArguments: {cdrom.file.id: 'xs:string'}
     urlparams:
       async: {context: matrix, type: 'xs:boolean', value: true|false, 
required: false}
+      current: {context: matrix, type: 'xs:boolean', value: true|false, 
required: false}
     headers:
       Content-Type: {value: application/xml|json, required: true}
       Correlation-Id: {value: 'any string', required: false}


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

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

Reply via email to