Code coverage report for app/models/client_component.js

Statements: 58.82% (10 / 17)      Branches: 0% (0 / 6)      Functions: 83.33% (5 / 6)      Lines: 58.82% (10 / 17)      Ignored: none     

All files » app/models/ » client_component.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73    1                                     1 1   1                                       2       1       1       2       1                     1  
'use strict';
 
;require.register("models/client_component", function (exports, require, module) {
  /**
   * Licensed to the Apache Software Foundation (ASF) under one
   * or more contributor license agreements.  See the NOTICE file
   * distributed with this work for additional information
   * regarding copyright ownership.  The ASF licenses this file
   * to you under the Apache License, Version 2.0 (the
   * "License"); you may not use this file except in compliance
   * with the License.  You may obtain a copy of the License at
   *
   *     http://www.apache.org/licenses/LICENSE-2.0
   *
   * Unless required by applicable law or agreed to in writing, software
   * distributed under the License is distributed on an "AS IS" BASIS,
   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   * See the License for the specific language governing permissions and
   * limitations under the License.
   */
 
  var App = require('app');
  var stringUtils = require('utils/string_utils');
 
  App.ClientComponent = DS.Model.extend({
    service: DS.belongsTo('App.Service'),
    componentName: DS.attr('string'),
    displayName: DS.attr('string'),
    installedCount: DS.attr('number', { defaultValue: 0 }),
    installFailedCount: DS.attr('number', { defaultValue: 0 }),
    initCount: DS.attr('number', { defaultValue: 0 }),
    unknownCount: DS.attr('number', { defaultValue: 0 }),
    startedCount: DS.attr('number', { defaultValue: 0 }),
    totalCount: DS.attr('number', { defaultValue: 0 }),
    stackInfo: DS.belongsTo('App.StackServiceComponent'),
    hostNames: DS.attr('array'),
    staleConfigHosts: DS.attr('array'),
 
    /**
     * Determines if component may be deleted
     *
     * @type {boolean}
     */
    allowToDelete: function () {
      return this.get('totalCount') === this.get('installedCount') + this.get('installFailedCount') + this.get('initCount') + this.get('unknownCount');
    }.property('totalCount', 'installedCount', 'installFailedCount', 'initCount', 'unknownCount'),
 
    summaryLabelClassName: function () {
      return 'label_for_' + this.get('componentName').toLowerCase();
    }.property('componentName'),
 
    summaryValueClassName: function () {
      return 'value_for_' + this.get('componentName').toLowerCase();
    }.property('componentName'),
 
    displayNamePluralized: function () {
      return stringUtils.pluralize(this.get('installedCount'), this.get('displayName'));
    }.property('installedCount')
  });
 
  App.ClientComponent.getModelByComponentName = function (componentName) {
    if (App.HostComponent.isMaster(componentName)) {
      return App.MasterComponent.find(componentName);
    } else if (App.HostComponent.isSlave(componentName)) {
      return App.SlaveComponent.find(componentName);
    } else if (App.HostComponent.isClient(componentName)) {
      return App.ClientComponent.find(componentName);
    }
    return null;
  };
 
  App.ClientComponent.FIXTURES = [];
});