Kanagaraj M has uploaded a new change for review.

Change subject: engine: fix gluster hook conten-type detection
......................................................................

engine: fix gluster hook conten-type detection

The hook will be considered as human readable('TEXT')
if mime-type has 'text' in type part. And the sub-type part will be ignored.

Modified the GlusterHookContentQuery to check server hook's content
type if serverId is provided.

Change-Id: I191d8f233c965c6b34a652fa07b2c60ef5ee6194
Bug-Url: https://bugzilla.redhat.com/973091
Signed-off-by: Kanagaraj M <kmayi...@redhat.com>
---
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/gluster/GetGlusterHookContentQuery.java
M 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/gluster/GlusterHookContentType.java
M 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/gluster/GlusterHookEntity.java
M 
backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/GlusterHooksListReturnForXmlRpc.java
4 files changed, 32 insertions(+), 20 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/08/15708/1

diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/gluster/GetGlusterHookContentQuery.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/gluster/GetGlusterHookContentQuery.java
index 0cbdb15..64dfa2a 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/gluster/GetGlusterHookContentQuery.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/gluster/GetGlusterHookContentQuery.java
@@ -4,6 +4,7 @@
 import org.apache.commons.codec.binary.StringUtils;
 import 
org.ovirt.engine.core.common.businessentities.gluster.GlusterHookContentType;
 import org.ovirt.engine.core.common.businessentities.gluster.GlusterHookEntity;
+import org.ovirt.engine.core.common.businessentities.gluster.GlusterServerHook;
 import 
org.ovirt.engine.core.common.queries.gluster.GlusterHookContentQueryParameters;
 import org.ovirt.engine.core.common.vdscommands.VDSCommandType;
 import org.ovirt.engine.core.common.vdscommands.VDSReturnValue;
@@ -23,20 +24,26 @@
         GlusterHookEntity hook = 
getGlusterHookDao().getById(getParameters().getGlusterHookId());
         String content = "";
 
-        if (hook.getContentType().equals(GlusterHookContentType.BINARY)) {
-            getQueryReturnValue().setReturnValue(content);
-            return;
-        }
         if (getParameters().getGlusterServerId() == null) {
-            content = 
getGlusterHookDao().getGlusterHookContent(getParameters().getGlusterHookId());
-        } else {
-            VDSReturnValue returnValue =
-                    runVdsCommand(VDSCommandType.GetGlusterHookContent,
-                            new 
GlusterHookVDSParameters(getParameters().getGlusterServerId(),
-                                    hook.getGlusterCommand(),
-                                    hook.getStage(),
-                                    hook.getName()));
-            content = (String) returnValue.getReturnValue();
+            if (hook.getContentType().equals(GlusterHookContentType.TEXT)) {
+                content = 
getGlusterHookDao().getGlusterHookContent(getParameters().getGlusterHookId());
+            }
+        } 
+        else {
+            GlusterServerHook serverHook =
+                    getGlusterHookDao().getGlusterServerHook(hook.getId(), 
getParameters().getGlusterServerId());
+
+            if (serverHook != null && serverHook.getContentType() == 
GlusterHookContentType.TEXT) {
+                VDSReturnValue returnValue =
+                        runVdsCommand(VDSCommandType.GetGlusterHookContent,
+                                new 
GlusterHookVDSParameters(getParameters().getGlusterServerId(),
+                                        hook.getGlusterCommand(),
+                                        hook.getStage(),
+                                        hook.getName()));
+                if (returnValue.getSucceeded()) {
+                    content = (String) returnValue.getReturnValue();
+                }
+            }
         }
 
         content = StringUtils.newStringUtf8(Base64.decodeBase64(content));
diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/gluster/GlusterHookContentType.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/gluster/GlusterHookContentType.java
index 4159fd2..8e9fe00 100644
--- 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/gluster/GlusterHookContentType.java
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/gluster/GlusterHookContentType.java
@@ -14,6 +14,14 @@
     /**
      * Hook Binary Content Type
      */
-    BINARY
+    BINARY;
 
+    public static GlusterHookContentType fromMimeType(String contentType) {
+        if (contentType != null && 
contentType.toLowerCase().startsWith("text/")) {
+            return GlusterHookContentType.TEXT;
+        }
+        else {
+            return GlusterHookContentType.BINARY;
+        }
+    }
 }
diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/gluster/GlusterHookEntity.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/gluster/GlusterHookEntity.java
index 00a191c..4ca18a8 100644
--- 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/gluster/GlusterHookEntity.java
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/gluster/GlusterHookEntity.java
@@ -113,11 +113,7 @@
 
     public void setContentType(String contentType) {
         if (contentType != null) {
-            if (contentType.toLowerCase().contains("binary")) {
-                this.contentType = GlusterHookContentType.BINARY;
-            } else {
-                this.contentType = GlusterHookContentType.TEXT;
-            }
+            this.contentType = 
GlusterHookContentType.fromMimeType(contentType);
         }
     }
 
diff --git 
a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/GlusterHooksListReturnForXmlRpc.java
 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/GlusterHooksListReturnForXmlRpc.java
index 11641f0..869420f 100644
--- 
a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/GlusterHooksListReturnForXmlRpc.java
+++ 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/GlusterHooksListReturnForXmlRpc.java
@@ -4,6 +4,7 @@
 import java.util.List;
 import java.util.Map;
 
+import 
org.ovirt.engine.core.common.businessentities.gluster.GlusterHookContentType;
 import org.ovirt.engine.core.common.businessentities.gluster.GlusterHookEntity;
 import org.ovirt.engine.core.vdsbroker.irsbroker.StatusReturnForXmlRpc;
 
@@ -43,7 +44,7 @@
         hook.setGlusterCommand(map.get(COMMAND).toString());
         hook.setStage(map.get(LEVEL).toString());
         hook.setChecksum(map.get(CHECKSUM).toString());
-        hook.setContentType(map.get(CONTENT_TYPE).toString());
+        
hook.setContentType(GlusterHookContentType.fromMimeType(map.get(CONTENT_TYPE).toString()));
         hook.setStatus(map.get(HOOK_STATUS).toString());
         return hook;
     }


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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I191d8f233c965c6b34a652fa07b2c60ef5ee6194
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Kanagaraj M <kmayi...@redhat.com>
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to