Skip to content

Commit 6da0397

Browse files
liiil825sunnywx
authored andcommitted
feat: Add additional_info for helm type cluster (#544)
fix #540
1 parent 85f41ca commit 6da0397

File tree

3 files changed

+56
-3
lines changed

3 files changed

+56
-3
lines changed

src/locales/zh/translation.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -369,6 +369,7 @@
369369
"Deployment Pods": "部署",
370370
"StatefulSet Pods": "有状态副本集",
371371
"DaemonSet Pods": "守护进程集",
372+
"Additional Info": "附加信息",
372373
"Rollback cluster": "回滚集群",
373374
"Update_env cluster": "修改集群环境",
374375
"Update cluster env": "修改集群环境",

src/pages/Dashboard/Clusters/Detail/Helm/index.jsx

Lines changed: 48 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,14 @@ import React from 'react';
22
import PropTypes from 'prop-types';
33
import { translate } from 'react-i18next';
44
import { observer, inject } from 'mobx-react';
5+
import _ from 'lodash';
56

67
import { Button, Icon, Table } from 'components/Base';
78
import { Card } from 'components/Layout';
89
import Status from 'components/Status';
910
import DetailTabs from 'components/DetailTabs';
1011
import Toolbar from 'components/Toolbar';
12+
import NoData from 'components/base/Table/noData';
1113

1214
import columns from './columns';
1315
import { getFilterOptions } from '../utils';
@@ -39,19 +41,23 @@ export default class HelmCluster extends React.Component {
3941

4042
return (
4143
<DetailTabs
42-
tabs={['Deployment Pods', 'StatefulSet Pods', 'DaemonSet Pods']}
44+
tabs={['Deployment Pods', 'StatefulSet Pods', 'DaemonSet Pods', 'Additional Info']}
4345
changeTab={onChangeK8sTag}
4446
/>
4547
);
4648
}
4749

4850
renderToolbar() {
4951
const { clusterDetailStore, t } = this.props;
50-
const { searchNode, onSearchNode, onClearNode, onRefreshNode } = clusterDetailStore;
52+
const { nodeType, searchNode, onSearchNode, onClearNode, onRefreshNode } = clusterDetailStore;
53+
54+
if (nodeType === 'Additional') {
55+
return null;
56+
}
5157

5258
return (
5359
<Toolbar
54-
placeholder={t('Search Node')}
60+
placeholder={t('Search Pods')}
5561
searchWord={searchNode}
5662
onSearch={onSearchNode}
5763
onClear={onClearNode}
@@ -65,6 +71,7 @@ export default class HelmCluster extends React.Component {
6571
const clusterNodes = clusterDetailStore.helmClusterNodes.toJSON();
6672

6773
const {
74+
nodeType,
6875
onChangeNodeStatus,
6976
selectNodeStatus,
7077
extendedRowKeys,
@@ -89,6 +96,10 @@ export default class HelmCluster extends React.Component {
8996
}
9097
};
9198

99+
if (nodeType === 'Additional') {
100+
return this.renderAdditionInfo();
101+
}
102+
92103
props.rowKey = '';
93104
props.expandedRowRender = record =>
94105
record.nodes.map(({ name, status, host_id, host_ip, private_ip }) => (
@@ -122,6 +133,40 @@ export default class HelmCluster extends React.Component {
122133
return <Table {...props} />;
123134
}
124135

136+
renderAdditionInfo() {
137+
const { clusterDetailStore, t } = this.props;
138+
const additionalInfo = _.get(clusterDetailStore, 'cluster.additional_info');
139+
if (!additionalInfo) return <NoData type="Clusters" />;
140+
141+
const info = JSON.parse(additionalInfo);
142+
143+
const renderTable = key => {
144+
if (_.get(info, `${key}.length`) === 0) {
145+
return null;
146+
}
147+
const columns = _.keys(_.first(info[key])).map(tableKey => ({
148+
title: t(tableKey),
149+
key: tableKey,
150+
render: item => <div>{item[tableKey]}</div>
151+
}));
152+
const props = {
153+
columns,
154+
dataSource: info[key],
155+
pagination: {
156+
total: 0
157+
}
158+
};
159+
return (
160+
<div key={key}>
161+
<h3 className={styles.additionalTitle}>{key}</h3>
162+
<Table className={styles.additionalTable} {...props} />
163+
</div>
164+
);
165+
};
166+
167+
return _.keys(info).map(key => renderTable(key));
168+
}
169+
125170
renderModals() {
126171
//
127172
}

src/pages/Dashboard/Clusters/Detail/index.scss

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -224,3 +224,10 @@
224224
}
225225
}
226226
}
227+
228+
.additionalTitle {
229+
margin-bottom: 10px;
230+
}
231+
.additionalTable {
232+
margin-bottom: 50px;
233+
}

0 commit comments

Comments
 (0)