You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by tt...@apache.org on 2016/11/03 16:21:05 UTC
ambari git commit: AMBARI-18765 - Services with invalid themes hang
the UI when you attempt to add them
Repository: ambari
Updated Branches:
refs/heads/branch-2.4 1fa50522d -> fa7c8effb
AMBARI-18765 - Services with invalid themes hang the UI when you attempt to add them
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/fa7c8eff
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/fa7c8eff
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/fa7c8eff
Branch: refs/heads/branch-2.4
Commit: fa7c8effb08d3f3afc8d50448ccc78a0b9497edf
Parents: 1fa5052
Author: Tim Thorpe <tt...@apache.org>
Authored: Thu Nov 3 09:20:19 2016 -0700
Committer: Tim Thorpe <tt...@apache.org>
Committed: Thu Nov 3 09:20:19 2016 -0700
----------------------------------------------------------------------
.../apache/ambari/server/stack/ServiceModule.java | 15 ++++++++++++---
.../server/stack/StackManagerExtensionTest.java | 9 +++++++++
.../extensions/EXT/0.1/services/OOZIE2/metainfo.xml | 8 ++++++++
.../0.1/services/OOZIE2/themes/working_theme.json | 5 +++++
.../extensions/EXT/0.2/services/OOZIE2/metainfo.xml | 8 ++++++++
.../EXT/0.2/services/OOZIE2/themes/broken_theme.json | 3 +++
6 files changed, 45 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ambari/blob/fa7c8eff/ambari-server/src/main/java/org/apache/ambari/server/stack/ServiceModule.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/stack/ServiceModule.java b/ambari-server/src/main/java/org/apache/ambari/server/stack/ServiceModule.java
index 650bdf1..1293e94 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/stack/ServiceModule.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/stack/ServiceModule.java
@@ -42,6 +42,7 @@ import org.slf4j.LoggerFactory;
import javax.annotation.Nullable;
import java.io.File;
+import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
@@ -417,14 +418,22 @@ public class ServiceModule extends BaseModule<ServiceModule, ServiceInfo> implem
String themesDir = serviceDirectory.getAbsolutePath() + File.separator + serviceInfo.getThemesDir();
if (serviceInfo.getThemes() != null) {
+ List<ThemeInfo> themes = new ArrayList<ThemeInfo>(serviceInfo.getThemes().size());
for (ThemeInfo themeInfo : serviceInfo.getThemes()) {
File themeFile = new File(themesDir + File.separator + themeInfo.getFileName());
ThemeModule module = new ThemeModule(themeFile, themeInfo);
- themeModules.put(module.getId(), module);
+ if (module.isValid()) {
+ themeModules.put(module.getId(), module);
+ themes.add(themeInfo);
+ }
+ else {
+ //lets not fail if theme contain errors
+ LOG.error("Invalid theme {} for service {}", themeInfo.getFileName(), serviceInfo.getName());
+ }
}
+ //filter out the invalid themes
+ serviceInfo.setThemes(themes);
}
-
- //lets not fail if theme contain errors
}
/**
http://git-wip-us.apache.org/repos/asf/ambari/blob/fa7c8eff/ambari-server/src/test/java/org/apache/ambari/server/stack/StackManagerExtensionTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/stack/StackManagerExtensionTest.java b/ambari-server/src/test/java/org/apache/ambari/server/stack/StackManagerExtensionTest.java
index 044f2c4..0676568 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/stack/StackManagerExtensionTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/stack/StackManagerExtensionTest.java
@@ -45,6 +45,7 @@ import org.apache.ambari.server.orm.entities.StackEntity;
import org.apache.ambari.server.state.ExtensionInfo;
import org.apache.ambari.server.state.ServiceInfo;
import org.apache.ambari.server.state.StackInfo;
+import org.apache.ambari.server.state.ThemeInfo;
import org.apache.ambari.server.state.stack.OsFamily;
import org.easymock.EasyMock;
import org.junit.Test;
@@ -109,6 +110,11 @@ public class StackManagerExtensionTest {
File checks = oozie.getChecksFolder();
assertNotNull(checks);
assertTrue("Checks dir is " + checks.getPath(), checks.getPath().contains("extensions/EXT/0.1/services/OOZIE2/checks"));
+ List<ThemeInfo> themes = oozie.getThemes();
+ assertNotNull(themes);
+ assertTrue("Number of themes is " + themes.size(), themes.size() == 1);
+ ThemeInfo theme = themes.get(0);
+ assertTrue("Theme: " + theme.getFileName(), theme.getFileName().contains("working_theme.json"));
extension = stackManager.getExtension("EXT", "0.2");
assertNotNull("EXT 0.2's parent: " + extension.getParentExtensionVersion(), extension.getParentExtensionVersion());
@@ -121,6 +127,9 @@ public class StackManagerExtensionTest {
checks = oozie.getChecksFolder();
assertNotNull(checks);
assertTrue("Checks dir is " + checks.getPath(), checks.getPath().contains("extensions/EXT/0.1/services/OOZIE2/checks"));
+ themes = oozie.getThemes();
+ assertNotNull(themes);
+ assertTrue("Number of themes is " + themes.size(), themes.size() == 0);
StackInfo stack = stackManager.getStack("HDP", "0.2");
assertNotNull(stack.getService("OOZIE2"));
http://git-wip-us.apache.org/repos/asf/ambari/blob/fa7c8eff/ambari-server/src/test/resources/extensions/EXT/0.1/services/OOZIE2/metainfo.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/resources/extensions/EXT/0.1/services/OOZIE2/metainfo.xml b/ambari-server/src/test/resources/extensions/EXT/0.1/services/OOZIE2/metainfo.xml
index ab67178..5e94b60 100644
--- a/ambari-server/src/test/resources/extensions/EXT/0.1/services/OOZIE2/metainfo.xml
+++ b/ambari-server/src/test/resources/extensions/EXT/0.1/services/OOZIE2/metainfo.xml
@@ -105,6 +105,14 @@
<config-type>global</config-type>
<config-type>oozie2-site</config-type>
</configuration-dependencies>
+
+ <themes>
+ <theme>
+ <fileName>working_theme.json</fileName>
+ <default>true</default>
+ </theme>
+ </themes>
+
</service>
</services>
</metainfo>
http://git-wip-us.apache.org/repos/asf/ambari/blob/fa7c8eff/ambari-server/src/test/resources/extensions/EXT/0.1/services/OOZIE2/themes/working_theme.json
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/resources/extensions/EXT/0.1/services/OOZIE2/themes/working_theme.json b/ambari-server/src/test/resources/extensions/EXT/0.1/services/OOZIE2/themes/working_theme.json
new file mode 100644
index 0000000..fe267ee
--- /dev/null
+++ b/ambari-server/src/test/resources/extensions/EXT/0.1/services/OOZIE2/themes/working_theme.json
@@ -0,0 +1,5 @@
+{
+ "name": "default",
+ "description": "Default theme for OOZIE2 service",
+ "configuration": {}
+}
http://git-wip-us.apache.org/repos/asf/ambari/blob/fa7c8eff/ambari-server/src/test/resources/extensions/EXT/0.2/services/OOZIE2/metainfo.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/resources/extensions/EXT/0.2/services/OOZIE2/metainfo.xml b/ambari-server/src/test/resources/extensions/EXT/0.2/services/OOZIE2/metainfo.xml
index 9ae4f4b..9176551 100644
--- a/ambari-server/src/test/resources/extensions/EXT/0.2/services/OOZIE2/metainfo.xml
+++ b/ambari-server/src/test/resources/extensions/EXT/0.2/services/OOZIE2/metainfo.xml
@@ -105,6 +105,14 @@
<config-type>global</config-type>
<config-type>oozie2-site</config-type>
</configuration-dependencies>
+
+ <themes>
+ <theme>
+ <fileName>broken_theme.json</fileName>
+ <default>true</default>
+ </theme>
+ </themes>
+
</service>
</services>
</metainfo>
http://git-wip-us.apache.org/repos/asf/ambari/blob/fa7c8eff/ambari-server/src/test/resources/extensions/EXT/0.2/services/OOZIE2/themes/broken_theme.json
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/resources/extensions/EXT/0.2/services/OOZIE2/themes/broken_theme.json b/ambari-server/src/test/resources/extensions/EXT/0.2/services/OOZIE2/themes/broken_theme.json
new file mode 100644
index 0000000..6e8b5bf
--- /dev/null
+++ b/ambari-server/src/test/resources/extensions/EXT/0.2/services/OOZIE2/themes/broken_theme.json
@@ -0,0 +1,3 @@
+{
+ "configuration": {
+}