Repository: ambari Updated Branches: refs/heads/branch-3.0-perf eaf1fd5ce -> 366f6ca9b
AMBARI-22495. Installer - Select Version page should show HDP-GPL repo if necessary (vsubramanian) Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/6b17d014 Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/6b17d014 Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/6b17d014 Branch: refs/heads/branch-3.0-perf Commit: 6b17d0142266f714807bd06e3ce1afbe535a0a73 Parents: 9fc7223 Author: Vivek Ratnavel Subramanian <[email protected]> Authored: Wed Nov 22 18:00:32 2017 -0800 Committer: Vivek Ratnavel Subramanian <[email protected]> Committed: Wed Nov 22 18:00:32 2017 -0800 ---------------------------------------------------------------------- ambari-web/app/controllers/installer.js | 53 +++++++++++--------- .../app/controllers/wizard/step8_controller.js | 12 +++-- .../app/mappers/repository_version_mapper.js | 3 +- ambari-web/app/mappers/stack_mapper.js | 3 +- ambari-web/app/models/repository.js | 17 +++++++ .../app/models/stack_version/repository.js | 3 +- ambari-web/app/templates/wizard/step1.hbs | 36 +++++++++++++ ambari-web/test/controllers/installer_test.js | 14 ++++-- 8 files changed, 103 insertions(+), 38 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/6b17d014/ambari-web/app/controllers/installer.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/controllers/installer.js b/ambari-web/app/controllers/installer.js index 3c50b26..d6be78d 100644 --- a/ambari-web/app/controllers/installer.js +++ b/ambari-web/app/controllers/installer.js @@ -813,6 +813,7 @@ App.InstallerController = App.WizardController.extend(App.Persist, { "repo_id": repository.get('repoId'), "repo_name": repository.get('repoName'), "components": repository.get('components'), + "tags": repository.get('tags'), "distribution": repository.get('distribution') } }); @@ -833,7 +834,7 @@ App.InstallerController = App.WizardController.extend(App.Persist, { var dfd = $.Deferred(); if (selectedStack && selectedStack.get('operatingSystems')) { this.set('validationCnt', selectedStack.get('operatingSystems').filterProperty('isSelected').filterProperty('isEmpty', false).map(function (os) { - return os.get('repositories.length'); + return os.get('repositories').filterProperty('showRepo', true).length; }).reduce(Em.sum, 0)); var verifyBaseUrl = !wizardStep1Controller.get('skipValidationChecked') && !wizardStep1Controller.get('selectedStack.useRedhatSatellite'); if (!verifyBaseUrl) { @@ -842,32 +843,34 @@ App.InstallerController = App.WizardController.extend(App.Persist, { selectedStack.get('operatingSystems').forEach(function (os) { if (os.get('isSelected') && !os.get('isEmpty')) { os.get('repositories').forEach(function (repo) { - repo.setProperties({ - errorTitle: '', - errorContent: '', - validation: 'INPROGRESS' - }); - this.set('content.isCheckInProgress', true); - App.ajax.send({ - name: 'wizard.advanced_repositories.valid_url', - sender: this, - data: { - stackName: stackName, - stackVersion: stackVersion, - repoId: repo.get('repoId'), - osType: os.get('osType'), - osId: os.get('id'), - dfd: dfd, + if (repo.get('showRepo')) { + repo.setProperties({ + errorTitle: '', + errorContent: '', + validation: 'INPROGRESS' + }); + this.set('content.isCheckInProgress', true); + App.ajax.send({ + name: 'wizard.advanced_repositories.valid_url', + sender: this, data: { - 'Repositories': { - 'base_url': repo.get('baseUrl'), - "verify_base_url": verifyBaseUrl + stackName: stackName, + stackVersion: stackVersion, + repoId: repo.get('repoId'), + osType: os.get('osType'), + osId: os.get('id'), + dfd: dfd, + data: { + 'Repositories': { + 'base_url': repo.get('baseUrl'), + "verify_base_url": verifyBaseUrl + } } - } - }, - success: 'checkRepoURLSuccessCallback', - error: 'checkRepoURLErrorCallback' - }); + }, + success: 'checkRepoURLSuccessCallback', + error: 'checkRepoURLErrorCallback' + }); + } }, this); } else if (os.get('isSelected') && os.get('isEmpty')) { os.set('isSelected', false); http://git-wip-us.apache.org/repos/asf/ambari/blob/6b17d014/ambari-web/app/controllers/wizard/step8_controller.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/controllers/wizard/step8_controller.js b/ambari-web/app/controllers/wizard/step8_controller.js index 94139e0..e64a09a 100644 --- a/ambari-web/app/controllers/wizard/step8_controller.js +++ b/ambari-web/app/controllers/wizard/step8_controller.js @@ -307,11 +307,13 @@ App.WizardStep8Controller = Em.Controller.extend(App.AddSecurityConfigs, App.wiz selectedStack.get('operatingSystems').forEach(function (os) { if (os.get('isSelected')) { os.get('repositories').forEach(function(repo) { - allRepos.push(Em.Object.create({ - base_url: repo.get('baseUrl'), - os_type: repo.get('osType'), - repo_id: repo.get('repoId') - })); + if (repo.get('showRepo')) { + allRepos.push(Em.Object.create({ + base_url: repo.get('baseUrl'), + os_type: repo.get('osType'), + repo_id: repo.get('repoId') + })); + } }, this); } }, this); http://git-wip-us.apache.org/repos/asf/ambari/blob/6b17d014/ambari-web/app/mappers/repository_version_mapper.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/mappers/repository_version_mapper.js b/ambari-web/app/mappers/repository_version_mapper.js index 3838d34..8843dcd 100644 --- a/ambari-web/app/mappers/repository_version_mapper.js +++ b/ambari-web/app/mappers/repository_version_mapper.js @@ -73,7 +73,8 @@ App.repoVersionMapper = App.QuickDataMapper.create({ repo_id : 'Repositories.repo_id', repo_name : 'Repositories.repo_name', stack_name : 'Repositories.stack_name', - stack_version : 'Repositories.stack_version' + stack_version : 'Repositories.stack_version', + tags: 'Repositories.tags' }, map: function (json, loadAll, isCurrentStackOnly) { http://git-wip-us.apache.org/repos/asf/ambari/blob/6b17d014/ambari-web/app/mappers/stack_mapper.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/mappers/stack_mapper.js b/ambari-web/app/mappers/stack_mapper.js index 07fb137..323a033 100644 --- a/ambari-web/app/mappers/stack_mapper.js +++ b/ambari-web/app/mappers/stack_mapper.js @@ -87,7 +87,8 @@ App.stackMapper = App.QuickDataMapper.create({ stack_version: 'stack_version', operating_system_id: 'os_id', components: 'components', - distribution: 'distribution' + distribution: 'distribution', + tags: 'tags' }, map: function(json) { http://git-wip-us.apache.org/repos/asf/ambari/blob/6b17d014/ambari-web/app/models/repository.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/models/repository.js b/ambari-web/app/models/repository.js index c50750f..d85c55d 100644 --- a/ambari-web/app/models/repository.js +++ b/ambari-web/app/models/repository.js @@ -34,6 +34,7 @@ App.Repository = DS.Model.extend({ operatingSystem: DS.belongsTo('App.OperatingSystem'), components: DS.attr('string'), distribution: DS.attr('string'), + tags: DS.attr('array'), validation: DS.attr('string', {defaultValue: ''}), validationClassName: Em.computed.getByKey('validationClassNameMap', 'validation', ''), @@ -66,6 +67,22 @@ App.Repository = DS.Model.extend({ return this.get('repoName').contains('UTILS'); }.property('repoName'), + /** + * @type {boolean} + */ + isGPL: function () { + return this.get('tags').contains('GPL'); + }.property('tags'), + + /** + * Determines whether a repo needs to be displayed in the UI or not + * @type {boolean} + */ + showRepo: function () { + const isGPLAccepted = App.router.get('clusterController.ambariProperties')['gpl.license.accepted'] === 'true'; + return isGPLAccepted || !this.get('isGPL'); + }.property('isGPL'), + undo: Em.computed.notEqualProperties('baseUrl', 'baseUrlInit'), notEmpty: Em.computed.notEqual('baseUrl', ''), http://git-wip-us.apache.org/repos/asf/ambari/blob/6b17d014/ambari-web/app/models/stack_version/repository.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/models/stack_version/repository.js b/ambari-web/app/models/stack_version/repository.js index 8bd4323..6c93416 100644 --- a/ambari-web/app/models/stack_version/repository.js +++ b/ambari-web/app/models/stack_version/repository.js @@ -29,7 +29,8 @@ App.Repository = DS.Model.extend({ repoName : DS.attr('string'), stackName : DS.attr('string'), stackVersion : DS.attr('string'), - operatingSystem: DS.belongsTo('App.OS') + operatingSystem: DS.belongsTo('App.OS'), + tags: DS.attr('array') }); App.Repository.FIXTURES = []; http://git-wip-us.apache.org/repos/asf/ambari/blob/6b17d014/ambari-web/app/templates/wizard/step1.hbs ---------------------------------------------------------------------- diff --git a/ambari-web/app/templates/wizard/step1.hbs b/ambari-web/app/templates/wizard/step1.hbs index 6b15e65..eb746c3 100644 --- a/ambari-web/app/templates/wizard/step1.hbs +++ b/ambari-web/app/templates/wizard/step1.hbs @@ -131,6 +131,42 @@ </div> {{! Add OS END}} </div> + <div class="span9 repo-name-url"> + {{#each repository in operatingSystem.repositories}} + {{#if repository.showRepo}} + <div {{bindAttr class=":clearfix :repo-name-url-inner repository.repoName"}}> + <div class="span3"> + <label class="repo-name-label control-label">{{repository.repoId}}</label> + </div> + <div class="validation-td span1"> + {{#if repository.validation}} + {{view view.popoverView repositoryBinding="repository"}} + {{/if}} + </div> + <div {{bindAttr class=":span8 :repo-url repository.invalidFormatError:textfield-error repository.invalidError:textfield-error"}}> + {{view Ember.TextField placeholderBinding="repository.placeholder" valueBinding="repository.baseUrl" disabledBinding="controller.selectedStack.useRedhatSatellite"}} + {{#if controller.selectedStack.usePublicRepo}} + {{#if repository.undo}} + <i class="icon-undo" data-toggle="tooltip" + {{action "doRestoreDefaultValue" repository target="controller"}} + {{translateAttr title="common.undo"}}> + </i> + {{/if}} + {{else}} + {{#if repository.notEmpty}} + <i class="icon-undo" data-toggle="tooltip" + {{action "doRestoreToEmpty" repository target="controller"}} + {{translateAttr title="common.undo"}}> + </i> + {{/if}} + {{/if}} + </div> + </div> + {{/if}} + {{/each}} + </div> + <div {{bindAttr class=":span1 :remove-icon controller.selectedStack.useRedhatSatellite:disabled"}} {{action "removeOS" operatingSystem target="controller"}}> + <i class="icon-minus"></i>{{t common.remove}}</div> </div> </div> <table class="table table-hover"> http://git-wip-us.apache.org/repos/asf/ambari/blob/6b17d014/ambari-web/test/controllers/installer_test.js ---------------------------------------------------------------------- diff --git a/ambari-web/test/controllers/installer_test.js b/ambari-web/test/controllers/installer_test.js index 65a1e5c..3831c79 100644 --- a/ambari-web/test/controllers/installer_test.js +++ b/ambari-web/test/controllers/installer_test.js @@ -92,7 +92,8 @@ describe('App.InstallerController', function () { isEmpty: false, errorTitle: '1', errorContent: '1', - validation: '' + validation: '', + showRepo: true }) ]) }) @@ -131,7 +132,8 @@ describe('App.InstallerController', function () { "isEmpty": false, "errorTitle": "", "errorContent": "", - "validation": "INPROGRESS" + "validation": "INPROGRESS", + "showRepo": true } ] } @@ -172,7 +174,8 @@ describe('App.InstallerController', function () { isEmpty: false, errorTitle: '1', errorContent: '1', - validation: '' + validation: '', + showRepo: true }) ]) }) @@ -189,7 +192,7 @@ describe('App.InstallerController', function () { } } }; - it ('Should check stacks for sucess', function() { + it ('Should check stacks for success', function() { installerController.set('content.stacks', stacks); installerController.checkRepoURLSuccessCallback(null,null,data); @@ -220,7 +223,8 @@ describe('App.InstallerController', function () { "isEmpty": false, "errorTitle": "1", "errorContent": "1", - "validation": "OK" + "validation": "OK", + "showRepo": true } ] }
