Liron Ar has uploaded a new change for review.

Change subject: core: restapi: wip: introducing 
RemoveDeviceExposingDiskSnapshotCommand
......................................................................

core: restapi: wip: introducing RemoveDeviceExposingDiskSnapshotCommand

*Missing tests/locks(?)

Change-Id: Iec77e0738c043b078dc779383bb08740ef0edc49
Signed-off-by: Liron Aravot <[email protected]>
---
A 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveDeviceExposingDiskSnapshotCommand.java
M 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/AuditLogType.java
A 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/RemoveDeviceExposingDiskSnapshotParameters.java
M 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/VdcActionType.java
M 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/vdscommands/VDSCommandType.java
M 
backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/dbbroker/auditloghandling/AuditLogDirector.java
M 
backend/manager/modules/dal/src/main/resources/bundles/AuditLogMessages.properties
M 
backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/SnapshotDiskResource.java
M 
backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendSnapshotDiskResource.java
M 
backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/IVdsServer.java
A 
backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/RemoveImageAsBlockDeviceCommandParameters.java
A 
backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/RemoveImageAsBlockDeviceVDSCommand.java
M 
backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VdsServerConnector.java
M 
backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VdsServerWrapper.java
14 files changed, 216 insertions(+), 2 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/99/16299/1

diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveDeviceExposingDiskSnapshotCommand.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveDeviceExposingDiskSnapshotCommand.java
new file mode 100644
index 0000000..bc625e2
--- /dev/null
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveDeviceExposingDiskSnapshotCommand.java
@@ -0,0 +1,75 @@
+package org.ovirt.engine.core.bll;
+
+import java.util.Collections;
+import java.util.List;
+
+import org.ovirt.engine.core.bll.utils.PermissionSubject;
+import org.ovirt.engine.core.common.AuditLogType;
+import 
org.ovirt.engine.core.common.action.RemoveDeviceExposingDiskSnapshotParameters;
+import org.ovirt.engine.core.common.businessentities.DiskImage;
+import org.ovirt.engine.core.common.businessentities.VDSStatus;
+import org.ovirt.engine.core.common.errors.VdcBllMessages;
+import org.ovirt.engine.core.common.vdscommands.VDSCommandType;
+import org.ovirt.engine.core.common.vdscommands.VDSReturnValue;
+import 
org.ovirt.engine.core.vdsbroker.vdsbroker.ExportImageAsBlockDeviceVDSCommandParameters;
+
+@NonTransactiveCommandAttribute
+public class RemoveDeviceExposingDiskSnapshotCommand<T extends 
RemoveDeviceExposingDiskSnapshotParameters> extends 
BaseDiskBySnapshotCommand<T> {
+
+    public RemoveDeviceExposingDiskSnapshotCommand(T parameters) {
+        super(parameters);
+        setVdsId(getParameters().getVdsId());
+    }
+
+    @Override
+    protected boolean canDoAction() {
+        if (!super.canDoAction()) {
+            return false;
+        }
+
+        if (getVds() == null) {
+            return failCanDoAction(VdcBllMessages.VDS_INVALID_SERVER_ID);
+        }
+
+        if (getVds().getStatus() != VDSStatus.Up) {
+            return 
failCanDoAction(VdcBllMessages.ACTION_TYPE_FAILED_VDS_NOT_MATCH_VALID_STATUS);
+        }
+
+        return true;
+    }
+
+    @Override
+    protected void executeCommand() {
+        DiskImage diskImage = 
getDiskForSnapshot(getParameters().getSnapshotId());
+        VDSReturnValue vdsReturnValue = 
runVdsCommand(VDSCommandType.RemoveImageAsBlockDevice,
+                new 
ExportImageAsBlockDeviceVDSCommandParameters(getParameters().getVdsId(),
+                        diskImage.getStoragePoolId(),
+                        diskImage.getStorageIds().get(0),
+                        diskImage.getId(),
+                        diskImage.getImageId()));
+        setActionReturnValue(vdsReturnValue.getReturnValue());
+        setSucceeded(true);
+    }
+
+    @Override
+    public AuditLogType getAuditLogTypeValue() {
+        return getSucceeded() ? AuditLogType.REMOVE_EXPOSING_DEVICE_SUCCESS : 
AuditLogType.REMOVE_EXPOSING_DEVICE_FAILED;
+    }
+
+    @Override
+    protected boolean isUserAuthorizedToRunAction() {
+        return true;
+    }
+
+    @Override
+    public List<PermissionSubject> getPermissionCheckSubjects() {
+        // Not needed for admin operations.
+        return Collections.emptyList();
+    }
+
+    @Override
+    protected void setActionMessageParameters() {
+        addCanDoActionMessage(VdcBllMessages.VAR__ACTION__REMOVE);
+        addCanDoActionMessage(VdcBllMessages.VAR__TYPE__SYSTEM_DEVICE);
+    }
+}
diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/AuditLogType.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/AuditLogType.java
index 125231c..2604711 100644
--- 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/AuditLogType.java
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/AuditLogType.java
@@ -684,6 +684,9 @@
     UPDATE_OVF_FOR_STORAGE_POOL_FAILED(1005),
     UPGRADE_STORAGE_POOL_ENCOUNTERED_PROBLEMS(1006),
 
+    REMOVE_EXPOSING_DEVICE_SUCCESS(1007),
+    REMOVE_EXPOSING_DEVICE_FAILED(1008),
+
     RELOAD_CONFIGURATIONS_SUCCESS(1010),
     RELOAD_CONFIGURATIONS_FAILURE(1011),
 
diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/RemoveDeviceExposingDiskSnapshotParameters.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/RemoveDeviceExposingDiskSnapshotParameters.java
new file mode 100644
index 0000000..c4b9523
--- /dev/null
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/RemoveDeviceExposingDiskSnapshotParameters.java
@@ -0,0 +1,20 @@
+package org.ovirt.engine.core.common.action;
+
+import org.ovirt.engine.core.compat.Guid;
+
+public class RemoveDeviceExposingDiskSnapshotParameters extends 
BaseDiskBySnapshotParameters {
+    private Guid vdsId;
+
+    public RemoveDeviceExposingDiskSnapshotParameters(Guid diskId, Guid 
snapshotId, Guid vdsId) {
+        super(diskId, snapshotId);
+        this.vdsId = vdsId;
+    }
+
+    public Guid getVdsId() {
+        return vdsId;
+    }
+
+    public void setVdsId(Guid vdsId) {
+        this.vdsId = vdsId;
+    }
+}
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 00c2ebe..e6482a9 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
@@ -214,6 +214,7 @@
     LiveMigrateVmDisks(1011, false, QuotaDependency.STORAGE),
     MoveDisks(1012, false, QuotaDependency.NONE),
     ExportDiskBySnapshotAsBlockDevice(1013, false, QuotaDependency.NONE),
+    RemoveDeviceExposingDiskSnapshot(1014, false, QuotaDependency.NONE),
     // Event Notification
     AddEventSubscription(1100, false, QuotaDependency.NONE),
     RemoveEventSubscription(1101, false, QuotaDependency.NONE),
diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/vdscommands/VDSCommandType.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/vdscommands/VDSCommandType.java
index 4a0d1c3..71dfc7d 100644
--- 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/vdscommands/VDSCommandType.java
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/vdscommands/VDSCommandType.java
@@ -109,6 +109,7 @@
     HotPlugNic("org.ovirt.engine.core.vdsbroker.vdsbroker"),
     HotUnplugNic("org.ovirt.engine.core.vdsbroker.vdsbroker"),
     ExportImageAsBlockDevice("org.ovirt.engine.core.vdsbroker.vdsbroker"),
+    RemoveImageAsBlockDevice("org.ovirt.engine.core.vdsbroker.vdsbroker"),
     Snapshot("org.ovirt.engine.core.vdsbroker.vdsbroker"),
     UpdateVmInterface("org.ovirt.engine.core.vdsbroker.vdsbroker"),
     GetHardwareInfo("org.ovirt.engine.core.vdsbroker.vdsbroker"),
diff --git 
a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/dbbroker/auditloghandling/AuditLogDirector.java
 
b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/dbbroker/auditloghandling/AuditLogDirector.java
index 0e72415..49a7ac2 100644
--- 
a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/dbbroker/auditloghandling/AuditLogDirector.java
+++ 
b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/dbbroker/auditloghandling/AuditLogDirector.java
@@ -438,6 +438,8 @@
         severities.put(AuditLogType.STORAGE_DOMAIN_TASKS_ERROR, 
AuditLogSeverity.WARNING);
         severities.put(AuditLogType.UPDATE_OVF_FOR_STORAGE_POOL_FAILED, 
AuditLogSeverity.WARNING);
         severities.put(AuditLogType.UPGRADE_STORAGE_POOL_ENCOUNTERED_PROBLEMS, 
AuditLogSeverity.WARNING);
+        severities.put(AuditLogType.REMOVE_EXPOSING_DEVICE_SUCCESS, 
AuditLogSeverity.NORMAL);
+        severities.put(AuditLogType.REMOVE_EXPOSING_DEVICE_FAILED, 
AuditLogSeverity.WARNING);
         severities.put(AuditLogType.EXPORT_IMAGE_AS_DEVICE_SUCCEEDED, 
AuditLogSeverity.NORMAL);
         severities.put(AuditLogType.EXPORT_IMAGE_AS_DEVICE_FAILED, 
AuditLogSeverity.WARNING);
     }
diff --git 
a/backend/manager/modules/dal/src/main/resources/bundles/AuditLogMessages.properties
 
b/backend/manager/modules/dal/src/main/resources/bundles/AuditLogMessages.properties
index 12031c3..5882e50 100644
--- 
a/backend/manager/modules/dal/src/main/resources/bundles/AuditLogMessages.properties
+++ 
b/backend/manager/modules/dal/src/main/resources/bundles/AuditLogMessages.properties
@@ -419,6 +419,8 @@
 USER_UPDATE_STORAGE_DOMAIN_FAILED=Failed to update Storage Domain 
${StorageDomainName}. (User: ${UserName})
 USER_UPDATE_STORAGE_POOL=Data Center ${StoragePoolName} was updated by 
${UserName}
 UPGRADE_STORAGE_POOL_ENCOUNTERED_PROBLEMS=Data Center ${StoragePoolName} has 
encountered problems during upgrade process.
+REMOVE_EXPOSING_DEVICE_SUCCESS=Success in removing the device exposing Disk 
${DiskAlias} from Snapshot ${SnapshotName} on Host ${VdsName}.
+REMOVE_EXPOSING_DEVICE_FAILED=Failed to remove the device exposing Disk 
${DiskAlias} from Snapshot ${SnapshotName} on Host ${VdsName}.
 USER_UPDATE_STORAGE_POOL_FAILED=Failed to update Data Center 
${StoragePoolName}. (User: ${UserName})
 VDS_SET_NONOPERATIONAL_NETWORK=Host ${VdsName} does not comply with the 
cluster ${VdsGroupName} networks, the following networks are missing on host: 
'${Networks}'
 VDS_NETWORKS_OUT_OF_SYNC=Host ${VdsName}'s following network(s) are not 
synchronized with their Logical Network configuration: ${Networks}.
diff --git 
a/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/SnapshotDiskResource.java
 
b/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/SnapshotDiskResource.java
index da02c63..d611514 100644
--- 
a/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/SnapshotDiskResource.java
+++ 
b/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/SnapshotDiskResource.java
@@ -25,4 +25,11 @@
     @Path("exportAsBlockDevice")
     @Consumes({ApiMediaType.APPLICATION_XML, ApiMediaType.APPLICATION_JSON, 
ApiMediaType.APPLICATION_X_YAML})
     public Response exportAsBlockDevice(Action action);
+
+    @POST
+    @Formatted
+    @Actionable
+    @Path("removeExposingDevice")
+    @Consumes({ApiMediaType.APPLICATION_XML, ApiMediaType.APPLICATION_JSON, 
ApiMediaType.APPLICATION_X_YAML})
+    public Response removeExposingDevice(Action action);
 }
diff --git 
a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendSnapshotDiskResource.java
 
b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendSnapshotDiskResource.java
index f92bcf6..5d534ce 100644
--- 
a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendSnapshotDiskResource.java
+++ 
b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendSnapshotDiskResource.java
@@ -7,6 +7,7 @@
 import org.ovirt.engine.api.model.Disk;
 import org.ovirt.engine.api.resource.SnapshotDiskResource;
 import 
org.ovirt.engine.core.common.action.ExportDiskBySnapshotAsBlockDeviceParameters;
+import 
org.ovirt.engine.core.common.action.RemoveDeviceExposingDiskSnapshotParameters;
 import org.ovirt.engine.core.common.action.VdcActionType;
 import org.ovirt.engine.core.compat.Guid;
 
@@ -33,13 +34,24 @@
 
     @Override
     public Response exportAsBlockDevice(Action action) {
-        validateParameters(action, "host");
-        validateParameters(action.getHost(), "id");
+        validateHostIdInfoInput(action);
         ExportDiskBySnapshotAsBlockDeviceParameters params = new 
ExportDiskBySnapshotAsBlockDeviceParameters(Guid.createGuidFromString(diskId), 
collection.parent.guid, Guid.createGuidFromString(action.getHost().getId()));
         return doAction(VdcActionType.ExportDiskBySnapshotAsBlockDevice, 
params, action);
     }
 
     @Override
+    public Response removeExposingDevice(Action action) {
+        validateHostIdInfoInput(action);
+        RemoveDeviceExposingDiskSnapshotParameters params = new 
RemoveDeviceExposingDiskSnapshotParameters(Guid.createGuidFromString(diskId), 
collection.parent.guid, Guid.createGuidFromString(action.getHost().getId()));
+        return doAction(VdcActionType.RemoveDeviceExposingDiskSnapshot, 
params, action);
+    }
+
+    private void validateHostIdInfoInput(Action action) {
+        validateParameters(action, "host");
+        validateParameters(action.getHost(), "id");
+    }
+
+    @Override
     protected Disk doPopulate(Disk model, 
org.ovirt.engine.core.common.businessentities.Disk entity) {
         return model;
     }
diff --git 
a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/IVdsServer.java
 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/IVdsServer.java
index 1d38fa5..6a8ae3d 100644
--- 
a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/IVdsServer.java
+++ 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/IVdsServer.java
@@ -163,6 +163,8 @@
 
     ExportImageAsBlockDeviceReturnForXmlRpc exportImageAsBlockDevice(String 
spUUID, String sdUUID, String srcImgGUID, String srcVolUUID);
 
+    StatusOnlyReturnForXmlRpc removeImageAsBlockDevice(String spUUID, String 
sdUUID, String srcImgGUID, String srcVolUUID);
+
     StatusOnlyReturnForXmlRpc hotplugDisk(Map info);
 
     StatusOnlyReturnForXmlRpc hotunplugDisk(Map info);
diff --git 
a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/RemoveImageAsBlockDeviceCommandParameters.java
 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/RemoveImageAsBlockDeviceCommandParameters.java
new file mode 100644
index 0000000..25f598c
--- /dev/null
+++ 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/RemoveImageAsBlockDeviceCommandParameters.java
@@ -0,0 +1,48 @@
+package org.ovirt.engine.core.vdsbroker.vdsbroker;
+
+import org.ovirt.engine.core.common.vdscommands.VdsIdVDSCommandParametersBase;
+import org.ovirt.engine.core.compat.Guid;
+
+public class RemoveImageAsBlockDeviceCommandParameters extends 
VdsIdVDSCommandParametersBase {
+    private Guid storagePoolId, storageDomainId, imageGroupId, imageId;
+
+    public RemoveImageAsBlockDeviceCommandParameters(Guid vdsId, Guid 
storagePoolId, Guid storageDomainId, Guid imageGroupId, Guid imageId) {
+        super(vdsId);
+        this.storagePoolId = storagePoolId;
+        this.storageDomainId = storageDomainId;
+        this.imageGroupId = imageGroupId;
+        this.imageId = imageId;
+    }
+
+    public Guid getStoragePoolId() {
+        return storagePoolId;
+    }
+
+    public void setStoragePoolId(Guid storagePoolId) {
+        this.storagePoolId = storagePoolId;
+    }
+
+    public Guid getStorageDomainId() {
+        return storageDomainId;
+    }
+
+    public void setStorageDomainId(Guid storageDomainId) {
+        this.storageDomainId = storageDomainId;
+    }
+
+    public Guid getImageGroupId() {
+        return imageGroupId;
+    }
+
+    public void setImageGroupId(Guid imageGroupId) {
+        this.imageGroupId = imageGroupId;
+    }
+
+    public Guid getImageId() {
+        return imageId;
+    }
+
+    public void setImageId(Guid imageId) {
+        this.imageId = imageId;
+    }
+}
diff --git 
a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/RemoveImageAsBlockDeviceVDSCommand.java
 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/RemoveImageAsBlockDeviceVDSCommand.java
new file mode 100644
index 0000000..23e8e37
--- /dev/null
+++ 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/RemoveImageAsBlockDeviceVDSCommand.java
@@ -0,0 +1,29 @@
+package org.ovirt.engine.core.vdsbroker.vdsbroker;
+
+public class RemoveImageAsBlockDeviceVDSCommand<P extends 
RemoveImageAsBlockDeviceCommandParameters> extends VdsBrokerCommand<P> {
+
+    public RemoveImageAsBlockDeviceVDSCommand(P parameters) {
+        super(parameters);
+    }
+
+    @Override
+    protected void ExecuteVdsBrokerCommand() {
+        log.info("-- 
RemoveImageAsBlockDeviceVDSCommand::ExecuteVdsBrokerCommand: calling 
'exportImageAsBlockDevice' ");
+        log.infoFormat("-- removeImageAsBlockDevice parameters:" + "\r\n"
+                + "                spUUID={0}" + "\r\n"
+                + "                sdUUID={1}" + "\r\n"
+                + "                imageGUID={2}" + "\r\n"
+                + "                volUUID={3}" + "\r\n",
+                getParameters().getStoragePoolId().toString(),
+                getParameters().getStorageDomainId().toString(),
+                getParameters().getImageGroupId().toString(),
+                getParameters().getImageId().toString());
+
+        status =
+                
getBroker().removeImageAsBlockDevice(getParameters().getStoragePoolId().toString(),
+                        getParameters().getStorageDomainId().toString(),
+                        getParameters().getImageGroupId().toString(),
+                        getParameters().getImageId().toString());
+        ProceedProxyReturnValue();
+    }
+}
diff --git 
a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VdsServerConnector.java
 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VdsServerConnector.java
index 949c12e..7586aae 100644
--- 
a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VdsServerConnector.java
+++ 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VdsServerConnector.java
@@ -148,6 +148,8 @@
 
     Map<String, Object> exportImageAsBlockDevice(String spUUID, String sdUUID, 
String srcImgGUID, String srcVolUUID);
 
+    Map<String, Object> removeImageAsBlockDevice(String spUUID, String sdUUID, 
String srcImgGUID, String srcVolUUID);
+
     Map<String, Object> hotplugDisk(Map<String, Object> info);
 
     Map<String, Object> hotunplugDisk(Map<String, Object> info);
diff --git 
a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VdsServerWrapper.java
 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VdsServerWrapper.java
index cd433b0..6843e34 100644
--- 
a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VdsServerWrapper.java
+++ 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VdsServerWrapper.java
@@ -797,6 +797,16 @@
         }
     }
 
+    public StatusOnlyReturnForXmlRpc removeImageAsBlockDevice(String spUUID, 
String sdUUID, String srcImgGUID, String srcVolUUID) {
+        try {
+            Map<String, Object> xmlRpcReturnValue = 
vdsServer.removeImageAsBlockDevice(spUUID, sdUUID, srcImgGUID, srcVolUUID);
+            StatusOnlyReturnForXmlRpc wrapper = new 
StatusOnlyReturnForXmlRpc(xmlRpcReturnValue);
+            return wrapper;
+        } catch (UndeclaredThrowableException ute) {
+            throw new XmlRpcRunTimeException(ute);
+        }
+    }
+
     @Override
     public StatusOnlyReturnForXmlRpc hotplugDisk(Map info) {
         try {


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

Gerrit-MessageType: newchange
Gerrit-Change-Id: Iec77e0738c043b078dc779383bb08740ef0edc49
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