ref: refs/heads/master
commit 74e3ec687f036270f0409f1dfa81350e8b0dfa54
Author: Josef Reidinger
Date: Wed Nov 4 14:05:25 2009 +0100
remove Scr.execute for checking if collectd running bnc#548132
---
plugins/status/app/models/metric.rb | 9 ++++++---
plugins/status/lib/status.rb | 8 ++++----
plugins/status/test/unit/metric_test.rb | 8 +-------
plugins/status/test/unit/status_test.rb | 2 +-
4 files changed, 12 insertions(+), 15 deletions(-)
diff --git a/plugins/status/app/models/metric.rb b/plugins/status/app/models/metric.rb
index 385dbf9..1ee4056 100644
--- a/plugins/status/app/models/metric.rb
+++ b/plugins/status/app/models/metric.rb
@@ -5,7 +5,6 @@
# @author Duncan Mac-Vicar P.
# @author Stefan Schubert
#
-require 'scr'
require 'yaml'
#
@@ -100,8 +99,12 @@ class Metric
# returns true if collectd daemon is running
def self.collectd_running?
- ret = Scr.instance.execute(["/usr/sbin/rccollectd", "status"])
- ret[:exit].zero?
+ #cannot run directly rccollectd status as it cannot run under non-root,
+ # but because it is not fatal information and if someone hackly run process
+ # which itself identify as collectd, then he runs into problems, but no
+ # security problem occur
+ ret = `ps xaf | grep '/usr/sbin/collectd' | grep -vc 'grep'`
+ ret.to_i > 0
end
# available plugins
diff --git a/plugins/status/lib/status.rb b/plugins/status/lib/status.rb
index 0c1b612..81507f2 100644
--- a/plugins/status/lib/status.rb
+++ b/plugins/status/lib/status.rb
@@ -3,7 +3,6 @@ require 'exceptions'
# Wrapper over collectd
#
class Status
- require 'scr'
require 'yaml'
attr_accessor :data,
@@ -46,7 +45,6 @@ class Status
end
def initialize()
- @scr = Scr.instance
@health_status = nil
@data = Hash.new
# force initialization of datapath
@@ -90,8 +88,10 @@ class Status
end
def check_collectd
- ret = @scr.execute(["/usr/sbin/rccollectd", "status"])
- return ret[:exit]==0
+ #FIXME duplicate code, already in app/model/metric
+ #SHARE IT!!!
+ ret = `ps xaf | grep '/usr/sbin/collectd' | grep -vc 'grep'`
+ ret.to_i > 0
end
# returns available metric types, which are the directories in the
diff --git a/plugins/status/test/unit/metric_test.rb b/plugins/status/test/unit/metric_test.rb
index ce530c0..dfcbf3a 100644
--- a/plugins/status/test/unit/metric_test.rb
+++ b/plugins/status/test/unit/metric_test.rb
@@ -33,6 +33,7 @@ class MetricTest < ActiveSupport::TestCase
Metric.stubs(:this_hostname).returns('myhost.domain.de')
Metric.stubs(:available_hosts).returns(['foo.com', 'myhost.domain.de'])
Metric.stubs(:rrd_files).returns(['/var/lib/collectd/foo.com/cpu-0/cppudata-1.rrd', '/var/lib/collectd/myhost.domain.de/memory/memory-free.rrd', '/var/lib/collectd/myhost.domain.de/cpu-1/cpudata-1.rrd', '/var/lib/collectd/myhost.domain.de/cpu-1/cpudata-2.rrd', '/var/lib/collectd/myhost.domain.de/cpu-2/cpudata-1.rrd', '/var/lib/collectd/myhost.domain.de/interface/packets.rrd', '/var/lib/collectd/myhost.domain.de/interface/some-0.rrd'])
+ Metric.stubs(:collectd_runnning?).returns(true)
end
def teardown
@@ -131,13 +132,6 @@ class MetricTest < ActiveSupport::TestCase
# puts "xml.target #{xtg.inspect}"
assert xml_cmp ptx, xtg
end
-
- def test_collectd_running
- Scr.instance.stubs(:execute).with(['/usr/sbin/rccollectd', 'status']).returns({:exit => 0})
- assert Metric.collectd_running?
- Scr.instance.stubs(:execute).with(['/usr/sbin/rccollectd', 'status']).returns({:exit => 1})
- assert !Metric.collectd_running?
- end
def test_finders
ret = Metric.find(:all)
diff --git a/plugins/status/test/unit/status_test.rb b/plugins/status/test/unit/status_test.rb
index cf99edd..7896b4a 100644
--- a/plugins/status/test/unit/status_test.rb
+++ b/plugins/status/test/unit/status_test.rb
@@ -6,8 +6,8 @@ require 'status'
class StatusTest < ActiveSupport::TestCase
def setup
# http://railsforum.com/viewtopic.php?id=1719
- Scr.instance.stubs(:execute).with(['/usr/sbin/rccollectd', 'status']).returns({:exit => 0})
Status.any_instance.stubs(:datapath).returns("/var/lib/collectd/test")
+ Status.any_instance.stubs(:check_collectd).returns(true)
end
def test_set_datapath
--
To unsubscribe, e-mail: yast-commit+unsubscribe@opensuse.org
For additional commands, e-mail: yast-commit+help@opensuse.org