Repository: openmeetings
Updated Branches:
  refs/heads/master 94bcbf792 -> f2a22dcd7


[OPENMEETINGS-1648] external process TTL is made configurable


Project: http://git-wip-us.apache.org/repos/asf/openmeetings/repo
Commit: http://git-wip-us.apache.org/repos/asf/openmeetings/commit/f2a22dcd
Tree: http://git-wip-us.apache.org/repos/asf/openmeetings/tree/f2a22dcd
Diff: http://git-wip-us.apache.org/repos/asf/openmeetings/diff/f2a22dcd

Branch: refs/heads/master
Commit: f2a22dcd7c653a4e1489d0f2445c09bd2c1417ec
Parents: 94bcbf7
Author: Maxim Solodovnik <[email protected]>
Authored: Mon May 22 14:24:57 2017 +0700
Committer: Maxim Solodovnik <[email protected]>
Committed: Mon May 22 14:27:17 2017 +0700

----------------------------------------------------------------------
 .../openmeetings/core/remote/ScopeApplicationAdapter.java       | 4 ++++
 .../org/apache/openmeetings/db/dao/basic/ConfigurationDao.java  | 5 +++++
 .../org/apache/openmeetings/installation/ImportInitvalues.java  | 3 +++
 .../org/apache/openmeetings/util/OpenmeetingsVariables.java     | 2 ++
 .../org/apache/openmeetings/util/process/ProcessHelper.java     | 3 ++-
 5 files changed, 16 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/openmeetings/blob/f2a22dcd/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ScopeApplicationAdapter.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ScopeApplicationAdapter.java
 
b/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ScopeApplicationAdapter.java
index a608d57..cceaf2f 100644
--- 
a/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ScopeApplicationAdapter.java
+++ 
b/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ScopeApplicationAdapter.java
@@ -18,11 +18,13 @@
  */
 package org.apache.openmeetings.core.remote;
 
+import static 
org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_EXT_PROCESS_TTL;
 import static 
org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_FLASH_SECURE;
 import static 
org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_FLASH_SECURE_PROXY;
 import static 
org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_FLASH_VIDEO_CODEC;
 import static 
org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_HEADER_CSP;
 import static 
org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_HEADER_XFRAME;
+import static 
org.apache.openmeetings.util.OpenmeetingsVariables.EXT_PROCESS_TTL;
 import static 
org.apache.openmeetings.util.OpenmeetingsVariables.HEADER_CSP_SELF;
 import static 
org.apache.openmeetings.util.OpenmeetingsVariables.HEADER_XFRAME_SAMEORIGIN;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
@@ -157,9 +159,11 @@ public class ScopeApplicationAdapter extends 
MultiThreadedApplicationAdapter imp
                        }
 
                        InitializationContainer.initComplete = true;
+                       // Init properties
                        IApplication iapp = 
(IApplication)Application.get(wicketApplicationName);
                        
iapp.setXFrameOptions(cfgDao.getConfValue(CONFIG_HEADER_XFRAME, String.class, 
HEADER_XFRAME_SAMEORIGIN));
                        
iapp.setContentSecurityPolicy(cfgDao.getConfValue(CONFIG_HEADER_CSP, 
String.class, HEADER_CSP_SELF));
+                       EXT_PROCESS_TTL = 
cfgDao.getConfValue(CONFIG_EXT_PROCESS_TTL, Integer.class, "" + 
EXT_PROCESS_TTL);
                        Version.logOMStarted();
                        recordingDao.resetProcessingStatus(); //we are starting 
so all processing recordings are now errors
                        sessionManager.clearCache(); // 'sticky' clients should 
be cleaned up from DB

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/f2a22dcd/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/basic/ConfigurationDao.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/basic/ConfigurationDao.java
 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/basic/ConfigurationDao.java
index 72cfc6e..85c7ed4 100644
--- 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/basic/ConfigurationDao.java
+++ 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/basic/ConfigurationDao.java
@@ -22,6 +22,7 @@ import static 
org.apache.openmeetings.util.OpenmeetingsVariables.APPLICATION_NAM
 import static 
org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_APPLICATION_BASE_URL;
 import static 
org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_APPLICATION_NAME;
 import static 
org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_CRYPT_KEY;
+import static 
org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_EXT_PROCESS_TTL;
 import static 
org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_HEADER_CSP;
 import static 
org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_HEADER_XFRAME;
 import static 
org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_MAX_UPLOAD_SIZE_KEY;
@@ -29,6 +30,7 @@ import static 
org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_SIP_ENAB
 import static 
org.apache.openmeetings.util.OpenmeetingsVariables.DEFAULT_APP_NAME;
 import static 
org.apache.openmeetings.util.OpenmeetingsVariables.DEFAULT_BASE_URL;
 import static 
org.apache.openmeetings.util.OpenmeetingsVariables.DEFAULT_MAX_UPLOAD_SIZE;
+import static 
org.apache.openmeetings.util.OpenmeetingsVariables.EXT_PROCESS_TTL;
 import static 
org.apache.openmeetings.util.OpenmeetingsVariables.configKeyCryptClassName;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
 import static 
org.apache.openmeetings.util.OpenmeetingsVariables.whiteboardDrawStatus;
@@ -263,6 +265,9 @@ public class ConfigurationDao implements 
IDataProviderDao<Configuration> {
                                }
                        }
                                break;
+                       case CONFIG_EXT_PROCESS_TTL:
+                               EXT_PROCESS_TTL = Integer.parseInt(value);
+                               break;
                }
                return entity;
        }

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/f2a22dcd/openmeetings-install/src/main/java/org/apache/openmeetings/installation/ImportInitvalues.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-install/src/main/java/org/apache/openmeetings/installation/ImportInitvalues.java
 
b/openmeetings-install/src/main/java/org/apache/openmeetings/installation/ImportInitvalues.java
index 688b6ec..b7b7b81 100644
--- 
a/openmeetings-install/src/main/java/org/apache/openmeetings/installation/ImportInitvalues.java
+++ 
b/openmeetings-install/src/main/java/org/apache/openmeetings/installation/ImportInitvalues.java
@@ -32,6 +32,7 @@ import static 
org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_DEFAULT_
 import static 
org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_DEFAULT_LDAP_ID;
 import static 
org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_DOCUMENT_DPI;
 import static 
org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_DOCUMENT_QUALITY;
+import static 
org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_EXT_PROCESS_TTL;
 import static 
org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_FLASH_SECURE;
 import static 
org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_FLASH_SECURE_PROXY;
 import static 
org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_FLASH_VIDEO_CODEC;
@@ -58,6 +59,7 @@ import static 
org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_SOAP_REG
 import static 
org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_SYSTEM_EMAIL;
 import static 
org.apache.openmeetings.util.OpenmeetingsVariables.DEFAULT_APP_NAME;
 import static 
org.apache.openmeetings.util.OpenmeetingsVariables.DEFAULT_MAX_UPLOAD_SIZE;
+import static 
org.apache.openmeetings.util.OpenmeetingsVariables.EXT_PROCESS_TTL;
 import static 
org.apache.openmeetings.util.OpenmeetingsVariables.HEADER_CSP_SELF;
 import static 
org.apache.openmeetings.util.OpenmeetingsVariables.HEADER_XFRAME_SAMEORIGIN;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.LEVEL_ADMIN;
@@ -367,6 +369,7 @@ public class ImportInitvalues {
 
                cfgDao.add(CONFIG_HEADER_XFRAME, HEADER_XFRAME_SAMEORIGIN, 
null, "Value for 'X-Frame-Options' header (default: DENY), more info: 
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Frame-Options";);
                cfgDao.add(CONFIG_HEADER_CSP, HEADER_CSP_SELF, null, "Value for 
'Content-Security-Policy' header (default: default-src 'self'; style-src 'self' 
'unsafe-inline'; script-src 'self' 'unsafe-inline' 'unsafe-eval';), have to be 
modified to enable Google analytics site: 
https://content-security-policy.com/";);
+               cfgDao.add(CONFIG_EXT_PROCESS_TTL, "" + EXT_PROCESS_TTL, null, 
String.format("Time to live in minutes for external processes such as 
conversion via ffmpeg (default %s minutes)", EXT_PROCESS_TTL));
                log.debug("Configurations ADDED");
        }
 

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/f2a22dcd/openmeetings-util/src/main/java/org/apache/openmeetings/util/OpenmeetingsVariables.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-util/src/main/java/org/apache/openmeetings/util/OpenmeetingsVariables.java
 
b/openmeetings-util/src/main/java/org/apache/openmeetings/util/OpenmeetingsVariables.java
index eb91477..4ea8b8a 100644
--- 
a/openmeetings-util/src/main/java/org/apache/openmeetings/util/OpenmeetingsVariables.java
+++ 
b/openmeetings-util/src/main/java/org/apache/openmeetings/util/OpenmeetingsVariables.java
@@ -56,6 +56,7 @@ public class OpenmeetingsVariables {
        public static final String CONFIG_FLASH_VIDEO_CODEC = 
"flash.video.codec";
        public static final String CONFIG_FLASH_VIDEO_FPS = "flash.video.fps";
        public static final String CONFIG_HEADER_XFRAME = 
"header.x.frame.options";
+       public static final String CONFIG_EXT_PROCESS_TTL = 
"external.process.ttl";
        public static final String HEADER_XFRAME_SAMEORIGIN = "SAMEORIGIN";
        public static final String HEADER_CSP_SELF = "default-src 'self'; 
style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline' 
'unsafe-eval';";
        public static final String CONFIG_HEADER_CSP = 
"header.content.security.policy";
@@ -79,4 +80,5 @@ public class OpenmeetingsVariables {
        public static String APPLICATION_NAME = null;
        public static final String DEFAULT_APP_NAME = "OpenMeetings";
        public static final long DEFAULT_MAX_UPLOAD_SIZE = 1024 * 1024 * 1024; 
// 1GB
+       public static int EXT_PROCESS_TTL = 20;
 }

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/f2a22dcd/openmeetings-util/src/main/java/org/apache/openmeetings/util/process/ProcessHelper.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-util/src/main/java/org/apache/openmeetings/util/process/ProcessHelper.java
 
b/openmeetings-util/src/main/java/org/apache/openmeetings/util/process/ProcessHelper.java
index ebb0a54..b31d3ad 100644
--- 
a/openmeetings-util/src/main/java/org/apache/openmeetings/util/process/ProcessHelper.java
+++ 
b/openmeetings-util/src/main/java/org/apache/openmeetings/util/process/ProcessHelper.java
@@ -19,6 +19,7 @@
 package org.apache.openmeetings.util.process;
 
 import static java.nio.charset.StandardCharsets.UTF_8;
+import static 
org.apache.openmeetings.util.OpenmeetingsVariables.EXT_PROCESS_TTL;
 
 import java.util.HashMap;
 import java.util.Map;
@@ -93,7 +94,7 @@ public class ProcessHelper {
                        // 20-minute timeout for command execution
                        // FFMPEG conversion of Recordings may take a real long 
time until
                        // its finished
-                       proc.waitFor(20, TimeUnit.MINUTES);
+                       proc.waitFor(EXT_PROCESS_TTL, TimeUnit.MINUTES);
 
                        res.setExitCode(proc.exitValue());
                        res.setOut(IOUtils.toString(proc.getInputStream(), 
UTF_8));

Reply via email to