ambari-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Matt <mithm...@gmail.com>
Subject Re: Review Request 43430: assign_master_component.js does not show recommendations while adding master component for a service which is already installed
Date Tue, 23 Feb 2016 20:26:07 GMT


> On Feb. 19, 2016, 10:57 a.m., Alexandr Antonenko wrote:
> > ambari-web/app/mixins/wizard/assign_master_components.js, line 776
> > <https://reviews.apache.org/r/43430/diff/3/?file=1252149#file1252149line776>
> >
> >     No need in such construction, there is native ember function pushObjects.
> 
> Matt wrote:
>     Thanks for reviewing Alexander
>     
>     
>     I've been having an issue with the unit test when I use `hostList.pushObjects(hostNames)`.
>     The existing unit test for `loadRecommendationsSuccessCallback` works when I use
`Array.prototype.push.apply(hostList, hostNames);`
>     However, when I use `hostList.pushObjects(hostNames)`, the deep comparison `expect(c.get('content.recommendedHostsForComponents')).to.deep.equal(expected)`
does not work, and the unit test keeps failing.
>     
>     I tried changing the expect to use `to.deep.equal`, `to.eql`, `to.deep.eq` - neither
of them worked.
>     
>     Do you have any suggestions on how to get past this issue? 
>     
>     As a last resort, I was planning to convert the result into JSON and compare it with
an `expectedJSON`.
>     
>     
>     ```
>       describe('#loadRecommendationsSuccessCallback', function () {
>     
>         it('should set recommendations', function() {
>           c.loadRecommendationsSuccessCallback(data);
>           expect(c.get('content.recommendations')).to.eq(data.resources[0].recommendations);
>         });
>     
>         it('should set recommendedHostsForComponents', function() {
>           c.loadRecommendationsSuccessCallback(data);
>           var expected = {
>             "c1": ["h1", "h2", "h4", "h3"],
>             "c3": ["h1"],
>             "c2": ["h1", "h2", "h4"]
>           };
>     
>           expect(c.get('content.recommendedHostsForComponents')).to.deep.equal(expected);
>         });
>       });
>     ```
> 
> Alexandr Antonenko wrote:
>     This is something that you will also see in future, and while using other functions,
including native js function. If you do some modification with object or array, sometimes
deep/equal return incorrect result. In that case please use JSON.stringify() and compare as
plain text.
>     p.s. For deep equal please use eql()

I've opened a new review after accomodating your feedback: https://reviews.apache.org/r/43812/

Thanks
Matt


- Matt


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


On Feb. 16, 2016, 2:13 p.m., Matt wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/43430/
> -----------------------------------------------------------
> 
> (Updated Feb. 16, 2016, 2:13 p.m.)
> 
> 
> Review request for Ambari, Alexander Denissov, Alejandro Fernandez, Aleksandr Kovalenko,
Alexandr Antonenko, bhuvnesh chaudhary, Goutam Tadi, Jaimin Jetly, jun aoki, Lav Jain, Newton
Alex, Oleksandr Diachenko, and Sumit Mohanty.
> 
> 
> Bugs: AMBARI-14987
>     https://issues.apache.org/jira/browse/AMBARI-14987
> 
> 
> Repository: ambari
> 
> 
> Description
> -------
> 
> On the assign masters page for the wizard, recommendations are not shown for a master
component that is being added for an installed service.
> 
> This happens while adding HAWQSTANDBY to the cluster using the 'Add HAWQSTANDBY' wizard
(situation: HAWQ service is already installed on the cluster).
> 
> The function getHostForMaster used to return the next available host for the master.
> For example:
> Case 1: component C1 is NOT installed on any hosts.
> getHostForMaster would return the first host from the allHosts list.
> Case 2: component C2 is installed on host H1
> getHostForMaster would return next available host from the allHosts list.
> If allHosts = ['H1', 'H2', 'H3']. It would return H2
> 
> To avoid just placing the component on the next available host, the recommendation is
considered.
> Current implementation:
> If a host is recommended for the master, place it on that host (if it is not already
installed on that host).
> If no recommendation is given, place it on the next available host.
> 
> 
> Diffs
> -----
> 
>   ambari-web/app/assets/test/tests.js 9d5cbc1 
>   ambari-web/app/mixins/wizard/assign_master_components.js f6d1b1a 
>   ambari-web/test/mixins/wizard/assign_master_components_test.js PRE-CREATION 
> 
> Diff: https://reviews.apache.org/r/43430/diff/
> 
> 
> Testing
> -------
> 
> Manually Tested.
> 
> Tested assign_master page on cluster installation, add service wizard, enable namenode
wizard and add hawq standby wizard.
> 
> Unit test added:
>   10412 tests complete (9 seconds)
>   121 tests pending
> 
> [INFO] ------------------------------------------------------------------------
> [INFO] BUILD SUCCESS
> [INFO] ------------------------------------------------------------------------
> [INFO] Total time: 41.211 s
> [INFO] Finished at: 2016-02-16T14:12:45-08:00
> [INFO] Final Memory: 12M/311M
> [INFO] ------------------------------------------------------------------------
> 
> 
> Thanks,
> 
> Matt
> 
>


Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message