lib/zold/node/front.rb in zold-0.21.1 vs lib/zold/node/front.rb in zold-0.21.2
- old
+ new
@@ -1,8 +1,8 @@
# frozen_string_literal: true
-# Copyright (c) 2018 Yegor Bugayenko
+# Copyright (c) 2018-2019 Zerocracy, Inc.
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the 'Software'), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
@@ -28,10 +28,11 @@
require 'json'
require 'sinatra/base'
require 'concurrent'
require 'backtrace'
require 'zache'
+require 'total'
require_relative '../version'
require_relative '../size'
require_relative '../wallet'
require_relative '../age'
require_relative '../copies'
@@ -222,10 +223,11 @@
platform: RUBY_PLATFORM,
load: settings.zache.get(:load, lifetime: settings.opts['no-cache'] ? 0 : 60) do
require 'usagewatch_ext'
Object.const_defined?('Usagewatch') ? Usagewatch.uw_load.to_f : 0.0
end,
+ total_mem: total_mem,
threads: "#{Thread.list.select { |t| t.status == 'run' }.count}/#{Thread.list.count}",
wallets: total_wallets,
remotes: all_remotes.count,
nscore: all_remotes.map { |r| r[:score] }.inject(&:+) || 0,
farm: settings.farm.to_json,
@@ -361,10 +363,15 @@
score: score.to_h,
wallets: total_wallets
)
end
+ get '/wallets' do
+ content_type('text/plain')
+ settings.wallets.all.map(&:to_s).join('\n')
+ end
+
get '/remotes' do
content_type('application/json')
pretty(
version: settings.opts['expose-version'],
alias: settings.node_alias,
@@ -438,9 +445,18 @@
def check_header(name)
name = "HTTP-#{name}".upcase.tr('-', '_')
header = request.env[name]
return unless header
yield header
+ end
+
+ def total_mem
+ settings.zache.get(:total_mem, lifetime: settings.opts['no-cache'] ? 0 : 60) do
+ Total::Mem.new.bytes
+ rescue Total::CantDetect => e
+ @log.error(e.message)
+ 0
+ end
end
def total_wallets
settings.zache.get(:wallets, lifetime: settings.opts['no-cache'] ? 0 : 60) do
settings.wallets.count