import React from 'react';
import {Link} from 'react-router-dom';
import './index.css';
import {Table, Divider, Segment, Icon, Menu, Input, Dropdown, Sticky} from 'semantic-ui-react'
import PGUtil from 'util/util.jsx'
import FarmerCard from 'component/farmer-card/index.jsx'
import InfoList from 'component/info-list/index.jsx'
import Record from 'service/record-service.jsx'
import PGConstant from 'util/constant.jsx'
const _util = new PGUtil();
const _record = new Record();
class DetailInfo extends React.Component {
constructor(props) {
super(props);
this.state = {
recordNo: this.props.match.params.uuid,
recordInfo: {},
}
// this.onPageChange = this.onPageChange.bind(this);
// this.handleIsLoading = this.handleIsLoading.bind(this);
}
componentDidMount() {
this.loadDetailInfo();
}
// load record detail
loadDetailInfo() {
let listParam = {};
listParam.recordNo = this.state.recordNo;
_record.getRecordInfo(listParam).then(res => {
this.setState({
recordInfo: res
});
console.log(this.state.recordInfo)
}, errMsg => {
// this.setState({
// recordInfo: {}
// });
_util.errorTips(errMsg);
});
}
render() {
let prev = this.state.recordInfo.prev || 'none';
let branch = this.state.recordInfo.branch || '';
let commit = this.state.recordInfo.commit || '';
let date = this.state.recordInfo.date || '';
let machine = this.state.recordInfo.test_machine || {};
let dataset = this.state.recordInfo.dataset_info || {};
let meta_info = this.state.recordInfo.meta_info || {};
let pg_info = this.state.recordInfo.pg_info || {};
let linux_info = this.state.recordInfo.linux_info || {};
let hardware_info = this.state.recordInfo.hardware_info || {};
let ro = dataset.ro || {};
let rw = dataset.rw || {};
// console.log(machine)
// Object.keys(obj).map(key => console.log(obj[key]));
let ro_10 = ro['10'] || {};
let rw_10 = rw['10'] || {};
let rw_tables = Object.keys(rw_10).map(key => {
// console.log(rw_10[key])
let metric = 0;
let percentage = 0.0;
let status = -1;
let tableRow = rw_10[key].map((item, idx) => {
// console.log('item is:')
// console.log(item)
metric = parseFloat(item['metric']).toFixed(4)
percentage = (item['percentage'] * 100).toFixed(2).toString() + '%'
status = item['status']
let results = item['results'].map((result, idx) => {
return (
{result.run}
{result.tps}
{result.mode}
{result.latency}
);
});
return results;
});
let trend_span
if (status == -1) {
trend_span = {percentage};
} else if (status == 1) {
trend_span = +{percentage};
} else if (status == 2) {
trend_span = +{percentage};
} else if (status == 3) {
trend_span =
{percentage};
}
return (
Client(s) {key}: {metric} {trend_span}
{/*
*/}
{/**/}
{/*Improved ()*/}
{/*
*/}
Run
Tps
mode
latency
{tableRow}
{/**/}
{/*2018-09-11 15:32*/}
{/*200.221*/}
{/*simple*/}
{/*-1*/}
{/**/}
);
});
let ro_tables = Object.keys(ro_10).map(key => {
console.log(ro_10[key])
let metric = 0;
let percentage = 0.0;
let status = -1;
let tableRow = ro_10[key].map((item, idx) => {
console.log('item is:')
console.log(item)
metric = parseFloat(item['metric']).toFixed(4)
percentage = (item['percentage'] * 100).toFixed(2).toString() + '%'
status = item['status']
let results = item['results'].map((result, idx) => {
return (
{result.run}
{result.tps}
{result.mode}
{result.latency}
);
});
return results;
});
let trend_span
if (status == -1) {
trend_span = {percentage};
} else if (status == 1) {
trend_span = +{percentage};
} else if (status == 2) {
trend_span = +{percentage};
} else if (status == 3) {
trend_span =
{percentage};
}
return (
Client(s) {key}: {metric} {trend_span}
{/*
*/}
{/**/}
{/*Improved ()*/}
{/*
*/}
Run
Tps
mode
latency
{tableRow}
{/**/}
{/*2018-09-11 15:32*/}
{/*200.221*/}
{/*simple*/}
{/*-1*/}
{/**/}
);
});
let prev_link
if (prev == 'none') {
prev_link = prev
} else {
prev_link = (
{prev.substring(0, 7)}
)
}
return (
NO: {this.state.recordNo}
Date: {date}
prev: {prev_link}
Farmer Info
{/*//todo add a catalog*/}
{/*
*/}
RO
{ro_tables}
{/*
*/}
{/**/}
{/**/}
{/*Clients:4 scale:10 >>prev*/}
{/**/}
{/*mertic:200 Improved (+12.4%)*/}
{/*
*/}
{/**/}
{/**/}
{/**/}
{/*Start*/}
{/*Tps*/}
{/*mode*/}
{/*latency*/}
{/**/}
{/**/}
{/**/}
{/**/}
{/*2018-09-11 15:32*/}
{/*200.221*/}
{/*simple*/}
{/*-1*/}
{/**/}
{/**/}
{/*2018-09-11 15:32*/}
{/*200.221*/}
{/*simple*/}
{/*-1*/}
{/**/}
{/**/}
{/*
*/}
RW
{rw_tables}
{/*
*/}
Horizontal
{/**/}
{/*
*/}
{/*
*/}
{/*
*/}
{/*- Description lists
*/}
{/*- A description list is perfect for defining terms.
*/}
{/*- Euismod
*/}
{/*- */}
{/*
*/}
{/**/}
{/*- Malesuada porta
*/}
{/*- Etiam porta sem malesuada magna mollis euismod.
*/}
{/*
*/}
{/*
*/}
)
}
}
export default DetailInfo;