[Monitoring] Address some UI regressions with shard allocation (#29757)

* Address some UI regressions with shard allocation

* Renable the shard tests, and a couple others that are disabled

* PR feedback
This commit is contained in:
Chris Roberson 2019-02-04 15:15:09 -05:00 committed by GitHub
parent 888217dc0f
commit fba727b2c0
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
8 changed files with 28 additions and 38 deletions

View file

@ -54,7 +54,7 @@ export const Index = ({
))}
</EuiFlexGrid>
<EuiSpacer size="m"/>
<ShardAllocation scope={scope} {...props} kbnUrl={kbnUrl} type="index" />
<ShardAllocation scope={scope} kbnUrl={kbnUrl} type="index" />
</EuiPageContent>
</EuiPageBody>
</EuiPage>

View file

@ -61,7 +61,6 @@ monitoring-shard-allocation {
}
&.unassigned {
.title {
color: #999;
display: none;
}
}
@ -82,15 +81,6 @@ monitoring-shard-allocation {
border-left: 1px solid $euiColorEmptyShade;
position: relative;
display: inline-block;
.shard-tooltip {
padding: 5px;
bottom: 25px;
left: 0;
position: absolute;
border: 1px solid $euiColorLightShade;
white-space: nowrap;
}
}
.legend {

View file

@ -10,7 +10,7 @@ import React from 'react';
import { calculateClass } from '../lib/calculate_class';
import { vents } from '../lib/vents';
import { i18n } from '@kbn/i18n';
import { EuiTextColor } from '@elastic/eui';
import { EuiToolTip, EuiBadge } from '@elastic/eui';
function getColor(classes) {
return classes.split(' ').reduce((color, cls) => {
@ -20,7 +20,7 @@ function getColor(classes) {
switch (cls) {
case 'primary':
return 'ghost';
return 'hollow';
case 'replica':
return 'secondary';
case 'relocation':
@ -80,23 +80,24 @@ export class Shard extends React.Component {
render() {
const shard = this.props.shard;
let tooltip;
if (this.state.tooltipVisible) {
tooltip = (
<div
className="shard-tooltip"
data-test-subj="shardTooltip"
data-tooltip-content={this.props.shard.tooltip_message}
>
{this.props.shard.tooltip_message}
</div>
);
}
const classes = calculateClass(shard);
const color = getColor(classes);
const classification = classes + ' ' + shard.shard;
let shardUi = (
<EuiBadge color={color}>
{shard.shard}
</EuiBadge>
);
if (this.state.tooltipVisible) {
shardUi = (
<EuiToolTip content={this.props.shard.tooltip_message} position="bottom" data-test-subj="shardTooltip">
<p>{shardUi}</p>
</EuiToolTip>
);
}
// data attrs for automated testing verification
return (
<div
@ -107,9 +108,7 @@ export class Shard extends React.Component {
data-shard-classification={classification}
data-test-subj="shardIcon"
>
<EuiTextColor color={color}>
{tooltip}{shard.shard}
</EuiTextColor>
{shardUi}
</div>
);
}

View file

@ -81,12 +81,13 @@ uiRoutes.when('/elasticsearch/indices/:index', {
}
const shards = data.shards;
data.totalCount = shards.length;
data.showing = transformer(shards, data.nodes);
$scope.totalCount = shards.length;
$scope.showing = transformer(shards, data.nodes);
$scope.labels = labels.node;
if (shards.some((shard) => shard.state === 'UNASSIGNED')) {
data.labels = labels.indexWithUnassigned;
$scope.labels = labels.indexWithUnassigned;
} else {
data.labels = labels.index;
$scope.labels = labels.index;
}
this.renderReact(

View file

@ -14,7 +14,7 @@ export default function ({ getService }) {
const supertest = getService('supertest');
const esArchiver = getService('esArchiver');
describe.skip('overview', () => {
describe('overview', () => {
describe('with green platinum cluster', () => {
const archive = 'monitoring/singlecluster-green-platinum';
const timeRange = {

View file

@ -9,7 +9,7 @@ import expect from 'expect.js';
export default function ({ getService }) {
const supertest = getService('supertest');
describe.skip('update collection_interval setting', () => {
describe('update collection_interval setting', () => {
it('should set collection.interval to 10s', async () => {
const { body } = await supertest
.put('/api/monitoring/v1/elasticsearch_settings/set/collection_interval')

View file

@ -28,7 +28,7 @@ export default function ({ getService, getPageObjects }) {
await tearDown();
});
describe.skip('Shard Allocation Per Node', () => {
describe('Shard Allocation Per Node', () => {
before(async () => {
// start on cluster overview
await PageObjects.monitoring.clickBreadcrumb('breadcrumbClusters');
@ -95,7 +95,7 @@ export default function ({ getService, getPageObjects }) {
});
});
describe.skip('Shard Allocation Per Index', () => {
describe('Shard Allocation Per Index', () => {
before(async () => {
// start on cluster overview
await PageObjects.monitoring.clickBreadcrumb('breadcrumbClusters');

View file

@ -65,7 +65,7 @@ export function MonitoringElasticsearchShardsProvider({ getService }) {
async showSystemIndices() {
const checkboxEl = await testSubjects.find(SUBJ_SHOW_SYSTEM_INDICES);
const isChecked = await checkboxEl.getSpecAttribute('selected');
const isChecked = await checkboxEl.getAttribute('selected');
if (!isChecked) {
await testSubjects.click(SUBJ_SHOW_SYSTEM_INDICES);