You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by ko...@apache.org on 2013/10/22 23:35:58 UTC

[4/5] git commit: updated refs/heads/master to eb798d3

Test for AgentShell.loadProperties

- stream closed after properties load (with commons io)
- test added

Signed-off-by: Laszlo Hornyak <la...@gmail.com>


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

Branch: refs/heads/master
Commit: eb798d319841f0c4849b556dae2290f2448960cd
Parents: 8d67e15
Author: Laszlo Hornyak <la...@gmail.com>
Authored: Tue Oct 22 22:14:49 2013 +0200
Committer: Laszlo Hornyak <la...@gmail.com>
Committed: Tue Oct 22 23:35:09 2013 +0200

----------------------------------------------------------------------
 agent/pom.xml                                  |  4 ++++
 agent/src/com/cloud/agent/AgentShell.java      | 12 +++++++++---
 agent/test/com/cloud/agent/AgentShellTest.java |  7 +++++++
 3 files changed, 20 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/eb798d31/agent/pom.xml
----------------------------------------------------------------------
diff --git a/agent/pom.xml b/agent/pom.xml
index 7b00a93..1413322 100644
--- a/agent/pom.xml
+++ b/agent/pom.xml
@@ -37,6 +37,10 @@
       <version>${project.version}</version>
     </dependency>
     <dependency>
+      <groupId>commons-io</groupId>
+      <artifactId>commons-io</artifactId>
+    </dependency>
+    <dependency>
         <groupId>commons-daemon</groupId>
         <artifactId>commons-daemon</artifactId>
     </dependency>    

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/eb798d31/agent/src/com/cloud/agent/AgentShell.java
----------------------------------------------------------------------
diff --git a/agent/src/com/cloud/agent/AgentShell.java b/agent/src/com/cloud/agent/AgentShell.java
index 70eaceb..900a13f 100644
--- a/agent/src/com/cloud/agent/AgentShell.java
+++ b/agent/src/com/cloud/agent/AgentShell.java
@@ -20,6 +20,7 @@ import java.io.File;
 import java.io.FileInputStream;
 import java.io.FileNotFoundException;
 import java.io.IOException;
+import java.io.InputStream;
 import java.lang.reflect.Constructor;
 import java.lang.reflect.InvocationTargetException;
 import java.util.ArrayList;
@@ -36,6 +37,7 @@ import javax.naming.ConfigurationException;
 import org.apache.commons.daemon.Daemon;
 import org.apache.commons.daemon.DaemonContext;
 import org.apache.commons.daemon.DaemonInitException;
+import org.apache.commons.io.IOUtils;
 import org.apache.commons.lang.math.NumberUtils;
 import org.apache.log4j.Logger;
 import org.apache.log4j.xml.DOMConfigurator;
@@ -165,7 +167,7 @@ public class AgentShell implements IAgentShell, Daemon {
             _storage.persist(name, value);
     }
 
-    private void loadProperties() throws ConfigurationException {
+    void loadProperties() throws ConfigurationException {
         final File file = PropertiesUtil.findConfigFile("agent.properties");
         if (file == null) {
             throw new ConfigurationException("Unable to find agent.properties.");
@@ -173,14 +175,18 @@ public class AgentShell implements IAgentShell, Daemon {
 
         s_logger.info("agent.properties found at " + file.getAbsolutePath());
 
+        InputStream propertiesStream = null;
         try {
-            _properties.load(new FileInputStream(file));
+            propertiesStream = new FileInputStream(file);
+            _properties.load(propertiesStream);
         } catch (final FileNotFoundException ex) {
             throw new CloudRuntimeException("Cannot find the file: "
                     + file.getAbsolutePath(), ex);
         } catch (final IOException ex) {
             throw new CloudRuntimeException("IOException in reading "
                     + file.getAbsolutePath(), ex);
+        } finally {
+            IOUtils.closeQuietly(propertiesStream);
         }
     }
 
@@ -304,7 +310,7 @@ public class AgentShell implements IAgentShell, Daemon {
     	// For KVM agent, do it specially here
     	
     	File file = new File("/etc/cloudstack/agent/log4j-cloud.xml");
-    	if(file == null || !file.exists()) {
+    	if(!file.exists()) {
     		file = PropertiesUtil.findConfigFile("log4j-cloud.xml");
     	}
     	DOMConfigurator.configureAndWatch(file.getAbsolutePath());

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/eb798d31/agent/test/com/cloud/agent/AgentShellTest.java
----------------------------------------------------------------------
diff --git a/agent/test/com/cloud/agent/AgentShellTest.java b/agent/test/com/cloud/agent/AgentShellTest.java
index 883790f..e33de48 100644
--- a/agent/test/com/cloud/agent/AgentShellTest.java
+++ b/agent/test/com/cloud/agent/AgentShellTest.java
@@ -22,4 +22,11 @@ public class AgentShellTest {
         Assert.assertEquals("pod1", shell.getPod());
         Assert.assertEquals("zone1", shell.getZone());
     }
+    @Test
+    public void loadProperties() throws ConfigurationException {
+        AgentShell shell = new AgentShell();
+        shell.loadProperties();
+        Assert.assertNotNull(shell.getProperties());
+        Assert.assertFalse(shell.getProperties().entrySet().isEmpty());
+    }
 }