spoonsix-dognotgod 0.1.4 → 0.1.5

Sign up to get free protection for your applications and to get access to all the features.
data/app/models/disk.rb CHANGED
@@ -6,7 +6,6 @@ class Disk < Sequel::Model
6
6
  set_schema do
7
7
  primary_key :id
8
8
  integer :file_system_id
9
- string :mounted_on
10
9
  integer :used
11
10
  integer :available
12
11
  timestamp :created_at
@@ -21,7 +21,7 @@ class FileSystem < Sequel::Model
21
21
  def size_in_Gb
22
22
  last_entry = DB[:disks].filter(:file_system_id => self.id).reverse_order(:created_at).last
23
23
  if last_entry
24
- (last_entry[:available] + last_entry[:used]) / 1024 / 1024
24
+ (last_entry[:available].to_i + last_entry[:used].to_i) / 1024 / 1024
25
25
  else
26
26
  0
27
27
  end
data/client.rb CHANGED
@@ -1,24 +1,29 @@
1
1
  require 'rubygems'
2
2
  require 'optparse'
3
3
  require 'restclient'
4
+ require 'lib/base.rb'
5
+ require 'lib/client_commands.rb'
4
6
 
5
7
  module DogNotGod
6
8
 
7
9
  class Client
8
-
10
+
11
+ capture [:load_stats, :disk_stats, :memory_stats]
12
+
9
13
  def initialize(argv)
14
+
10
15
  @argv = argv
11
16
 
12
17
  # Default options values
13
18
  @options = {
14
19
  :server_addr => "127.0.0.1",
15
20
  :server_port => "4567",
16
- :timeout => 5
21
+ :timeout => 10
17
22
  }
18
23
 
19
24
  parse!
20
25
 
21
- @endpoint = "http://#{@options[:server_addr]}:#{@options[:server_port]}"
26
+ @resource = RestClient::Resource.new("http://#{@options[:server_addr]}:#{@options[:server_port]}")
22
27
  end
23
28
 
24
29
  def parser
@@ -45,39 +50,16 @@ module DogNotGod
45
50
  end
46
51
 
47
52
  def run!
48
- hostname = %x[hostname].split("\n")[0]
49
- uptime = %x[uptime]
50
- avgs = uptime.scan(/(\d+\.\d\d)/)
51
-
52
53
 
53
- # the 'free' command is not available on Mac OSX
54
- mem = %x[free].split("\n")
55
- mem.shift # lose column headers
56
- mem_available = mem[0].split(" ")[3]
57
- mem_used = mem[0].split(" ")[2]
58
- swap_available = mem[2].split(" ")[3]
59
- swap_used = mem[2].split(" ")[2]
60
-
61
-
62
- df = %x[df -ak].split("\n")
63
- df.shift # lose column headers
64
-
65
- begin
66
- RestClient.post("#{@endpoint}/load_stats", :load_5_min => avgs[0], :load_10_min => avgs[1], :load_15_min => avgs[2], :hostname => hostname)
67
- puts "Load info sent successfully."
68
-
69
- df.each do |line|
70
- info = line.split(" ")
71
- RestClient.post("#{@endpoint}/file_system_stats", :file_system_name => info[0], :mounted_on => info[-1], :used => info[2], :available => info[3], :hostname => hostname)
54
+ @@command_symbols.each do |command_name_symbol|
55
+ begin
56
+ command = DogNotGod::Commands.factory(command_name_symbol)
57
+ command.run!(@resource)
58
+ rescue
59
+ raise
72
60
  end
73
- puts "Filesystem info sent successfully."
74
-
75
- RestClient.post("#{@endpoint}/mem_stats", :hostname => hostname, :mem_available => mem_available, :mem_used => mem_used, :swap_available => swap_available, :swap_used => swap_used)
76
- puts "Memory and swap info sent successfully."
77
-
78
- rescue
79
- puts "There was a problem connecting to the server on #{@endpoint}."
80
61
  end
62
+
81
63
  end
82
64
 
83
65
  end
data/server.rb CHANGED
@@ -98,7 +98,7 @@ post "/file_system_stats" do
98
98
  host = get_host_or_create_if_not_exist(params[:hostname])
99
99
  fs = get_fs_or_create_if_not_exist(host[:id], params[:file_system_name], params[:mounted_on])
100
100
 
101
- disk_stats = Disk.new({:file_system_id => fs[:id], :mounted_on => params[:mounted_on], :used => params[:used], :available => params[:available]})
101
+ disk_stats = Disk.new({:file_system_id => fs[:id], :used => params[:used], :available => params[:available]})
102
102
  disk_stats.save
103
103
  status(201)
104
104
  rescue
data/views/layout.haml CHANGED
@@ -3,9 +3,6 @@
3
3
  %head
4
4
  %title dog not god
5
5
  %link{:rel=>'stylesheet', :href=>'/stylesheets/style.css', :type => "text/css"}
6
- %script{:src => "http://www.google.com/jsapi"}
7
- %script google.load("jquery", "1");
8
- %script{:src => "/javascripts/flot/jquery.flot.pack.js"}
9
6
 
10
7
 
11
8
  %body
@@ -15,7 +12,7 @@
15
12
  =yield
16
13
  #footer
17
14
  %p
18
- %a{ :href => "http://github.com/luiscorreadalmeida/dog" } dog not god
15
+ %a{ :href => "http://github.com/spoosix/dognotgod" } dog not god
19
16
  is released under the
20
17
  %a{ :href => "http://www.gnu.org/licenses/gpl.html" } GPL license
21
18
 
data/views/main.haml CHANGED
@@ -20,8 +20,6 @@
20
20
  %td= "#{host.available_disk_space_in_Gb}Gb out of #{host.total_disk_space_in_Gb}Gb (#{sprintf('%.2f', (host.available_disk_space_in_Gb.to_f / host.total_disk_space_in_Gb) * 100)}%)" if host.total_disk_space_in_Gb > 0
21
21
  %td= "#{host.available_memory_in_Mb}Mb out of #{host.total_memory_in_Mb}Mb (#{sprintf('%.2f', (host.available_memory_in_Mb.to_f / host.total_memory_in_Mb) * 100)}%)" if host.total_memory_in_Mb > 0
22
22
  %td= "#{host.available_swap_in_Mb}Mb out of #{host.total_swap_in_Mb}Mb (#{sprintf('%.2f', (host.available_swap_in_Mb.to_f / host.total_swap_in_Mb) * 100)}%)" if host.total_swap_in_Mb > 0
23
-
24
-
25
23
 
26
24
  %table{:id => "section-table"}
27
25
  %tr
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spoonsix-dognotgod
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.4
4
+ version: 0.1.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Luis Correa d'Almeida
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-03-02 00:00:00 -08:00
12
+ date: 2009-03-03 00:00:00 -08:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -88,6 +88,8 @@ files:
88
88
  - app/models/host.rb
89
89
  - app/models/load.rb
90
90
  - app/models/memory.rb
91
+ - lib/base.rb
92
+ - lib/client_commands.rb
91
93
  - config.ru
92
94
  - README.md
93
95
  - views/layout.haml