Skip to content

Commit e55fb40

Browse files
committed
dynamically show infrastructure
1 parent 022b95b commit e55fb40

File tree

7 files changed

+116
-21
lines changed

7 files changed

+116
-21
lines changed

app/containers/Inspect.jsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ const Inspect = () => {
4848

4949

5050

51-
fetch('http://localhost:1111/api/data')
51+
fetch('http://localhost:1111/api/kuberData')
5252
.then(r => r.text())
5353
.then(d3.csvParse)
5454
.then(data => {
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
const { Parser } = require('@json2csv/plainjs');
2+
const fs = require('fs');
3+
const { convertArrayToCSV } = require('convert-array-to-csv');
4+
const converter = require('convert-array-to-csv');
5+
6+
const fileControllers = {};
7+
8+
fileControllers.saveCSV = (req, res, next) => {
9+
console.log('saveCSV endpoint hit');
10+
const data = res.locals.data;
11+
12+
try {
13+
// const parser = new Parser();
14+
// const csv = parser.parse(data);
15+
const csv = convertArrayToCSV(data);
16+
console.log(csv);
17+
18+
fs.writeFile('./output.csv', csv, (err) => {
19+
if (err) {
20+
console.log('error: ', err);
21+
return res.status(500).send('Error');
22+
}
23+
console.log('data saved');
24+
next();
25+
26+
})
27+
} catch (err) {
28+
console.log('error: ', err);
29+
return next(err);
30+
};
31+
}
32+
33+
34+
35+
module.exports = fileControllers;

chronos_npm_package/server/kuberControllers.js

Lines changed: 22 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -112,28 +112,34 @@ kuberControllers.getResources = async (req, res, next) => {
112112
}
113113

114114
}
115-
116-
// const podRes = await coreV1Api.listNamespacedPod('default');
117-
// //console.log('Pods: ', podRes.body.items[0]);
118-
// for (let pod of podRes.body.items) {
119-
// //console.log('Pod: ', pod);
120-
// for (let d of deployments) {
121-
// if (pod.metadata.labels.app === d.app) {
122-
// d.services[service.metadata.name].push(pod.metadata.name);
123-
// }
124-
// }
125-
// }
126-
127-
// }
128-
// }
129-
130-
131115
}
132116
console.log('final deployments: ', deployments);
133117
for (let d of deployments) {
134118
console.log('pods: ', d.services);
135119
}
136120

121+
const data = [];
122+
data.push({ size: '', path: 'default' })
123+
for (let d of deployments) {
124+
const obj = {};
125+
for (let s in d.services) {
126+
let path = 'default/' + 'service: ' + s
127+
for (let p of d.services[s]) {
128+
let path = 'default/' + 'service: ' + s
129+
path += '/pod: ' + p;
130+
data.push({ size: '', path: path })
131+
}
132+
path = 'default/' + 'service: ' + s
133+
data.push({ size: '', path: path })
134+
}
135+
136+
137+
}
138+
139+
console.log('data: ', data);
140+
res.locals.data = data;
141+
next();
142+
137143

138144
} catch (err) {
139145
console.log('Error: ', err)

chronos_npm_package/server/output.csv

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
size,path
2+
"",default
3+
"",default/service: grafana/pod: grafana-85d768d55b-jkr84
4+
"",default/service: grafana
5+
"",default/service: frontend/pod: nginx-frontend-55b44fbc7-q4glh
6+
"",default/service: frontend/pod: nginx-frontend-55b44fbc7-s47v4
7+
"",default/service: frontend
8+
"",default/service: backend/pod: node-backend-d597768c-rtwwx
9+
"",default/service: backend
10+
"",default/service: prometheus-service/pod: prometheus-deployment-96898bbc9-km5cf
11+
"",default/service: prometheus-service

chronos_npm_package/server/package-lock.json

Lines changed: 32 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

chronos_npm_package/server/package.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,10 @@
1010
"author": "",
1111
"license": "ISC",
1212
"dependencies": {
13+
"@json2csv/plainjs": "^7.0.2",
1314
"@kubernetes/client-node": "^0.18.1",
15+
"convert-array-to-csv": "^2.0.0",
1416
"cors": "^2.8.5",
1517
"express": "^4.18.2"
1618
}
17-
}
19+
}

chronos_npm_package/server/server.js

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ const port = 1111;
55
const utilities = require('../controllers/utilities');
66
const fs = require('fs');
77
const kuberControllers = require('./kuberControllers');
8+
const fileControllers = require('./fileControllers');
89

910

1011
app.use(cors());
@@ -45,9 +46,17 @@ app.get('/api/data', async (req, res) => {
4546
});
4647

4748

48-
app.get('/api/getData', kuberControllers.getResources, (req, res) => {
49-
console.log('getData endpoint hit');
50-
return res.status(200).send('getData endpoint hit');
49+
app.get('/api/kuberData', kuberControllers.getResources, fileControllers.saveCSV, (req, res) => {
50+
console.log('kuberData endpoint hit');
51+
fs.readFile('./output.csv', 'utf8', (err, data) => {
52+
if (err) {
53+
console.log('error: ', err);
54+
return res.status(500).send('Error');
55+
56+
}
57+
console.log('data: ', data);
58+
return res.status(200).send(data);
59+
});
5160
});
5261

5362

0 commit comments

Comments
 (0)