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

Reply via email to