-
Notifications
You must be signed in to change notification settings - Fork 0
/
collector.js
123 lines (102 loc) · 5.24 KB
/
collector.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
var express = require('express');
var app = express();
var bodyParser = require('body-parser');
var fs = require('fs');
var path = require('path');
var jsonfile = require('jsonfile');
const low = require('lowdb');
var db = require('./html/public/helpers/db.js');
var dashboard = require('./html/public/helpers/dashboard.js');
var updateData = require('./updateData.js');
var logger = require('./logger.js');
var dashData;
var dashPathPrefix = './data/dashboards/';
var dataConfigFile = '/dataConfig.json';
var dataFile = "/data.json";
var sonarCubePostfix = "/api/resources?";
var sonarCubeMetrics = ["blocker_violations","major_violations","critical_violations","violations","test_success_density","test_failures","test_errors","tests","tests_coverage","line_coverage","ncloc"];
app.use(bodyParser.text()); // for parsing application/json
app.use(bodyParser.urlencoded({ extended: true })); // for parsing appl ication/x-www-form-urlencoded
app.use(express.static(__dirname + '/html/public'));
app.use(express.static(__dirname + '/node_modules'));
app.listen(8093, function () {
logger.writeLog('ServerStart','Server started on port 8093!');
});
app.post('/updateData', function (req, res) {
getData(req.query.projectName);
res.send("success");
});
/*realtime data start*/
updateDatabase();
setInterval(updateDatabase , 30*60000);
function updateDatabase()
{
var dashboardList = dashboard.getDashboardList("admin","admin");
for (var dCount = 0; dCount < dashboardList.length; dCount++) {
getData(dashboardList[dCount].val);
}
}
function getData(currentDashName) {
var noOfTiles, dashboardTiles;
logger.writeLog("getData","Updating data for "+currentDashName);
try {
dashboardTiles = jsonfile.readFileSync(dashPathPrefix + currentDashName + dataConfigFile);
dashData = db.getData(dashPathPrefix+currentDashName);
}
catch (err) {
logger.writeLog("getData",err);
}
var url,tempVal,prjWidget;
for (noOfTiles = 0; noOfTiles < dashboardTiles.tiles.length; noOfTiles++) {
tempVal = (dashboardTiles.tiles[noOfTiles].name.slice(dashboardTiles.tiles[noOfTiles].name.indexOf("_")+1, dashboardTiles.tiles[noOfTiles].name.length));
prjWidget = currentDashName+"-"+(dashboardTiles.tiles[noOfTiles].name.slice(0, dashboardTiles.tiles[noOfTiles].name.indexOf("_")))+"-"+tempVal;
switch (dashboardTiles.tiles[noOfTiles].name.slice(0, dashboardTiles.tiles[noOfTiles].name.indexOf("_"))) {
case "bugCountTile" :
url = dashboardTiles.tiles[noOfTiles].param[0].val +
dashboardTiles.tiles[noOfTiles].param[1].val;
updateData.bugCount(url,tempVal,prjWidget,currentDashName);
break;
case "storyCountTile" :
url = dashboardTiles.tiles[noOfTiles].param[0].val +
dashboardTiles.tiles[noOfTiles].param[1].val;
updateData.storyCount(url,tempVal,prjWidget,currentDashName);
break;
case "bambooBuildTile" :
url = dashboardTiles.tiles[noOfTiles].param[0].val +
dashboardTiles.tiles[noOfTiles].param[1].val +
dashboardTiles.tiles[noOfTiles].param[2].val;
updateData.bamboo(url,tempVal,prjWidget,currentDashName);
break;
case "bambooBuildDailyStatsTile" :
url = dashboardTiles.tiles[noOfTiles].param[0].val +
dashboardTiles.tiles[noOfTiles].param[1].val +
dashboardTiles.tiles[noOfTiles].param[2].val;
updateData.bambooDailyStats(url,tempVal,prjWidget,currentDashName);
break;
case "bambooTestDailyStatsTile" :
url = dashboardTiles.tiles[noOfTiles].param[0].val +
dashboardTiles.tiles[noOfTiles].param[1].val +
dashboardTiles.tiles[noOfTiles].param[2].val;
updateData.bambooTestDailyStats(url,tempVal,prjWidget,currentDashName);
break;
case "defectSummaryTile" :
url = dashboardTiles.tiles[noOfTiles].param[0].val +
dashboardTiles.tiles[noOfTiles].param[1].val;
updateData.jiraSummary(url,tempVal,prjWidget,currentDashName);
break;
case "commitDetailsTile" :
var commitURL = dashboardTiles.tiles[noOfTiles].param[0].val;
var tempCommitPos = (dashboardTiles.tiles[noOfTiles].name.slice(dashboardTiles.tiles[noOfTiles].name.indexOf("_")+1, dashboardTiles.tiles[noOfTiles].name.length));
updateData.commit(commitURL,tempCommitPos,prjWidget,currentDashName);
break;
case "codeQualityTile" :
var sonarCubeURL = dashboardTiles.tiles[noOfTiles].param[0].val + sonarCubePostfix + "resource=" +
dashboardTiles.tiles[noOfTiles].param[1].val + "&format=json&" +
"&metrics=";
updateData.sonarCube(sonarCubeURL,sonarCubeMetrics,prjWidget,currentDashName);
break;
}
}
}
/*realtime data end*/
// -------------------------------------------- Pull data End