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", ""));
+ }
+
}