Shireesh Anjal has uploaded a new change for review.

Change subject: gluster: VDS command to fetch gluster services
......................................................................

gluster: VDS command to fetch gluster services

- VDS Command
- VDS Parameters class
- XmlRpc return type
- Entries in VDSCommandType, IVdsServer, VdsServerConnector, VdsServerWrapper
- New error code in VdcBllErrors and VdsmErrors
- New enum for service statuses (GlusterServiceStatus)
- Refactored ServiceInfo to use GlusterServiceStatus instead of
  GlusterStats

Change-Id: I0c59a6f153fdcb584de206ca389a2ef7ce30fd80
Signed-off-by: Shireesh Anjal <[email protected]>
---
A 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/gluster/GlusterServiceStatus.java
M 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/gluster/ServiceInfo.java
M 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/constants/gluster/GlusterConstants.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/GlusterServicesListVDSParameters.java
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/GlusterServicesListVDSCommand.java
A 
backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/GlusterServicesReturnForXmlRpc.java
M 
backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/GlusterVolumeStatusReturnForXmlRpc.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
M 
frontend/webadmin/modules/gwt-common/src/main/resources/org/ovirt/engine/core/Common.gwt.xml
15 files changed, 175 insertions(+), 5 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/29/14129/1

diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/gluster/GlusterServiceStatus.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/gluster/GlusterServiceStatus.java
new file mode 100644
index 0000000..b944f38
--- /dev/null
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/gluster/GlusterServiceStatus.java
@@ -0,0 +1,13 @@
+package org.ovirt.engine.core.common.businessentities.gluster;
+
+/**
+ * Enum for status of gluster related services
+ */
+public enum GlusterServiceStatus {
+    RUNNING,
+    STOPPED,
+    FAILED,
+    ERROR,
+    NOT_INSTALLED,
+    ;
+}
diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/gluster/ServiceInfo.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/gluster/ServiceInfo.java
index 3096fae..7a8e483 100644
--- 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/gluster/ServiceInfo.java
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/gluster/ServiceInfo.java
@@ -2,6 +2,8 @@
 
 import java.io.Serializable;
 
+import org.ovirt.engine.core.compat.Guid;
+
 /**
  * The Volume status service info.
  *
@@ -13,10 +15,13 @@
     private static final long serialVersionUID = 108478798053613345L;
 
     private ServiceType serviceType;
+    private String serviceName;
+    private Guid serverId;
     private String hostName;
     private int port;
     private int pid;
-    private GlusterStatus status;
+    private GlusterServiceStatus status;
+    private String message;
 
     public ServiceType getServiceType() {
         return serviceType;
@@ -50,11 +55,35 @@
         this.pid = pid;
     }
 
-    public GlusterStatus getStatus() {
+    public GlusterServiceStatus getStatus() {
         return status;
     }
 
-    public void setStatus(GlusterStatus status) {
+    public void setStatus(GlusterServiceStatus status) {
         this.status = status;
     }
+
+    public String getServiceName() {
+        return serviceName;
+    }
+
+    public void setServiceName(String serviceName) {
+        this.serviceName = serviceName;
+    }
+
+    public String getMessage() {
+        return message;
+    }
+
+    public void setMessage(String message) {
+        this.message = message;
+    }
+
+    public Guid getServerId() {
+        return serverId;
+    }
+
+    public void setServerId(Guid hostId) {
+        this.serverId = hostId;
+    }
 }
diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/constants/gluster/GlusterConstants.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/constants/gluster/GlusterConstants.java
index d454170..781f913 100644
--- 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/constants/gluster/GlusterConstants.java
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/constants/gluster/GlusterConstants.java
@@ -1,6 +1,7 @@
 package org.ovirt.engine.core.common.constants.gluster;
 
 public class GlusterConstants {
+    public static final int CODE_SUCCESS = 0;
     public static final String ON = "on";
     public static final String OFF = "off";
 
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 a07bbca..3bf377d 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
@@ -367,6 +367,7 @@
     GlusterAddHostFailed(4404),
     RemoveGlusterServerFailed(4406),
     GlusterPeerListFailed(4407),
+    GlusterServicesListFailed(4409),
     GlusterHookFailed(4500),
     GlusterHookEnableFailed(4501),
     GlusterHookDisableFailed(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 efcfbe2..9b61ddb 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
@@ -139,6 +139,7 @@
     GetGlusterVolumeProfileInfo("org.ovirt.engine.core.vdsbroker.gluster"),
     EnableGlusterHook("org.ovirt.engine.core.vdsbroker.gluster"),
     DisableGlusterHook("org.ovirt.engine.core.vdsbroker.gluster"),
+    GlusterServicesList("org.ovirt.engine.core.vdsbroker.gluster"),
     ;
 
     String packageName;
diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/vdscommands/gluster/GlusterServicesListVDSParameters.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/vdscommands/gluster/GlusterServicesListVDSParameters.java
new file mode 100644
index 0000000..e66b4f5
--- /dev/null
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/vdscommands/gluster/GlusterServicesListVDSParameters.java
@@ -0,0 +1,22 @@
+package org.ovirt.engine.core.common.vdscommands.gluster;
+
+import java.util.List;
+
+import org.ovirt.engine.core.common.vdscommands.VdsIdVDSCommandParametersBase;
+import org.ovirt.engine.core.compat.Guid;
+
+/**
+ * VDS parameters class with Server ID and service names as parameters, Used 
by the "Gluster Services List" command.
+ */
+public class GlusterServicesListVDSParameters extends 
VdsIdVDSCommandParametersBase {
+    private List<String> serviceNames;
+
+    public GlusterServicesListVDSParameters(Guid serverId, List<String> 
serviceNames) {
+        super(serverId);
+        this.serviceNames = serviceNames;
+    }
+
+    public List<String> getServiceNames() {
+        return serviceNames;
+    }
+}
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 7b502ff..5465b50 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
@@ -49,6 +49,7 @@
         case GlusterHookAlreadyEnabled:
         case GlusterHookAlreadyDisabled:
         case GlusterHookNotFound:
+        case GlusterServicesListFailed:
             // 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/GlusterServicesListVDSCommand.java
 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/GlusterServicesListVDSCommand.java
new file mode 100644
index 0000000..7e264ae
--- /dev/null
+++ 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/GlusterServicesListVDSCommand.java
@@ -0,0 +1,30 @@
+package org.ovirt.engine.core.vdsbroker.gluster;
+
+import 
org.ovirt.engine.core.common.vdscommands.gluster.GlusterServicesListVDSParameters;
+import org.ovirt.engine.core.vdsbroker.vdsbroker.StatusForXmlRpc;
+
+/**
+ * VDS command to fetch list of services with their status
+ * @param <P> The parameters class to be used with this command
+ */
+public class GlusterServicesListVDSCommand<P extends 
GlusterServicesListVDSParameters> extends AbstractGlusterBrokerCommand<P> {
+    private GlusterServicesReturnForXmlRpc glusterServices;
+
+    public GlusterServicesListVDSCommand(P parameters) {
+        super(parameters);
+    }
+
+    @Override
+    protected void ExecuteVdsBrokerCommand() {
+        glusterServices = 
getBroker().glusterServicesList(getParameters().getServiceNames().toArray(new 
String[0]));
+        ProceedProxyReturnValue();
+        if (getVDSReturnValue().getSucceeded()) {
+            setReturnValue(glusterServices.getServices());
+        }
+    }
+
+    @Override
+    protected StatusForXmlRpc getReturnStatus() {
+        return glusterServices.mStatus;
+    }
+}
diff --git 
a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/GlusterServicesReturnForXmlRpc.java
 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/GlusterServicesReturnForXmlRpc.java
new file mode 100644
index 0000000..2a789a1
--- /dev/null
+++ 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/GlusterServicesReturnForXmlRpc.java
@@ -0,0 +1,51 @@
+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.GlusterServiceStatus;
+import org.ovirt.engine.core.common.businessentities.gluster.ServiceInfo;
+import org.ovirt.engine.core.common.constants.gluster.GlusterConstants;
+import org.ovirt.engine.core.vdsbroker.irsbroker.StatusReturnForXmlRpc;
+
+/**
+ * The XmlRpc return type to receive a list of gluster related services.
+ */
+public class GlusterServicesReturnForXmlRpc extends StatusReturnForXmlRpc {
+    private static final String SERVICES = "services";
+    private static final String NAME = "name";
+    private static final String PID = "pid";
+    private static final String STATUS = "status";
+    private static final String MESSAGE = "message";
+
+    private List<ServiceInfo> services;
+
+    @SuppressWarnings("unchecked")
+    public GlusterServicesReturnForXmlRpc(Map<String, Object> innerMap) {
+        super(innerMap);
+
+        if (mStatus.mCode != GlusterConstants.CODE_SUCCESS) {
+            return;
+        }
+
+        services = new ArrayList<ServiceInfo>();
+        for (Object service : (Object[]) innerMap.get(SERVICES)) {
+            services.add(getService((Map<String, Object>) service));
+        }
+    }
+
+    private ServiceInfo getService(Map<String, Object> serviceMap) {
+        ServiceInfo service = new ServiceInfo();
+        service.setServiceName((String) serviceMap.get(NAME));
+        service.setPid(Integer.parseInt((String) serviceMap.get(PID)));
+        service.setStatus(GlusterServiceStatus.valueOf((String) 
serviceMap.get(STATUS)));
+        service.setMessage((String) serviceMap.get(MESSAGE));
+
+        return service;
+    }
+
+    public List<ServiceInfo> getServices() {
+        return services;
+    }
+}
diff --git 
a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/GlusterVolumeStatusReturnForXmlRpc.java
 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/GlusterVolumeStatusReturnForXmlRpc.java
index 0308b5e..97c5a2b 100644
--- 
a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/GlusterVolumeStatusReturnForXmlRpc.java
+++ 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/GlusterVolumeStatusReturnForXmlRpc.java
@@ -8,6 +8,7 @@
 import org.ovirt.engine.core.common.businessentities.gluster.BrickProperties;
 import 
org.ovirt.engine.core.common.businessentities.gluster.GlusterBrickEntity;
 import org.ovirt.engine.core.common.businessentities.gluster.GlusterClientInfo;
+import 
org.ovirt.engine.core.common.businessentities.gluster.GlusterServiceStatus;
 import org.ovirt.engine.core.common.businessentities.gluster.GlusterStatus;
 import 
org.ovirt.engine.core.common.businessentities.gluster.GlusterVolumeAdvancedDetails;
 import 
org.ovirt.engine.core.common.businessentities.gluster.GlusterVolumeEntity;
@@ -119,7 +120,7 @@
         if (volumeServiceInfo.containsKey(STATUS)) {
             String brickStatus = (String) volumeServiceInfo.get(STATUS);
             if (brickStatus.toUpperCase().equals(ONLINE)) {
-                serviceInfo.setStatus(GlusterStatus.UP);
+                serviceInfo.setStatus(GlusterServiceStatus.RUNNING);
                 // parse the port and pid only if the brick is online.
                 if (volumeServiceInfo.containsKey(PORT)) {
                     serviceInfo.setPort(Integer.parseInt((String) 
volumeServiceInfo.get(PORT)));
@@ -129,7 +130,7 @@
                     serviceInfo.setPid(Integer.parseInt((String) 
volumeServiceInfo.get(PID)));
                 }
             } else {
-                serviceInfo.setStatus(GlusterStatus.DOWN);
+                serviceInfo.setStatus(GlusterServiceStatus.STOPPED);
             }
         }
         return serviceInfo;
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 4d197f4..5eafdc7 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
@@ -9,6 +9,7 @@
 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.GlusterServicesReturnForXmlRpc;
 import 
org.ovirt.engine.core.vdsbroker.gluster.GlusterVolumesListReturnForXmlRpc;
 import org.ovirt.engine.core.vdsbroker.irsbroker.IsoListReturnForXmlRpc;
 import org.ovirt.engine.core.vdsbroker.irsbroker.OneUuidReturnForXmlRpc;
@@ -240,4 +241,6 @@
     StatusOnlyReturnForXmlRpc glusterHookEnable(String glusterCommand, String 
stage, String hookName);
 
     StatusOnlyReturnForXmlRpc glusterHookDisable(String glusterCommand, String 
stage, String hookName);
+
+    GlusterServicesReturnForXmlRpc glusterServicesList(String[] serviceNames);
 }
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 3c9663e..57ca888 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
@@ -230,4 +230,6 @@
     public Map<String, Object> glusterHookEnable(String glusterCommand, String 
level, String hookName);
 
     public Map<String, Object> glusterHookDisable(String glusterCommand, 
String level, String hookName);
+
+    public Map<String, Object> glusterServicesGet(String[] serviceNames);
 }
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 2c50d94..b6bfb1e 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
@@ -11,6 +11,7 @@
 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.GlusterServicesReturnForXmlRpc;
 import 
org.ovirt.engine.core.vdsbroker.gluster.GlusterVolumesListReturnForXmlRpc;
 import org.ovirt.engine.core.vdsbroker.irsbroker.IsoListReturnForXmlRpc;
 import org.ovirt.engine.core.vdsbroker.irsbroker.OneUuidReturnForXmlRpc;
@@ -1178,4 +1179,15 @@
         }
     }
 
+    @Override
+    public GlusterServicesReturnForXmlRpc glusterServicesList(String[] 
serviceNames) {
+        try {
+
+            Map<String, Object> xmlRpcReturnValue = 
vdsServer.glusterServicesGet(serviceNames);
+            GlusterServicesReturnForXmlRpc wrapper = new 
GlusterServicesReturnForXmlRpc(xmlRpcReturnValue);
+            return wrapper;
+        } catch (UndeclaredThrowableException ute) {
+            throw new XmlRpcRunTimeException(ute);
+        }
+    }
 }
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 1a72274..7e4fa9a 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
@@ -741,4 +741,6 @@
     @DefaultStringValue("Gluster hook not found")
     String GlusterHookNotFound();
 
+    @DefaultStringValue("Failed to fetch statuses of services.")
+    String GlusterServicesListFailed();
 }
diff --git 
a/frontend/webadmin/modules/gwt-common/src/main/resources/org/ovirt/engine/core/Common.gwt.xml
 
b/frontend/webadmin/modules/gwt-common/src/main/resources/org/ovirt/engine/core/Common.gwt.xml
index ae829de..61a3d12 100644
--- 
a/frontend/webadmin/modules/gwt-common/src/main/resources/org/ovirt/engine/core/Common.gwt.xml
+++ 
b/frontend/webadmin/modules/gwt-common/src/main/resources/org/ovirt/engine/core/Common.gwt.xml
@@ -289,6 +289,7 @@
                <include 
name="common/businessentities/gluster/GlusterVolumeEntity.java" />
                <include 
name="common/businessentities/gluster/GlusterVolumeType.java" />
                <include 
name="common/businessentities/gluster/GlusterStatus.java" />
+               <include 
name="common/businessentities/gluster/GlusterServiceStatus.java" />
                <include 
name="common/businessentities/gluster/TransportType.java" />
                <include 
name="common/businessentities/gluster/GlusterBrickEntity.java"/>
                <include 
name="common/businessentities/gluster/GlusterVolumeOptionEntity.java"/>


--
To view, visit http://gerrit.ovirt.org/14129
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I0c59a6f153fdcb584de206ca389a2ef7ce30fd80
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Shireesh Anjal <[email protected]>
_______________________________________________
Engine-patches mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to