Revert "Cluster capacity calculation fix"

Cluster capacity calculation take into account hardware parameters
of all the cluster nodes despite on their roles.

This reverts commit I0a44cbfa60625ad06c879cf1aac01317b073b802

Related-Bug: #1556909

Change-Id: I183c15cb22e6ccbfa7209053c64ae72db7b1a160
This commit is contained in:
Julia Aranovich 2016-04-21 11:59:06 +03:00
parent bc15921ecf
commit 95fec6d9c6
3 changed files with 16 additions and 46 deletions

View File

@ -359,33 +359,6 @@ models.Cluster = BaseModel.extend({
!this.task({group: 'deployment', active: true}) &&
(this.get('status') !== 'operational' || this.hasChanges({configModels}));
},
getCapacity() {
var result = {
cores: 0,
ht_cores: 0,
ram: 0,
hdd: 0
};
if (!this.get('nodes').length) return result;
var resourceToRoleGroupMap = {
cores: 'compute',
ht_cores: 'compute',
ram: 'compute',
hdd: 'storage'
};
var groupedRoles = {};
_.each(['compute', 'storage'], (group) => {
groupedRoles[group] = this.get('roles')
.filter({group})
.map((role) => role.get('name'));
});
this.get('nodes').each((node) => {
_.each(resourceToRoleGroupMap, (group, resourceName) => {
if (node.hasRole(groupedRoles[group])) result[resourceName] += node.resource(resourceName);
});
});
return result;
},
isConfigurationChanged({configModels}) {
var deployedSettings = this.get('deployedSettings');
var deployedNetworkConfiguration = this.get('deployedNetworkConfiguration');
@ -564,8 +537,7 @@ models.Nodes = BaseCollection.extend({
return _.filter(this.nodesAfterDeployment(), (node) => node.hasRole(role));
},
resources(resourceName) {
var resources = this.map((node) => node.resource(resourceName));
return _.reduce(resources, (sum, n) => sum + n, 0);
return _.reduce(this.invoke('resource', resourceName), (sum, n) => sum + n, 0);
},
getLabelValues(label) {
return this.invoke('getLabel', label);

View File

@ -989,7 +989,7 @@ var ClusterInfo = React.createClass({
},
renderClusterCapacity() {
var capacityNs = ns + 'cluster_info_fields.';
var capacity = this.props.cluster.getCapacity();
var nodes = this.props.cluster.get('nodes');
return (
<div className='row capacity-block content-elements'>
@ -997,15 +997,21 @@ var ClusterInfo = React.createClass({
<div className='col-xs-12 capacity-items'>
<div className='col-xs-4 cpu'>
<span>{i18n(capacityNs + 'cpu_cores')}</span>
<span className='capacity-value'>{capacity.cores} ({capacity.ht_cores})</span>
<span className='capacity-value'>
{nodes.resources('cores')} ({nodes.resources('ht_cores')})
</span>
</div>
<div className='col-xs-4 ram'>
<span>{i18n(capacityNs + 'ram')}</span>
<span className='capacity-value'>{utils.showSize(capacity.ram)}</span>
<span className='capacity-value'>
{utils.showSize(nodes.resources('ram'))}
</span>
</div>
<div className='col-xs-4 hdd'>
<span>{i18n(capacityNs + 'hdd')}</span>
<span className='capacity-value'>{utils.showSize(capacity.hdd)}</span>
<span className='capacity-value'>
{utils.showSize(nodes.resources('hdd'))}
</span>
</div>
</div>
</div>

View File

@ -38,19 +38,12 @@ ClustersPage = React.createClass({
return $.when(clusters.fetch(), nodes.fetch(), tasks.fetch())
.then(() => {
var requests = [];
clusters.each((cluster) => {
cluster.set('nodes', new models.Nodes(nodes.filter({cluster: cluster.id})));
cluster.set('tasks', new models.Tasks(tasks.filter({cluster: cluster.id})));
var roles = new models.Roles();
roles.url = _.result(cluster, 'url') + '/roles';
cluster.set({roles: roles});
requests.push(cluster.get('roles').fetch());
});
return $.when(...requests);
})
.then(() => ({clusters}));
return ({clusters});
});
}
},
render() {
@ -144,7 +137,6 @@ Cluster = React.createClass({
!!cluster.task({name: 'cluster_deletion', status: 'ready'});
var deploymentTask = cluster.task({group: 'deployment', active: true});
var Tag = isClusterDeleting ? 'div' : 'a';
var capacity = cluster.getCapacity();
return (
<div className='col-xs-3'>
<Tag
@ -165,19 +157,19 @@ Cluster = React.createClass({
{i18n('clusters_page.cluster_hardware_cpu')}
</div>,
<div key='cpu-value' className='value'>
{capacity.cores} ({capacity.ht_cores})
{nodes.resources('cores')} ({nodes.resources('ht_cores')})
</div>,
<div key='ram-title' className='item'>
{i18n('clusters_page.cluster_hardware_ram')}
</div>,
<div key='ram-value' className='value'>
{utils.showSize(capacity.ram)}
{utils.showSize(nodes.resources('ram'))}
</div>,
<div key='hdd-title' className='item'>
{i18n('clusters_page.cluster_hardware_hdd')}
</div>,
<div key='hdd-value' className='value'>
{utils.showSize(capacity.hdd)}
{utils.showSize(nodes.resources('hdd'))}
</div>
]}
</div>