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
