spoonsix-dognotgod 0.1.4 → 0.1.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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