blob: 15e62f49367c92c0a5fe3389a0c27ed71b554a8d [file] [log] [blame]
/**
* 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.HostStackVersion = DS.Model.extend({
stack: DS.attr('string'),
version: DS.attr('string'),
repo: DS.belongsTo('App.Repository'),
repoVersion: DS.attr('string'),
displayName: DS.attr('string'),
isVisible: DS.attr('boolean', {defaultValue: true}),
/**
* possible property value defined at App.HostStackVersion.statusDefinition
* @type {string}
*/
status: DS.attr('string'),
host: DS.belongsTo('App.Host'),
hostName: DS.attr('string'),
/**
* @type {boolean}
*/
isCurrent: Em.computed.equal('status', 'CURRENT'),
/**
* @type {boolean}
*/
isInstalling: Em.computed.equal('status', 'INSTALLING'),
/**
* @type {boolean}
*/
isOutOfSync: Em.computed.equal('status', 'OUT_OF_SYNC'),
/**
* @type {string}
*/
displayStatus: function() {
return App.HostStackVersion.formatStatus(this.get('status'));
}.property('status'),
/**
* @type {boolean}
*/
installEnabled: Em.computed.existsIn('status', ['OUT_OF_SYNC', 'INSTALL_FAILED']),
installDisabled: function(){
return !this.get('installEnabled') || App.router.get('wizardWatcherController.isNonWizardUser');
}.property('installEnabled', 'App.routerwizardWatcherController.isNonWizardUser')
});
App.HostStackVersion.FIXTURES = [];
/**
* definition of possible statuses of Stack Version
* @type {Array}
*/
App.HostStackVersion.statusDefinition = [
"INSTALLED",
"INSTALLING",
"INSTALL_FAILED",
"OUT_OF_SYNC",
"CURRENT",
"UPGRADING",
"UPGRADE_FAILED"
];
/**
* translate status to label
* @param status
* @return {string}
*/
App.HostStackVersion.formatStatus = function (status) {
return App.HostStackVersion.statusDefinition.contains(status) ?
Em.I18n.t('hosts.host.stackVersions.status.' + status.toLowerCase()) :
stringUtils.upperUnderscoreToText(status);
};