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));
