diskmon 0.0.1 → 0.0.2

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.
@@ -8,7 +8,7 @@ Gem::Specification.new do |gem|
8
8
  gem.summary = %q{Gem for collect statistic from disks}
9
9
  gem.homepage = ""
10
10
 
11
- gem.files = ["Gemfile", "LICENSE", "README.md", "Rakefile", "bin/diskmon", "diskmon.gemspec", "lib/diskmon.rb", "lib/diskmon/client/collector.rb", "lib/diskmon/client/config.rb", "lib/diskmon/client/harddisk.rb", "lib/diskmon/client/raidcontroller.rb", "lib/diskmon/client/solarismapdev.rb", "lib/diskmon/client/zpoolstree.rb", "lib/diskmon/server/harddisk.rb", "lib/diskmon/server/harddiskreport.rb", "lib/diskmon/version.rb"]
11
+ gem.files = ["Gemfile", "LICENSE", "README.md", "Rakefile", "bin/diskmon", "diskmon.gemspec", "lib/diskmon.rb", "lib/diskmon/client/collector.rb", "lib/diskmon/client/config.rb", "lib/diskmon/client/harddisk.rb", "lib/diskmon/client/raidcontroller.rb", "lib/diskmon/client/solarismapdev.rb", "lib/diskmon/client/zpoolstree.rb", "lib/diskmon/server/harddisk.rb", "lib/diskmon/server/serverapp.rb", "lib/diskmon/server/harddiskreport.rb", "lib/diskmon/version.rb"]
12
12
  gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
13
13
  gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
14
14
  gem.name = "diskmon"
@@ -16,5 +16,6 @@ Gem::Specification.new do |gem|
16
16
  gem.version = Diskmon::VERSION
17
17
  gem.add_runtime_dependency 'data_mapper'
18
18
  gem.add_runtime_dependency 'sinatra'
19
- gem.add_runtime_dependency 'thin'
19
+ # gem.add_runtime_dependency 'thin'
20
+ gem.add_runtime_dependency 'dm-sqlite-adapter'
20
21
  end
@@ -9,6 +9,7 @@ require 'data_mapper'
9
9
  require 'dm-validations'
10
10
  require 'pp'
11
11
  require "diskmon/server/harddiskreport"
12
+ require "diskmon/server/serverapp"
12
13
 
13
14
  module Diskmon
14
15
 
@@ -50,24 +51,7 @@ module Diskmon
50
51
 
51
52
  Diskmon::HardDiskReport.auto_upgrade!
52
53
 
53
- post '/report/new' do
54
- data = request.body.read
55
-
56
- Kernel.puts "// Report from #{request.env['REMOTE_ADDR']}" if $DEBUG
57
-
58
- @m = Marshal.load(data)
59
-
60
- @m.each do |disk|
61
- report = Diskmon::HardDiskReport.create(disk.to_hash)
62
- report.checksum = disk.checksum
63
-
64
- report.print if $DEBUG
65
-
66
- report.save
67
- end
68
-
69
- "OK"
70
- end
54
+ Diskmon::ServerApp.run!
71
55
  end
72
56
  end
73
57
  end
@@ -36,10 +36,12 @@ module Diskmon
36
36
 
37
37
  when /c[0-9]t/
38
38
  disk_name = l.split[0]
39
+ if disk_name =~ /s0/
40
+ disk_name = disk_name.slice(0,6) # dirty hack for rpool disks(with slice)
41
+ end
39
42
 
40
43
  @disks[disk_name] = {}
41
44
  @disks[disk_name]["zpool"] = pool_name
42
-
43
45
  @disks[disk_name]["read_errors"] = l.split[2]
44
46
  @disks[disk_name]["write_errors"] = l.split[3]
45
47
  @disks[disk_name]["checksum_errors"] = l.split[4]
@@ -55,19 +57,35 @@ module Diskmon
55
57
  end
56
58
 
57
59
  def which_pool(device)
58
- @disks[device]["zpool"]
60
+ if @disks.include? device
61
+ @disks[device]["zpool"]
62
+ else
63
+ nil
64
+ end
59
65
  end
60
66
 
61
67
  def read_errors(device)
62
- @disks[device]["read_errors"]
68
+ if @disks.include? device
69
+ @disks[device]["read_errors"]
70
+ else
71
+ nil
72
+ end
63
73
  end
64
74
 
65
75
  def write_errors(device)
66
- @disks[device]["write_errors"]
76
+ if @disks.include? device
77
+ @disks[device]["write_errors"]
78
+ else
79
+ nil
80
+ end
67
81
  end
68
82
 
69
83
  def checksum_errors(device)
70
- @disks[device]["checksum_errors"]
84
+ if @disks.include? device
85
+ @disks[device]["checksum_errors"]
86
+ else
87
+ nil
88
+ end
71
89
  end
72
90
 
73
91
  # free_space
@@ -75,7 +93,11 @@ module Diskmon
75
93
  # last_command
76
94
  # health
77
95
  def get_pool_param(pool, param)
78
- @pools[pool][param]
96
+ if @pools.include? pool
97
+ @pools[pool][param]
98
+ else
99
+ nil
100
+ end
79
101
  end
80
102
 
81
103
  end
@@ -0,0 +1,28 @@
1
+ require "sinatra/base"
2
+ require "diskmon/server/harddisk"
3
+
4
+ module Diskmon
5
+ class ServerApp < Sinatra::Base
6
+
7
+ set :port, 7777
8
+
9
+ post '/report/new' do
10
+ data = request.body.read
11
+
12
+ Kernel.puts "// Report from #{request.env['REMOTE_ADDR']}" if $DEBUG
13
+
14
+ @m = Marshal.load(data)
15
+
16
+ @m.each do |disk|
17
+ report = Diskmon::HardDiskReport.create(disk.to_hash)
18
+ report.checksum = disk.checksum
19
+
20
+ report.print if $DEBUG
21
+
22
+ report.save
23
+ end
24
+
25
+ "OK"
26
+ end
27
+ end
28
+ end
@@ -1,3 +1,3 @@
1
1
  module Diskmon
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: diskmon
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -44,7 +44,7 @@ dependencies:
44
44
  - !ruby/object:Gem::Version
45
45
  version: '0'
46
46
  - !ruby/object:Gem::Dependency
47
- name: thin
47
+ name: dm-sqlite-adapter
48
48
  requirement: !ruby/object:Gem::Requirement
49
49
  none: false
50
50
  requirements:
@@ -81,6 +81,7 @@ files:
81
81
  - lib/diskmon/client/solarismapdev.rb
82
82
  - lib/diskmon/client/zpoolstree.rb
83
83
  - lib/diskmon/server/harddisk.rb
84
+ - lib/diskmon/server/serverapp.rb
84
85
  - lib/diskmon/server/harddiskreport.rb
85
86
  - lib/diskmon/version.rb
86
87
  homepage: ''