|
@@ -256,6 +256,277 @@ describe('App.InstallerStep7Controller', function () {
|
|
|
});
|
|
|
});
|
|
|
|
|
|
+ describe('#_createSiteToTagMap', function () {
|
|
|
+ it('should return filtered map', function () {
|
|
|
+ var desired_configs = {
|
|
|
+ site1: {
|
|
|
+ tag: "tag1"
|
|
|
+ },
|
|
|
+ site2: {
|
|
|
+ tag: "tag2"
|
|
|
+ },
|
|
|
+ site3: {
|
|
|
+ tag: "tag3"
|
|
|
+ }
|
|
|
+ };
|
|
|
+ var sites = {
|
|
|
+ site1: true,
|
|
|
+ site3: true
|
|
|
+ };
|
|
|
+ var siteToTagMap = installerStep7Controller._createSiteToTagMap(desired_configs,sites)
|
|
|
+ expect(siteToTagMap).to.eql({
|
|
|
+ site1: "tag1",
|
|
|
+ site3: "tag3"
|
|
|
+ });
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ describe('#checkDatabaseConnectionTest', function () {
|
|
|
+ it('should return promise in process', function () {
|
|
|
+ installerStep7Controller.set('content', {
|
|
|
+ services: Em.A([
|
|
|
+ Em.Object.create({isSelected: true, isInstalled: false, serviceName: 'OOZIE', ignored: []}),
|
|
|
+ Em.Object.create({isSelected: false, isInstalled: false, serviceName: 'HIVE', ignored: []}),
|
|
|
+ Em.Object.create({isSelected: true, isInstalled: true, serviceName: 's3', ignored: []}),
|
|
|
+ Em.Object.create({isSelected: false, isInstalled: false, serviceName: 's4', ignored: []}),
|
|
|
+ Em.Object.create({isSelected: true, isInstalled: false, serviceName: 's5', ignored: []}),
|
|
|
+ Em.Object.create({isSelected: false, isInstalled: false, serviceName: 's6', ignored: []}),
|
|
|
+ Em.Object.create({isSelected: true, isInstalled: true, serviceName: 's7', ignored: []}),
|
|
|
+ Em.Object.create({isSelected: false, isInstalled: false, serviceName: 's8', ignored: []})
|
|
|
+ ])
|
|
|
+ });
|
|
|
+ var obj = Em.Object.create({name:'oozie_database',value:"aa"});
|
|
|
+ installerStep7Controller.set('stepConfigs',Em.A([Em.Object.create({serviceName: 'OOZIE', configs: Em.A([obj]) })]));
|
|
|
+ var deffer = installerStep7Controller.checkDatabaseConnectionTest();
|
|
|
+ expect(deffer.isResolved()).to.equal(false);
|
|
|
+ deffer.resolve(true);
|
|
|
+ deffer.done(function(data) {
|
|
|
+ expect(data).to.equal(true);
|
|
|
+ });
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ describe('#submit', function () {
|
|
|
+ it('should return undefined if submit disabled', function () {
|
|
|
+ installerStep7Controller.set('isSubmitDisabled',true);
|
|
|
+ expect(installerStep7Controller.submit()).to.be.undefined;
|
|
|
+ });
|
|
|
+ it('sumbit button should be unclicked if no configs', function () {
|
|
|
+ installerStep7Controller.set('isSubmitDisabled',false);
|
|
|
+ installerStep7Controller.submit();
|
|
|
+ expect(installerStep7Controller.get('submitButtonClicked')).to.be.false;
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ describe('#activateSpecialConfigs', function () {
|
|
|
+ var expected = [{
|
|
|
+ "smokeuser": {
|
|
|
+ "isEditable": true
|
|
|
+ },
|
|
|
+ "group": {
|
|
|
+ "isEditable": true
|
|
|
+ },
|
|
|
+ "services": [
|
|
|
+ {
|
|
|
+ "serviceName": "s1",
|
|
|
+ "isSelected": true,
|
|
|
+ "isInstalled": false
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "serviceName": "s2",
|
|
|
+ "isSelected": false,
|
|
|
+ "isInstalled": false
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "serviceName": "s3",
|
|
|
+ "isSelected": true,
|
|
|
+ "isInstalled": true
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "serviceName": "s4",
|
|
|
+ "isSelected": false,
|
|
|
+ "isInstalled": false
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "serviceName": "s5",
|
|
|
+ "isSelected": true,
|
|
|
+ "isInstalled": false
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "serviceName": "s6",
|
|
|
+ "isSelected": false,
|
|
|
+ "isInstalled": false
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "serviceName": "s7",
|
|
|
+ "isSelected": true,
|
|
|
+ "isInstalled": true
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "serviceName": "s8",
|
|
|
+ "isSelected": false,
|
|
|
+ "isInstalled": false
|
|
|
+ }
|
|
|
+ ]
|
|
|
+ },[
|
|
|
+ {
|
|
|
+ "serviceName": "MISC",
|
|
|
+ "configs": [
|
|
|
+ {
|
|
|
+ "name": "smokeuser",
|
|
|
+ "value": {
|
|
|
+ "isEditable": true
|
|
|
+ },
|
|
|
+ "isEditable": false
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "name": "user_group",
|
|
|
+ "value": {
|
|
|
+ "isEditable": true
|
|
|
+ },
|
|
|
+ "isEditable": false
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "name": "kdc_type"
|
|
|
+ }
|
|
|
+ ]
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "serviceName": "KERBEROS",
|
|
|
+ "configs": [
|
|
|
+ {
|
|
|
+ "name": "smokeuser",
|
|
|
+ "value": {
|
|
|
+ "isEditable": true
|
|
|
+ },
|
|
|
+ "isEditable": false
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "name": "user_group",
|
|
|
+ "value": {
|
|
|
+ "isEditable": true
|
|
|
+ },
|
|
|
+ "isEditable": false
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "name": "kdc_type"
|
|
|
+ }
|
|
|
+ ]
|
|
|
+ }
|
|
|
+ ]];
|
|
|
+ var allSelectedServiceNames = ['SLIDER', 'YARN'];
|
|
|
+ var configs = Em.A([Em.Object.create({
|
|
|
+ name: 'smokeuser',
|
|
|
+ value: ''
|
|
|
+ }),Em.Object.create({
|
|
|
+ name: 'user_group',
|
|
|
+ value: ''
|
|
|
+ }),Em.Object.create({
|
|
|
+ name: 'kdc_type',
|
|
|
+ value: ''
|
|
|
+ })]);
|
|
|
+ var stepConfigs = Em.A([Em.Object.create({serviceName: 'MISC', configs: configs}),
|
|
|
+ Em.Object.create({serviceName: 'KERBEROS', configs: configs})]);
|
|
|
+ var content = Em.Object.create({
|
|
|
+ smokeuser: Em.Object.create({isEditable: true}),
|
|
|
+ group: Em.Object.create({isEditable: true}),
|
|
|
+ services: Em.A([
|
|
|
+ Em.Object.create({isSelected: true, isInstalled: false, serviceName: 's1'}),
|
|
|
+ Em.Object.create({isSelected: false, isInstalled: false, serviceName: 's2'}),
|
|
|
+ Em.Object.create({isSelected: true, isInstalled: true, serviceName: 's3'}),
|
|
|
+ Em.Object.create({isSelected: false, isInstalled: false, serviceName: 's4'}),
|
|
|
+ Em.Object.create({isSelected: true, isInstalled: false, serviceName: 's5'}),
|
|
|
+ Em.Object.create({isSelected: false, isInstalled: false, serviceName: 's6'}),
|
|
|
+ Em.Object.create({isSelected: true, isInstalled: true, serviceName: 's7'}),
|
|
|
+ Em.Object.create({isSelected: false, isInstalled: false, serviceName: 's8'})
|
|
|
+ ])
|
|
|
+ });
|
|
|
+ it('should return configs with true value', function () {
|
|
|
+ installerStep7Controller.set('wizardController', Em.Object.create(App.LocalStorage, {name: 'addServiceController'}));
|
|
|
+ installerStep7Controller.set('addMiscTabToPage',true);
|
|
|
+ installerStep7Controller.reopen({allSelectedServiceNames: allSelectedServiceNames});
|
|
|
+ installerStep7Controller.set('stepConfigs', stepConfigs);
|
|
|
+ installerStep7Controller.set('content', content);
|
|
|
+ installerStep7Controller.activateSpecialConfigs();
|
|
|
+ expect(JSON.parse(JSON.stringify(installerStep7Controller.get('content')))).to.be.eql(expected[0]);
|
|
|
+ });
|
|
|
+ it('should return stepsConfigs with true value', function () {
|
|
|
+ installerStep7Controller.set('wizardController', Em.Object.create(App.LocalStorage, {name: 'kerberosWizardController'}));
|
|
|
+ installerStep7Controller.set('addMiscTabToPage',true);
|
|
|
+ installerStep7Controller.reopen({allSelectedServiceNames: allSelectedServiceNames});
|
|
|
+ installerStep7Controller.set('stepConfigs', stepConfigs);
|
|
|
+ installerStep7Controller.set('content', content);
|
|
|
+ installerStep7Controller.activateSpecialConfigs();
|
|
|
+ expect(JSON.parse(JSON.stringify(installerStep7Controller.get('stepConfigs')))).to.be.eql(expected[1]);
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ describe('#getConfigTagsSuccess', function () {
|
|
|
+ beforeEach(function(){
|
|
|
+ sinon.stub(App.StackService, 'find', function () {
|
|
|
+ return [
|
|
|
+ Em.Object.create({
|
|
|
+ serviceName: 's0',
|
|
|
+ isInstalled: true,
|
|
|
+ configTypes: {
|
|
|
+ site3: true,
|
|
|
+ site1: true
|
|
|
+ }
|
|
|
+ }),
|
|
|
+ Em.Object.create({
|
|
|
+ serviceName: 's1',
|
|
|
+ isInstalled: true,
|
|
|
+ configTypes: {
|
|
|
+ site1: true,
|
|
|
+ site2: true
|
|
|
+ }
|
|
|
+ })
|
|
|
+ ];
|
|
|
+ });
|
|
|
+ });
|
|
|
+ afterEach(function(){
|
|
|
+ App.StackService.find.restore();
|
|
|
+ });
|
|
|
+
|
|
|
+ it('should return serviceConfigTags', function () {
|
|
|
+ var desired_configs = {
|
|
|
+ site1: {
|
|
|
+ tag: "tag1"
|
|
|
+ },
|
|
|
+ site2: {
|
|
|
+ tag: "tag2"
|
|
|
+ },
|
|
|
+ site3: {
|
|
|
+ tag: "tag3"
|
|
|
+ }
|
|
|
+ };
|
|
|
+ var data = {
|
|
|
+ Clusters: {
|
|
|
+ desired_configs: desired_configs
|
|
|
+ }
|
|
|
+ };
|
|
|
+ var siteToTagMap = installerStep7Controller.getConfigTagsSuccess(data)
|
|
|
+ expect(installerStep7Controller.get('serviceConfigTags')).to.eql([
|
|
|
+ {
|
|
|
+ "siteName": "site1",
|
|
|
+ "tagName": "tag1",
|
|
|
+ "newTagName": null
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "siteName": "site2",
|
|
|
+ "tagName": "tag2",
|
|
|
+ "newTagName": null
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "siteName": "site3",
|
|
|
+ "tagName": "tag3",
|
|
|
+ "newTagName": null
|
|
|
+ }
|
|
|
+ ]);
|
|
|
+ expect(installerStep7Controller.get('isAppliedConfigLoaded')).to.equal(true);
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
describe('#clearStep', function () {
|
|
|
it('should clear stepConfigs', function () {
|
|
|
installerStep7Controller.set('stepConfigs', [
|
|
@@ -335,6 +606,12 @@ describe('App.InstallerStep7Controller', function () {
|
|
|
});
|
|
|
});
|
|
|
|
|
|
+ describe('#checkMySQLHost', function () {
|
|
|
+ it('should send query', function () {
|
|
|
+ expect(installerStep7Controller.checkMySQLHost().readyState).to.equal(1);
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
describe('#selectConfigGroup', function () {
|
|
|
beforeEach(function () {
|
|
|
installerStep7Controller.reopen({content: {services: []}});
|
|
@@ -1029,6 +1306,7 @@ describe('App.InstallerStep7Controller', function () {
|
|
|
);
|
|
|
|
|
|
installerStep7Controller.reopen({selectedServiceNames: ['HDFS', 's2']});
|
|
|
+ installerStep7Controller.set('installedServiceNames',['HDFS', 's2', 's3']);
|
|
|
sinon.stub(App.config, 'renderConfigs', function () {
|
|
|
return serviceConfigs;
|
|
|
});
|
|
@@ -1404,6 +1682,43 @@ describe('App.InstallerStep7Controller', function () {
|
|
|
|
|
|
});
|
|
|
|
|
|
+ describe('#setServiceDatabaseConfigs', function () {
|
|
|
+
|
|
|
+ var controller = App.WizardStep7Controller.create({
|
|
|
+ installedServiceNames: ['OOZIE', 'HIVE']
|
|
|
+ });
|
|
|
+ var configs = [
|
|
|
+ {
|
|
|
+ name: 'hive_database',
|
|
|
+ value: 'MySQL',
|
|
|
+ serviceName: 'HIVE',
|
|
|
+ filename: 'hbase-site.xml'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: 'oozie_database',
|
|
|
+ value: 'MySQL',
|
|
|
+ serviceName: 'OOZIE',
|
|
|
+ filename: 'ams-hbase-site.xml'
|
|
|
+ }
|
|
|
+ ];
|
|
|
+
|
|
|
+ it('should handle properties with the same name', function () {
|
|
|
+ var services = Em.A([
|
|
|
+ Em.Object.create({
|
|
|
+ isInstalled: true,
|
|
|
+ serviceName: 'SQOOP'
|
|
|
+ }),
|
|
|
+ Em.Object.create({
|
|
|
+ isInstalled: true,
|
|
|
+ serviceName: 'HDFS'
|
|
|
+ })
|
|
|
+ ]);
|
|
|
+ controller.setServiceDatabaseConfigs(configs);
|
|
|
+ var properties = configs.filterProperty('name', 'hive_database');
|
|
|
+ expect(properties).to.have.length(1);
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
describe('#getAmbariDatabaseSuccess', function () {
|
|
|
|
|
|
var controller = App.WizardStep7Controller.create({
|
|
@@ -1526,6 +1841,62 @@ describe('App.InstallerStep7Controller', function () {
|
|
|
|
|
|
});
|
|
|
|
|
|
+ describe('#loadServiceTagsSuccess', function () {
|
|
|
+ it('should create ClusterSiteToTagMap', function () {
|
|
|
+ var params = Em.Object.create({
|
|
|
+ serviceName: "OOZIE",
|
|
|
+ serviceConfigsDef: Em.Object.create({
|
|
|
+ configTypes: Em.Object.create({
|
|
|
+ site3: true,
|
|
|
+ site2: true,
|
|
|
+ site1: true
|
|
|
+ })
|
|
|
+ })
|
|
|
+ });
|
|
|
+ var wizardController = Em.Object.create({
|
|
|
+ allHosts: [
|
|
|
+ {hostName: 'h1'},
|
|
|
+ {hostName: 'h2'},
|
|
|
+ {hostName: 'h3'}
|
|
|
+ ]
|
|
|
+ });
|
|
|
+ installerStep7Controller.set('wizardController', wizardController);
|
|
|
+ installerStep7Controller.set('stepConfigs', Em.A([Em.Object.create({serviceName: 'OOZIE', configs: Em.A([]) })]));
|
|
|
+ var desired_configs = {
|
|
|
+ site1: {
|
|
|
+ tag: "tag1"
|
|
|
+ },
|
|
|
+ site2: {
|
|
|
+ tag: "tag2"
|
|
|
+ },
|
|
|
+ site3: {
|
|
|
+ tag: "tag3"
|
|
|
+ }
|
|
|
+ };
|
|
|
+ var data = {
|
|
|
+ config_groups: Em.A([Em.Object.create({
|
|
|
+ ConfigGroup: Em.Object.create({
|
|
|
+ tag: 'OOZIE',
|
|
|
+ hosts: Em.A([Em.Object.create({host_name: 'h1'})]),
|
|
|
+ id: 1,
|
|
|
+ group_name: "",
|
|
|
+ description: "",
|
|
|
+ desired_configs: Em.A([Em.Object.create({
|
|
|
+ type: '1',
|
|
|
+ tag: 'h1'
|
|
|
+ })])
|
|
|
+ })
|
|
|
+ })]),
|
|
|
+ Clusters: {
|
|
|
+ desired_configs: desired_configs
|
|
|
+ }
|
|
|
+ };
|
|
|
+ installerStep7Controller.loadServiceTagsSuccess(data, {}, params);
|
|
|
+ var result = installerStep7Controller.get("loadedClusterSiteToTagMap");
|
|
|
+ expect(JSON.parse(JSON.stringify(result))).to.eql(JSON.parse(JSON.stringify({"site1":"tag1","site2":"tag2","site3":"tag3"})));
|
|
|
+ })
|
|
|
+ });
|
|
|
+
|
|
|
describe('#issuesFilterLinkText', function () {
|
|
|
|
|
|
issuesFilterCases.forEach(function (item) {
|