> On July 31, 2017, 4:25 p.m., Alejandro Fernandez wrote:
> > ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ClusterStackVersionResourceProvider.java
> > Lines 1123 (patched)
> > <https://reviews.apache.org/r/61239/diff/1/?file=1785542#file1785542line1123>
> >
> >     Add a safeguard here in case indexOf returns -1. Only if > 0 should the 
> > substring method be called to get the os.
> >     This also assumes majorVersion is a single digit, instead look for the 
> > numeric characters from the end.

Hello Alejandro,

The osFamily var was checked earlier in the code if "-ppc" exists. So by the 
time it reaches the indexOf,  the osFamily can either be null (already 
safeguarded) or a string that contains "-ppc", so the indexof will have 
positive value.

For single digit issue, the current logic can deal with multiple digit
"""
    String osType = "redhat100";
    String os = osType.substring(0, "redhat-ppc".indexOf("-ppc"));
    String majorVersion = osType.substring(os.length());
    String result = String.format("OS: %s, majorVersion: %s", os, majorVersion);
    System.out.println(result);
"""
OUTPUT: OS: redhat, arch: ppc, majorVersion: 100


- Di


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


On July 29, 2017, 2:12 a.m., Di Li wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/61239/
> -----------------------------------------------------------
> 
> (Updated July 29, 2017, 2:12 a.m.)
> 
> 
> Review request for Ambari, Alejandro Fernandez, Jonathan Hurley, Sid Wagle, 
> and Tim Thorpe.
> 
> 
> Bugs: AMBARI-21611
>     https://issues.apache.org/jira/browse/AMBARI-21611
> 
> 
> Repository: ambari
> 
> 
> Description
> -------
> 
> Error message: Repositories for os type redhat-ppc7 are not defined.
> This is because:
> AmbariAgent reports os type (to be stored in the Hosts table) as redhat-ppc7. 
> "-ppc" is a hardcoded post fix attached to the os type in os_check.py 
> """
> os_check.py (AMBARI-21054)
> if _is_powerpc():
> operatingSystem += '-ppc'
> """
> When Ambari server backend generates the
> {os, repo}
> map, it uses os information from repo_versoin as the key . But later on uses 
> os info from the Hosts table to query the map, thus the mismatch (redhat-ppc7 
> vs redhat7).
> The repo_version table repository column however only uses redhat6/7 and does 
> not distinguish ppc vs x86 ( nor it should )
> 
> 
> Diffs
> -----
> 
>   
> ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ClusterStackVersionResourceProvider.java
>  633fe8c 
>   
> ambari-server/src/test/java/org/apache/ambari/server/controller/internal/ClusterStackVersionResourceProviderTest.java
>  7018245 
> 
> 
> Diff: https://reviews.apache.org/r/61239/diff/1/
> 
> 
> Testing
> -------
> 
> one IOP ppc one IOP x86, upgrade Ambari, patch with server jar, run install 
> packages after registering HDP 2.6.2 stack. verify the error did not appear 
> any  more for ppc, both ppc and x86 cluster were able to finish the install 
> package step successfully
> 
> 
> Thanks,
> 
> Di Li
> 
>

Reply via email to