1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246 |
- /**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
- var App = require('app');
- require('models/cluster');
- require('controllers/wizard');
- require('controllers/installer');
- describe('App.InstallerController', function () {
- var installerController = App.InstallerController.create();
- after(function () {
- installerController.destroy();
- });
- describe('#init', function () {
- var c;
- beforeEach(function () {
- c = App.InstallerController.create({});
- });
- it('all steps are disabled by default', function () {
- expect(c.get('isStepDisabled.length')).to.be.above(0);
- expect(c.get('isStepDisabled').everyProperty('value', true)).to.be.ok;
- });
- });
- describe('#loadStacksVersionsSuccessCallback', function() {
- beforeEach(function () {
- sinon.stub(App.store, 'commit', Em.K);
- });
- afterEach(function () {
- App.store.commit.restore();
- });
- it ('Correct data', function() {
- installerController.set('loadStacksRequestsCounter', 1);
- installerController.loadStacksVersionsSuccessCallback(require('test/stack'));
- expect(installerController.get('content.stacks.length')).to.equal(2);
- expect(installerController.get('content.stacks').everyProperty('isSelected')).to.be.false;
- expect(installerController.get('content.stacks').mapProperty('id')).to.eql(['HDP-2.1','HDP-1.3']);
- });
- });
- describe('#getCluster', function() {
- it ('Should return merged clusterStatusTemplate', function() {
- installerController.set('clusterStatusTemplate', {
- name: 'template'
- });
- expect(installerController.getCluster()).to.eql({
- name: 'template'
- });
- });
- });
- describe('#getHosts', function() {
- it ('Should return empty array', function() {
- expect(installerController.getHosts()).to.eql([]);
- });
- });
- describe('#loadServices', function() {
- it ('Should resolve nothing', function() {
- var res = installerController.loadServices();
- res.then(function(data){
- expect(data).to.be.undefined;
- });
- });
- });
- describe('#checkRepoURL', function() {
- var stacks = Em.A([
- Em.Object.create({
- isSelected: false
- }),
- Em.Object.create({
- isSelected: true,
- reload: false,
- id: 'nn-cc',
- repositories: Em.A([
- Em.Object.create({
- isSelected: true
- })
- ]),
- operatingSystems: Em.A([
- Em.Object.create({
- isSelected: true,
- repositories: Em.A([
- Em.Object.create({
- errorTitle: '1',
- errorContent: '1',
- validation: ''
- })
- ])
- })
- ])
- })
- ]);
- var wizard = Em.Object.create({
- skipValidationChecked: true
- });
- it ('Should reload installed stacks', function() {
- installerController.set('content.stacks', stacks);
- installerController.checkRepoURL(wizard);
- var expected = [
- {
- "isSelected": false
- },
- {
- "isSelected": true,
- "reload": true,
- "id": "nn-cc",
- "repositories": [
- {
- "isSelected": true
- }
- ],
- "operatingSystems": [
- {
- "isSelected": true,
- "repositories": [
- {
- "errorTitle": "",
- "errorContent": "",
- "validation": "icon-repeat"
- }
- ]
- }
- ]
- }
- ];
- var res = JSON.parse(JSON.stringify(installerController.get('content.stacks')));
- expect(res).to.be.eql(expected);
- });
- });
- describe('#checkRepoURLSuccessCallback', function() {
- var stacks = Em.A([
- Em.Object.create({
- isSelected: false
- }),
- Em.Object.create({
- isSelected: true,
- reload: false,
- id: 'nn-cc',
- repositories: Em.A([
- Em.Object.create({
- repoId: 11,
- isSelected: true
- })
- ]),
- operatingSystems: Em.A([
- Em.Object.create({
- isSelected: true,
- id: 1,
- repositories: Em.A([
- Em.Object.create({
- repoId: 11,
- errorTitle: '1',
- errorContent: '1',
- validation: ''
- })
- ])
- })
- ])
- })
- ]);
- var resolve = false;
- var data = {
- osId: 1,
- repoId: 11,
- dfd: {
- resolve: function() {
- resolve = true;
- }
- }
- };
- it ('Should check stacks for sucess', function() {
- installerController.set('content.stacks', stacks);
- installerController.checkRepoURLSuccessCallback(null,null,data);
- var expected = [
- {
- "isSelected": false
- },
- {
- "isSelected": true,
- "reload": false,
- "id": "nn-cc",
- "repositories": [
- {
- "repoId": 11,
- "isSelected": true
- }
- ],
- "operatingSystems": [
- {
- "isSelected": true,
- "id": 1,
- "repositories": [
- {
- "repoId": 11,
- "errorTitle": "1",
- "errorContent": "1",
- "validation": "icon-ok"
- }
- ]
- }
- ]
- }
- ];
- var res = JSON.parse(JSON.stringify(installerController.get('content.stacks')));
- expect(resolve).to.be.true;
- expect(res).to.be.eql(expected);
- });
- });
- describe('#checkRepoURLErrorCallback', function() {
- var stacks = Em.A([
- Em.Object.create({
- isSelected: false
- }),
- Em.Object.create({
- isSelected: true,
- reload: false,
- id: 'nn-cc',
- repositories: Em.A([
- Em.Object.create({
- repoId: 11,
- isSelected: true
- })
- ]),
- operatingSystems: Em.A([
- Em.Object.create({
- isSelected: true,
- id: 1,
- repositories: Em.A([
- Em.Object.create({
- repoId: 11,
- errorTitle: '1',
- errorContent: '1',
- validation: ''
- })
- ])
- })
- ])
- })
- ]);
- var resolve = false;
- var data = {
- osId: 1,
- repoId: 11,
- dfd: {
- reject: function() {
- resolve = true;
- }
- }
- };
- it ('Should check stacks for error', function() {
- var req = {
- status: 500,
- statusText: 'error'
- };
- installerController.set('content.stacks', stacks);
- installerController.checkRepoURLErrorCallback(req,{},{},{},data);
- var expected = [
- {
- "isSelected": false
- },
- {
- "isSelected": true,
- "reload": false,
- "id": "nn-cc",
- "repositories": [
- {
- "repoId": 11,
- "isSelected": true
- }
- ],
- "operatingSystems": [
- {
- "isSelected": true,
- "id": 1,
- "repositories": [
- {
- "repoId": 11,
- "errorTitle": "500:error",
- "errorContent": "",
- "validation": "icon-exclamation-sign"
- }
- ]
- }
- ]
- }
- ];
- var res = JSON.parse(JSON.stringify(installerController.get('content.stacks')));
- expect(resolve).to.be.true;
- expect(res).to.be.eql(expected);
- });
- });
- describe('#loadStacks', function() {
- it ('Should resolve promise with true', function() {
- installerController.set('content.stacks', Em.Object.create({
- length: 2
- }));
- var res = installerController.loadStacks();
- res.then(function(data){
- expect(data).to.be.true;
- });
- });
- it ('Should resolve promise with false', function() {
- installerController.set('content.stacks', null);
- var res = installerController.loadStacks();
- res.then(function(data){
- expect(data).to.be.false;
- });
- });
- });
- describe('#setLowerStepsDisable', function() {
- beforeEach(function () {
- var steps = Em.A([
- Em.Object.create({
- step: 0,
- value: false
- }),
- Em.Object.create({
- step: 1,
- value: false
- }),
- Em.Object.create({
- step: 2,
- value: false
- }),
- Em.Object.create({
- step: 3,
- value: false
- }),
- Em.Object.create({
- step: 4,
- value: false
- })
- ]);
- installerController.set('isStepDisabled', steps);
- installerController.setLowerStepsDisable(3);
- });
- it ('Should disable lower steps', function() {
- var expected = [
- {
- "step": 0,
- "value": true
- },
- {
- "step": 1,
- "value": true
- },
- {
- "step": 2,
- "value": true
- },
- {
- "step": 3,
- "value": false
- },
- {
- "step": 4,
- "value": false
- }
- ];
- var res = JSON.parse(JSON.stringify(installerController.get('isStepDisabled')));
- expect(res).to.eql(expected);
- });
- });
- describe('#setStepsEnable', function() {
- beforeEach(function () {
- var steps = Em.A([
- Em.Object.create({
- step: 0,
- value: false
- }),
- Em.Object.create({
- step: 1,
- value: false
- }),
- Em.Object.create({
- step: 2,
- value: false
- }),
- Em.Object.create({
- step: 3,
- value: false
- }),
- Em.Object.create({
- step: 4,
- value: false
- })
- ]);
- installerController.set('isStepDisabled', steps);
- installerController.totalSteps = steps.length - 1;
- installerController.set('currentStep',2);
- });
- it ('Should enable next steps', function() {
- var expected = [
- {
- "step": 0,
- "value": false
- },
- {
- "step": 1,
- "value": true
- },
- {
- "step": 2,
- "value": true
- },
- {
- "step": 3,
- "value": true
- },
- {
- "step": 4,
- "value": true
- }
- ];
- var res = JSON.parse(JSON.stringify(installerController.get('isStepDisabled')));
- expect(res).to.eql(expected);
- });
- });
- describe('#loadMap', function() {
- describe('Should load cluster', function() {
- var loadCluster = false;
- var checker = {
- load: function() {
- loadCluster = true;
- }
- };
- beforeEach(function () {
- installerController.loadMap['0'][0].callback.call(checker);
- });
- it('cluster info is loaded', function () {
- expect(loadCluster).to.be.true;
- });
- });
- describe('Should load stacks', function() {
- var loadStacks = false;
- var checker = {
- loadStacks: function() {
- return {
- always: function() {
- loadStacks = true;
- }
- };
- }
- };
- beforeEach(function () {
- installerController.loadMap['1'][0].callback.call(checker);
- });
- it('stack info is loaded', function () {
- expect(loadStacks).to.be.true;
- });
- });
- describe ('Should load stacks async', function() {
- var loadStacksVersions = false;
- var checker = {
- loadStacksVersions: function() {
- loadStacksVersions = true;
- }
- };
- it('stack versions are loaded', function () {
- installerController.loadMap['1'][1].callback.call(checker, true).then(function(data){
- expect(data).to.be.true;
- });
- expect(loadStacksVersions).to.be.false;
- });
- });
- describe('Should load installOptions', function() {
- var installOptions = false;
- var checker = {
- load: function() {
- installOptions = true;
- }
- };
- beforeEach(function () {
- installerController.loadMap['2'][0].callback.call(checker);
- });
- it('install option are loaded', function () {
- expect(installOptions).to.be.true;
- });
- });
- describe('Should load loadConfirmedHosts', function() {
- var loadConfirmedHosts = false;
- var checker = {
- loadConfirmedHosts: function() {
- loadConfirmedHosts = true;
- }
- };
- beforeEach(function () {
- installerController.loadMap['3'][0].callback.call(checker);
- });
- it('confirmed hosts are loaded', function () {
- expect(loadConfirmedHosts).to.be.true;
- });
- });
- describe('Should load loadServices', function() {
- var loadServices = false;
- var checker = {
- loadServices: function() {
- loadServices = true;
- }
- };
- beforeEach(function () {
- installerController.loadMap['4'][0].callback.call(checker);
- });
- it('services are loaded', function () {
- expect(loadServices).to.be.true;
- });
- });
- describe('Should load loadServices (2)', function() {
- var setSkipSlavesStep = false;
- var loadMasterComponentHosts = false;
- var loadConfirmedHosts = false;
- var loadRecommendations = false;
- var checker = {
- setSkipSlavesStep: function() {
- setSkipSlavesStep = true;
- },
- loadMasterComponentHosts: function() {
- loadMasterComponentHosts = true;
- },
- loadConfirmedHosts: function() {
- loadConfirmedHosts = true;
- },
- loadRecommendations: function() {
- loadRecommendations = true;
- }
- };
- beforeEach(function () {
- installerController.loadMap['5'][0].callback.call(checker);
- });
- it('confirmed hosts are loaded', function() {
- expect(loadConfirmedHosts).to.be.true;
- });
- it('`skipSlavesStep` is loaded', function() {
- expect(setSkipSlavesStep).to.be.true;
- });
- it('master components hosts are loaded', function() {
- expect(loadMasterComponentHosts).to.be.true;
- });
- it('recommendations are loaded', function() {
- expect(loadRecommendations).to.be.true;
- });
- });
- describe ('Should load serviceConfigGroups', function() {
- var loadServiceConfigGroups = false;
- var loadServiceConfigProperties = false;
- var loadCurrentHostGroups = false;
- var loadRecommendationsConfigs = false;
- var loadConfigThemes = false;
- var checker = {
- loadServiceConfigGroups: function() {
- loadServiceConfigGroups = true;
- },
- loadServiceConfigProperties: function() {
- loadServiceConfigProperties = true;
- },
- loadCurrentHostGroups: function() {
- loadCurrentHostGroups = true;
- },
- loadRecommendationsConfigs: function() {
- loadRecommendationsConfigs = true;
- },
- loadConfigThemes: function() {
- loadConfigThemes = true;
- }
- };
- beforeEach(function () {
- installerController.loadMap['7'][0].callback.call(checker);
- });
- it('config groups are loaded', function () {
- expect(loadServiceConfigGroups).to.be.true;
- });
- it('config properties are loaded', function () {
- expect(loadServiceConfigProperties).to.be.true;
- });
- it('current host groups are loaded', function () {
- expect(loadCurrentHostGroups).to.be.true;
- });
- it('recommendations are loaded', function () {
- expect(loadRecommendationsConfigs).to.be.true;
- });
- it('config themes are loaded', function () {
- expect(loadConfigThemes).to.be.true;
- });
- });
- describe('Should load clients', function() {
- var loadSlaveComponentHosts = false;
- var loadClients = false;
- var loadRecommendations = false;
- var checker = {
- loadSlaveComponentHosts: function() {
- loadSlaveComponentHosts = true;
- },
- loadClients: function() {
- loadClients = true;
- },
- loadRecommendations: function() {
- loadRecommendations = true;
- }
- };
- beforeEach(function () {
- installerController.loadMap['6'][0].callback.call(checker);
- });
- it('slave components hosts are loaded', function () {
- expect(loadSlaveComponentHosts).to.be.true;
- });
- it('clients are loaded', function () {
- expect(loadClients).to.be.true;
- });
- it('recommendations are loaded', function () {
- expect(loadRecommendations).to.be.true;
- });
- });
- });
- describe('#removeHosts', function() {
- var hostsDb = {
- 'h1': {},
- 'h2': {},
- 'h3': {},
- 'h4': {}
- };
- beforeEach(function () {
- sinon.stub(installerController, 'getDBProperty').returns(hostsDb);
- });
- afterEach(function () {
- installerController.getDBProperty.restore();
- });
- it ('Should remove hosts from the list', function() {
- var hosts = Em.A([
- {
- name: 'h1'
- },
- {
- name: 'h2'
- },
- {
- name: 'h3'
- }
- ]);
- installerController.removeHosts(hosts);
- expect(hostsDb).to.eql({
- 'h4': {}
- });
- });
- });
- describe('#allHosts', function() {
- it ('Should return hosts', function() {
- var hosts = {
- 'h1': {
- disk_info: Em.A([{
- available: 1,
- size: 10
- }]),
- hostComponents: Em.A([])
- }
- };
- var masterComponentHosts = Em.A([
- {
- hostName: 'h1',
- component: 'component',
- display_name: 'n1'
- }
- ]);
- var slaveComponentHosts = Em.A([
- {
- hosts: Em.A([
- {
- hostName: 'h1'
- }
- ])
- }
- ]);
- installerController.set('content.hosts', hosts);
- installerController.set('content.masterComponentHosts', masterComponentHosts);
- installerController.set('content.slaveComponentHosts', slaveComponentHosts);
- var res = JSON.parse(JSON.stringify(installerController.get('allHosts')));
- expect(res).to.eql([
- {
- "diskInfo": [
- {
- "available": 1,
- "size": 10
- }
- ],
- "diskTotal": 0.0000095367431640625,
- "diskFree": 9.5367431640625e-7,
- "hostComponents": [
- {
- "componentName": "component",
- "displayName": "n1"
- },
- {}
- ]
- }
- ]);
- });
- });
- describe('#loadServiceConfigProperties', function() {
- beforeEach(function () {
- sinon.stub(installerController, 'getDBProperty').returns({
- value: 2
- });
- });
- afterEach(function () {
- installerController.getDBProperty.restore();
- });
- it ('Should load service config property', function() {
- installerController.loadServiceConfigProperties();
- expect(installerController.get('content.serviceConfigProperties')).to.eql({
- "value": 2
- });
- });
- });
- describe('#saveServices', function() {
- it ('Should return correct names', function() {
- var stepController = Em.A([
- Em.Object.create({
- isInstalled: true,
- isSelected: true,
- serviceName: 'i1'
- }),
- Em.Object.create({
- isInstalled: false,
- isSelected: true,
- serviceName: 'i2'
- }),
- Em.Object.create({
- isInstalled: true,
- isSelected: false,
- serviceName: 'i3'
- })
- ]);
- installerController.saveServices(stepController);
- expect(installerController.get('content.selectedServiceNames')).to.eql(['i1','i2']);
- expect(installerController.get('content.installedServiceNames')).to.eql(['i1','i3']);
- });
- });
- describe('#saveClients', function() {
- var stepController;
- beforeEach(function () {
- stepController = Em.Object.create({
- content: Em.A([
- Em.Object.create({
- isInstalled: true,
- isSelected: true,
- serviceName: 'i1',
- serviceComponents: Em.A([
- Em.Object.create({
- isClient: true,
- componentName: 'name',
- displayName: 'dname'
- })
- ])
- }),
- Em.Object.create({
- isInstalled: false,
- isSelected: true,
- serviceName: 'i2',
- serviceComponents: Em.A([
- Em.Object.create({
- isClient: false
- })
- ])
- }),
- Em.Object.create({
- isInstalled: true,
- isSelected: false,
- serviceName: 'i3',
- serviceComponents: Em.A([
- Em.Object.create({
- isClient: false
- })
- ])
- })
- ])
- });
- });
- it ('Should return correct clients names', function() {
- installerController.saveClients(stepController);
- var res = JSON.parse(JSON.stringify(installerController.get('content.clients')));
- expect(res).to.eql([
- {
- "component_name": "name",
- "display_name": "dname",
- "isInstalled": false
- }
- ]);
- });
- });
- describe('#saveMasterComponentHosts', function() {
- beforeEach(function () {
- sinon.stub(installerController, 'getDBProperty').returns({
- 'h1': {
- id: 11
- },
- 'h3': {
- id: 13
- },
- 'h2': {
- id: 12
- }
- });
- });
- afterEach(function () {
- installerController.getDBProperty.restore();
- });
- it ('Should return hosts', function() {
- var stepController = Em.Object.create({
- selectedServicesMasters: Em.A([
- Em.Object.create({
- display_name: 'n1',
- component_name: 'c1',
- serviceId: 1,
- selectedHost: 'h1'
- })
- ])
- });
- installerController.saveMasterComponentHosts(stepController);
- expect(installerController.get('content.masterComponentHosts')).to.eql([
- {
- "display_name": "n1",
- "component": "c1",
- "serviceId": 1,
- "isInstalled": false,
- "host_id": 11
- }
- ]);
- });
- });
- describe('#loadConfirmedHosts', function() {
- beforeEach(function () {
- sinon.stub(installerController, 'getDBProperty').returns({
- 'h1': {
- id: 11
- },
- 'h3': {
- id: 13
- },
- 'h2': {
- id: 12
- }
- });
- });
- afterEach(function () {
- installerController.getDBProperty.restore();
- });
- it ('Should load hosts from db', function() {
- installerController.loadConfirmedHosts();
- expect(installerController.get('content.hosts')).to.eql({
- 'h1': {
- id: 11
- },
- 'h3': {
- id: 13
- },
- 'h2': {
- id: 12
- }
- });
- });
- });
- describe('#loadMasterComponentHosts', function() {
- beforeEach(function () {
- sinon.stub(installerController, 'getDBProperties', function() {
- return {
- masterComponentHosts: Em.A([
- {
- hostName: '',
- host_id: 11
- }
- ]),
- hosts: {
- 'h1': {
- id: 11
- },
- 'h3': {
- id: 13
- },
- 'h2': {
- id: 12
- }
- }
- }
- });
- });
- afterEach(function () {
- installerController.getDBProperties.restore();
- });
- it ('Should load hosts', function() {
- installerController.loadMasterComponentHosts();
- expect(installerController.get('content.masterComponentHosts')).to.eql([
- {
- "hostName": "h1",
- "host_id": 11
- }
- ]);
- });
- });
- describe('#loadSlaveComponentHosts', function() {
- beforeEach(function () {
- sinon.stub(installerController, 'getDBProperties', function() {
- return {
- hosts: {
- 'h1': {
- id: 11
- },
- 'h3': {
- id: 13
- },
- 'h2': {
- id: 12
- }
- },
- slaveComponentHosts: Em.A([
- {
- hosts: Em.A([
- {
- hostName: '',
- host_id: 11
- }
- ])
- }
- ])
- };
- });
- });
- afterEach(function () {
- installerController.getDBProperties.restore();
- });
- it ('Should load slave hosts', function() {
- installerController.loadSlaveComponentHosts();
- expect(installerController.get('content.slaveComponentHosts')).to.eql([
- {
- "hosts": [
- {
- "hostName": "h1",
- "host_id": 11
- }
- ]
- }
- ]);
- });
- });
- describe('#getServerVersionSuccessCallback', function () {
- var cases = [
- {
- osFamily: 'redhat5',
- expected: false
- },
- {
- osFamily: 'redhat6',
- expected: true
- },
- {
- osFamily: 'suse11',
- expected: false
- }
- ],
- title = 'App.isManagedMySQLForHiveEnabled should be {0} for {1}';
- cases.forEach(function (item) {
- it(title.format(item.expected, item.osFamily), function () {
- installerController.getServerVersionSuccessCallback({
- 'RootServiceComponents': {
- 'component_version': '',
- 'properties': {
- 'server.os_family': item.osFamily
- }
- }
- });
- expect(App.get('isManagedMySQLForHiveEnabled')).to.equal(item.expected);
- });
- });
- });
- describe('#validateJDKVersion', function() {
- var tests = [
- {
- isCustomJDK: false,
- ambariProperties: {
- 'java.version': '1.8'
- },
- successCallbackCalled: false,
- popupCalled: true,
- stacks: [Em.Object.create({
- minJdkVersion: '1.6',
- maxJdkVersion: '1.7',
- isSelected: true
- })],
- m: 'JDK 1.8, stack supports 1.6-1.7 popup should be displayed'
- },
- {
- isCustomJDK: false,
- ambariProperties: {
- 'java.version': '1.8'
- },
- successCallbackCalled: true,
- popupCalled: false,
- stacks: [Em.Object.create({
- minJdkVersion: '1.6',
- maxJdkVersion: '1.8',
- isSelected: true
- })],
- m: 'JDK 1.8, stack supports 1.7-1.8 procceed installation without warning'
- },
- {
- isCustomJDK: false,
- ambariProperties: {
- 'java.version': '1.5'
- },
- successCallbackCalled: false,
- popupCalled: true,
- stacks: [Em.Object.create({
- minJdkVersion: '1.6',
- maxJdkVersion: '1.8',
- isSelected: true
- })],
- m: 'JDK 1.5, stack supports 1.6-1.8, popup should be displayed'
- },
- {
- isCustomJDK: false,
- ambariProperties: {
- 'java.version': '1.5'
- },
- successCallbackCalled: true,
- popupCalled: false,
- stacks: [Em.Object.create({
- minJdkVersion: null,
- maxJdkVersion: null,
- isSelected: true
- })],
- m: 'JDK 1.5, stack supports max and min are null, procceed installation without warning'
- },
- {
- isCustomJDK: false,
- ambariProperties: {
- 'java.version': '1.5'
- },
- successCallbackCalled: true,
- popupCalled: false,
- stacks: [Em.Object.create({
- minJdkVersion: '1.5',
- maxJdkVersion: null,
- isSelected: true
- })],
- m: 'JDK 1.5, stack supports max is missed and min is 1.5, procceed installation without warning'
- },
- {
- isCustomJDK: false,
- ambariProperties: {
- 'java.version': '1.6'
- },
- successCallbackCalled: false,
- popupCalled: true,
- stacks: [Em.Object.create({
- minJdkVersion: '1.5',
- maxJdkVersion: null,
- isSelected: true
- })],
- m: 'JDK 1.6, stack supports max is missed and min is 1.5, popup should be displayed'
- },
- {
- isCustomJDK: false,
- ambariProperties: {
- 'java.version': '1.5'
- },
- successCallbackCalled: true,
- popupCalled: false,
- stacks: [Em.Object.create({
- minJdkVersion: null,
- maxJdkVersion: '1.5',
- isSelected: true
- })],
- m: 'JDK 1.5, stack supports max 1.5 and min is missed, procceed installation without warning'
- },
- {
- isCustomJDK: false,
- ambariProperties: {
- 'java.version': '1.5'
- },
- successCallbackCalled: false,
- popupCalled: true,
- stacks: [Em.Object.create({
- minJdkVersion: null,
- maxJdkVersion: '1.8',
- isSelected: true
- })],
- m: 'JDK 1.5, stack supports max 1.8 and min is missed, popup should be displayed'
- },
- {
- isCustomJDK: false,
- ambariProperties: {
- 'java.version': '1.8'
- },
- successCallbackCalled: true,
- popupCalled: false,
- stacks: [Em.Object.create({
- isSelected: true
- })],
- m: 'JDK 1.8, min, max jdk missed in stack definition, procceed installation without warning'
- },
- {
- isCustomJDK: true,
- ambariProperties: {
- 'java.version': '1.8'
- },
- successCallbackCalled: true,
- popupCalled: false,
- stacks: [Em.Object.create({
- minJdkVersion: '1.6',
- maxJdkVersion: '1.8',
- isSelected: true
- })],
- m: 'JDK 1.8, custom jdk location used, procceed installation without warning'
- }
- ];
- tests.forEach(function(test) {
- describe(test.m, function() {
- var successCallback;
- beforeEach(function () {
- sinon.stub(App.Stack, 'find').returns(test.stacks);
- sinon.stub(App.router, 'get').withArgs('clusterController.isCustomJDK').returns(test.isCustomJDK)
- .withArgs('clusterController.ambariProperties').returns(test.ambariProperties);
- sinon.stub(App, 'showConfirmationPopup', Em.K);
- successCallback = sinon.spy();
- installerController.validateJDKVersion(successCallback);
- });
- afterEach(function () {
- App.router.get.restore();
- App.Stack.find.restore();
- App.showConfirmationPopup.restore();
- });
- it('successCallback is ' + (test.successCallbackCalled ? '' : 'not') + ' called', function () {
- expect(successCallback.called).to.be.equal(test.successCallbackCalled);
- });
- it('App.showConfirmationPopup. is ' + (test.popupCalled ? '' : 'not') + ' called', function () {
- expect(App.showConfirmationPopup.called).to.be.equal(test.popupCalled);
- });
- });
- });
- });
- });
|