Missing the json files in previous email. Sorry for that.
Once again thank for your time and I really appreciate your help Srimanth
Best regards
On Tuesday, February 9, 2016 5:54 PM, Juanjo Marron
<[email protected]> wrote:
Hi Srimanth,
Sure it helps. Thanks for your prompt reply and the details provided.
My goal might sound familiar, Im just trying to add PHOENIX support for HBASE
in a new stack definition since I was not present in my previous one.
So I need to add on themes a couple of Phoenix widgets, their placements, one
new Phoenix SQL section and its subsection.
Based on your answer, and after several tries I made some progress and now I'm
able to merge both theme.json files and add the new widgets and its placement
on the child theme (I can see them when querying the restAPI for my new version
of themes), but the new widgets never get displayed on the UI.
I'm still having issues to merge the new section for the configuration:layout
property and it never makes it to the restAPI call.
The original themes is attached with name original_theme.jsonThe new themes is
attached with name V1_new_theme.json. It is mainly:
{
"configuration" : {
"layouts": [
{
"name": "default",
"tabs": [
{
"name": "settings",
"sections": [
{
"name": "section-hbase-phoenix",
"display-name": "Phoenix SQL",
......
With this V1_new_theme.json, tabs return empty on the rest call
"layouts" : [
{
"name" : "default",
"tabs" : [ ]
}
]
}
}
Do I need to maintaing tabs:[], sections: [], layout: [] design or just
declaring the name?
If I try to just declare the names as shown in attached V2_new_theme.json:
{
"configuration" : {
"layouts": [
{
"name": "default",
"name": "settings",
"name": "section-hbase-phoenix",
"display-name": "Phoenix SQL",
"row-index": "2",
"column-index": "2",
.....
The layout is similar to the parent but it is missing the new section
Addtionally if I try to overwrite the whole layouts property instead
(complete_layout_theme.json) , ambari-server is not able to start showing NPE.
The issue is merging section inside layouts
1 error
at com.google.inject.internal.InjectorImpl$4.get(InjectorImpl.java:987)
at
com.google.inject.internal.InjectorImpl.getInstance(InjectorImpl.java:1013)
at
org.apache.ambari.server.controller.AmbariServer.main(AmbariServer.java:812)
Caused by: java.lang.NullPointerException
at
org.apache.ambari.server.state.theme.Section.mergeWithParent(Section.java:157)
at
org.apache.ambari.server.state.theme.TabLayout.mergedSections(TabLayout.java:95)
at
org.apache.ambari.server.state.theme.TabLayout.mergeWithParent(TabLayout.java:79)
at org.apache.ambari.server.state.theme.Tab.mergeWithParent(Tab.java:71)
at org.apache.ambari.server.state.theme.Layout.mergeTabs(Layout.java:75)
at
org.apache.ambari.server.state.theme.Layout.mergeWithParent(Layout.java:60)
at
org.apache.ambari.server.state.theme.ThemeConfiguration.mergeLayouts(ThemeConfiguration.java:105)