Skip to content

Commit 5be705f

Browse files
Merge branch 'Taylor/AWS-Graphs' of https://github.com/oslabs-beta/Chronos into Roberto/ecs
2 parents 6f0ade7 + 639bf8d commit 5be705f

File tree

4 files changed

+104
-44
lines changed

4 files changed

+104
-44
lines changed

app/components/ClusterStatus.tsx renamed to app/components/ClusterTable.tsx

Lines changed: 63 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,56 +1,91 @@
11
import React, { useState } from 'react';
2-
import { Table, TableBody, TableCell, TableContainer, TableHead, TableRow, Paper } from '@material-ui/core';
2+
import {
3+
Table,
4+
TableBody,
5+
TableCell,
6+
TableContainer,
7+
TableHead,
8+
TableRow,
9+
Paper,
10+
} from '@material-ui/core';
311
import { makeStyles } from '@material-ui/core/styles';
4-
import {AwsContext} from '../context/AwsContext';
12+
import { AwsContext } from '../context/AwsContext';
13+
import cluster from 'cluster';
514

615
const useStyles = makeStyles({
716
table: {
817
minWidth: 650,
918
},
19+
tableContainer: {
20+
margin: '0 20px',
21+
},
22+
activeCell: {
23+
color: 'green',
24+
},
25+
column: {
26+
display: 'flex',
27+
flexDirection: 'column',
28+
},
29+
body: {
30+
fontSize: '1.2rem',
31+
},
32+
title: {
33+
color: '#888888',
34+
},
1035
});
1136

1237
export interface ClusterTableProps {
38+
typeOfService: string;
1339
region: string;
1440
}
1541

16-
const ClusterTable: React.FC<ClusterTableProps> = React.memo(({region}) => {
42+
const ClusterTable: React.FC<ClusterTableProps> = React.memo(({ region }) => {
1743
const classes = useStyles();
1844
// const {clusterName, servicesNum, tasksNum, status} = useContext(DashboardContext);
1945

20-
return (
21-
<div className="ClusterTable-container">
22-
<TableContainer component={Paper}>
23-
<Table className={classes.table} aria-label="cluster table">
24-
<TableHead>
25-
<TableRow>
26-
<TableCell>Name</TableCell>
27-
<TableCell>Status</TableCell>
28-
<TableCell>Services</TableCell>
29-
<TableCell>Tasks</TableCell>
30-
</TableRow>
31-
</TableHead>
32-
{/* <TableBody>
33-
{clusters.map((cluster: Cluster, index: number) => (
46+
return (
47+
<div className="ClusterTable-container">
48+
<TableContainer component={Paper}>
49+
<Table className={classes.table} aria-label="cluster table">
50+
<TableHead>
51+
<TableRow>
52+
<TableCell className={classes.title}>Name</TableCell>
53+
<TableCell className={classes.title}>Status</TableCell>
54+
<TableCell className={classes.title}>Services</TableCell>
55+
<TableCell className={classes.title}>Tasks</TableCell>
56+
</TableRow>
57+
</TableHead>
58+
<TableBody>
59+
<TableCell className={classes.body}>
60+
<div className={classes.column}>
61+
<div>test</div>
62+
<div>
63+
<span className="region">{region}</span>
64+
</div>
65+
</div>
66+
</TableCell>
67+
{/* <TableCell className={cluster.status === 'active' ? classes.activeCell : undefined}>testactive</TableCell> */}
68+
<TableCell className={classes.body}>active</TableCell>
69+
<TableCell className={classes.body}>3</TableCell>
70+
<TableCell className={classes.body}>0/3</TableCell>
71+
72+
{/* {clusters.map((cluster: Cluster, index: number) => (
3473
<TableRow key={index}>
3574
<TableCell>{cluster.name}</TableCell>
3675
<TableCell>{cluster.status}</TableCell>
3776
<TableCell>{cluster.serviceCount}</TableCell>
3877
<TableCell>{cluster.taskCount}</TableCell>
3978
</TableRow>
40-
))}
41-
</TableBody> */}
42-
</Table>
43-
</TableContainer>
44-
</div>
45-
)
46-
})
79+
))} */}
80+
</TableBody>
81+
</Table>
82+
</TableContainer>
83+
</div>
84+
);
85+
});
4786

4887
export default ClusterTable;
4988

50-
51-
52-
53-
5489
// type Cluster = {
5590
// name: string;
5691
// status: string;
@@ -88,4 +123,3 @@ export default ClusterTable;
88123
// }
89124
// });
90125
// }, []);
91-

app/components/Occupied.tsx

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -358,13 +358,17 @@ const Occupied = React.memo(() => {
358358
</Modal> */}
359359

360360
<Modal open={envModalOpen} onClose={() => setEnvModalOpen(false)}>
361-
<EnvModal setOpen={setEnvModalOpen} setAwsModalOpen={setAwsModalOpen} setAddModalOpen={setAddModalOpen}/>
361+
<EnvModal
362+
setOpen={setEnvModalOpen}
363+
setAwsModalOpen={setAwsModalOpen}
364+
setAddModalOpen={setAddModalOpen}
365+
/>
362366
</Modal>
363367

364368
<Modal open={awsModalOpen} onClose={() => setAwsModalOpen(false)}>
365369
<AwsModal setOpen={setAwsModalOpen} />
366370
</Modal>
367-
371+
368372
<Modal open={addModalOpen} onClose={() => setAddModalOpen(false)}>
369373
<AddModal setOpen={setAddModalOpen} />
370374
</Modal>

app/containers/AWSGraphsContainer.tsx

Lines changed: 19 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -7,21 +7,23 @@ import { AwsContext } from '../context/AwsContext';
77

88
import '../stylesheets/AWSGraphsContainer.scss';
99
import AwsChart from '../charts/AwsChart';
10+
import ClusterTable from '../components/ClusterTable';
1011

1112
const AwsGraphsContainer: React.FC = React.memo(props => {
1213
const { awsData, setAwsData, awsAppInfo, fetchAwsData, fetchAwsEcsData, fetchAwsAppInfo } = useContext(AwsContext);
1314
const { app, appIndex, intervalID, setIntervalID } = useContext(ApplicationContext);
1415
const { user } = useContext(DashboardContext);
1516
// const [intervalID, setintervalID] = useState<NodeJS.Timeout | null>(null);
1617
const [awsLive, setAwsLive] = useState<boolean>(false);
18+
const { typeOfService, region } = awsAppInfo;
1719

1820
useEffect(() => {
19-
if(awsLive) {
20-
console.log('we are live! fetching data every 10 seconds...')
21+
if (awsLive) {
22+
console.log('we are live! fetching data every 10 seconds...');
2123

2224
setIntervalID(
2325
setInterval(() => {
24-
console.log('intervalId after click live', intervalID)
26+
console.log('intervalId after click live', intervalID);
2527
fetchAwsData(user, appIndex);
2628
fetchAwsAppInfo(user, appIndex);
2729
fetchAwsEcsData(user, appIndex);
@@ -61,15 +63,14 @@ const AwsGraphsContainer: React.FC = React.memo(props => {
6163
console.log(colour);
6264
return colour;
6365
}
64-
}
66+
};
6567

6668
// const awsGraphArray = Object.keys(awsData)?.map(metric => {
6769

6870
// })
6971

7072
return (
7173
<div className="AWS-container">
72-
7374
<div className="AWSheader">
7475
<Typography variant="h3">{app}</Typography>
7576
<p>Metrics for AWS Service</p>
@@ -83,12 +84,17 @@ const AwsGraphsContainer: React.FC = React.memo(props => {
8384
)}
8485
</button>
8586
</div>
87+
<div className="cluster-table">
88+
{awsAppInfo.typeOfService === 'AWS/ECS' && (
89+
<ClusterTable typeOfService={typeOfService} region={region} />
90+
)}
91+
</div>
8692
<div className="charts">
8793
<AwsChart
8894
className='chart'
8995
// key={`Chart${counter}`}
90-
renderService='CPU Utilization'
91-
metric='Percent'
96+
renderService="CPU Utilization"
97+
metric="Percent"
9298
timeList={awsData.CPUUtilization?.map(el => el.time)}
9399
valueList={awsData.CPUUtilization?.map(el => el.value)}
94100
// sizing={props.sizing}
@@ -97,8 +103,8 @@ const AwsGraphsContainer: React.FC = React.memo(props => {
97103
<AwsChart
98104
className='chart'
99105
// key={`Chart${counter}`}
100-
renderService='Network In'
101-
metric='Percent'
106+
renderService="Network In"
107+
metric="Percent"
102108
timeList={awsData.NetworkIn?.map(el => el.time)}
103109
valueList={awsData.NetworkIn?.map(el => el.value)}
104110
// sizing={props.sizing}
@@ -107,8 +113,8 @@ const AwsGraphsContainer: React.FC = React.memo(props => {
107113
<AwsChart
108114
className='chart'
109115
// key={`Chart${counter}`}
110-
renderService='Network Out'
111-
metric='Percent'
116+
renderService="Network Out"
117+
metric="Percent"
112118
timeList={awsData.NetworkOut?.map(el => el.time)}
113119
valueList={awsData.NetworkOut?.map(el => el.value)}
114120
// sizing={props.sizing}
@@ -117,8 +123,8 @@ const AwsGraphsContainer: React.FC = React.memo(props => {
117123
<AwsChart
118124
className='chart'
119125
// key={`Chart${counter}`}
120-
renderService='DiskReadBytes'
121-
metric='Percent'
126+
renderService="DiskReadBytes"
127+
metric="Percent"
122128
timeList={awsData.DiskReadBytes?.map(el => el.time)}
123129
valueList={awsData.DiskReadBytes?.map(el => el.value)}
124130
// sizing={props.sizing}

app/stylesheets/AWSGraphsContainer.scss

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,24 @@
1515
text-align: center;
1616
}
1717

18+
.js-plotly-plot {
19+
box-shadow: $boxshadow;
20+
}
21+
22+
.region {
23+
font-size: 12px;
24+
color: $teal;
25+
padding: 4px 6px;
26+
outline: 0.4px solid $teal;
27+
border-radius: 4px;
28+
}
29+
1830
.AWSheader {
1931
padding: 40px;
2032
margin: 10px;
2133
text-align: center;
2234
}
35+
36+
.ClusterTable-container {
37+
margin: 0 20px;
38+
}

0 commit comments

Comments
 (0)