[Libreoffice-commits] online.git: Branch 'distro/collabora/collabora-online-4-0' - loleaflet/admin scripts/unocommands.py wsd/Admin.cpp wsd/AdminModel.cpp wsd/AdminModel.hpp wsd/LOOLWSD.cpp wsd/LOOLWSD.hpp
George (via logerrit)
logerrit at kemper.freedesktop.org
Fri Jul 19 20:22:14 UTC 2019
loleaflet/admin/admin.html | 4 ++++
loleaflet/admin/admin.strings.js | 1 +
loleaflet/admin/src/AdminSocketOverview.js | 7 ++++++-
scripts/unocommands.py | 2 +-
wsd/Admin.cpp | 3 +++
wsd/AdminModel.cpp | 8 ++++++++
wsd/AdminModel.hpp | 2 ++
wsd/LOOLWSD.cpp | 4 ++++
wsd/LOOLWSD.hpp | 2 ++
9 files changed, 31 insertions(+), 2 deletions(-)
New commits:
commit c81dd0265507e9fbf8b468c766d1d9709ec0d7ec
Author: George <gwoodcode at gmail.com>
AuthorDate: Fri Jul 19 11:39:59 2019 +0100
Commit: Michael Meeks <michael.meeks at collabora.com>
CommitDate: Fri Jul 19 22:21:55 2019 +0200
added server uptime field to admin console
Change-Id: Id23fee1299b87095f186ce7aaa8c2d2e0f3cef52
Reviewed-on: https://gerrit.libreoffice.org/75962
Reviewed-by: Michael Meeks <michael.meeks at collabora.com>
Tested-by: Michael Meeks <michael.meeks at collabora.com>
diff --git a/loleaflet/admin/admin.html b/loleaflet/admin/admin.html
index a076a1749..23423f2ea 100644
--- a/loleaflet/admin/admin.html
+++ b/loleaflet/admin/admin.html
@@ -85,6 +85,10 @@
<div class="main-data" id="recv_bytes">0</div>
<h4><script>document.write(l10nstrings.strRecvBytes)</script></h4>
</div>
+ <div class="col-xs-6 col-sm-2 placeholder">
+ <div class="main-data" id="uptime">0</div>
+ <h4><script>document.write(l10nstrings.strServerUptime)</script></h4>
+ </div>
</div>
<div class="container-fluid">
<ul class="nav nav-tabs">
diff --git a/loleaflet/admin/admin.strings.js b/loleaflet/admin/admin.strings.js
index 5dabb9702..1d10257a5 100644
--- a/loleaflet/admin/admin.strings.js
+++ b/loleaflet/admin/admin.strings.js
@@ -39,6 +39,7 @@ l10nstrings.strLimitFileSizeMb = _('Maximum file size allowed to write to disk (
l10nstrings.strDocuments = _('Documents:');
l10nstrings.strExpired = _('Expired:');
l10nstrings.strRefresh = _('Refresh');
+l10nstrings.strServerUptime = _('Server uptime')
if (module) {
module.exports = l10nstrings;
diff --git a/loleaflet/admin/src/AdminSocketOverview.js b/loleaflet/admin/src/AdminSocketOverview.js
index 15444e9a6..9c61089cc 100644
--- a/loleaflet/admin/src/AdminSocketOverview.js
+++ b/loleaflet/admin/src/AdminSocketOverview.js
@@ -51,6 +51,7 @@ var AdminSocketOverview = AdminSocketBase.extend({
this.socket.send('active_users_count');
this.socket.send('sent_bytes');
this.socket.send('recv_bytes');
+ this.socket.send('uptime')
},
onSocketOpen: function() {
@@ -311,7 +312,8 @@ var AdminSocketOverview = AdminSocketBase.extend({
textMsg.startsWith('active_docs_count') ||
textMsg.startsWith('active_users_count') ||
textMsg.startsWith('sent_bytes') ||
- textMsg.startsWith('recv_bytes'))
+ textMsg.startsWith('recv_bytes') ||
+ textMsg.startsWith('uptime'))
{
textMsg = textMsg.split(' ');
var sCommand = textMsg[0];
@@ -322,6 +324,9 @@ var AdminSocketOverview = AdminSocketBase.extend({
sCommand === 'recv_bytes') {
nData = Util.humanizeMem(nData);
}
+ else if (sCommand === 'uptime') {
+ nData = Util.humanizeSecs(nData)
+ }
$(document.getElementById(sCommand)).text(nData);
}
else if (textMsg.startsWith('rmdoc')) {
diff --git a/scripts/unocommands.py b/scripts/unocommands.py
index 27fca0d84..e08037395 100755
--- a/scripts/unocommands.py
+++ b/scripts/unocommands.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
# -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
#
# This file is part of the LibreOffice project.
diff --git a/wsd/Admin.cpp b/wsd/Admin.cpp
index 414427027..498053604 100644
--- a/wsd/Admin.cpp
+++ b/wsd/Admin.cpp
@@ -157,6 +157,9 @@ void AdminSocketHandler::handleMessage(bool /* fin */, WSOpCode /* code */,
else if (tokens[0] == "recv_bytes")
sendTextFrame("recv_bytes " + std::to_string(model.getRecvBytesTotal() / 1024));
+ else if (tokens[0] == "uptime")
+ sendTextFrame("uptime " + std::to_string(model.getServerUptime()));
+
else if (tokens[0] == "kill" && tokens.count() == 2)
{
try
diff --git a/wsd/AdminModel.cpp b/wsd/AdminModel.cpp
index e25c08bf5..d6629ebaa 100644
--- a/wsd/AdminModel.cpp
+++ b/wsd/AdminModel.cpp
@@ -11,6 +11,7 @@
#include "AdminModel.hpp"
+#include <chrono>
#include <memory>
#include <set>
#include <sstream>
@@ -733,4 +734,11 @@ void AdminModel::updateMemoryDirty(const std::string& docKey, int dirty)
}
}
+double AdminModel::getServerUptime()
+{
+ auto currentTime = std::chrono::system_clock::now();
+ std::chrono::duration<double> uptime = currentTime - LOOLWSD::StartTime;
+ return uptime.count();
+}
+
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/wsd/AdminModel.hpp b/wsd/AdminModel.hpp
index 69a9f4557..61c1b275d 100644
--- a/wsd/AdminModel.hpp
+++ b/wsd/AdminModel.hpp
@@ -266,6 +266,8 @@ public:
uint64_t getSentBytesTotal() { return _sentBytesTotal; }
uint64_t getRecvBytesTotal() { return _recvBytesTotal; }
+ double getServerUptime();
+
/// Document basic info list sorted by most idle time
std::vector<DocBasicInfo> getDocumentsSortedByIdle() const;
diff --git a/wsd/LOOLWSD.cpp b/wsd/LOOLWSD.cpp
index 75ab01c48..8eb9e31ca 100644
--- a/wsd/LOOLWSD.cpp
+++ b/wsd/LOOLWSD.cpp
@@ -42,6 +42,7 @@
#include <cstdlib>
#include <cstring>
#include <ctime>
+#include <chrono>
#include <fstream>
#include <iostream>
#include <map>
@@ -703,6 +704,7 @@ unsigned LOOLWSD::MaxConnections;
unsigned LOOLWSD::MaxDocuments;
std::string LOOLWSD::OverrideWatermark;
std::set<const Poco::Util::AbstractConfiguration*> LOOLWSD::PluginConfigurations;
+std::chrono::time_point<std::chrono::system_clock> LOOLWSD::StartTime;
static std::string UnitTestLibrary;
@@ -761,6 +763,8 @@ void LOOLWSD::initialize(Application& self)
throw std::runtime_error("Failed to load wsd unit test library.");
}
+ StartTime = std::chrono::system_clock::now();
+
auto& conf = config();
// Add default values of new entries here.
diff --git a/wsd/LOOLWSD.hpp b/wsd/LOOLWSD.hpp
index 9e8f7b254..6f1eedbf6 100644
--- a/wsd/LOOLWSD.hpp
+++ b/wsd/LOOLWSD.hpp
@@ -12,6 +12,7 @@
#include <algorithm>
#include <atomic>
+#include <chrono>
#include <map>
#include <set>
#include <string>
@@ -74,6 +75,7 @@ public:
static unsigned MaxDocuments;
static std::string OverrideWatermark;
static std::set<const Poco::Util::AbstractConfiguration*> PluginConfigurations;
+ static std::chrono::time_point<std::chrono::system_clock> StartTime;
static std::vector<int> getKitPids();
More information about the Libreoffice-commits
mailing list