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