Allon Mureinik has uploaded a new change for review.

Change subject: core: Introducing SyncImageGroupVDSCommand
......................................................................

core: Introducing SyncImageGroupVDSCommand

Added the engine representation of the syncImage SPM command.
This patch includes the command class, the parameters class and some new
constants required for it.

NOTE that this command is currently not in use, and will only come into
use in subsequent patches. The separation is for the reviewer's ease
only.

Change-Id: I99757f162c99ef067eacef5a3a292038085fea6d
Signed-off-by: Allon Mureinik <amure...@redhat.com>
---
M 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/asynctasks/AsyncTaskType.java
A 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/SyncOptions.java
A 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/vdscommands/SyncImageGroupVDSCommandParameters.java
M 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/vdscommands/VDSCommandType.java
A 
backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/irsbroker/SyncImageGroupVDSCommand.java
5 files changed, 81 insertions(+), 1 deletion(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/04/8104/1

diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/asynctasks/AsyncTaskType.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/asynctasks/AsyncTaskType.java
index e27b516..8272563 100644
--- 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/asynctasks/AsyncTaskType.java
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/asynctasks/AsyncTaskType.java
@@ -7,7 +7,8 @@
     createVolume,
     deleteVolume,
     deleteImage,
-    mergeSnapshots;
+    mergeSnapshots,
+    syncImage;
 
     public int getValue() {
         return this.ordinal();
diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/SyncOptions.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/SyncOptions.java
new file mode 100644
index 0000000..4d6368d
--- /dev/null
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/SyncOptions.java
@@ -0,0 +1,16 @@
+package org.ovirt.engine.core.common.businessentities;
+
+import 
org.ovirt.engine.core.common.vdscommands.SyncImageGroupVDSCommandParameters;
+
+/**
+ * A collection of the available options in the {@link 
SyncImageGroupVDSCommandParameters}.
+ * This is parallel to VDSM's SYNCIMAGE enum.
+ */
+public class SyncOptions {
+    public static final int PREPARE = 0x01;
+    public static final int EXECUTE = 0x02;
+    public static final int EXCLUDE_LEAF = 0x1000;
+    public static final int MIRROR_EXTEND_START = 0x2000;
+    public static final int MIRROR_EXTEND_STOP = 0x4000;
+
+}
diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/vdscommands/SyncImageGroupVDSCommandParameters.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/vdscommands/SyncImageGroupVDSCommandParameters.java
new file mode 100644
index 0000000..4ef44d3
--- /dev/null
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/vdscommands/SyncImageGroupVDSCommandParameters.java
@@ -0,0 +1,35 @@
+package org.ovirt.engine.core.common.vdscommands;
+
+import org.ovirt.engine.core.common.businessentities.SyncOptions;
+import org.ovirt.engine.core.compat.Guid;
+
+public class SyncImageGroupVDSCommandParameters extends 
TargetDomainImageGroupVDSCommandParamers {
+
+    public SyncImageGroupVDSCommandParameters(Guid storagePoolId, Guid 
storageDomainId, Guid imageGroupId,
+            Guid dstStorageDomainId, int syncOptions) {
+        super(storagePoolId, storageDomainId, imageGroupId, 
dstStorageDomainId);
+        setSyncOptions(syncOptions);
+    }
+
+    public SyncImageGroupVDSCommandParameters() {
+    }
+
+    /**
+     * The options parameters of the prepare command.
+     * A bitwise OR operation on the values defined in {@link SyncOptions}.
+     */
+    private int syncOptions = 0;
+
+    public int getSyncOptions() {
+        return syncOptions;
+    }
+
+    private void setSyncOptions(int syncOptions) {
+        this.syncOptions = syncOptions;
+    }
+
+    @Override
+    public String toString() {
+        return String.format("%s, syncOptions = %d", super.toString(), 
getSyncOptions());
+    }
+}
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 7d0d18a6..be10b51 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
@@ -95,6 +95,7 @@
     DestroyStoragePool("org.ovirt.engine.core.vdsbroker.irsbroker"),
     DeleteImageGroup("org.ovirt.engine.core.vdsbroker.irsbroker"),
     MoveImageGroup("org.ovirt.engine.core.vdsbroker.irsbroker"),
+    SyncImageGroup("org.ovirt.engine.core.vdsbroker.irsbroker"),
     GetImageDomainsList("org.ovirt.engine.core.vdsbroker.irsbroker"),
     CreateVG("org.ovirt.engine.core.vdsbroker.vdsbroker"),
     RemoveVG("org.ovirt.engine.core.vdsbroker.vdsbroker"),
diff --git 
a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/irsbroker/SyncImageGroupVDSCommand.java
 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/irsbroker/SyncImageGroupVDSCommand.java
new file mode 100644
index 0000000..01708d2
--- /dev/null
+++ 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/irsbroker/SyncImageGroupVDSCommand.java
@@ -0,0 +1,27 @@
+package org.ovirt.engine.core.vdsbroker.irsbroker;
+
+import org.ovirt.engine.core.common.asynctasks.AsyncTaskCreationInfo;
+import org.ovirt.engine.core.common.asynctasks.AsyncTaskType;
+import 
org.ovirt.engine.core.common.vdscommands.SyncImageGroupVDSCommandParameters;
+import org.ovirt.engine.core.compat.Guid;
+
+public class SyncImageGroupVDSCommand<P extends 
SyncImageGroupVDSCommandParameters> extends IrsCreateCommand<P> {
+    public SyncImageGroupVDSCommand(P parameters) {
+        super(parameters);
+    }
+
+    @Override
+    protected void ExecuteIrsBrokerCommand() {
+        uuidReturn = 
getIrsProxy().syncImage(getParameters().getStoragePoolId().toString(),
+                                             
getParameters().getStorageDomainId().toString(),
+                                             
getParameters().getDstDomainId().toString(),
+                                             
getParameters().getImageGroupId().toString(),
+                                             getParameters().getSyncOptions());
+        ProceedProxyReturnValue();
+
+        Guid taskID = new Guid(uuidReturn.mUuid);
+
+        getVDSReturnValue().setCreationInfo(
+                new AsyncTaskCreationInfo(taskID, AsyncTaskType.syncImage, 
getParameters().getStoragePoolId()));
+    }
+}


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

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

Reply via email to