Ramesh N has uploaded a new change for review. Change subject: gluster: vds command to list storage devices ......................................................................
gluster: vds command to list storage devices VDS Command to list all the storage devices in the host. Change-Id: Id47eadcb57d3f544481b577da7507f4fc9a10c67 Signed-off-by: Ramesh Nachimuthu <rnach...@redhat.com> --- A backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/gluster/StorageDeviceInfo.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/gluster/GetStorageDeviceListVDSCommand.java A backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/StorageDeviceInfoListReturnForXmlRpc.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, 281 insertions(+), 3 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/13/35313/1 diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/gluster/StorageDeviceInfo.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/gluster/StorageDeviceInfo.java new file mode 100644 index 0000000..35bfaf1 --- /dev/null +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/gluster/StorageDeviceInfo.java @@ -0,0 +1,153 @@ +package org.ovirt.engine.core.common.businessentities.gluster; + +import java.io.Serializable; +import java.util.List; + +public class StorageDeviceInfo implements Serializable { + + private static final long serialVersionUID = 1L; + + private String name; + private String fileSystem; + private String capacity; + private String type; + private String container; + private List<String> partitions; + private String origin; + private String mountPoint; + + public String getOrigin() { + return origin; + } + + public void setOrigin(String origin) { + this.origin = origin; + } + + public StorageDeviceInfo() { + super(); + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getFileSystem() { + return fileSystem; + } + + public void setFileSystem(String fileSystem) { + this.fileSystem = fileSystem; + } + + public String getCapacity() { + return capacity; + } + + public void setCapacity(String capacity) { + this.capacity = capacity; + } + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public String getContainer() { + return container; + } + + public List<String> getPartitions() { + return partitions; + } + + public void setContainer(String container) { + this.container = container; + } + + public void setPartitions(List<String> partitions) { + this.partitions = partitions; + } + + public String getMountPoint() { + return mountPoint; + } + + public void setMountPoint(String mountPoint) { + this.mountPoint = mountPoint; + } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((capacity == null) ? 0 : capacity.hashCode()); + result = prime * result + ((container == null) ? 0 : container.hashCode()); + result = prime * result + ((fileSystem == null) ? 0 : fileSystem.hashCode()); + result = prime * result + ((mountPoint == null) ? 0 : mountPoint.hashCode()); + result = prime * result + ((name == null) ? 0 : name.hashCode()); + result = prime * result + ((origin == null) ? 0 : origin.hashCode()); + result = prime * result + ((partitions == null) ? 0 : partitions.hashCode()); + result = prime * result + ((type == null) ? 0 : type.hashCode()); + return result; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + StorageDeviceInfo other = (StorageDeviceInfo) obj; + if (capacity == null) { + if (other.capacity != null) + return false; + } else if (!capacity.equals(other.capacity)) + return false; + if (container == null) { + if (other.container != null) + return false; + } else if (!container.equals(other.container)) + return false; + if (fileSystem == null) { + if (other.fileSystem != null) + return false; + } else if (!fileSystem.equals(other.fileSystem)) + return false; + if (mountPoint == null) { + if (other.mountPoint != null) + return false; + } else if (!mountPoint.equals(other.mountPoint)) + return false; + if (name == null) { + if (other.name != null) + return false; + } else if (!name.equals(other.name)) + return false; + if (origin == null) { + if (other.origin != null) + return false; + } else if (!origin.equals(other.origin)) + return false; + if (partitions == null) { + if (other.partitions != null) + return false; + } else if (!partitions.equals(other.partitions)) + return false; + if (type == null) { + if (other.type != null) + return false; + } else if (!type.equals(other.type)) + return false; + return true; + } +} 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 17b7c79..2fd9039 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 @@ -161,6 +161,7 @@ GetGlusterVolumeGeoRepStatusDetail("org.ovirt.engine.core.vdsbroker.gluster"), StopGlusterVolumeGeoRepSession("org.ovirt.engine.core.vdsbroker.gluster"), DeleteGlusterVolumeGeoRepSession("org.ovirt.engine.core.vdsbroker.gluster"), + GetStorageDeviceList("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/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/GetStorageDeviceListVDSCommand.java b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/GetStorageDeviceListVDSCommand.java new file mode 100644 index 0000000..4c8ccfd --- /dev/null +++ b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/GetStorageDeviceListVDSCommand.java @@ -0,0 +1,31 @@ +package org.ovirt.engine.core.vdsbroker.gluster; + +import org.ovirt.engine.core.common.vdscommands.VdsIdVDSCommandParametersBase; +import org.ovirt.engine.core.vdsbroker.vdsbroker.StatusForXmlRpc; + +public class GetStorageDeviceListVDSCommand<P extends VdsIdVDSCommandParametersBase> extends AbstractGlusterBrokerCommand<P> { + + private StorageDeviceInfoListReturnForXmlRpc _result; + + public GetStorageDeviceListVDSCommand(P parameters) { + super(parameters); + } + + @Override + protected void executeVdsBrokerCommand() { + _result = getBroker().getDeviceInfos(); + + proceedProxyReturnValue(); + setReturnValue(_result.getDeviceInfos()); + } + + @Override + protected StatusForXmlRpc getReturnStatus() { + return _result.mStatus; + } + + @Override + protected Object getReturnValueFromBroker() { + return _result; + } +} diff --git a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/StorageDeviceInfoListReturnForXmlRpc.java b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/StorageDeviceInfoListReturnForXmlRpc.java new file mode 100644 index 0000000..08fe295 --- /dev/null +++ b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/StorageDeviceInfoListReturnForXmlRpc.java @@ -0,0 +1,72 @@ +package org.ovirt.engine.core.vdsbroker.gluster; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +import org.ovirt.engine.core.common.businessentities.gluster.StorageDeviceInfo; +import org.ovirt.engine.core.vdsbroker.irsbroker.StatusReturnForXmlRpc; + +public class StorageDeviceInfoListReturnForXmlRpc extends StatusReturnForXmlRpc { + + private static final String NAME = "name"; + private static final String FILE_SYSTEM = "fileSystem"; + private static final String SIZE = "size"; + private static final String TYPE = "type"; + private static final String DEVICE_INFO = "deviceInfo"; + private static final String CONTAINER = "container"; + private static final String PARTITIONS = "partitions"; + private static final String ORGIN = "orgin"; + private static final String MOUNT_POINT = "mountPoint"; + + private List<StorageDeviceInfo> deviceInfos; + + @SuppressWarnings("unchecked") + public StorageDeviceInfoListReturnForXmlRpc(Map<String, Object> innerMap) { + super(innerMap); + + if (mStatus.mCode != 0) { + return; + } + + Object[] deviceArray = (Object[]) innerMap.get(DEVICE_INFO); + deviceInfos = new ArrayList<StorageDeviceInfo>(); + + if (deviceArray != null) { + for (Object deviceInfoMap : deviceArray) { + deviceInfos.add(getDeviceInfo((Map<String, Object>) deviceInfoMap)); + } + } + } + + private StorageDeviceInfo getDeviceInfo(Map<String, Object> map) { + StorageDeviceInfo deviceInfo = new StorageDeviceInfo(); + deviceInfo.setName(map.get(NAME).toString()); + deviceInfo.setFileSystem(map.get(FILE_SYSTEM).toString()); + deviceInfo.setCapacity(map.get(SIZE).toString()); + deviceInfo.setType(map.get(TYPE).toString()); + deviceInfo.setContainer(map.get(CONTAINER).toString()); + if (map.containsKey(MOUNT_POINT)) { + deviceInfo.setMountPoint(map.get(MOUNT_POINT).toString()); + } + deviceInfo.setPartitions(getPartitions((Object[]) map.get(PARTITIONS))); + if (map.containsKey(ORGIN)) { + deviceInfo.setOrigin(map.get(ORGIN).toString()); + } + return deviceInfo; + } + + private List<String> getPartitions(Object[] object) { + List<String> partitions = new ArrayList<String>(); + for (Object obj : object) { + obj.toString(); + partitions.add(obj.toString()); + } + return partitions; + } + + public List<StorageDeviceInfo> getDeviceInfos() { + return deviceInfos; + } + +} 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 9e970e4..864dd5b 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 @@ -18,13 +18,14 @@ import org.ovirt.engine.core.vdsbroker.gluster.GlusterServicesReturnForXmlRpc; import org.ovirt.engine.core.vdsbroker.gluster.GlusterTaskInfoReturnForXmlRpc; import org.ovirt.engine.core.vdsbroker.gluster.GlusterTasksListReturnForXmlRpc; -import org.ovirt.engine.core.vdsbroker.gluster.GlusterVolumeGeoRepStatusForXmlRpc; import org.ovirt.engine.core.vdsbroker.gluster.GlusterVolumeGeoRepStatusDetailForXmlRpc; +import org.ovirt.engine.core.vdsbroker.gluster.GlusterVolumeGeoRepStatusForXmlRpc; import org.ovirt.engine.core.vdsbroker.gluster.GlusterVolumeOptionsInfoReturnForXmlRpc; import org.ovirt.engine.core.vdsbroker.gluster.GlusterVolumeProfileInfoReturnForXmlRpc; 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.StorageDeviceInfoListReturnForXmlRpc; import org.ovirt.engine.core.vdsbroker.irsbroker.FileStatsReturnForXmlRpc; import org.ovirt.engine.core.vdsbroker.irsbroker.OneUuidReturnForXmlRpc; import org.ovirt.engine.core.vdsbroker.irsbroker.StoragePoolInfoReturnForXmlRpc; @@ -1545,4 +1546,11 @@ new FutureMap(this.client, request); return new StatusOnlyReturnForXmlRpc(response); } + + @Override + public StorageDeviceInfoListReturnForXmlRpc getDeviceInfos() { + JsonRpcRequest request = new RequestBuilder("Gluster.getDeviceInfo").build(); + Map<String, Object> response = new FutureMap(this.client, request).withIgnoreResponseKey(); + return new StorageDeviceInfoListReturnForXmlRpc(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 92619fa..1ebde4f 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 @@ -13,13 +13,14 @@ import org.ovirt.engine.core.vdsbroker.gluster.GlusterServicesReturnForXmlRpc; import org.ovirt.engine.core.vdsbroker.gluster.GlusterTaskInfoReturnForXmlRpc; import org.ovirt.engine.core.vdsbroker.gluster.GlusterTasksListReturnForXmlRpc; -import org.ovirt.engine.core.vdsbroker.gluster.GlusterVolumeGeoRepStatusForXmlRpc; import org.ovirt.engine.core.vdsbroker.gluster.GlusterVolumeGeoRepStatusDetailForXmlRpc; +import org.ovirt.engine.core.vdsbroker.gluster.GlusterVolumeGeoRepStatusForXmlRpc; import org.ovirt.engine.core.vdsbroker.gluster.GlusterVolumeOptionsInfoReturnForXmlRpc; import org.ovirt.engine.core.vdsbroker.gluster.GlusterVolumeProfileInfoReturnForXmlRpc; 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.StorageDeviceInfoListReturnForXmlRpc; import org.ovirt.engine.core.vdsbroker.irsbroker.FileStatsReturnForXmlRpc; import org.ovirt.engine.core.vdsbroker.irsbroker.OneUuidReturnForXmlRpc; import org.ovirt.engine.core.vdsbroker.irsbroker.StoragePoolInfoReturnForXmlRpc; @@ -148,6 +149,8 @@ LUNListReturnForXmlRpc getDeviceList(int storageType); + StorageDeviceInfoListReturnForXmlRpc getDeviceInfos(); + DevicesVisibilityMapReturnForXmlRpc getDevicesVisibility(String[] devicesList); IQNListReturnForXmlRpc discoverSendTargets(Map<String, String> args); 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 e97444b..743aadf 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 @@ -306,4 +306,6 @@ public Map<String, Object> setNumberOfCpus(String vmId, String numberOfCpus); public Map<String, Object> updateVmPolicy(Map info); + + public Map<String, Object> glusterGetDeviceInfo(); } 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 d027b50..f52b1c4 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 @@ -14,13 +14,14 @@ import org.ovirt.engine.core.vdsbroker.gluster.GlusterServicesReturnForXmlRpc; import org.ovirt.engine.core.vdsbroker.gluster.GlusterTaskInfoReturnForXmlRpc; import org.ovirt.engine.core.vdsbroker.gluster.GlusterTasksListReturnForXmlRpc; -import org.ovirt.engine.core.vdsbroker.gluster.GlusterVolumeGeoRepStatusForXmlRpc; import org.ovirt.engine.core.vdsbroker.gluster.GlusterVolumeGeoRepStatusDetailForXmlRpc; +import org.ovirt.engine.core.vdsbroker.gluster.GlusterVolumeGeoRepStatusForXmlRpc; import org.ovirt.engine.core.vdsbroker.gluster.GlusterVolumeOptionsInfoReturnForXmlRpc; import org.ovirt.engine.core.vdsbroker.gluster.GlusterVolumeProfileInfoReturnForXmlRpc; 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.StorageDeviceInfoListReturnForXmlRpc; import org.ovirt.engine.core.vdsbroker.irsbroker.FileStatsReturnForXmlRpc; import org.ovirt.engine.core.vdsbroker.irsbroker.OneUuidReturnForXmlRpc; import org.ovirt.engine.core.vdsbroker.irsbroker.StoragePoolInfoReturnForXmlRpc; @@ -1510,4 +1511,11 @@ public void close() { XmlRpcUtils.shutDownConnection(this.httpClient); } + + @Override + public StorageDeviceInfoListReturnForXmlRpc getDeviceInfos() { + Map<String, Object> xmlRpcReturnValue = vdsServer.glusterGetDeviceInfo(); + StorageDeviceInfoListReturnForXmlRpc wrapper = new StorageDeviceInfoListReturnForXmlRpc(xmlRpcReturnValue); + return wrapper; + } } -- To view, visit http://gerrit.ovirt.org/35313 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Id47eadcb57d3f544481b577da7507f4fc9a10c67 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Ramesh N <rnach...@redhat.com> _______________________________________________ Engine-patches mailing list Engine-patches@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-patches