> On Feb. 19, 2016, 6:57 p.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);
>         });
>       });
>     ```

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()


- Alexandr


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


On Feb. 16, 2016, 10: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, 10: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
> 
>

Reply via email to