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}
{/*
>>prev
*/}
{/*
*/} {/*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}
{/*
>>prev
*/}
{/*
*/} {/*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 (
Branch: {branch} Commit: {commit.substring(0, 7)}

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 {/**/}
{/*

Linux Info

*/} {/*
*/} {/*
*/} {/*
Description lists
*/} {/*
A description list is perfect for defining terms.
*/} {/*
Euismod
*/} {/*
*/} {/*
*/} {/*
*/} {/*
Malesuada porta
*/} {/*
Etiam porta sem malesuada magna mollis euismod.
*/} {/*
*/} {/*
*/}
) } } export default DetailInfo;