Selvasundaram has uploaded a new change for review.
Change subject: engine: Gluster server peer list command
......................................................................
engine: Gluster server peer list command
Vds command to fetch the gluster server peer list
Change-Id: Icfacfdc5847e5d871da38d22b6b5efe86ea4d579
Signed-off-by: Selvasundaram <[email protected]>
---
M
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/AuditLogType.java
A
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/gluster/GlusterHostEntity.java
M
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/errors/VdcBllErrors.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/GlusterHostsListVDSCommand.java
A
backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/irsbroker/GlusterHostsListReturnForXmlRpc.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
10 files changed, 161 insertions(+), 2 deletions(-)
git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/42/7242/1
diff --git
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/AuditLogType.java
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/AuditLogType.java
index 1254232..c2b436c 100644
---
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/AuditLogType.java
+++
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/AuditLogType.java
@@ -199,7 +199,7 @@
GLUSTER_VOLUME_ADD_BRICK_FAILED(4020),
GLUSTER_HOST_REMOVE_FAILED(4021),
GLUSTER_HOST_ADD_FAILED(4404),
-
+ GLUSTER_HOST_LIST_FAILED(4405),
USER_VDS_RESTART(41),
USER_FAILED_VDS_RESTART(107),
diff --git
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/gluster/GlusterHostEntity.java
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/gluster/GlusterHostEntity.java
new file mode 100644
index 0000000..949d813
--- /dev/null
+++
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/gluster/GlusterHostEntity.java
@@ -0,0 +1,72 @@
+package org.ovirt.engine.core.common.businessentities.gluster;
+
+import org.ovirt.engine.core.common.businessentities.IVdcQueryable;
+import org.ovirt.engine.core.common.businessentities.VDSStatus;
+import org.ovirt.engine.core.common.utils.gluster.GlusterCoreUtil;
+import org.ovirt.engine.core.compat.Guid;
+
+public class GlusterHostEntity extends IVdcQueryable {
+
+ private Guid uuid;
+
+ private String hostName;
+
+ private VDSStatus status;
+
+ public GlusterHostEntity() {
+ }
+
+ public GlusterHostEntity(Guid uuid, String hostName, String fingerPrint,
VDSStatus status) {
+ setUuid(uuid);
+ setHostName(hostName);
+ setStatus(status);
+ }
+
+ public Guid getUuid() {
+ return uuid;
+ }
+
+ public void setUuid(Guid uuid) {
+ this.uuid = uuid;
+ }
+
+ public String getHostName() {
+ return hostName;
+ }
+
+ public void setHostName(String hostName) {
+ this.hostName = hostName;
+ }
+
+ public VDSStatus getStatus() {
+ return status;
+ }
+
+ public void setStatus(VDSStatus status) {
+ this.status = status;
+ }
+
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + getUuid().hashCode();
+ result = prime * result + ((hostName == null) ? 0 :
hostName.hashCode());
+ result = prime * result + ((status == null) ? 0 : status.hashCode());
+ return result;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (!(obj instanceof GlusterHostEntity)) {
+ return false;
+ }
+
+ GlusterHostEntity host = (GlusterHostEntity) obj;
+ return (getUuid().equals(host.getUuid())
+ && (GlusterCoreUtil.objectsEqual(hostName, host.getHostName()))
+ && (GlusterCoreUtil.objectsEqual(status, host.getStatus())));
+ }
+
+}
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 54ad466..e05c6fb 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
@@ -336,6 +336,7 @@
GlusterVolumeReplaceBrickStartFailed(4142),
GlusterHostRemoveFailed(4406),
GlusterAddHostFailed(4404),
+ GlusterPeerListFailed(4405),
UnicodeArgumentException(4900),
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 86ae3d2..1cf9963 100644
---
a/backend/manager/modules/dal/src/main/resources/bundles/VdsmErrors.properties
+++
b/backend/manager/modules/dal/src/main/resources/bundles/VdsmErrors.properties
@@ -318,7 +318,8 @@
GlusterVolumeRebalanceStartFailed=Gluster Volume Rebalance Start Failed
GlusterVolumeReplaceBrickStartFailed=Gluster Volume Replace Brick Start Failed
GlusterHostRemoveFailed=Gluster Server Remove Failed
-GlusterAddHostFailed=Gluster Server Add Failed
+GlusterAddHostFailed=Gluster Server Add Failed
+GlusterPeerListFailed=Gluster Peer List Failed
CANT_RECONSTRUCT_WHEN_A_DOMAIN_IN_POOL_IS_LOCKED=Can't reconstruct the Master
Domain when the Data Center contains Domains in Locked state.\nPlease wait
until the operation for these Domains ends before trying to reconstruct the
Master Domain again.
NO_IMPLEMENTATION=Not implemented
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 ab2214f..b4b909e 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
@@ -30,6 +30,7 @@
case GlusterVolumeReplaceBrickStartFailed:
case GlusterHostRemoveFailed:
case GlusterAddHostFailed:
+ case GlusterPeerListFailed:
// 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/GlusterHostsListVDSCommand.java
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/GlusterHostsListVDSCommand.java
new file mode 100644
index 0000000..a2610a2
--- /dev/null
+++
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/GlusterHostsListVDSCommand.java
@@ -0,0 +1,24 @@
+package org.ovirt.engine.core.vdsbroker.gluster;
+
+import org.ovirt.engine.core.common.vdscommands.VdsIdVDSCommandParametersBase;
+import
org.ovirt.engine.core.vdsbroker.irsbroker.GlusterHostsListReturnForXmlRpc;
+
+public class GlusterHostsListVDSCommand<P extends
VdsIdVDSCommandParametersBase> extends AbstractGlusterBrokerCommand<P> {
+
+ private GlusterHostsListReturnForXmlRpc glusterHosts;
+
+ public GlusterHostsListVDSCommand(P parameters) {
+ super(parameters);
+ }
+
+ @Override
+ protected void ExecuteVdsBrokerCommand() {
+ glusterHosts = getBroker().glusterHostsList();
+ ProceedProxyReturnValue();
+
+ if (getVDSReturnValue().getSucceeded()) {
+ setReturnValue(glusterHosts.hostsList);
+ }
+ }
+
+}
diff --git
a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/irsbroker/GlusterHostsListReturnForXmlRpc.java
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/irsbroker/GlusterHostsListReturnForXmlRpc.java
new file mode 100644
index 0000000..166cd02
--- /dev/null
+++
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/irsbroker/GlusterHostsListReturnForXmlRpc.java
@@ -0,0 +1,42 @@
+package org.ovirt.engine.core.vdsbroker.irsbroker;
+
+import java.util.HashSet;
+import java.util.Map;
+import java.util.Set;
+
+import org.ovirt.engine.core.common.businessentities.VDSStatus;
+import org.ovirt.engine.core.common.businessentities.gluster.GlusterHostEntity;
+import org.ovirt.engine.core.compat.Guid;
+
+public final class GlusterHostsListReturnForXmlRpc extends
StatusReturnForXmlRpc {
+
+ private static final String GLUSTER_HOSTS = "hosts";
+
+ private static final String HOST_NAME = "hostname";
+
+ private static final String UUID = "uuid";
+
+ private static final String PEER_STATUS = "status";
+
+ public Set<GlusterHostEntity> hostsList = new HashSet<GlusterHostEntity>();
+
+ public GlusterHostsListReturnForXmlRpc(Map<String, Object> innerMap) {
+ super(innerMap);
+ Object[] temp = (Object[]) innerMap.get(GLUSTER_HOSTS);
+
+ if (temp != null) {
+ for (int i = 0; i < temp.length; i++) {
+ hostsList.add(prepareHostsEntity((Map<String, Object>)
temp[i]));
+ }
+ }
+ }
+
+ private GlusterHostEntity prepareHostsEntity(Map<String, Object> map) {
+ GlusterHostEntity entity = new GlusterHostEntity();
+ entity.setHostName(map.get(HOST_NAME).toString());
+ entity.setUuid(new Guid(map.get(UUID).toString()));
+ entity.setStatus(map.get(PEER_STATUS).toString().equals("CONNECTED") ?
VDSStatus.Up : VDSStatus.Down);
+ return entity;
+ }
+
+}
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 1bc410a..23f537b 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
@@ -4,6 +4,7 @@
import java.util.concurrent.Future;
import java.util.concurrent.FutureTask;
+import
org.ovirt.engine.core.vdsbroker.irsbroker.GlusterHostsListReturnForXmlRpc;
import
org.ovirt.engine.core.vdsbroker.irsbroker.GlusterVolumeOptionsInfoReturnForXmlRpc;
import org.ovirt.engine.core.vdsbroker.irsbroker.IsoListReturnForXmlRpc;
import org.ovirt.engine.core.vdsbroker.irsbroker.OneUuidReturnForXmlRpc;
@@ -233,4 +234,6 @@
StatusOnlyReturnForXmlRpc glusterHostAdd(String hostName);
+ GlusterHostsListReturnForXmlRpc glusterHostsList();
+
}
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 d928caf..246da01 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
@@ -224,6 +224,8 @@
public Map<String, Object> glusterHostAdd(String hostName);
+ public Map<String, Object> glusterHostsList();
+
public Map<String, Object> ping();
@FutureCall(delegeteTo = "ping")
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 b3cf60b..def630d 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
@@ -6,6 +6,7 @@
import java.util.concurrent.FutureTask;
import org.apache.commons.httpclient.HttpClient;
+import
org.ovirt.engine.core.vdsbroker.irsbroker.GlusterHostsListReturnForXmlRpc;
import
org.ovirt.engine.core.vdsbroker.irsbroker.GlusterVolumeOptionsInfoReturnForXmlRpc;
import org.ovirt.engine.core.vdsbroker.irsbroker.IsoListReturnForXmlRpc;
import org.ovirt.engine.core.vdsbroker.irsbroker.OneUuidReturnForXmlRpc;
@@ -1136,4 +1137,16 @@
throw new XmlRpcRunTimeException(ute);
}
}
+
+ @Override
+ public GlusterHostsListReturnForXmlRpc glusterHostsList() {
+ try {
+ Map<String, Object> xmlRpcReturnValue =
vdsServer.glusterHostsList();
+ GlusterHostsListReturnForXmlRpc wrapper = new
GlusterHostsListReturnForXmlRpc(xmlRpcReturnValue);
+ return wrapper;
+ } catch (UndeclaredThrowableException ute) {
+ throw new XmlRpcRunTimeException(ute);
+ }
+ }
+
}
--
To view, visit http://gerrit.ovirt.org/7242
To unsubscribe, visit http://gerrit.ovirt.org/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: Icfacfdc5847e5d871da38d22b6b5efe86ea4d579
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Selvasundaram <[email protected]>
_______________________________________________
Engine-patches mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/engine-patches