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>.

Reply via email to