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
