Sahina Bose has uploaded a new change for review.

Change subject: engine:VDS command to update hook content
......................................................................

engine:VDS command to update hook content

VDS command to update content of gluster hook
on a server from the engine.
Gluster hook is identified by gluster command,
stage and name.

Change-Id: I4dc8e12c7d7760114c392db19a56c9cefd4b5763
Signed-off-by: Sahina Bose <[email protected]>
---
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
M 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/vdscommands/gluster/GlusterHookVDSParameters.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/UpdateGlusterHookVDSCommand.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
10 files changed, 79 insertions(+), 6 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/38/14638/1

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 3c3bda0..04a7089 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
@@ -375,6 +375,7 @@
     GlusterHookDisableFailed(4503),
     GlusterHookNotFound(4504),
     GlusterHookConflict(4505),
+    GlusterHookUpdateFailed(4507),
 
     UnicodeArgumentException(4900),
 
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 455a725..9ec1600 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
@@ -142,6 +142,7 @@
     GlusterHooksList("org.ovirt.engine.core.vdsbroker.gluster"),
     GetGlusterHostUUID("org.ovirt.engine.core.vdsbroker.gluster"),
     GlusterServicesList("org.ovirt.engine.core.vdsbroker.gluster"),
+    UpdateGlusterHook("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/GlusterHookVDSParameters.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/vdscommands/gluster/GlusterHookVDSParameters.java
index ec26c44..9844c2b 100644
--- 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/vdscommands/gluster/GlusterHookVDSParameters.java
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/vdscommands/gluster/GlusterHookVDSParameters.java
@@ -6,13 +6,14 @@
 
 /**
  * Gluster Hook VDS parameter class with gluster command, hook name, and level 
as parameters. <br>
- * This will be used directly by Enable and Disable Gluster Hook VDS commands 
<br>
+ * This will be used by Gluster Hook VDS commands <br>
  */
 public class GlusterHookVDSParameters extends VdsIdVDSCommandParametersBase {
 
     private String glusterCommand;
     private String hookName;
     private GlusterHookStage stage;
+    private String content;
 
     public GlusterHookVDSParameters(Guid serverId, String glusterCommand, 
GlusterHookStage stage, String hookName) {
         super(serverId);
@@ -21,6 +22,30 @@
         setHookName(hookName);
     }
 
+    /**
+     *
+     * @param serverId
+     * @param glusterCommand - gluster command the hook is intended for
+     * @param stage - PRE/POST stage
+     * @param hookName - file name
+     * @param content - non-encoded text content
+     */
+    public GlusterHookVDSParameters(Guid serverId, String glusterCommand, 
GlusterHookStage stage, String hookName, String content) {
+        super(serverId);
+        setGlusterCommand(glusterCommand);
+        setHookStage(stage);
+        setHookName(hookName);
+        setHookContent(content);
+    }
+
+    public String getHookContent() {
+        return content;
+    }
+
+    public void setHookContent(String content) {
+        this.content = content;
+    }
+
     public String getGlusterCommand() {
         return glusterCommand;
     }
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 d9520da..e3c2f1a 100644
--- 
a/backend/manager/modules/dal/src/main/resources/bundles/VdsmErrors.properties
+++ 
b/backend/manager/modules/dal/src/main/resources/bundles/VdsmErrors.properties
@@ -352,6 +352,7 @@
 GlusterHookListException=Failed to get gluster hook list
 GlusterHostUUIDNotFound=Gluster host UUID not found
 GlusterHookConflict=Found conflicting hooks
+GlusterHookUpdateFailed=Failed to update gluster hook
 
 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 390e2e2..0e2a804 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
@@ -51,6 +51,7 @@
         case GlusterHostUUIDNotFound:
         case GlusterHookConflict:
         case GlusterServicesListFailed:
+        case GlusterHookUpdateFailed:
             // 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/UpdateGlusterHookVDSCommand.java
 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/UpdateGlusterHookVDSCommand.java
new file mode 100644
index 0000000..c1b387e
--- /dev/null
+++ 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/UpdateGlusterHookVDSCommand.java
@@ -0,0 +1,27 @@
+package org.ovirt.engine.core.vdsbroker.gluster;
+
+import org.apache.commons.codec.binary.Base64;
+import 
org.ovirt.engine.core.common.vdscommands.gluster.GlusterHookVDSParameters;
+
+public class UpdateGlusterHookVDSCommand<P extends GlusterHookVDSParameters> 
extends AbstractGlusterBrokerCommand<P> {
+
+    public UpdateGlusterHookVDSCommand(P parameters) {
+        super(parameters);
+    }
+
+    @Override
+    protected void ExecuteVdsBrokerCommand() {
+        String encodedString = "";
+
+        if (getParameters().getHookContent() != null) {
+            encodedString = 
Base64.encodeBase64String(getParameters().getHookContent().getBytes());
+        }
+        status =
+                
getBroker().glusterHookUpdate(getParameters().getGlusterCommand(),
+                        getParameters().getHookStage().toString(),
+                        getParameters().getHookName(),
+                        encodedString);
+
+        ProceedProxyReturnValue();
+    }
+}
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 28c7d88..440b6e1 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
@@ -5,12 +5,12 @@
 import java.util.concurrent.FutureTask;
 
 import org.ovirt.engine.core.compat.Guid;
+import org.ovirt.engine.core.vdsbroker.gluster.GlusterHooksListReturnForXmlRpc;
 import 
org.ovirt.engine.core.vdsbroker.gluster.GlusterServersListReturnForXmlRpc;
+import org.ovirt.engine.core.vdsbroker.gluster.GlusterServicesReturnForXmlRpc;
 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.GlusterHooksListReturnForXmlRpc;
-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;
@@ -248,4 +248,6 @@
     OneUuidReturnForXmlRpc glusterHostUUIDGet();
 
     GlusterServicesReturnForXmlRpc glusterServicesList(String[] serviceNames);
+
+    StatusOnlyReturnForXmlRpc glusterHookUpdate(String glusterCommand, String 
stage, String hookName, String content);
 }
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 cfd9691..3af45ac 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
@@ -236,4 +236,6 @@
     public Map<String, Object> glusterHostUUIDGet();
 
     public Map<String, Object> glusterServicesGet(String[] serviceNames);
+
+    public Map<String,Object> glusterHookUpdate(String glusterCommand, String 
stage, String hookName, String content);
 }
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 e435adb..705a6f5 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
@@ -7,12 +7,12 @@
 
 import org.apache.commons.httpclient.HttpClient;
 import org.ovirt.engine.core.compat.Guid;
+import org.ovirt.engine.core.vdsbroker.gluster.GlusterHooksListReturnForXmlRpc;
 import 
org.ovirt.engine.core.vdsbroker.gluster.GlusterServersListReturnForXmlRpc;
+import org.ovirt.engine.core.vdsbroker.gluster.GlusterServicesReturnForXmlRpc;
 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.GlusterHooksListReturnForXmlRpc;
-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;
@@ -1205,7 +1205,6 @@
     @Override
     public GlusterServicesReturnForXmlRpc glusterServicesList(String[] 
serviceNames) {
         try {
-
             Map<String, Object> xmlRpcReturnValue = 
vdsServer.glusterServicesGet(serviceNames);
             GlusterServicesReturnForXmlRpc wrapper = new 
GlusterServicesReturnForXmlRpc(xmlRpcReturnValue);
             return wrapper;
@@ -1213,4 +1212,15 @@
             throw new XmlRpcRunTimeException(ute);
         }
     }
+
+    @Override
+    public StatusOnlyReturnForXmlRpc glusterHookUpdate(String glusterCommand, 
String stage, String hookName, String content) {
+        try {
+            Map<String, Object> xmlRpcReturnValue = 
vdsServer.glusterHookUpdate(glusterCommand, stage, hookName, content);
+            StatusOnlyReturnForXmlRpc wrapper = new 
StatusOnlyReturnForXmlRpc(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 06c0f27..95d5a48 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
@@ -745,4 +745,7 @@
 
     @DefaultStringValue("Failed to fetch statuses of services.")
     String GlusterServicesListFailed();
+
+    @DefaultStringValue("Failed to update gluster hook.")
+    String GlusterHookUpdateFailed();
 }


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

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

Reply via email to