]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blame - server/controllers/api/requests.js
Fix request schedulers stats
[github/Chocobozzz/PeerTube.git] / server / controllers / api / requests.js
CommitLineData
d3cd34be
C
1'use strict'
2
3const express = require('express')
99fdec46 4const parallel = require('async/parallel')
d3cd34be 5
f253b1c1 6const constants = require('../../initializers/constants')
99fdec46 7const friends = require('../../lib/friends')
f253b1c1 8const middlewares = require('../../middlewares')
d3cd34be
C
9const admin = middlewares.admin
10const oAuth = middlewares.oauth
11
d3cd34be
C
12const router = express.Router()
13
14router.get('/stats',
15 oAuth.authenticate,
16 admin.ensureIsAdmin,
17 getStatsRequests
18)
19
20// ---------------------------------------------------------------------------
21
22module.exports = router
23
24// ---------------------------------------------------------------------------
25
26function getStatsRequests (req, res, next) {
99fdec46
C
27 parallel({
28 requestScheduler: buildRequestSchedulerFunction(friends.getRequestScheduler()),
29 requestVideoQaduScheduler: buildRequestSchedulerFunction(friends.getRequestVideoQaduScheduler()),
30 requestVideoEventScheduler: buildRequestSchedulerFunction(friends.getRequestVideoEventScheduler())
31 }, function (err, result) {
d3cd34be
C
32 if (err) return next(err)
33
99fdec46 34 return res.json(result)
d3cd34be
C
35 })
36}
99fdec46
C
37
38// ---------------------------------------------------------------------------
39
40function buildRequestSchedulerFunction (requestScheduler) {
41 return function (callback) {
42 requestScheduler.remainingRequestsCount(function (err, count) {
43 if (err) return callback(err)
44
45 const result = {
46 totalRequests: count,
47 requestsLimitPods: requestScheduler.limitPods,
48 requestsLimitPerPod: requestScheduler.limitPerPod,
49 remainingMilliSeconds: requestScheduler.remainingMilliSeconds(),
50 milliSecondsInterval: requestScheduler.requestInterval
51 }
52
53 return callback(null, result)
54 })
55 }
56}