Ramesh N has uploaded a new change for review.

Change subject: engine: vds commands for gluster brick create
......................................................................

engine: vds commands for gluster brick create

  Add VDS Commands for Gluster Brick Creation.

Change-Id: I56a74a9eeabd19b9780e4401d263e586261f488d
Signed-off-by: Ramesh Nachimuthu <[email protected]>
---
M 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/gluster/StorageDevice.java
M 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/vdscommands/VDSCommandType.java
A 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/vdscommands/gluster/CreateBrickVDSParameters.java
A 
backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/CreateBrickVDSCommand.java
M 
backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/jsonrpc/JsonRpcVdsServer.java
M 
backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/IVdsServer.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
8 files changed, 171 insertions(+), 2 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/29/36029/1

diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/gluster/StorageDevice.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/gluster/StorageDevice.java
index ff11797..0c0eebc 100644
--- 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/gluster/StorageDevice.java
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/gluster/StorageDevice.java
@@ -2,7 +2,9 @@
 
 import java.io.Serializable;
 
-public class StorageDevice implements Serializable {
+import org.ovirt.engine.core.common.businessentities.IVdcQueryable;
+
+public class StorageDevice extends IVdcQueryable implements Serializable {
 
     private static final long serialVersionUID = 1L;
 
@@ -97,6 +99,11 @@
     }
 
     @Override
+    public Object getQueryableId() {
+        return this.getUuid();
+    }
+
+    @Override
     public int hashCode() {
         final int prime = 31;
         int result = 1;
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 2fd9039..38ae427 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
@@ -162,11 +162,13 @@
     StopGlusterVolumeGeoRepSession("org.ovirt.engine.core.vdsbroker.gluster"),
     
DeleteGlusterVolumeGeoRepSession("org.ovirt.engine.core.vdsbroker.gluster"),
     GetStorageDeviceList("org.ovirt.engine.core.vdsbroker.gluster"),
+    CreateBrick("org.ovirt.engine.core.vdsbroker.gluster"),
+
     SetNumberOfCpus("org.ovirt.engine.core.vdsbroker"),
     UpdateVmPolicy("org.ovirt.engine.core.vdsbroker"),
     List("org.ovirt.engine.core.vdsbroker.vdsbroker"),           // get a list 
of VMs with status only
     GetVmStats("org.ovirt.engine.core.vdsbroker.vdsbroker"),     // get a VM 
with full data and statistics
-    GetAllVmStats("org.ovirt.engine.core.vdsbroker.vdsbroker");  // get a list 
of VMs with full data and statistics
+    GetAllVmStats("org.ovirt.engine.core.vdsbroker.vdsbroker"); // get a list 
of VMs with full data and statistics
 
     String packageName;
 
diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/vdscommands/gluster/CreateBrickVDSParameters.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/vdscommands/gluster/CreateBrickVDSParameters.java
new file mode 100644
index 0000000..dd9a453
--- /dev/null
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/vdscommands/gluster/CreateBrickVDSParameters.java
@@ -0,0 +1,82 @@
+package org.ovirt.engine.core.common.vdscommands.gluster;
+
+import java.util.List;
+
+import org.ovirt.engine.core.common.businessentities.gluster.StorageDevice;
+import org.ovirt.engine.core.common.vdscommands.VdsIdVDSCommandParametersBase;
+import org.ovirt.engine.core.compat.Guid;
+
+/**
+ * VDS Command parameters class for the "Create logical Volume" action, with 
the volume object as parameter.
+ */
+public class CreateBrickVDSParameters extends VdsIdVDSCommandParametersBase {
+
+    private String lvName;
+
+    private String fileSystem;
+
+    private String fileSystemType;
+
+    private String size;
+
+    private List<StorageDevice> storageDevices;
+
+    public CreateBrickVDSParameters() {
+
+    }
+
+    public CreateBrickVDSParameters(Guid hostId,
+            String lvName,
+            String fileSystem,
+            String fileSystemType,
+            String size,
+            List<StorageDevice> storageDevices) {
+        super(hostId);
+        this.lvName = lvName;
+        this.fileSystem = fileSystem;
+        this.fileSystemType = fileSystemType;
+        this.size = size;
+        this.setStorageDevices(storageDevices);
+
+    }
+
+    public String getLvName() {
+        return lvName;
+    }
+
+    public void setLvName(String lvName) {
+        this.lvName = lvName;
+    }
+
+    public String getFileSystem() {
+        return fileSystem;
+    }
+
+    public void setFileSystem(String fileSystem) {
+        this.fileSystem = fileSystem;
+    }
+
+    public String getFileSystemType() {
+        return fileSystemType;
+    }
+
+    public void setFileSystemType(String fileSystemType) {
+        this.fileSystemType = fileSystemType;
+    }
+
+    public List<StorageDevice> getStorageDevices() {
+        return storageDevices;
+    }
+
+    public void setStorageDevices(List<StorageDevice> storageDevices) {
+        this.storageDevices = storageDevices;
+    }
+
+    public String getSize() {
+        return size;
+    }
+
+    public void setSize(String size) {
+        this.size = size;
+    }
+}
diff --git 
a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/CreateBrickVDSCommand.java
 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/CreateBrickVDSCommand.java
new file mode 100644
index 0000000..b1a8905
--- /dev/null
+++ 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/CreateBrickVDSCommand.java
@@ -0,0 +1,45 @@
+package org.ovirt.engine.core.vdsbroker.gluster;
+
+import java.util.HashSet;
+import java.util.Set;
+
+import org.ovirt.engine.core.common.businessentities.gluster.StorageDevice;
+import 
org.ovirt.engine.core.common.vdscommands.gluster.CreateBrickVDSParameters;
+import org.ovirt.engine.core.vdsbroker.irsbroker.OneUuidReturnForXmlRpc;
+import org.ovirt.engine.core.vdsbroker.vdsbroker.StatusForXmlRpc;
+import org.ovirt.engine.core.vdsbroker.vdsbroker.VdsBrokerCommand;
+
+/**
+ * VDS command to create a gluster volume
+ */
+public class CreateBrickVDSCommand<P extends CreateBrickVDSParameters> extends 
VdsBrokerCommand<P> {
+    private OneUuidReturnForXmlRpc uuidReturn;
+
+    public CreateBrickVDSCommand(P parameters) {
+        super(parameters);
+    }
+
+    @Override
+    protected StatusForXmlRpc getReturnStatus() {
+        return uuidReturn.mStatus;
+    }
+
+    @Override
+    protected void executeVdsBrokerCommand() {
+        CreateBrickVDSParameters parameters = getParameters();
+        Set<String> diskNames = new HashSet<String>();
+
+        for (StorageDevice storageDevice : parameters.getStorageDevices()) {
+            diskNames.add(storageDevice.getName());
+        }
+
+        getBroker().createBrick(diskNames.toArray(new String[0]),
+                parameters.getLvName(),
+                parameters.getSize(),
+                parameters.getFileSystemType());
+
+        // Handle errors if any
+        proceedProxyReturnValue();
+    }
+
+}
diff --git 
a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/jsonrpc/JsonRpcVdsServer.java
 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/jsonrpc/JsonRpcVdsServer.java
index 99b0017..97c7582 100644
--- 
a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/jsonrpc/JsonRpcVdsServer.java
+++ 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/jsonrpc/JsonRpcVdsServer.java
@@ -1553,4 +1553,14 @@
         Map<String, Object> response = new FutureMap(this.client, 
request).withIgnoreResponseKey();
         return new StorageDeviceListReturnForXmlRpc(response);
     }
+
+    @Override
+    public StatusOnlyReturnForXmlRpc createBrick(String[] storageDevices,
+            String lvName,
+            String size,
+            String fileSystemType) {
+        JsonRpcRequest request = new 
RequestBuilder("GlusterHost.createBrick").build();
+        Map<String, Object> response = new FutureMap(this.client, 
request).withIgnoreResponseKey();
+        return new StatusOnlyReturnForXmlRpc(response);
+    }
 }
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 beaf395..019c635 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
@@ -330,4 +330,6 @@
     StatusOnlyReturnForXmlRpc setNumberOfCpus(String vmId, String 
numberOfCpus);
 
     StatusOnlyReturnForXmlRpc updateVmPolicy(Map info);
+
+    StatusOnlyReturnForXmlRpc createBrick(String[] storageDevices, String 
lvName, String size, String fileSystemType);
 }
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 c68ec97..97f7e6f 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
@@ -308,4 +308,9 @@
     public Map<String, Object> updateVmPolicy(Map info);
 
     public Map<String, Object> glusterStorageDevicesList();
+
+    public Map<String, Object> glusterBrickCreate(String[] StorageDevices,
+            String lvName,
+            String size,
+            String fileSystemType);
 }
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 b8da09b..c19dc1d 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
@@ -1518,4 +1518,20 @@
         StorageDeviceListReturnForXmlRpc wrapper = new 
StorageDeviceListReturnForXmlRpc(xmlRpcReturnValue);
         return wrapper;
     }
+
+    @Override
+    public StatusOnlyReturnForXmlRpc createBrick(String[] storageDevices,
+            String lvName,
+            String size,
+            String fileSystemType) {
+        try {
+            return new 
StatusOnlyReturnForXmlRpc(vdsServer.glusterBrickCreate(storageDevices,
+                    lvName,
+                    size,
+                    fileSystemType));
+        } catch (UndeclaredThrowableException exp) {
+            throw new XmlRpcRunTimeException(exp);
+        }
+
+    }
 }


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

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

Reply via email to