示例#1
0
 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);
 };
示例#3
0
 * 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'
      })
    ];
示例#4
0
 Em.run.next(function () {
   App.router.transitionTo('main.views.index');
 });
示例#5
0
 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});
 },
示例#7
0
 navigate: function(url) {
     url = routes.relativeUrl(url);
     app.router.navigate(url, { trigger: true });
 },
示例#8
0
 handleClickAddAttribute = () => {
   // Open the modal
   router.push(`/plugins/content-type-builder/models/${this.props.match.params.modelName}#choose::attributes`);
 }
示例#9
0
 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();
 },
示例#11
0
 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(''),
示例#15
0
 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');
    }
  },
示例#17
0
 editTeam: function() {
     var App = require('app');
     App.router.navigate("#team/" + this.model.uuid() + "/edit", {trigger: true});
 },
示例#18
0
 onSaveSuccess: function() {
     logger.debug('onSaveSuccess', this.model);
     app.router.navigate('invoice_status/list', true);
 },
示例#19
0
 deleteModel: function() {
     this.showAlert("Delete not enabled/implemented yet.");
     var App = require('app');
     App.router.navigate("#teams", {trigger: true});
 },
示例#20
0
 onSaveSuccess: function() {
     logger.debug('onSaveSuccess', this.model);
     app.router.navigate('office_data/list', true);
 },
示例#21
0
    updateOrg: function(ev) {
      app.router.go("org", this.$(".org").val());

      return false;
    }
示例#22
0
 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'));
   }
 },
示例#23
0
  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'
      });
    }
  },
示例#24
0
 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);
 },
示例#25
0
 .success(function(data, result, xhr){
    app.router.navigate('/score', {trigger: true});
 });
示例#26
0
文件: user.js 项目: wbear2/ambari
 object:function () {
   return App.router.get('mainAdminUserEditController.content');
 }.property('App.router.mainAdminUserEditController.content'),
示例#27
0
 Host.timer.cycle(function(){
   app.router.go(Host.round);
 }, Host.get('break') );
示例#28
0
 select: function(uuid) {
     var App = require('app');
     App.router.navigate("#team/" + uuid, {trigger: true});
 },
示例#29
0
 beforeEach(function () {
   sinon.spy(view.get('controller'), 'loadStep');
   sinon.stub(App.router.get('updateController'), 'updateComponentConfig', Em.K);
 });
示例#30
0
 clusterName: function () {
   return App.router.get('clusterController.clusterName');
 }.property('App.router.clusterController.clusterName'),