Author: mahadev
Date: Tue Jan 22 18:42:54 2013
New Revision: 1437090

URL: http://svn.apache.org/viewvc?rev=1437090&view=rev
Log:
AMBARI-1238. AmbariMetaInfoTest getServices() acceptance test failure. 
(Siddharth Wagle via mahadev)

Modified:
    incubator/ambari/trunk/CHANGES.txt
    
incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/api/services/AmbariMetaInfo.java
    
incubator/ambari/trunk/ambari-server/src/test/java/org/apache/ambari/server/api/services/AmbariMetaInfoTest.java

Modified: incubator/ambari/trunk/CHANGES.txt
URL: 
http://svn.apache.org/viewvc/incubator/ambari/trunk/CHANGES.txt?rev=1437090&r1=1437089&r2=1437090&view=diff
==============================================================================
--- incubator/ambari/trunk/CHANGES.txt (original)
+++ incubator/ambari/trunk/CHANGES.txt Tue Jan 22 18:42:54 2013
@@ -136,6 +136,9 @@ Trunk (unreleased changes):
  AMBARI-1201. Improve Agent Registration and Heartbeat json. (Nate Cole via
  mahadev)
 
+ AMBARI-1238. AmbariMetaInfoTest getServices() acceptance test failure. 
+ (Siddharth Wagle via mahadev)
+
 AMBARI-1.2.0 branch:
 
  INCOMPATIBLE CHANGES

Modified: 
incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/api/services/AmbariMetaInfo.java
URL: 
http://svn.apache.org/viewvc/incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/api/services/AmbariMetaInfo.java?rev=1437090&r1=1437089&r2=1437090&view=diff
==============================================================================
--- 
incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/api/services/AmbariMetaInfo.java
 (original)
+++ 
incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/api/services/AmbariMetaInfo.java
 Tue Jan 22 18:42:54 2013
@@ -31,6 +31,7 @@ import javax.xml.parsers.DocumentBuilder
 import javax.xml.parsers.DocumentBuilderFactory;
 import javax.xml.parsers.ParserConfigurationException;
 import java.io.File;
+import java.io.FilenameFilter;
 import java.io.IOException;
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -75,7 +76,14 @@ public class AmbariMetaInfo {
     private static final String PROPERTY_XML_PROPERTY_NAME = "name";
     private static final String PROPERTY_XML_PROPERTY_VALUE = "value";
     private static final String PROPERTY_XML_PROPERTY_DESCRIPTION = 
"description";
-
+    private static final FilenameFilter FILENAME_FILTER = new FilenameFilter() 
{
+      @Override
+      public boolean accept(File dir, String s) {
+        if (s.equals(".svn") || s.equals(".git"))
+          return false;
+        return true;
+      }
+    };
 
     /**
      * Ambari Meta Info Object
@@ -357,11 +365,11 @@ public class AmbariMetaInfo {
             throw new IOException("" + Configuration.METADETA_DIR_PATH
                     + " should be a directory with stack"
                     + ", stackRoot=" + stackRoot.getAbsolutePath());
-        File[] stacks = stackRoot.listFiles();
+        File[] stacks = stackRoot.listFiles(FILENAME_FILTER);
         for (File stackFolder : stacks) {
             if (stackFolder.isFile())
                 continue;
-            File[] concretStacks = stackFolder.listFiles();
+            File[] concretStacks = stackFolder.listFiles(FILENAME_FILTER);
             for (File stack : concretStacks) {
                 if (stack.isFile())
                     continue;
@@ -395,7 +403,7 @@ public class AmbariMetaInfo {
                 // Get services for this stack
                 File servicesRootFolder = new File(stack.getAbsolutePath()
                         + File.separator + SERVICES_FOLDER_NAME);
-                File[] servicesFolders = servicesRootFolder.listFiles();
+                File[] servicesFolders = 
servicesRootFolder.listFiles(FILENAME_FILTER);
 
                 if (servicesFolders != null) {
                     for (File serviceFolder : servicesFolders) {
@@ -421,7 +429,7 @@ public class AmbariMetaInfo {
                         // Get all properties from all "configs/*-site.xml" 
files
                         File serviceConfigFolder = new 
File(serviceFolder.getAbsolutePath()
                                 + File.separator + SERVICE_CONFIG_FOLDER_NAME);
-                        File[] configFiles = serviceConfigFolder.listFiles();
+                        File[] configFiles = 
serviceConfigFolder.listFiles(FILENAME_FILTER);
                         if (configFiles != null) {
                             for (File config : configFiles) {
                                 if 
(config.getName().endsWith(SERVICE_CONFIG_FILE_NAME_POSTFIX)) {

Modified: 
incubator/ambari/trunk/ambari-server/src/test/java/org/apache/ambari/server/api/services/AmbariMetaInfoTest.java
URL: 
http://svn.apache.org/viewvc/incubator/ambari/trunk/ambari-server/src/test/java/org/apache/ambari/server/api/services/AmbariMetaInfoTest.java?rev=1437090&r1=1437089&r2=1437090&view=diff
==============================================================================
--- 
incubator/ambari/trunk/ambari-server/src/test/java/org/apache/ambari/server/api/services/AmbariMetaInfoTest.java
 (original)
+++ 
incubator/ambari/trunk/ambari-server/src/test/java/org/apache/ambari/server/api/services/AmbariMetaInfoTest.java
 Tue Jan 22 18:42:54 2013
@@ -27,18 +27,23 @@ import static org.junit.Assert.assertTru
 import static org.junit.Assert.fail;
 
 import java.io.File;
+import java.io.IOException;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
+import org.apache.commons.io.FileUtils;
 
+import com.apple.eawt.AppEvent;
 import junit.framework.Assert;
 
 import org.apache.ambari.server.state.ComponentInfo;
 import org.apache.ambari.server.state.RepositoryInfo;
 import org.apache.ambari.server.state.ServiceInfo;
 import org.junit.Before;
+import org.junit.Rule;
 import org.junit.Test;
+import org.junit.rules.TemporaryFolder;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -53,6 +58,9 @@ public class AmbariMetaInfoTest {
   private final static Logger LOG =
       LoggerFactory.getLogger(AmbariMetaInfoTest.class);
 
+  @Rule
+  public TemporaryFolder tmpFolder = new TemporaryFolder();
+
   @Before
   public void before() throws Exception {
     File stackRoot = new File("src/test/resources/stacks");
@@ -208,4 +216,30 @@ public class AmbariMetaInfoTest {
     assertEquals(3, centos6Cnt.size());
   }
 
+  @Test
+  public void testMetaInfoFileFilter() throws Exception {
+    String buildDir = tmpFolder.getRoot().getAbsolutePath();
+    File stackRoot = new File("src/test/resources/stacks");
+    File stackRootTmp = new File(buildDir + "/ambari-metaInfo"); 
stackRootTmp.mkdir();
+    FileUtils.copyDirectory(stackRoot, stackRootTmp);
+    AmbariMetaInfo ambariMetaInfo = new AmbariMetaInfo(stackRootTmp);
+    File f1, f2, f3;
+    f1 = new File(stackRootTmp.getAbsolutePath() + "/001.svn"); 
f1.createNewFile();
+    f2 = new File(stackRootTmp.getAbsolutePath() + "/abcd.svn/001.svn"); 
f2.mkdirs(); f2.createNewFile();
+    f3 = new File(stackRootTmp.getAbsolutePath() + "/.svn");
+    if (!f3.exists()) {
+      f3.createNewFile();
+    }
+    ambariMetaInfo.init();
+    // Tests the stack is loaded as expected
+    getServices();
+    getComponentsByService();
+    getComponentCategory();
+    getSupportedConfigs();
+    // Check .svn is not part of the stack but abcd.svn is
+    Assert.assertNotNull(ambariMetaInfo.getStackInfo("abcd.svn", "001.svn"));
+    Assert.assertNull(ambariMetaInfo.getStackInfo(".svn", ""));
+    Assert.assertNull(ambariMetaInfo.getServices(".svn", ""));
+  }
+
 }


Reply via email to