time, status, error history, running sessions, sessions history, private page with key, added
This commit is contained in:
@@ -0,0 +1,90 @@
|
||||
const request = require('request')
|
||||
const database = require('../database/database.js')
|
||||
const not_found_error = require('../../lib/src/http/errors/not_found_error')
|
||||
const {ping_session_server} = require('../modules/session_server.js')
|
||||
|
||||
const max_response_timeout = 500
|
||||
|
||||
const validate_url = async (domain) => {
|
||||
var options = {
|
||||
url: domain,
|
||||
method: "GET",
|
||||
path: '/',
|
||||
timeout: max_response_timeout
|
||||
}
|
||||
|
||||
return new Promise(function (resolve, reject) {
|
||||
request(options,
|
||||
async function(err, answer, data) {
|
||||
if (err || !answer.socket) {
|
||||
resolve(false)
|
||||
return
|
||||
} else if (answer.socket.authorized) {
|
||||
resolve(true)
|
||||
} else {
|
||||
resolve(false)
|
||||
}
|
||||
}
|
||||
)
|
||||
})
|
||||
}
|
||||
|
||||
const validate_all_urls = async (urls) => {
|
||||
return Promise.all(urls.map(async (url) => {
|
||||
const status = await validate_url(url)
|
||||
return {url:url, status:status}
|
||||
}))
|
||||
}
|
||||
|
||||
const ping_all_session_servers = async (urls) => {
|
||||
return Promise.all(urls.map(async (url) => {
|
||||
const status = await ping_session_server(url)
|
||||
return {url:url, status:status}
|
||||
}))
|
||||
}
|
||||
|
||||
|
||||
|
||||
const get_status = async (req, res, next) => {
|
||||
let statuses = await database.get_statuses()
|
||||
let urls = statuses[0].urls
|
||||
|
||||
let session_servers = await database.get_all_session_servers()
|
||||
|
||||
let session_servers_urls = []
|
||||
|
||||
session_servers.forEach(server => {
|
||||
session_servers_urls.push(server.url)
|
||||
})
|
||||
|
||||
urls = urls.concat(session_servers_urls)
|
||||
|
||||
// all ssl statuses
|
||||
let ssl_statuses = await validate_all_urls(urls)
|
||||
|
||||
let session_server_statuses = await ping_all_session_servers(session_servers_urls)
|
||||
|
||||
let errors = await database.get_errors()
|
||||
|
||||
let active_sessions = await database.get_all_active_sessions()
|
||||
if (active_sessions) {
|
||||
active_sessions.forEach(function(part, index) {
|
||||
this[index].websocket_url = ""
|
||||
this[index].session_id = ""
|
||||
}, active_sessions)
|
||||
}
|
||||
|
||||
let sessions_history = await database.get_all_session_history()
|
||||
if (sessions_history) {
|
||||
sessions_history.forEach(function(part, index) {
|
||||
this[index].websocket_url = ""
|
||||
this[index].session_id = ""
|
||||
}, sessions_history)
|
||||
}
|
||||
|
||||
res.json([{ssl_statuses:ssl_statuses}, {session_server_statuses:session_server_statuses}, {errors:errors}, {active_sessions:active_sessions}, {sessions_history:sessions_history}])
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
get_status
|
||||
}
|
||||
Reference in New Issue
Block a user