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/bll/src/test/java/org/ovirt/engine/core/bll/gluster/GlusterServiceSyncJobTest.java
M 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/errors/VdcBllErrors.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
M backend/manager/modules/dal/src/main/resources/bundles/VdsmErrors.properties
M 
backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/AbstractGlusterBrokerCommand.java
A 
backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/CreateBrickVDSCommand.java
A 
backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/OneStorageDeviceReturnForXmlRpc.java
M 
backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/StorageDeviceListReturnForXmlRpc.java
A 
backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/StorageDeviceReturnForXmlRpc.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
M 
frontend/webadmin/modules/frontend/src/main/java/org/ovirt/engine/ui/frontend/VdsmErrors.java
15 files changed, 323 insertions(+), 45 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/40/40040/1

diff --git 
a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/gluster/GlusterServiceSyncJobTest.java
 
b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/gluster/GlusterServiceSyncJobTest.java
index 8dace63..8a81640 100644
--- 
a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/gluster/GlusterServiceSyncJobTest.java
+++ 
b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/gluster/GlusterServiceSyncJobTest.java
@@ -442,7 +442,7 @@
     private VDSReturnValue createVDSReturnValueForFailure() {
         VDSReturnValue ret = new VDSReturnValue();
         ret.setSucceeded(false);
-        ret.setVdsError(new VDSError(VdcBllErrors.GlusterServicesListFailed, 
"VDSM Error"));
+        ret.setVdsError(new VDSError(VdcBllErrors.GlusterServicesActionFailed, 
"VDSM Error"));
         return ret;
     }
 }
diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/errors/VdcBllErrors.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/errors/VdcBllErrors.java
index 2e33ad9..5b1d9d4 100644
--- 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/errors/VdcBllErrors.java
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/errors/VdcBllErrors.java
@@ -391,7 +391,14 @@
     GlusterHostRemoveFailedException(4406),
     GlusterPeerListFailed(4407),
     GlusterHostUUIDNotFound(4408),
-    GlusterServicesListFailed(4409),
+    GlusterHostStorageDeviceNotFoundException(4409),
+    GlusterHostStorageDeviceInUseException(4410),
+    GlusterHostStorageDeviceMountFailedException(4411),
+    GlusterHostStorageDeviceMkfsFailedException(4412),
+    GlusterHostStorageDeviceFsTabFoundException(4413),
+    GlusterHostStorageDevicePVCreateFailedException(4414),
+    GlusterHostStorageDeviceLVConvertFailedException(4415),
+    GlusterHostStorageDeviceLVChangeFailedException(4416),
     GlusterHookFailed(4500),
     GlusterHookListException(4501),
     GlusterHookEnableFailed(4502),
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 009628a..e3e4177 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
@@ -178,6 +178,8 @@
     CreateGlusterVolumeSnapshot("org.ovirt.engine.core.vdsbroker.gluster"),
     SetGlusterVolumeSnapshotConfig("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
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..25073b4
--- /dev/null
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/vdscommands/gluster/CreateBrickVDSParameters.java
@@ -0,0 +1,90 @@
+package org.ovirt.engine.core.common.vdscommands.gluster;
+
+import java.util.List;
+import java.util.Map;
+
+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 Brick" action, with the list 
of Storage Devices
+ */
+public class CreateBrickVDSParameters extends VdsIdVDSCommandParametersBase {
+
+    private String lvName;
+    private String mountPoint;
+    private List<StorageDevice> storageDevices;
+    private Map<String, Object> raidParams;
+    private String fsType;
+
+    public CreateBrickVDSParameters() {
+
+    }
+
+    public CreateBrickVDSParameters(Guid hostId,
+            String lvName,
+            String mountPoint,
+            Map<String, Object> raidParams,
+            String fsType,
+            List<StorageDevice> storageDevices) {
+        super(hostId);
+        this.lvName = lvName;
+        this.mountPoint = mountPoint;
+        this.setStorageDevices(storageDevices);
+        this.raidParams = raidParams;
+        this.fsType = fsType;
+    }
+
+    public String getLvName() {
+        return lvName;
+    }
+
+    public void setLvName(String lvName) {
+        this.lvName = lvName;
+    }
+
+    public List<StorageDevice> getStorageDevices() {
+        return storageDevices;
+    }
+
+    public void setStorageDevices(List<StorageDevice> storageDevices) {
+        this.storageDevices = storageDevices;
+    }
+
+    public Map<String, Object> getRaidParams() {
+        return raidParams;
+    }
+
+    public void setRaidParams(Map<String, Object> raidParams) {
+        this.raidParams = raidParams;
+    }
+
+    public String getMountPoint() {
+        return mountPoint;
+    }
+
+    public void setMountPoint(String mountPoint) {
+        this.mountPoint = mountPoint;
+    }
+
+    @Override
+    public String toString() {
+        return String.format("CreateBrickVDSParameters %s, lvName=%s, 
mountPoint=%s, storageDevices=%s, raidParams=%s, fsType=%s,  ",
+                super.toString(),
+                lvName,
+                mountPoint,
+                storageDevices,
+                raidParams,
+                fsType);
+    }
+
+    public String getFsType() {
+        return fsType;
+    }
+
+    public void setFsType(String fsType) {
+        this.fsType = fsType;
+    }
+
+}
diff --git 
a/backend/manager/modules/dal/src/main/resources/bundles/VdsmErrors.properties 
b/backend/manager/modules/dal/src/main/resources/bundles/VdsmErrors.properties
index 0031696..5052412 100644
--- 
a/backend/manager/modules/dal/src/main/resources/bundles/VdsmErrors.properties
+++ 
b/backend/manager/modules/dal/src/main/resources/bundles/VdsmErrors.properties
@@ -438,3 +438,11 @@
 ResizeErr=Wrong resize disk parameter
 UpdateDevice=Failed to update device
 SETUP_NETWORKS_ROLLBACK=Reverting back to last known saved configuration.
+GlusterHostStorageDeviceNotFoundException=Storage device(s) not found
+GlusterHostStorageDeviceInUseException=Storage device(s) already in use
+GlusterHostStorageDeviceMountFailedException=Failed to mount the device
+GlusterHostStorageDeviceMkfsFailedException=Failed to format the device
+GlusterHostStorageDeviceFsTabFoundException=fstab entry already exists for the 
device
+GlusterHostStorageDevicePVCreateFailedException=Failed to create LVM Physical 
Volume
+GlusterHostStorageDeviceLVConvertFailedException=Failed to run lvconvert for 
device
+GlusterHostStorageDeviceLVChangeFailedException=Failed to run lvchange for the 
thin pool
diff --git 
a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/AbstractGlusterBrokerCommand.java
 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/AbstractGlusterBrokerCommand.java
index 150be2f..cceeba0 100644
--- 
a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/AbstractGlusterBrokerCommand.java
+++ 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/AbstractGlusterBrokerCommand.java
@@ -53,7 +53,6 @@
         case GlusterHookListException:
         case GlusterHostUUIDNotFound:
         case GlusterHookConflict:
-        case GlusterServicesListFailed:
         case GlusterHookUpdateFailed:
         case GlusterHookAlreadyExists:
         case GlusterHookChecksumMismatch:
@@ -88,7 +87,14 @@
         case GlusterSnapshotConfigFailedException:
         case GlusterSnapshotConfigSetFailedException:
         case GlusterSnapshotConfigGetFailedException:
-
+        case GlusterHostStorageDeviceNotFoundException:
+        case GlusterHostStorageDeviceInUseException:
+        case GlusterHostStorageDeviceMountFailedException:
+        case GlusterHostStorageDeviceMkfsFailedException:
+        case GlusterHostStorageDeviceFsTabFoundException:
+        case GlusterHostStorageDevicePVCreateFailedException:
+        case GlusterHostStorageDeviceLVConvertFailedException:
+        case GlusterHostStorageDeviceLVChangeFailedException:
             // Capture error from gluster command and record failure
             getVDSReturnValue().setVdsError(new VDSError(returnStatus, 
getReturnStatus().mMessage));
             getVDSReturnValue().setSucceeded(false);
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..b7c91c2
--- /dev/null
+++ 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/CreateBrickVDSCommand.java
@@ -0,0 +1,50 @@
+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.compat.Guid;
+import org.ovirt.engine.core.vdsbroker.vdsbroker.StatusForXmlRpc;
+
+/**
+ * VDS command to create a gluster brick
+ */
+public class CreateBrickVDSCommand<P extends CreateBrickVDSParameters> extends 
AbstractGlusterBrokerCommand<P> {
+    private OneStorageDeviceReturnForXmlRpc storageDeviceReturn;
+
+    public CreateBrickVDSCommand(P parameters) {
+        super(parameters);
+    }
+
+    @Override
+    protected void executeVdsBrokerCommand() {
+        CreateBrickVDSParameters parameters = getParameters();
+        Set<String> diskNames = new HashSet<String>();
+
+        for (StorageDevice storageDevice : parameters.getStorageDevices()) {
+            diskNames.add(storageDevice.getName());
+        }
+
+        storageDeviceReturn =
+                getBroker().glusterCreateBrick(parameters.getLvName(),
+                        parameters.getMountPoint(),
+                        parameters.getRaidParams(),
+                        parameters.getFsType(), diskNames.toArray(new 
String[0]));
+
+        proceedProxyReturnValue();
+        if (getVDSReturnValue().getSucceeded()) {
+            StorageDevice storageDevice = 
storageDeviceReturn.getStorageDevice();
+            storageDevice.setVdsId(getParameters().getVdsId());
+            storageDevice.setId(Guid.newGuid());
+            setReturnValue(storageDevice);
+        }
+    }
+
+    @Override
+    protected StatusForXmlRpc getReturnStatus() {
+        return storageDeviceReturn.mStatus;
+    }
+
+}
diff --git 
a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/OneStorageDeviceReturnForXmlRpc.java
 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/OneStorageDeviceReturnForXmlRpc.java
new file mode 100644
index 0000000..4eb4c99
--- /dev/null
+++ 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/OneStorageDeviceReturnForXmlRpc.java
@@ -0,0 +1,28 @@
+package org.ovirt.engine.core.vdsbroker.gluster;
+
+import java.util.Map;
+
+import org.ovirt.engine.core.common.businessentities.gluster.StorageDevice;
+
+public class OneStorageDeviceReturnForXmlRpc extends 
StorageDeviceReturnForXmlRpc {
+    private static final String DEVICE = "device";
+
+    private StorageDevice storageDevice;
+
+    @SuppressWarnings("unchecked")
+    public OneStorageDeviceReturnForXmlRpc(Map<String, Object> innerMap) {
+        super(innerMap);
+
+        if (mStatus.mCode != 0) {
+            return;
+        }
+        if (innerMap.containsKey(DEVICE)) {
+            this.storageDevice = getStorageDevice((Map<String, Object>) 
innerMap.get(DEVICE));
+        }
+    }
+
+    public StorageDevice getStorageDevice() {
+        return storageDevice;
+    }
+
+}
diff --git 
a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/StorageDeviceListReturnForXmlRpc.java
 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/StorageDeviceListReturnForXmlRpc.java
index 39dd557..500876c 100644
--- 
a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/StorageDeviceListReturnForXmlRpc.java
+++ 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/StorageDeviceListReturnForXmlRpc.java
@@ -4,24 +4,11 @@
 import java.util.List;
 import java.util.Map;
 
-import org.apache.commons.lang.StringUtils;
 import org.ovirt.engine.core.common.businessentities.gluster.StorageDevice;
-import org.ovirt.engine.core.vdsbroker.irsbroker.StatusReturnForXmlRpc;
 
-public class StorageDeviceListReturnForXmlRpc extends StatusReturnForXmlRpc {
+public class StorageDeviceListReturnForXmlRpc extends 
StorageDeviceReturnForXmlRpc {
 
     private static final String DEVICE_INFO = "deviceInfo";
-    private static final String NAME = "name";
-    private static final String FILE_SYSTEM_TYPE = "fsType";
-    private static final String SIZE = "size";
-    private static final String MOUNT_POINT = "mountPoint";
-    private static final String DEV_PATH = "devPath";
-    private static final String DEV_UUID = "devUuid";
-    private static final String UUID = "uuid";
-    private static final String CREATE_BRICK = "createBrick";
-    private static final String MODEL = "model";
-    private static final String BUS = "bus";
-
     private List<StorageDevice> storageDevices;
 
     @SuppressWarnings("unchecked")
@@ -40,33 +27,6 @@
                 storageDevices.add(getStorageDevice((Map<String, Object>) 
deviceInfoMap));
             }
         }
-    }
-
-    private StorageDevice getStorageDevice(Map<String, Object> map) {
-        StorageDevice storageDevice = new StorageDevice();
-        storageDevice.setName(map.get(NAME).toString());
-        storageDevice.setSize((long) (map.containsKey(SIZE) ? 
Double.valueOf(map.get(SIZE).toString()) : 0));
-        storageDevice.setDevPath(map.containsKey(DEV_PATH) ? 
map.get(DEV_PATH).toString() : null);
-        storageDevice.setCanCreateBrick(map.containsKey(CREATE_BRICK) ? 
Boolean.valueOf(map.get(CREATE_BRICK).toString()) : Boolean.FALSE);
-        storageDevice.setFsType(map.containsKey(FILE_SYSTEM_TYPE)
-                && 
StringUtils.isNotBlank(map.get(FILE_SYSTEM_TYPE).toString()) ? 
map.get(FILE_SYSTEM_TYPE)
-                .toString()
-                : null);
-        storageDevice.setMountPoint(map.containsKey(MOUNT_POINT)
-                && StringUtils.isNotBlank(map.get(MOUNT_POINT).toString()) ? 
map.get(MOUNT_POINT)
-                .toString()
-                : null);
-        storageDevice.setDevUuid(map.containsKey(DEV_UUID) && 
StringUtils.isNotBlank(map.get(DEV_UUID).toString()) ? map.get(DEV_UUID)
-                .toString()
-                : null);
-        storageDevice.setFsUuid(map.containsKey(UUID) && 
StringUtils.isNotBlank(map.get(UUID).toString()) ? map.get(UUID)
-                .toString()
-                : null);
-        storageDevice.setDescription(map.containsKey(MODEL) ? 
map.get(MODEL).toString() : null);
-        storageDevice.setDevType(map.containsKey(BUS) && 
StringUtils.isNotBlank(map.get(BUS).toString()) ? map.get(BUS)
-                .toString()
-                : null);
-        return storageDevice;
     }
 
     public List<StorageDevice> getStorageDevices() {
diff --git 
a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/StorageDeviceReturnForXmlRpc.java
 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/StorageDeviceReturnForXmlRpc.java
new file mode 100644
index 0000000..0003c89
--- /dev/null
+++ 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/StorageDeviceReturnForXmlRpc.java
@@ -0,0 +1,54 @@
+package org.ovirt.engine.core.vdsbroker.gluster;
+
+import java.util.Map;
+
+import org.apache.commons.lang.StringUtils;
+import org.ovirt.engine.core.common.businessentities.gluster.StorageDevice;
+import org.ovirt.engine.core.vdsbroker.irsbroker.StatusReturnForXmlRpc;
+
+public abstract class StorageDeviceReturnForXmlRpc extends 
StatusReturnForXmlRpc {
+
+    public StorageDeviceReturnForXmlRpc(Map<String, Object> innerMap) {
+        super(innerMap);
+    }
+
+    private static final String NAME = "name";
+    private static final String FILE_SYSTEM_TYPE = "fsType";
+    private static final String SIZE = "size";
+    private static final String MOUNT_POINT = "mountPoint";
+    private static final String DEV_PATH = "devPath";
+    private static final String DEV_UUID = "devUuid";
+    private static final String UUID = "uuid";
+    private static final String CREATE_BRICK = "createBrick";
+    private static final String MODEL = "model";
+    private static final String BUS = "bus";
+
+    protected StorageDevice getStorageDevice(Map<String, Object> map) {
+        StorageDevice storageDevice = new StorageDevice();
+        storageDevice.setName(map.get(NAME).toString());
+        storageDevice.setSize((long) (map.containsKey(SIZE) ? 
Double.valueOf(map.get(SIZE).toString()) : 0));
+        storageDevice.setDevPath(map.containsKey(DEV_PATH) ? 
map.get(DEV_PATH).toString() : null);
+        storageDevice.setCanCreateBrick(map.containsKey(CREATE_BRICK) ? 
Boolean.valueOf(map.get(CREATE_BRICK)
+                .toString()) : Boolean.FALSE);
+        storageDevice.setFsType(map.containsKey(FILE_SYSTEM_TYPE)
+                && 
StringUtils.isNotBlank(map.get(FILE_SYSTEM_TYPE).toString()) ? 
map.get(FILE_SYSTEM_TYPE)
+                .toString()
+                : null);
+        storageDevice.setMountPoint(map.containsKey(MOUNT_POINT)
+                && StringUtils.isNotBlank(map.get(MOUNT_POINT).toString()) ? 
map.get(MOUNT_POINT)
+                .toString()
+                : null);
+        storageDevice.setDevUuid(map.containsKey(DEV_UUID) && 
StringUtils.isNotBlank(map.get(DEV_UUID).toString()) ? map.get(DEV_UUID)
+                .toString()
+                : null);
+        storageDevice.setFsUuid(map.containsKey(UUID) && 
StringUtils.isNotBlank(map.get(UUID).toString()) ? map.get(UUID)
+                .toString()
+                : null);
+        storageDevice.setDescription(map.containsKey(MODEL) ? 
map.get(MODEL).toString() : null);
+        storageDevice.setDevType(map.containsKey(BUS) && 
StringUtils.isNotBlank(map.get(BUS).toString()) ? map.get(BUS)
+                .toString()
+                : null);
+        return storageDevice;
+    }
+
+}
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 4aee335..16440a6 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
@@ -28,6 +28,7 @@
 import 
org.ovirt.engine.core.vdsbroker.gluster.GlusterVolumeStatusReturnForXmlRpc;
 import 
org.ovirt.engine.core.vdsbroker.gluster.GlusterVolumeTaskReturnForXmlRpc;
 import 
org.ovirt.engine.core.vdsbroker.gluster.GlusterVolumesListReturnForXmlRpc;
+import org.ovirt.engine.core.vdsbroker.gluster.OneStorageDeviceReturnForXmlRpc;
 import 
org.ovirt.engine.core.vdsbroker.gluster.StorageDeviceListReturnForXmlRpc;
 import org.ovirt.engine.core.vdsbroker.irsbroker.FileStatsReturnForXmlRpc;
 import org.ovirt.engine.core.vdsbroker.irsbroker.OneUuidReturnForXmlRpc;
@@ -1727,4 +1728,19 @@
         Map<String, Object> response = new FutureMap(this.client, 
request).withResponseKey("deviceInfo");
         return new StorageDeviceListReturnForXmlRpc(response);
     }
+
+    @Override
+    public OneStorageDeviceReturnForXmlRpc glusterCreateBrick(String lvName,
+            String mountPoint,
+            Map<String, Object> raidParams, String fsType,
+            String[] storageDevices) {
+        JsonRpcRequest request = new 
RequestBuilder("GlusterHost.createBrick").withParameter("brickName", lvName)
+                .withParameter("mountPoint", mountPoint)
+                .withParameter("devices", storageDevices)
+                .withParameter("fsType", fsType)
+                .withOptionalParameterAsMap("raidParams", raidParams).build();
+
+        Map<String, Object> response = new FutureMap(this.client, 
request).withIgnoreResponseKey();
+        return new OneStorageDeviceReturnForXmlRpc(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 d9fc43e..aefeb8b 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
@@ -23,6 +23,7 @@
 import 
org.ovirt.engine.core.vdsbroker.gluster.GlusterVolumeStatusReturnForXmlRpc;
 import 
org.ovirt.engine.core.vdsbroker.gluster.GlusterVolumeTaskReturnForXmlRpc;
 import 
org.ovirt.engine.core.vdsbroker.gluster.GlusterVolumesListReturnForXmlRpc;
+import org.ovirt.engine.core.vdsbroker.gluster.OneStorageDeviceReturnForXmlRpc;
 import 
org.ovirt.engine.core.vdsbroker.gluster.StorageDeviceListReturnForXmlRpc;
 import org.ovirt.engine.core.vdsbroker.irsbroker.FileStatsReturnForXmlRpc;
 import org.ovirt.engine.core.vdsbroker.irsbroker.OneUuidReturnForXmlRpc;
@@ -367,4 +368,10 @@
     StatusOnlyReturnForXmlRpc glusterVolumeSnapshotConfigSet(String 
volumeName, String cfgName, String cfgValue);
 
     StatusOnlyReturnForXmlRpc glusterSnapshotConfigSet(String cfgName, String 
cfgValue);
+
+    OneStorageDeviceReturnForXmlRpc glusterCreateBrick(String lvName,
+            String mountPoint,
+            Map<String, Object> raidParams,
+            String fsType,
+            String[] storageDevices);
 }
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 e578d46..87964dd 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
@@ -344,4 +344,10 @@
     public Map<String, Object> glusterSnapshotConfigSet(String cfgName, String 
cfgValue);
 
     public Map<String, Object> glusterStorageDevicesList();
+
+    public Map<String, Object> glusterCreateBrick(String brickName,
+            String mountPoint,
+            String[] devices,
+            String fsType,
+            Map<String, Object> raidParams);
 }
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 e89df98..06abadc 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
@@ -24,6 +24,7 @@
 import 
org.ovirt.engine.core.vdsbroker.gluster.GlusterVolumeStatusReturnForXmlRpc;
 import 
org.ovirt.engine.core.vdsbroker.gluster.GlusterVolumeTaskReturnForXmlRpc;
 import 
org.ovirt.engine.core.vdsbroker.gluster.GlusterVolumesListReturnForXmlRpc;
+import org.ovirt.engine.core.vdsbroker.gluster.OneStorageDeviceReturnForXmlRpc;
 import 
org.ovirt.engine.core.vdsbroker.gluster.StorageDeviceListReturnForXmlRpc;
 import org.ovirt.engine.core.vdsbroker.irsbroker.FileStatsReturnForXmlRpc;
 import org.ovirt.engine.core.vdsbroker.irsbroker.OneUuidReturnForXmlRpc;
@@ -1686,4 +1687,23 @@
             throw new XmlRpcRunTimeException(ute);
         }
     }
+
+    @Override
+    public OneStorageDeviceReturnForXmlRpc glusterCreateBrick(String lvName,
+            String mountPoint,
+            Map<String, Object> raidParams,
+            String fsType,
+            String[] storageDevices) {
+        try {
+            return new 
OneStorageDeviceReturnForXmlRpc(vdsServer.glusterCreateBrick(lvName,
+                    mountPoint,
+                    storageDevices,
+                    fsType,
+                    raidParams));
+        } catch (UndeclaredThrowableException exp) {
+            throw new XmlRpcRunTimeException(exp);
+        }
+
+    }
+
 }
diff --git 
a/frontend/webadmin/modules/frontend/src/main/java/org/ovirt/engine/ui/frontend/VdsmErrors.java
 
b/frontend/webadmin/modules/frontend/src/main/java/org/ovirt/engine/ui/frontend/VdsmErrors.java
index db29b0e..93307e8 100644
--- 
a/frontend/webadmin/modules/frontend/src/main/java/org/ovirt/engine/ui/frontend/VdsmErrors.java
+++ 
b/frontend/webadmin/modules/frontend/src/main/java/org/ovirt/engine/ui/frontend/VdsmErrors.java
@@ -875,4 +875,28 @@
 
     @DefaultStringValue("Failed to get the gluster volume snapshot 
configuration")
     String GlusterSnapshotConfigGetFailedException();
+
+    @DefaultStringValue("Storage device(s) not found")
+    String GlusterHostStorageDeviceNotFoundException();
+
+    @DefaultStringValue("Storage device(s) already in use")
+    String GlusterHostStorageDeviceInUseException();
+
+    @DefaultStringValue("Failed to mount the device")
+    String GlusterHostStorageDeviceMountFailedException();
+
+    @DefaultStringValue(" Failed to format the device")
+    String GlusterHostStorageDeviceMkfsFailedException();
+
+    @DefaultStringValue("FSTAB entry already exists for the device")
+    String GlusterHostStorageDeviceFsTabFoundException();
+
+    @DefaultStringValue("Failed to create LVM Physical Volume")
+    String GlusterHostStorageDevicePVCreateFailedException();
+
+    @DefaultStringValue("Failed to run lvconvert for device")
+    String GlusterHostStorageDeviceLVConvertFailedException();
+
+    @DefaultStringValue("Failed to run lvchange for the thin pool:")
+    String GlusterHostStorageDeviceLVChangeFailedException();
 }


-- 
To view, visit https://gerrit.ovirt.org/40040
To unsubscribe, visit https://gerrit.ovirt.org/settings

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

Reply via email to