location: function () { return App.router.get('location.lastSetURL'); }.property('App.router.location.lastSetURL'),
var goNextStepIfValid = function () { if (!self.get('submitDisabled')) { App.router.send('next'); } self.set('submitButtonClicked', false); };
* limitations under the License. */ var App = require('app'); var Ember = require('ember'); require('models/host'); require('controllers/wizard/stack_upgrade/step3_controller'); if (!App.router) { App.router = Em.Object.create({}); } App.router.set('stackUpgradeController', Em.Object.create({ save: Em.K })); describe('App.StackUpgradeStep3Controller', function() { var stackUpgradeStep3Controller = App.StackUpgradeStep3Controller.create(); describe('#runUpgradeErrorCallback', function() { var processes = [ Ember.Object.create({ status: '', isRetry: false, name: 'UPGRADE_SERVICES' }) ];
Em.run.next(function () { App.router.transitionTo('main.views.index'); });
var interval = setInterval(function () { App.router.get(controllerName)[funcName](); }, this.jobsUpdateInterval);
abortEditor: function() { var app = require('app'); app.router.navigate("#team/" + this.model.uuid(), {trigger: true}); },
navigate: function(url) { url = routes.relativeUrl(url); app.router.navigate(url, { trigger: true }); },
handleClickAddAttribute = () => { // Open the modal router.push(`/plugins/content-type-builder/models/${this.props.match.params.modelName}#choose::attributes`); }
toggleModal = () => { const locationHash = this.props.location.hash ? '' : '#create::contentType::baseSettings'; router.push(`/plugins/content-type-builder/models/${this.props.match.params.modelName}${locationHash}`); }
selectService: function () { App.router.transitionTo('services.service.summary', event.context) this.closePopup(); },
didInsertElement: function() { var self = this; App.router.get('mainController').isLoading.call(App.router.get('clusterController'), 'isConfigsPropertiesLoaded').done(function () { self.get('controller').loadUsers(); }); }
nagiosUrl: function () { return App.router.get('clusterController.nagiosUrl'); }.property('App.router.clusterController.nagiosUrl'),
gangliaUrl: function () { return App.router.get('clusterController.gangliaUrl') + "/?r=hour&cs=&ce=&m=&s=by+name&c=HDPSlaves&tab=m&vn="; }.property('App.router.clusterController.gangliaUrl'),
persistKey: function () { var loginName = App.router.get('loginName'); return 'user-pref-' + loginName + '-dashboard'; }.property(''),
newTeam: function() { var App = require('app'); App.router.navigate("#team/new/edit", {trigger: true}); },
map: function (json) { console.time('App.serviceConfigVersionsMapper'); var result = []; var itemIds = {}; var serviceToHostMap = {}; var currentVersionsMap = {}; if (json && json.items) { App.ServiceConfigVersion.find().forEach(function (v) { if (v.get('isCurrent')) { currentVersionsMap[v.get('serviceName') + "_" + v.get('groupName')] = v; } }); json.items.forEach(function (item, index) { var parsedItem = this.parseIt(item, this.get('config')); parsedItem.id = this.makeId(parsedItem.service_name, parsedItem.version); parsedItem.is_requested = true; parsedItem.create_time = App.dateTimeWithTimeZone(parsedItem.create_time); itemIds[parsedItem.id] = true; parsedItem.index = index; if (serviceToHostMap[item.service_name]) { serviceToHostMap[item.service_name] = serviceToHostMap[item.service_name].concat(item.hosts); } else { serviceToHostMap[item.service_name] = item.hosts; } // if loaded only latest versions(later than current), then current version should be reset if (parsedItem.is_current && currentVersionsMap[parsedItem.service_name + "_" + parsedItem.group_name]) { currentVersionsMap[parsedItem.service_name + "_" + parsedItem.group_name].set('isCurrent', false); } result.push(parsedItem); }, this); var itemTotal = parseInt(json.itemTotal); if (!isNaN(itemTotal)) { App.router.set('mainConfigHistoryController.filteredCount', itemTotal); } /** * this code sets hostNames for default config group * by excluding hostNames that belongs to not default groups * from list of all hosts */ Object.keys(serviceToHostMap).forEach(function(sName) { var defaultHostNames = App.get('allHostNames'); for (var i = 0; i < serviceToHostMap[sName].length; i++) { defaultHostNames = defaultHostNames.without(serviceToHostMap[sName][i]); } var defVer = result.find(function(v) { return v.is_current && v.group_id == -1 && v.service_name == sName; }); if (defVer) { defVer.hosts = defaultHostNames; } }); // If on config history page, need to clear the model if (App.router.get('currentState.name') === 'configHistory') { this.get('model').find().clear(); } App.store.commit(); App.store.loadMany(this.get('model'), result); console.timeEnd('App.serviceConfigVersionsMapper'); } },
editTeam: function() { var App = require('app'); App.router.navigate("#team/" + this.model.uuid() + "/edit", {trigger: true}); },
onSaveSuccess: function() { logger.debug('onSaveSuccess', this.model); app.router.navigate('invoice_status/list', true); },
deleteModel: function() { this.showAlert("Delete not enabled/implemented yet."); var App = require('app'); App.router.navigate("#teams", {trigger: true}); },
onSaveSuccess: function() { logger.debug('onSaveSuccess', this.model); app.router.navigate('office_data/list', true); },
updateOrg: function(ev) { app.router.go("org", this.$(".org").val()); return false; }
setBackgroundOperationHeader: function (isServiceListHidden) { if (this.get('isBackgroundOperations') && !isServiceListHidden) { var numRunning = App.router.get('backgroundOperationsController.allOperationsCount'); this.set("popupHeaderName", numRunning + Em.I18n.t('hostPopup.header.postFix')); } },
onLoadConfigs: function (data) { var isHadoop2Stack = App.get('isHadoop2Stack'); var securityEnabled = this.get('content.securityEnabled'); var componentName = this.get('content.reassign.component_name'); var targetHostName = this.get('content.reassignHosts.target'); var sourceHostName = this.get('content.reassignHosts.source'); var configs = {}; var componentDir = ''; var secureConfigs = []; this.set('configsSitesNumber', data.items.length); this.set('configsSitesCount', 0); data.items.forEach(function (item) { configs[item.type] = item.properties; }, this); switch (componentName) { case 'NAMENODE': if (isHadoop2Stack) { if (App.get('isHaEnabled')) { var nameServices = configs['hdfs-site']['dfs.nameservices']; if (configs['hdfs-site']['dfs.namenode.http-address.' + nameServices + '.nn1'] === sourceHostName + ':50070') { configs['hdfs-site']['dfs.namenode.http-address.' + nameServices + '.nn1'] = targetHostName + ':50070'; configs['hdfs-site']['dfs.namenode.https-address.' + nameServices + '.nn1'] = targetHostName + ':50470'; configs['hdfs-site']['dfs.namenode.rpc-address.' + nameServices + '.nn1'] = targetHostName + ':8020'; } else { configs['hdfs-site']['dfs.namenode.http-address.' + nameServices + '.nn2'] = targetHostName + ':50070'; configs['hdfs-site']['dfs.namenode.https-address.' + nameServices + '.nn2'] = targetHostName + ':50470'; configs['hdfs-site']['dfs.namenode.rpc-address.' + nameServices + '.nn2'] = targetHostName + ':8020'; } } else { configs['hdfs-site']['dfs.namenode.http-address'] = targetHostName + ':50070'; configs['hdfs-site']['dfs.namenode.https-address'] = targetHostName + ':50470'; configs['core-site']['fs.defaultFS'] = 'hdfs://' + targetHostName + ':8020'; } componentDir = configs['hdfs-site']['dfs.namenode.name.dir']; } else { componentDir = configs['hdfs-site']['dfs.name.dir']; configs['hdfs-site']['dfs.http.address'] = targetHostName + ':50070'; configs['hdfs-site']['dfs.https.address'] = targetHostName + ':50470'; configs['core-site']['fs.default.name'] = 'hdfs://' + targetHostName + ':8020'; } if (!App.get('isHaEnabled')) { if (App.Service.find().someProperty('serviceName', 'HBASE')) { configs['hbase-site']['hbase.rootdir'] = configs['hbase-site']['hbase.rootdir'].replace(/\/\/[^\/]*/, '//' + targetHostName + ':8020'); } } if (securityEnabled) { secureConfigs.push({keytab: configs['hdfs-site']['dfs.namenode.keytab.file'], principal: configs['hdfs-site']['dfs.namenode.kerberos.principal']}); secureConfigs.push({keytab: configs['hdfs-site']['dfs.web.authentication.kerberos.keytab'], principal: configs['hdfs-site']['dfs.web.authentication.kerberos.principal']}); } break; case 'SECONDARY_NAMENODE': if (isHadoop2Stack) { componentDir = configs['hdfs-site']['dfs.namenode.checkpoint.dir']; configs['hdfs-site']['dfs.namenode.secondary.http-address'] = targetHostName + ':50090'; } else { componentDir = configs['core-site']['fs.checkpoint.dir']; configs['hdfs-site']['dfs.secondary.http.address'] = targetHostName + ':50090'; } if (securityEnabled) { secureConfigs.push({keytab: configs['hdfs-site']['dfs.secondary.namenode.keytab.file'], principal: configs['hdfs-site']['dfs.secondary.namenode.kerberos.principal']}); secureConfigs.push({keytab: configs['hdfs-site']['dfs.web.authentication.kerberos.keytab'], principal: configs['hdfs-site']['dfs.web.authentication.kerberos.principal']}); } break; case 'JOBTRACKER': configs['mapred-site']['mapred.job.tracker.http.address'] = targetHostName + ':50030'; configs['mapred-site']['mapred.job.tracker'] = targetHostName + ':50300'; if (securityEnabled) { secureConfigs.push({keytab: configs['mapred-site']['mapreduce.jobtracker.keytab.file'], principal: configs['mapred-site']['mapreduce.jobtracker.kerberos.principal']}); } break; case 'RESOURCEMANAGER': configs['yarn-site']['yarn.resourcemanager.address'] = targetHostName + ':8050'; configs['yarn-site']['yarn.resourcemanager.admin.address'] = targetHostName + ':8141'; configs['yarn-site']['yarn.resourcemanager.resource-tracker.address'] = targetHostName + ':8025'; configs['yarn-site']['yarn.resourcemanager.scheduler.address'] = targetHostName + ':8030'; configs['yarn-site']['yarn.resourcemanager.webapp.address'] = targetHostName + ':8088'; configs['yarn-site']['yarn.resourcemanager.hostname'] = targetHostName; if (securityEnabled) { secureConfigs.push({keytab: configs['yarn-site']['yarn.resourcemanager.keytab'], principal: configs['yarn-site']['yarn.resourcemanager.principal']}); secureConfigs.push({keytab: configs['yarn-site']['yarn.resourcemanager.webapp.spnego-keytab-file'], principal: configs['yarn-site']['yarn.resourcemanager.webapp.spnego-principal']}); } break; } if (componentDir || secureConfigs.length) { App.router.get(this.get('content.controllerName')).saveComponentDir(componentDir); App.router.get(this.get('content.controllerName')).saveSecureConfigs(secureConfigs); App.clusterStatus.setClusterStatus({ clusterName: this.get('content.cluster.name'), clusterState: this.get('clusterDeployState'), wizardControllerName: this.get('content.controllerName'), localdb: App.db.data }); } for (var site in configs) { if (!configs.hasOwnProperty(site)) continue; App.ajax.send({ name: 'reassign.save_configs', sender: this, data: { siteName: site, properties: configs[site] }, success: 'onSaveConfigs', error: 'onTaskError' }); } },
addInfoToStage4: function () { var stage4 = this.get('stages').findProperty('stage', 'stage4'); var url = (App.testMode) ? '/data/wizard/deploy/2_hosts/poll_1.json' : App.apiPrefix + '/clusters/' + App.router.getClusterName() + '/services?params/run_smoke_test=true'; var data = '{"RequestInfo": {"context": "' + Em.I18n.t('requestInfo.startAllServices') + '"}, "Body": {"ServiceInfo": {"state": "STARTED"}}}'; stage4.set('url', url); stage4.set('data', data); },
.success(function(data, result, xhr){ app.router.navigate('/score', {trigger: true}); });
object:function () { return App.router.get('mainAdminUserEditController.content'); }.property('App.router.mainAdminUserEditController.content'),
Host.timer.cycle(function(){ app.router.go(Host.round); }, Host.get('break') );
select: function(uuid) { var App = require('app'); App.router.navigate("#team/" + uuid, {trigger: true}); },
beforeEach(function () { sinon.spy(view.get('controller'), 'loadStep'); sinon.stub(App.router.get('updateController'), 'updateComponentConfig', Em.K); });
clusterName: function () { return App.router.get('clusterController.clusterName'); }.property('App.router.clusterController.clusterName'),