-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/17596/
-----------------------------------------------------------

(Updated Feb. 3, 2014, 5:48 p.m.)


Review request for Ambari, Mahadev Konar, Nate Cole, Tom Beerbower, and Yusaku 
Sako.


Changes
-------

Thanks Tom for your constructive criticism.
First of all - this bug exist with/without Ganglia. I have tested both cases.
About  too broadly property replacement...
Properties should be replaced only if they values exist in current properties 
map.
If property cant be resolved, it's value will not be replaced.
>>> I guess that a resource provider could use a different Resource 
>>> implementation if that were the case.  Maybe it's okay if we really want to 
>>> say that this should be the default behavior.<<<
I don't know how to manage which Resource implementation should be used in each 
case. Solution now it compatible with previous versions (we didn't use ${} in 
previous versions)
>>>One thing that I don't like is how the property value must be checked every 
>>>time getProperty() is called?  Why not just do it once on setProperty()?<<<
Yes, I have fixed it as you advised. 

Also, I have added checking for cyclic property references, so it will prevent 
StackOverflowExeption when properties refer to each other (with any length of 
cycle)


Bugs: AMBARI-4490
    https://issues.apache.org/jira/browse/AMBARI-4490


Repository: ambari


Description
-------

The cause of error messages is that we start use new format properties like 
"dfs.datanode.http.address":"0.0.0.0:${ambari.dfs.datanode.http.port}".
It means that we have to replace ${ambari.dfs.datanode.http.port} with value of 
ambari.dfs.datanode.http.port property from current config.
In this case we need process these value references and keep in mind that:
1) We can have some references in one property, like this 
"dfs.datanode.http.address":"${ambari.dfs.datanode.http.host}:${ambari.dfs.datanode.http.port}"
2) Also value references can be referenced to another references.
3) Patch have to impact all configs
So, I have created private method postProcessPropertyValue in ResourceImpl.java 
for resolve all of value references


Diffs (updated)
-----

  
ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ResourceImpl.java
 15fb961 
  
ambari-server/src/test/java/org/apache/ambari/server/controller/internal/ResourceImplTest.java
 da87bc6 

Diff: https://reviews.apache.org/r/17596/diff/


Testing
-------

Added unitests


Thanks,

Dmytro Shkvyra

Reply via email to