[RPC] Add an uptime command that displays the amount of time that bitcoind has been running
This commit is contained in:
committed by
lateminer
parent
5a5d74b07c
commit
32f0591954
@@ -116,6 +116,7 @@ testScripts = [
|
||||
'p2p-versionbits-warning.py',
|
||||
'importprunedfunds.py',
|
||||
'signmessages.py',
|
||||
'uptime.py',
|
||||
]
|
||||
testScriptsExt = [
|
||||
'bip9-softforks.py',
|
||||
|
||||
32
qa/rpc-tests/uptime.py
Normal file
32
qa/rpc-tests/uptime.py
Normal file
@@ -0,0 +1,32 @@
|
||||
#!/usr/bin/env python3
|
||||
# Copyright (c) 2017 The Bitcoin Core developers
|
||||
# Distributed under the MIT software license, see the accompanying
|
||||
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
"""Test the RPC call related to the uptime command.
|
||||
|
||||
Test corresponds to code in rpc/server.cpp.
|
||||
"""
|
||||
|
||||
import time
|
||||
|
||||
from test_framework.test_framework import BitcoinTestFramework
|
||||
|
||||
|
||||
class UptimeTest(BitcoinTestFramework):
|
||||
def __init__(self):
|
||||
super().__init__()
|
||||
|
||||
self.num_nodes = 1
|
||||
self.setup_clean_chain = True
|
||||
|
||||
def run_test(self):
|
||||
self._test_uptime()
|
||||
|
||||
def _test_uptime(self):
|
||||
wait_time = 10
|
||||
self.nodes[0].setmocktime(int(time.time() + wait_time))
|
||||
assert(self.nodes[0].uptime() >= wait_time)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
UptimeTest().main()
|
||||
@@ -24,7 +24,6 @@
|
||||
|
||||
class CBlockIndex;
|
||||
|
||||
static const int64_t nClientStartupTime = GetTime();
|
||||
static int64_t nLastHeaderTipUpdateNotification = 0;
|
||||
static int64_t nLastBlockTipUpdateNotification = 0;
|
||||
|
||||
@@ -182,7 +181,7 @@ bool ClientModel::isReleaseVersion() const
|
||||
|
||||
QString ClientModel::formatClientStartupTime() const
|
||||
{
|
||||
return QDateTime::fromTime_t(nClientStartupTime).toString();
|
||||
return QDateTime::fromTime_t(GetStartupTime()).toString();
|
||||
}
|
||||
|
||||
QString ClientModel::dataDir() const
|
||||
|
||||
@@ -273,6 +273,22 @@ UniValue stop(const UniValue& params, bool fHelp)
|
||||
return "Blackcoin server stopping";
|
||||
}
|
||||
|
||||
UniValue uptime(const JSONRPCRequest& jsonRequest)
|
||||
{
|
||||
if (jsonRequest.fHelp || jsonRequest.params.size() > 1)
|
||||
throw std::runtime_error(
|
||||
"uptime\n"
|
||||
"\nReturns the total uptime of the server.\n"
|
||||
"\nResult:\n"
|
||||
"ttt (numeric) The number of seconds that the server has been running\n"
|
||||
"\nExamples:\n"
|
||||
+ HelpExampleCli("uptime", "")
|
||||
+ HelpExampleRpc("uptime", "")
|
||||
);
|
||||
|
||||
return GetTime() - GetStartupTime();
|
||||
}
|
||||
|
||||
/**
|
||||
* Call Table
|
||||
*/
|
||||
@@ -282,6 +298,7 @@ static const CRPCCommand vRPCCommands[] =
|
||||
/* Overall control/query calls */
|
||||
{ "control", "help", &help, true },
|
||||
{ "control", "stop", &stop, true },
|
||||
{ "control", "uptime", &uptime, true, },
|
||||
};
|
||||
|
||||
CRPCTable::CRPCTable()
|
||||
|
||||
@@ -97,6 +97,9 @@ namespace boost {
|
||||
|
||||
} // namespace boost
|
||||
|
||||
// Application startup time (used for uptime calculation)
|
||||
const int64_t nStartupTime = GetTime();
|
||||
|
||||
using namespace std;
|
||||
|
||||
const char * const BITCOIN_CONF_FILENAME = "blackmore.conf";
|
||||
@@ -836,3 +839,9 @@ int GetNumCores()
|
||||
#endif
|
||||
}
|
||||
|
||||
// Obtain the application startup time (used for uptime calculation)
|
||||
int64_t GetStartupTime()
|
||||
{
|
||||
return nStartupTime;
|
||||
}
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
|
||||
/**
|
||||
* Server/client environment: argument handling, config file parsing,
|
||||
* logging, thread wrappers
|
||||
* logging, thread wrappers, startup time
|
||||
*/
|
||||
#ifndef BITCOIN_UTIL_H
|
||||
#define BITCOIN_UTIL_H
|
||||
@@ -28,6 +28,9 @@
|
||||
#include <boost/signals2/signal.hpp>
|
||||
#include <boost/thread/exceptions.hpp>
|
||||
|
||||
// Application startup time (used for uptime calculation)
|
||||
int64_t GetStartupTime();
|
||||
|
||||
static const bool DEFAULT_LOGTIMEMICROS = false;
|
||||
static const bool DEFAULT_LOGIPS = false;
|
||||
static const bool DEFAULT_LOGTIMESTAMPS = true;
|
||||
|
||||
Reference in New Issue
Block a user