You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by bh...@apache.org on 2017/11/23 09:18:28 UTC
[cloudstack] 15/18: make console proxy launch faster
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 074b3f23ffd867a2c6a5584300e94b34ed4afc10
Author: Rohit Yadav <ro...@shapeblue.com>
AuthorDate: Mon Nov 20 18:43:52 2017 +0530
make console proxy launch faster
Signed-off-by: Rohit Yadav <ro...@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" <co...@cloudstack.apache.org>.