This is an automated email from the ASF dual-hosted git repository. bhaisaab pushed a commit to branch debian9-systemvmtemplate in repository https://gitbox.apache.org/repos/asf/cloudstack.git
commit a752c86fb671c31f1b6ad83436276abc81246a4d Author: Rohit Yadav <rohit.ya...@shapeblue.com> AuthorDate: Mon Nov 20 18:43:52 2017 +0530 make console proxy launch faster Signed-off-by: Rohit Yadav <rohit.ya...@shapeblue.com> --- .../consoleproxy/ConsoleProxyResource.java | 9 +++++-- .../src/com/cloud/consoleproxy/ConsoleProxy.java | 28 ++++------------------ .../src/main/java/com/cloud/utils/ReflectUtil.java | 2 +- 3 files changed, 13 insertions(+), 26 deletions(-) diff --git a/agent/src/com/cloud/agent/resource/consoleproxy/ConsoleProxyResource.java b/agent/src/com/cloud/agent/resource/consoleproxy/ConsoleProxyResource.java index 6e4f8af..24e8257 100644 --- a/agent/src/com/cloud/agent/resource/consoleproxy/ConsoleProxyResource.java +++ b/agent/src/com/cloud/agent/resource/consoleproxy/ConsoleProxyResource.java @@ -317,9 +317,9 @@ public class ConsoleProxyResource extends ServerResourceBase implements ServerRe private void launchConsoleProxy(final byte[] ksBits, final String ksPassword, final String encryptorPassword) { final Object resource = this; s_logger.info("Building class loader for com.cloud.consoleproxy.ConsoleProxy"); - final ClassLoader loader = ReflectUtil.getClassLoaderForJar("console-proxy"); + final ClassLoader loader = ReflectUtil.getClassLoaderForName("console-proxy"); if (_consoleProxyMain == null) { - s_logger.info("Running com.cloud.consoleproxy.ConsoleProxy"); + s_logger.info("Running com.cloud.consoleproxy.ConsoleProxy with encryptor password=" + encryptorPassword); _consoleProxyMain = new Thread(new ManagedContextRunnable() { @Override protected void runInContext() { @@ -441,6 +441,11 @@ public class ConsoleProxyResource extends ServerResourceBase implements ServerRe } @Override + public boolean stop() { + return true; + } + + @Override public void setName(String name) { } diff --git a/services/console-proxy/server/src/com/cloud/consoleproxy/ConsoleProxy.java b/services/console-proxy/server/src/com/cloud/consoleproxy/ConsoleProxy.java index 44d6a26..f0c3c4e 100644 --- a/services/console-proxy/server/src/com/cloud/consoleproxy/ConsoleProxy.java +++ b/services/console-proxy/server/src/com/cloud/consoleproxy/ConsoleProxy.java @@ -26,14 +26,11 @@ import java.lang.reflect.Method; import java.net.InetSocketAddress; import java.net.URISyntaxException; import java.net.URL; -import java.security.NoSuchAlgorithmException; -import java.security.SecureRandom; import java.util.Hashtable; import java.util.Map; import java.util.Properties; import java.util.concurrent.Executor; -import org.apache.commons.codec.binary.Base64; import org.apache.log4j.xml.DOMConfigurator; import com.cloud.consoleproxy.util.Logger; @@ -74,25 +71,11 @@ public class ConsoleProxy { static String factoryClzName; static boolean standaloneStart = false; - static String encryptorPassword = genDefaultEncryptorPassword(); - - private static String genDefaultEncryptorPassword() { - try { - SecureRandom random = SecureRandom.getInstance("SHA1PRNG"); - - byte[] randomBytes = new byte[16]; - random.nextBytes(randomBytes); - return Base64.encodeBase64String(randomBytes); - } catch (NoSuchAlgorithmException e) { - s_logger.error("Unexpected exception ", e); - assert (false); - } - - return "Dummy"; - } + static String encryptorPassword = "Dummy"; private static void configLog4j() { - URL configUrl = System.class.getResource("/conf/log4j-cloud.xml"); + final ClassLoader loader = ReflectUtil.getClassLoaderForName("conf"); + URL configUrl = loader.getResource("/conf/log4j-cloud.xml"); if (configUrl == null) configUrl = ClassLoader.getSystemResource("log4j-cloud.xml"); @@ -250,6 +233,7 @@ public class ConsoleProxy { } public static void startWithContext(Properties conf, Object context, byte[] ksBits, String ksPassword, String password) { + setEncryptorPassword(password); configLog4j(); Logger.setFactory(new ConsoleProxyLoggerFactory()); s_logger.info("Start console proxy with context"); @@ -260,14 +244,12 @@ public class ConsoleProxy { } } - encryptorPassword = password; - // Using reflection to setup private/secure communication channel towards management server ConsoleProxy.context = context; ConsoleProxy.ksBits = ksBits; ConsoleProxy.ksPassword = ksPassword; try { - final ClassLoader loader = ReflectUtil.getClassLoaderForJar("agent"); + final ClassLoader loader = ReflectUtil.getClassLoaderForName("agent"); Class<?> contextClazz = loader.loadClass("com.cloud.agent.resource.consoleproxy.ConsoleProxyResource"); authMethod = contextClazz.getDeclaredMethod("authenticateConsoleAccess", String.class, String.class, String.class, String.class, String.class, Boolean.class); reportMethod = contextClazz.getDeclaredMethod("reportLoadInfo", String.class); diff --git a/utils/src/main/java/com/cloud/utils/ReflectUtil.java b/utils/src/main/java/com/cloud/utils/ReflectUtil.java index e166845..1d31093 100644 --- a/utils/src/main/java/com/cloud/utils/ReflectUtil.java +++ b/utils/src/main/java/com/cloud/utils/ReflectUtil.java @@ -217,7 +217,7 @@ public class ReflectUtil { * @param name * @return returns ClassLoader */ - public static ClassLoader getClassLoaderForJar(final String name) { + public static ClassLoader getClassLoaderForName(final String name) { final URL[] urls = ((URLClassLoader) (Thread.currentThread().getContextClassLoader())).getURLs(); final List<URL> searchUrls = new ArrayList<>(); for (final URL url: urls) { -- To stop receiving notification emails like this one, please contact "commits@cloudstack.apache.org" <commits@cloudstack.apache.org>.