Repository: ambari Updated Branches: refs/heads/trunk ad9e72027 -> 2ec55887c
Admin Web > Version Management add unit tests and small fix for host counters. (ababiichuk) Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/2ec55887 Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/2ec55887 Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/2ec55887 Branch: refs/heads/trunk Commit: 2ec55887c04955cedab7da8d384e04221c7f073d Parents: ad9e720 Author: aBabiichuk <[email protected]> Authored: Tue Dec 23 12:00:30 2014 +0200 Committer: aBabiichuk <[email protected]> Committed: Tue Dec 23 14:39:28 2014 +0200 ---------------------------------------------------------------------- .../repo_version_management_controller.js | 21 +++++-- .../stack_versions/repo_versions_controller.js | 8 ++- .../stack_version_details_controller.js | 16 ++---- ambari-web/app/messages.js | 33 ++++++----- .../stack_versions/stack_version_details.hbs | 43 +++++++------- .../admin/stack_versions/stack_versions.hbs | 4 +- .../admin/stack_versions/operating_systems.js | 2 +- .../admin/stack_versions/repo_version_view.js | 5 +- .../stack_version_details_view.js | 60 +++++++++++++++++++- .../admin/stack_versions/stack_version_view.js | 25 ++++---- .../repo_version_management_controller_test.js | 48 ++++++++++++++++ .../stack_version_details_controller_test.js | 58 +++++++++++++++++-- .../stack_version/stack_version_details_test.js | 4 +- 13 files changed, 246 insertions(+), 81 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/2ec55887/ambari-web/app/controllers/main/admin/stack_versions/repo_version_management_controller.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/controllers/main/admin/stack_versions/repo_version_management_controller.js b/ambari-web/app/controllers/main/admin/stack_versions/repo_version_management_controller.js index 1412300..eb4ddec 100644 --- a/ambari-web/app/controllers/main/admin/stack_versions/repo_version_management_controller.js +++ b/ambari-web/app/controllers/main/admin/stack_versions/repo_version_management_controller.js @@ -52,6 +52,10 @@ App.RepoVersionsManagementController = Em.ArrayController.extend({ return App.apiPrefix + '/clusters/' + App.get('clusterName') + '/stack_versions?fields=*,repository_versions/*,repository_versions/operatingSystems/repositories/*'; }.property('App.clusterName'), + /** + * api to get ClusterStackVersions without repository_versions (use to update data) + * @type {String} + */ realUpdateUrl: function () { return App.apiPrefix + '/clusters/' + App.get('clusterName') + '/stack_versions?fields=ClusterStackVersions/*'; }.property('App.clusterName'), @@ -106,6 +110,11 @@ App.RepoVersionsManagementController = Em.ArrayController.extend({ return dfd.promise(); }, + /** + * loads all needed data + * @returns {$.Deferred().promise()} + * @method load + */ load: function() { var dfd = $.Deferred(); var self = this; @@ -157,21 +166,21 @@ App.RepoVersionsManagementController = Em.ArrayController.extend({ */ showHosts: function(event) { var self = this; - var status = event.currentTarget.title.toCapital(); - var version = event.contexts[0]; - var hosts = event.contexts[1]; + var status = event.contexts[0]; + var version = event.contexts[1]; + var hosts = event.contexts[2]; if (hosts.length) { return App.ModalPopup.show({ bodyClass: Ember.View.extend({ - title: Em.I18n.t('admin.stackVersions.hosts.popup.title').format(version, status, hosts.length), + title: Em.I18n.t('admin.stackVersions.hosts.popup.title').format(version, status.label, hosts.length), template: Em.Handlebars.compile('<h4>{{view.title}}</h4><span class="limited-height-2">'+ hosts.join('<br/>') + '</span>') }), - header: Em.I18n.t('admin.stackVersions.hosts.popup.header').format(status), + header: Em.I18n.t('admin.stackVersions.hosts.popup.header').format(status.label), primary: Em.I18n.t('admin.stackVersions.hosts.popup.primary'), secondary: Em.I18n.t('common.close'), onPrimary: function() { this.hide(); - self.filterHostsByStack(version, status); + self.filterHostsByStack(version, status.id); } }); } http://git-wip-us.apache.org/repos/asf/ambari/blob/2ec55887/ambari-web/app/controllers/main/admin/stack_versions/repo_versions_controller.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/controllers/main/admin/stack_versions/repo_versions_controller.js b/ambari-web/app/controllers/main/admin/stack_versions/repo_versions_controller.js index 38365a7..127930a 100644 --- a/ambari-web/app/controllers/main/admin/stack_versions/repo_versions_controller.js +++ b/ambari-web/app/controllers/main/admin/stack_versions/repo_versions_controller.js @@ -25,7 +25,13 @@ App.RepoVersionsController = App.RepoVersionsManagementController.extend({ return App.RepositoryVersion.find().filterProperty('stackVersion', null); }.property('dataIsLoaded'), + /** + * installs repoversion to the cluster by running <code>installRepoVersion<code> method + * of <code>mainStackVersionsDetailsController<code> controller + * @param event + * @method installRepoVersion + */ installRepoVersion: function(event) { - App.get('router.mainStackVersionsDetailsController').installRepoVersion(event); + App.get('router.mainStackVersionsDetailsController').installRepoVersion(event); } }); http://git-wip-us.apache.org/repos/asf/ambari/blob/2ec55887/ambari-web/app/controllers/main/admin/stack_versions/stack_version_details_controller.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/controllers/main/admin/stack_versions/stack_version_details_controller.js b/ambari-web/app/controllers/main/admin/stack_versions/stack_version_details_controller.js index 08116f6..d467d20 100644 --- a/ambari-web/app/controllers/main/admin/stack_versions/stack_version_details_controller.js +++ b/ambari-web/app/controllers/main/admin/stack_versions/stack_version_details_controller.js @@ -30,14 +30,6 @@ App.MainStackVersionsDetailsController = Em.Controller.extend({ timeoutRef: null, /** - * amount of all hosts installed on cluster - * @type {Number} - */ - totalHostCount: function() { - return App.get('allHostNames.length'); - }.property('App.allHostNames.length'), - - /** * true if stack version install is in progress * @type {Boolean} */ @@ -86,7 +78,7 @@ App.MainStackVersionsDetailsController = Em.Controller.extend({ * @type {Number} */ hostsToInstall: function() { - return this.get('content.stackVersion') ? this.get('content.stackVersion.initHosts.length') : this.get('totalHostCount'); + return this.get('content.stackVersion') ? this.get('content.stackVersion.initHosts.length') : App.get('allHostNames.length'); }.property('content.stackVersion.initHosts.length'), /** @@ -100,7 +92,7 @@ App.MainStackVersionsDetailsController = Em.Controller.extend({ * @method showProgressPopup */ showProgressPopup: function() { - var popupTitle = Em.I18n.t('admin.stackVersions.datails.install.hosts.popup.title').format(this.get('content.displayName')); + var popupTitle = Em.I18n.t('admin.stackVersions.details.install.hosts.popup.title').format(this.get('content.displayName')); var requestIds = App.get('testMode') ? [1] : App.db.get('repoVersion', 'id'); var hostProgressPopupController = App.router.get('highAvailabilityProgressPopupController'); hostProgressPopupController.initPopup(popupTitle, requestIds, this); @@ -172,7 +164,7 @@ App.MainStackVersionsDetailsController = Em.Controller.extend({ name: 'admin.stack_version.install.repo_version', sender: this, data: data, - success: 'installStackVersionSuccess' + success: 'installRepoVersionSuccess' }); }, @@ -185,7 +177,7 @@ App.MainStackVersionsDetailsController = Em.Controller.extend({ * @param params * @method installStackVersionSuccess */ - installStackVersionSuccess: function (data, opt, params) { + installRepoVersionSuccess: function (data, opt, params) { var self = this; App.db.set('repoVersion', 'id', [data.Requests.id]); App.get('router.repoVersionsManagementController').loadStackVersionsToModel(true).done(function() { http://git-wip-us.apache.org/repos/asf/ambari/blob/2ec55887/ambari-web/app/messages.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/messages.js b/ambari-web/app/messages.js index f4fc091..e5d842e 100644 --- a/ambari-web/app/messages.js +++ b/ambari-web/app/messages.js @@ -1286,20 +1286,25 @@ Em.I18n.translations = { 'admin.stackVersions.table.empty': "No cluster stack versions to display", 'admin.repoVersions.table.empty': "No repository versions to display", - 'admin.stackVersions.datails.versionName': "Version Name", - 'admin.stackVersions.datails.installed.on': "Installed On", - 'admin.stackVersions.datails.current.on': "Current On", - 'admin.stackVersions.datails.not.installed.on': "Not installed on", - 'admin.stackVersions.datails.base.url': "Base Url", - - 'admin.stackVersions.datails.hosts.btn.reinstall': "Reinstall on failed hosts", - 'admin.stackVersions.datails.hosts.btn.install': "Install to {0} hosts", - 'admin.stackVersions.datails.hosts.btn.installing': "Installing...", - 'admin.stackVersions.datails.hosts.btn.nothing': "Installed on all hosts", - 'admin.stackVersions.datails.hosts.btn.goto.upgrade': "Proceed to upgrade", - 'admin.stackVersions.datails.hosts.btn.na': "Status not available", - 'admin.stackVersions.datails.install.hosts.popup.title': "Install {0} version", - + 'admin.stackVersions.details.versionName': "Version Name", + 'admin.stackVersions.details.installed.on': "Installed on", + 'admin.stackVersions.details.current.on': "Current on", + 'admin.stackVersions.details.not.installed.on': "Not installed on", + 'admin.stackVersions.details.host': "host", + 'admin.stackVersions.details.hosts': "hosts", + 'admin.stackVersions.details.base.url': "Base Url", + + 'admin.stackVersions.details.hosts.btn.reinstall': "Reinstall on failed hosts", + 'admin.stackVersions.details.hosts.btn.install': "Install to {0} hosts", + 'admin.stackVersions.details.hosts.btn.installing': "Installing...", + 'admin.stackVersions.details.hosts.btn.nothing': "Installed on all hosts", + 'admin.stackVersions.details.hosts.btn.goto.upgrade': "Proceed to upgrade", + 'admin.stackVersions.details.hosts.btn.na': "Status not available", + 'admin.stackVersions.details.install.hosts.popup.title': "Install {0} version", + + 'admin.stackVersions.hosts.popup.header.current': "Current", + 'admin.stackVersions.hosts.popup.header.installed': "Installed", + 'admin.stackVersions.hosts.popup.header.not_installed': "Not installed", 'admin.stackVersions.hosts.popup.header': "Version Status: {0}", 'admin.stackVersions.hosts.popup.title': "{0} Version is {1} on {2} hosts:", 'admin.stackVersions.hosts.popup.primary': "Go to Hosts", http://git-wip-us.apache.org/repos/asf/ambari/blob/2ec55887/ambari-web/app/templates/main/admin/stack_versions/stack_version_details.hbs ---------------------------------------------------------------------- diff --git a/ambari-web/app/templates/main/admin/stack_versions/stack_version_details.hbs b/ambari-web/app/templates/main/admin/stack_versions/stack_version_details.hbs index ab47e28..70a875a 100644 --- a/ambari-web/app/templates/main/admin/stack_versions/stack_version_details.hbs +++ b/ambari-web/app/templates/main/admin/stack_versions/stack_version_details.hbs @@ -26,37 +26,38 @@ <div class="version-content"> <div class="row-fluid"> <div class="span7"> - <div {{bindAttr class="view.showCounters::hide"}}> {{#unless installComplete}} <div class="row-fluid"> - <div class="span3">{{t admin.stackVersions.datails.not.installed.on}}</div> - <div {{bindAttr class="content.stackVersion.noInitHosts:not-active-link :span6"}}> - <a href="#" title='current' class="not-installed-hosts-count" - {{action showHosts content.displayName content.stackVersion.initHosts target="App.router.mainStackVersionsController"}}> - {{content.stackVersion.initHosts.length}} {{pluralize content.stackVersion.initHosts.length singular="t:common.host" plural="t:common.hosts"}} + <div class="span3">{{t admin.stackVersions.details.not.installed.on}}</div> + <div {{bindAttr class="view.noInitHosts:not-active-link :span6"}}> + <a href="#" class="not-installed-hosts-count" + {{action showHosts view.versionStateMap.not_installed content.repositoryVersion view.initHosts target="App.router.mainStackVersionsController"}}> + {{view.initHosts.length}} + {{pluralize view.initHosts.length singular="t:admin.stackVersions.details.host" plural="t:admin.stackVersions.details.hosts"}} </a> </div> </div> {{/unless}} <div class="row-fluid"> - <div class="span3">{{t admin.stackVersions.datails.installed.on}}</div> - <div {{bindAttr class="content.stackVersion.noInstalledHosts:not-active-link :span6"}}> - <a href="#" title='installed' class="installed-hosts-count" - {{action showHosts content.displayName content.stackVersion.installedHosts target="App.router.mainStackVersionsController"}}> - {{content.stackVersion.installedHosts.length}} {{pluralize content.stackVersion.installedHosts.length singular="t:common.host" plural="t:common.hosts"}} + <div class="span3">{{t admin.stackVersions.details.installed.on}}</div> + <div {{bindAttr class="view.noInstalledHosts:not-active-link :span6"}}> + <a href="#" class="installed-hosts-count" + {{action showHosts view.versionStateMap.installed content.repositoryVersion view.installedHosts target="App.router.mainStackVersionsController"}}> + {{view.installedHosts.length}} + {{pluralize view.installedHosts.length singular="t:admin.stackVersions.details.host" plural="t:admin.stackVersions.details.hosts"}} </a> </div> </div> <div class="row-fluid"> - <div class="span3">{{t admin.stackVersions.datails.current.on}}</div> - <div {{bindAttr class="content.stackVersion.noCurrentHosts:not-active-link :span6"}}> - <a href="#" title='current' class="current-hosts-count" - {{action showHosts content.displayName content.stackVersion.currentHosts target="App.router.mainStackVersionsController"}}> - {{content.stackVersion.currentHosts.length}} {{pluralize content.stackVersion.currentHosts.length singular="t:common.host" plural="t:common.hosts"}} + <div class="span3">{{t admin.stackVersions.details.current.on}}</div> + <div {{bindAttr class="view.noCurrentHosts:not-active-link :span6"}}> + <a href="#" class="current-hosts-count" + {{action showHosts view.versionStateMap.current content.repositoryVersion view.currentHosts target="App.router.mainStackVersionsController"}}> + {{view.currentHosts.length}} + {{pluralize view.currentHosts.length singular="t:admin.stackVersions.details.host" plural="t:admin.stackVersions.details.hosts"}} </a> </div> </div> - </div> </div> <div class="span5 align-center"> {{!show progress when install repo is in progress}} @@ -64,7 +65,7 @@ <div class="repo-installing-info"> <i class="icon-cog"> </i> <a href="javascript:void(null);" id="repo-installing-link" {{action showProgressPopup target="controller"}}> - {{t admin.stackVersions.datails.hosts.btn.installing}} + {{t admin.stackVersions.details.hosts.btn.installing}} </a> </div> <div class="progress-striped active progress-info progress repo-installing-progress"><div class="bar" {{bindAttr style="view.progress"}}></div></div> @@ -79,11 +80,11 @@ {{!show success mesasge when install complete}} {{#if installComplete}} <i class="icon-ok"> </i> - <span>{{t admin.stackVersions.datails.hosts.btn.nothing}}</span> + <span>{{t admin.stackVersions.details.hosts.btn.nothing}}</span> {{#if controller.current}} <span class="label label-success">{{t common.current}}</span> {{else}} - <a href="#/main/admin/stack">{{t admin.stackVersions.datails.hosts.btn.goto.upgrade}}</a> + <a href="#/main/admin/stack">{{t admin.stackVersions.details.hosts.btn.goto.upgrade}}</a> {{/if}} {{/if}} </div> @@ -106,7 +107,7 @@ {{t common.name}} </th> <th> - {{t admin.stackVersions.datails.base.url}} + {{t admin.stackVersions.details.base.url}} </th> </tr> </thead> http://git-wip-us.apache.org/repos/asf/ambari/blob/2ec55887/ambari-web/app/templates/main/admin/stack_versions/stack_versions.hbs ---------------------------------------------------------------------- diff --git a/ambari-web/app/templates/main/admin/stack_versions/stack_versions.hbs b/ambari-web/app/templates/main/admin/stack_versions/stack_versions.hbs index 5a8400f..a0a4711 100644 --- a/ambari-web/app/templates/main/admin/stack_versions/stack_versions.hbs +++ b/ambari-web/app/templates/main/admin/stack_versions/stack_versions.hbs @@ -46,7 +46,7 @@ <td class="installed-hosts-count"> <span {{bindAttr class="view.content.noInstalledHosts:not-active-link"}}> <a href="#" - title='installed' {{action showHosts view.content.repositoryVersion.displayName view.content.installedHosts target="controller"}}> + {{action showHosts view.versionStateMap.installed view.content.repositoryVersion.repositoryVersion view.content.installedHosts target="controller"}}> <span>{{view.content.installedHosts.length}}</span> </a> </span> @@ -54,7 +54,7 @@ <td class="current-hosts-count"> <span {{bindAttr class="view.content.noCurrentHosts:not-active-link"}}> <a href="#" - title='current' {{action showHosts view.content.repositoryVersion.displayName view.content.currentHosts target="controller"}}> + {{action showHosts view.versionStateMap.current view.content.repositoryVersion.repositoryVersion view.content.currentHosts target="controller"}}> <span>{{view.content.currentHosts.length}}</span> </a> </span> http://git-wip-us.apache.org/repos/asf/ambari/blob/2ec55887/ambari-web/app/views/main/admin/stack_versions/operating_systems.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/views/main/admin/stack_versions/operating_systems.js b/ambari-web/app/views/main/admin/stack_versions/operating_systems.js index 41f73fa..ce47057 100644 --- a/ambari-web/app/views/main/admin/stack_versions/operating_systems.js +++ b/ambari-web/app/views/main/admin/stack_versions/operating_systems.js @@ -49,7 +49,7 @@ App.OperatingSystemsView = Em.View.extend({ return this.get('content.operatingSystems').getEach('osType'); break; default : - return this.get('content.operatingSystems.length') + Em.I18n.t("common.oss"); + return this.get('content.operatingSystems.length') + " " + Em.I18n.t("common.oss"); } }.property('content.operatingSystems.length'), http://git-wip-us.apache.org/repos/asf/ambari/blob/2ec55887/ambari-web/app/views/main/admin/stack_versions/repo_version_view.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/views/main/admin/stack_versions/repo_version_view.js b/ambari-web/app/views/main/admin/stack_versions/repo_version_view.js index ef873cc..17a74f2 100644 --- a/ambari-web/app/views/main/admin/stack_versions/repo_version_view.js +++ b/ambari-web/app/views/main/admin/stack_versions/repo_version_view.js @@ -95,10 +95,7 @@ App.RepoVersionsView = App.TableView.extend({ }, RepositoryVersionView: Em.View.extend({ - tagName: 'tr', - didInsertElement: function () { - App.tooltip(this.$("[rel='Tooltip']")); - } + tagName: 'tr' }) }); http://git-wip-us.apache.org/repos/asf/ambari/blob/2ec55887/ambari-web/app/views/main/admin/stack_versions/stack_version_details_view.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/views/main/admin/stack_versions/stack_version_details_view.js b/ambari-web/app/views/main/admin/stack_versions/stack_version_details_view.js index 61e732f..944a8ff 100644 --- a/ambari-web/app/views/main/admin/stack_versions/stack_version_details_view.js +++ b/ambari-web/app/views/main/admin/stack_versions/stack_version_details_view.js @@ -33,8 +33,8 @@ App.MainStackVersionsDetailsView = Em.View.extend({ */ installButtonMsg: function() { return this.get('content.stackVersion.state') == 'INSTALL_FAILED' - ? Em.I18n.t('admin.stackVersions.datails.hosts.btn.reinstall') - : Em.I18n.t('admin.stackVersions.datails.hosts.btn.install').format(this.get('controller.hostsToInstall')) + ? Em.I18n.t('admin.stackVersions.details.hosts.btn.reinstall') + : Em.I18n.t('admin.stackVersions.details.hosts.btn.install').format(this.get('controller.hostsToInstall')) }.property('content.stackVersion.state', 'parentView.content.stackVersion.initHosts.length'), /** @@ -63,6 +63,62 @@ App.MainStackVersionsDetailsView = Em.View.extend({ return this.get('content.stackVersion') != null; }.property('content.stackVersion'), + + /** + * hosts with stack versions in not installed state + * when stack version for repoversion is not created returns all hosts in cluster + */ + initHosts: function() { + if (this.get('showCounters') && this.get('content.stackVersion.installingHosts') && this.get('content.stackVersion.installFailedHosts')) { + return this.get('content.stackVersion.installingHosts').concat(this.get('content.stackVersion.installFailedHosts')); + } else { + return App.get('allHostNames'); + } + }.property('showCounters', 'content.stackVersion.installingHosts.length', 'content.stackVersion.installFailedHosts.length', 'App.allHostNames'), + + /** + * hosts with stack versions in installed state + * when stack version for repoversion is not created returns an empty array + */ + installedHosts: function() { + return this.get('showCounters') ? this.get('content.stackVersion.installedHosts') : []; + }.property('showCounters', 'content.stackVersion.installedHosts.length'), + + /** + * hosts with stack versions in current state + * when stack version for repoversion is not created returns an empty array + */ + currentHosts: function() { + return this.get('showCounters') ? this.get('content.stackVersion.currentHosts') : []; + }.property('showCounters', 'content.stackVersion.currentHosts.length'), + + noInitHosts: function() { + return this.get('showCounters') ? this.get('content.stackVersion.noInitHosts') : false; + }.property('showCounters', 'content.stackVersion.noInitHosts'), + + noInstalledHosts: function() { + return this.get('showCounters') ? this.get('content.stackVersion.noInstalledHosts') : true; + }.property('showCounters', 'content.stackVersion.noInstalledHosts'), + + noCurrentHosts: function() { + return this.get('showCounters') ? this.get('content.stackVersion.noCurrentHosts') : true; + }.property('showCounters', 'content.stackVersion.noCurrentHosts'), + + versionStateMap: { + 'current': { + 'id': 'current', + 'label': Em.I18n.t('admin.stackVersions.hosts.popup.header.current') + }, + 'installed': { + 'id': 'installed', + 'label': Em.I18n.t('admin.stackVersions.hosts.popup.header.installed') + }, + 'not_installed': { + 'id': 'installing', + 'label': Em.I18n.t('admin.stackVersions.hosts.popup.header.not_installed') + } + }, + didInsertElement: function() { App.get('router.mainStackVersionsController').set('isPolling', true); App.get('router.mainStackVersionsController').doPolling(); http://git-wip-us.apache.org/repos/asf/ambari/blob/2ec55887/ambari-web/app/views/main/admin/stack_versions/stack_version_view.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/views/main/admin/stack_versions/stack_version_view.js b/ambari-web/app/views/main/admin/stack_versions/stack_version_view.js index 6a0f2d4..bee2a1b 100644 --- a/ambari-web/app/views/main/admin/stack_versions/stack_version_view.js +++ b/ambari-web/app/views/main/admin/stack_versions/stack_version_view.js @@ -134,20 +134,21 @@ App.MainStackVersionsView = App.TableView.extend({ StackVersionView: Em.View.extend({ tagName: 'tr', - didInsertElement: function () { - App.tooltip(this.$("[rel='Tooltip']")); - this.set('isOsCollapsed', true); - }, - toggleOs: function(event) { - this.set('isOsCollapsed', !this.get('isOsCollapsed')); - this.$('.operating-systems').toggle(); + versionStateMap: { + 'current': { + 'id': 'current', + 'label': Em.I18n.t('admin.stackVersions.hosts.popup.header.current') + }, + 'installed': { + 'id': 'installed', + 'label': Em.I18n.t('admin.stackVersions.hosts.popup.header.installed') + }, + 'not_installed': { + 'id': 'installing', + 'label': Em.I18n.t('admin.stackVersions.hosts.popup.header.not_installed') + } }, - - labels: function() { - return this.get('content.repositoryVersion.operatingSystems') && - this.get('content.repositoryVersion.operatingSystems').getEach('osType').join("<br/>"); - }.property('content.repositoryVersion.operatingSystems.length') }) }); http://git-wip-us.apache.org/repos/asf/ambari/blob/2ec55887/ambari-web/test/controllers/main/admin/stack_version/repo_version_management_controller_test.js ---------------------------------------------------------------------- diff --git a/ambari-web/test/controllers/main/admin/stack_version/repo_version_management_controller_test.js b/ambari-web/test/controllers/main/admin/stack_version/repo_version_management_controller_test.js index 2e71236..67c05e0 100644 --- a/ambari-web/test/controllers/main/admin/stack_version/repo_version_management_controller_test.js +++ b/ambari-web/test/controllers/main/admin/stack_version/repo_version_management_controller_test.js @@ -27,6 +27,43 @@ describe('App.RepoVersionsManagementController', function () { controller = App.RepoVersionsManagementController.create({}); }); + describe('#getUrl()', function () { + beforeEach(function() { + controller.reopen({ + 'mockStackUrl': 'mockStackUrl', + 'mockRepoUrl': 'mockRepoUrl', + 'realStackUrl': 'realStackUrl', + 'realRepoUrl': 'realRepoUrl', + 'realUpdateUrl': 'realUpdateUrl' + }); + }); + afterEach(function() { + App.set('testMode', false); + }); + + it('gets url for testMode for stackVersion', function () { + App.set('testMode', true); + expect(controller.getUrl(true)).to.be.equal('mockStackUrl'); + }); + it('gets url for testMode for repoVersion', function () { + App.set('testMode', true); + expect(controller.getUrl(false)).to.equal('mockRepoUrl'); + }); + it('gets url for stackVersion', function () { + App.set('testMode', false); + expect(controller.getUrl(true, true)).to.be.equal('realStackUrl'); + }); + it('gets url for repoVersion', function () { + App.set('testMode', false); + expect(controller.getUrl(false, true)).to.be.equal('realRepoUrl'); + }); + it('gets url to upadte stackVersion', function () { + App.set('testMode', false); + expect(controller.getUrl(true)).to.be.equal('realUpdateUrl'); + }); + + }); + describe('#load()', function () { it('loads data to model by running loadStackVersionsToModel', function () { sinon.stub(controller, 'loadStackVersionsToModel').returns($.Deferred().resolve()); @@ -118,4 +155,15 @@ describe('App.RepoVersionsManagementController', function () { }); }); }); + + describe('#showHosts()', function () { + it('show list of hosts for current version in choosen state', function () { + sinon.stub(controller, 'filterHostsByStack', Em.K); + + controller.showHosts({ contexts: [{id: "state", label: "label"}, "version",["host"]]}).onPrimary(); + expect(controller.filterHostsByStack.calledWith("version", "state")).to.be.true; + + controller.filterHostsByStack.restore(); + }); + }); }); \ No newline at end of file http://git-wip-us.apache.org/repos/asf/ambari/blob/2ec55887/ambari-web/test/controllers/main/admin/stack_version/stack_version_details_controller_test.js ---------------------------------------------------------------------- diff --git a/ambari-web/test/controllers/main/admin/stack_version/stack_version_details_controller_test.js b/ambari-web/test/controllers/main/admin/stack_version/stack_version_details_controller_test.js index 6161ede..235e845 100644 --- a/ambari-web/test/controllers/main/admin/stack_version/stack_version_details_controller_test.js +++ b/ambari-web/test/controllers/main/admin/stack_version/stack_version_details_controller_test.js @@ -38,13 +38,63 @@ describe('App.MainStackVersionsDetailsController', function () { }); it("runs initPopup", function() { controller.reopen({'content': { 'displayName': "v1"}}); - var popupTitle = Em.I18n.t('admin.stackVersions.datails.install.hosts.popup.title').format("v1"); + var popupTitle = Em.I18n.t('admin.stackVersions.details.install.hosts.popup.title').format("v1"); var requestIds =[1]; controller.showProgressPopup(); expect(App.router.get('highAvailabilityProgressPopupController').initPopup.calledWith(popupTitle, requestIds, controller)).to.be.true; }); }); + describe("#doPolling()", function () { + beforeEach(function () { + sinon.stub(controller, 'updateProgress', Em.K); + sinon.spy(controller, 'doPolling'); + this.clock = sinon.useFakeTimers(); + }); + afterEach(function () { + controller.updateProgress.restore(); + controller.doPolling.restore(); + this.clock.restore(); + }); + it("installInProgress false", function () { + controller.set('installInProgress', false); + controller.doPolling(); + expect(controller.updateProgress.calledOnce).to.be.true; + expect(controller.doPolling.calledOnce).to.be.true; + }); + it("installInProgress true", function () { + controller.set('installInProgress', true); + controller.doPolling(); + this.clock.tick(App.componentsUpdateInterval); + expect(controller.doPolling.called).to.be.true; + expect(controller.updateProgress.called).to.be.true; + }); + }); + + describe('#updateProgress', function () { + beforeEach(function () { + sinon.stub(App.ajax, 'send', Em.K); + sinon.stub(App.db, 'get').withArgs('repoVersion','id').returns(1) + }); + afterEach(function () { + App.ajax.send.restore(); + App.db.get.restore(); + }); + it("runs get request to get install progress", function () { + controller.updateProgress(); + expect(App.ajax.send.getCall(0).args[0].data).to.deep.eql({ + requestId: 1 + }); + }); + }); + + describe('#updateProgressSuccess', function () { + it("saves progress state t othe controller", function () { + controller.updateProgressSuccess({Requests: {progress_percent: 10} }); + expect(controller.get('progress')).to.equal(10); + }); + }); + describe('#installRepoVersion', function () { beforeEach(function () { sinon.stub(App.ajax, 'send', Em.K); @@ -67,7 +117,7 @@ describe('App.MainStackVersionsDetailsController', function () { }); }); - describe('#installStackVersionSuccess()', function () { + describe('#installRepoVersionSuccess()', function () { var repoId = "1"; var requestId = "2"; var repoVersion = {id: repoId}; @@ -91,7 +141,7 @@ describe('App.MainStackVersionsDetailsController', function () { App.set('router.currentState.name', route); }); it('success callback for install stack version without redirect', function () { - controller.installStackVersionSuccess({Requests: {id: requestId}}, null, {id: repoId}); + controller.installRepoVersionSuccess({Requests: {id: requestId}}, null, {id: repoId}); expect(App.db.set.calledWith('repoVersion', 'id', [requestId])).to.be.true; expect(App.get('router.repoVersionsManagementController').loadStackVersionsToModel.calledWith(true)).to.be.true; expect(App.RepositoryVersion.find.calledOnce).to.be.true; @@ -100,7 +150,7 @@ describe('App.MainStackVersionsDetailsController', function () { it('success callback for install stack version', function () { App.set('router.currentState.name', "update"); - controller.installStackVersionSuccess({Requests: {id: requestId}}, null, {id: repoId}); + controller.installRepoVersionSuccess({Requests: {id: requestId}}, null, {id: repoId}); expect(App.db.set.calledWith('repoVersion', 'id', [requestId])).to.be.true; expect(App.get('router.repoVersionsManagementController').loadStackVersionsToModel.calledOnce).to.be.true; expect(App.RepositoryVersion.find.called).to.be.true; http://git-wip-us.apache.org/repos/asf/ambari/blob/2ec55887/ambari-web/test/views/main/admin/stack_version/stack_version_details_test.js ---------------------------------------------------------------------- diff --git a/ambari-web/test/views/main/admin/stack_version/stack_version_details_test.js b/ambari-web/test/views/main/admin/stack_version/stack_version_details_test.js index f577a67..02afe51 100644 --- a/ambari-web/test/views/main/admin/stack_version/stack_version_details_test.js +++ b/ambari-web/test/views/main/admin/stack_version/stack_version_details_test.js @@ -43,12 +43,12 @@ describe('App.MainStackVersionsDetailsView', function () { it("install button msg for init state" , function() { view.set("controller.hostsToInstall", 2); view.set("content.stackVersion.state", "ANY"); - expect(view.get('installButtonMsg')).to.equal(Em.I18n.t('admin.stackVersions.datails.hosts.btn.install').format(2)) + expect(view.get('installButtonMsg')).to.equal(Em.I18n.t('admin.stackVersions.details.hosts.btn.install').format(2)) }); it("install button msg for install failed state" , function() { view.set("content.stackVersion.state", "INSTALL_FAILED"); - expect(view.get('installButtonMsg')).to.equal(Em.I18n.t('admin.stackVersions.datails.hosts.btn.reinstall')) + expect(view.get('installButtonMsg')).to.equal(Em.I18n.t('admin.stackVersions.details.hosts.btn.reinstall')) }); });
