flare-tools 0.1.0 → 0.1.1

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/lib/flare/tools.rb CHANGED
@@ -16,5 +16,5 @@ require 'net/dns/resolver'
16
16
  require 'tools/core'
17
17
 
18
18
  module FlareTools
19
- VERSION = '0.1.0'
19
+ VERSION = '0.1.1'
20
20
  end
@@ -11,29 +11,22 @@ module FlareTools
11
11
  class PartitionSetting < Core
12
12
  # {{{ constractor
13
13
  def initialize()
14
- super
15
14
  @partition = 0
16
15
  @run_flag = true
17
- self.option_parse
16
+ super
18
17
  end
19
18
  # }}}
20
- # {{{ opt_parse
21
- def option_parse
19
+ # {{{ option_on
20
+ def option_on
22
21
  super
23
22
  @option.on("-n", '--dry-run', "dry run") {@run_flag = false}
24
23
  @option.on( '--partition=partition', "partition") {|v| @partition = v.to_i}
25
- begin
26
- @option.parse!(ARGV)
27
- rescue OptionParser::ParseError => err
28
- puts err.message
29
- puts @option.to_s
30
- exit 1
31
- end
32
- self.param_check
24
+ @option.on( '--index-server=[HOSTNAME]', "index server hostname(default:#{@index_server_hostname})") {|v| @index_server_hostname = v}
25
+ @option.on( '--index-server-port=[PORT]', "index server port(default:#{@index_server_port})") {|v| @index_server_port = v.to_i}
33
26
  end
34
27
  # }}}
35
- # {{{ pram_check
36
- def param_check
28
+ # {{{ option_param_check
29
+ def option_param_check
37
30
  flag = false
38
31
  if @partition == 0
39
32
  self.error "specifies the number of partitions"
@@ -11,19 +11,63 @@ module FlareTools
11
11
  class Stats < Core
12
12
  # {{{ constractor
13
13
  def initialize()
14
+ # {{{ @format
15
+ @format = "%20.20s:%5.5s" # hostname:port
16
+ @format += " %6s" # state
17
+ @format += " %6s" # role
18
+ @format += " %9s" # partition
19
+ @format += " %7s" # balance
20
+ @format += " %8.8s" # items
21
+ @format += " %4s" # connection
22
+ @format += " %6.6s" # behind
23
+ @format += " %3.3s" # hit
24
+ @format += " %4.4s" # size
25
+ @format += " %6.6s" # uptime
26
+ @format += " %7s" # version
27
+ @format += "\n"
28
+ # }}}
29
+
30
+ # {{{ @label
31
+ @label = @format % [
32
+ "hostname",
33
+ "port",
34
+ "state",
35
+ "role",
36
+ "partition",
37
+ "balance",
38
+ "items",
39
+ "conn",
40
+ "behind",
41
+ "hit",
42
+ "size",
43
+ "uptime",
44
+ "version",
45
+ ]
46
+ # }}}
14
47
  super
15
- self.option_parse
48
+ end
49
+ # }}}
50
+ # {{{ option_on
51
+ def option_on
52
+ super
53
+ @option.on( '--index-server=[HOSTNAME]', "index server hostname(default:#{@index_server_hostname})") {|v| @index_server_hostname = v}
54
+ @option.on( '--index-server-port=[PORT]', "index server port(default:#{@index_server_port})") {|v| @index_server_port = v.to_i}
16
55
  end
17
56
  # }}}
18
57
  # {{{ sort_node
19
58
  def sort_node(nodes)
20
- res = {}
59
+ # sort hostname
60
+ i = 0
61
+ nodes = nodes.sort_by{|key, val| [key, i += 1]}
62
+
21
63
  # sort role
22
- res = nodes.sort_by{|key, val| val['role']}
64
+ i = 0
65
+ nodes = nodes.sort_by{|key, val| [val['role'], i += 1]}
23
66
 
24
67
  # sort partition
25
- res = nodes.sort_by{|key, val| val['partition']}
26
- res
68
+ i = 0
69
+ nodes = nodes.sort_by{|key, val| [val['partition'], i += 1]}
70
+ nodes
27
71
  end
28
72
  # }}}
29
73
  # {{{ str_date
@@ -55,53 +99,11 @@ class Stats < Core
55
99
  "#{date}d"
56
100
  end
57
101
  # }}}
58
- # {{{ opt_parse
59
- def option_parse
60
- super
61
- begin
62
- @option.parse!(ARGV)
63
- rescue OptionParser::ParseError => err
64
- puts err.message
65
- puts @option.to_s
66
- exit 1
67
- end
68
- end
69
- # }}}
70
102
  # {{{ execute
71
103
  def execute
72
- format = "%20.20s:%5.5s" # hostname:port
73
- format += " %6s" # state
74
- format += " %6s" # role
75
- format += " %9s" # partition
76
- format += " %7s" # balance
77
- format += " %8.8s" # items
78
- format += " %4s" # connection
79
- format += " %6.6s" # behind
80
- format += " %3.3s" # hit
81
- format += " %4.4s" # size
82
- format += " %6.6s" # uptime
83
- format += " %7s" # version
84
- format += "\n"
85
-
86
- label = format % [
87
- "hostname",
88
- "port",
89
- "state",
90
- "role",
91
- "partition",
92
- "balance",
93
- "items",
94
- "conn",
95
- "behind",
96
- "hit",
97
- "size",
98
- "uptime",
99
- "version",
100
- ]
101
104
  str = ""
102
- nodes = self.get_stats_nodes
105
+ nodes = self.get_stats_nodes.sort_node(nodes)
103
106
  threads = self.get_stats_threads
104
- nodes = self.sort_node(nodes)
105
107
  nodes.each do |hostname_port,data|
106
108
  ipaddr, port = hostname_port.split(":", 2)
107
109
  if @dns.search(ipaddr).answer[0].methods.include?("ptr")
@@ -115,7 +117,7 @@ class Stats < Core
115
117
  uptime = self.str_date(stats['uptime'])
116
118
  hit_rate = stats['cmd_get'] == "0" ? "-" : (stats['get_hits'].to_f / stats['cmd_get'].to_f * 100.0).round
117
119
  size = stats['bytes'] == "0" ? "-" : (stats['bytes'].to_i / 1024 / 1024 / 1024)
118
- str += format % [
120
+ str += @format % [
119
121
  hostname,
120
122
  port,
121
123
  data['state'],
@@ -128,10 +130,10 @@ class Stats < Core
128
130
  hit_rate,
129
131
  size,
130
132
  uptime,
131
- stats["version"]
133
+ stats["version"],
132
134
  ]
133
135
  end
134
- puts label + str
136
+ puts @label + str
135
137
  end
136
138
  # }}}
137
139
  end
@@ -14,19 +14,34 @@ module FlareTools
14
14
  @index_server_port = 12120
15
15
  @run_flag = true
16
16
  @timeout = 10
17
- @option = OptionParser.new
18
17
  @dns = Net::DNS::Resolver.new
18
+ @option = OptionParser.new
19
+ self.option_on
20
+ self.option_parse
21
+ self.option_param_check
19
22
  end
20
23
  # }}}
21
- # {{{ option_parse
22
- def option_parse
24
+ # {{{ option_on
25
+ def option_on
23
26
  @option.on('-h', '--help', "this message show") {puts @option.help; exit 1}
24
27
  @option.on('-d', '--debug', "debug mode on") {$DEBUG = true}
25
28
  @option.on("-w", '--warn', "turn warnings on for this script") {$-w = true}
26
- @option.on( '--index-server=[HOSTNAME]', "index server hostname(default:#{@index_server_hostname})") {|v| @index_server_hostname = v}
27
- @option.on( '--index-server-port=[PORT]', "index server port(default:#{@index_server_port})") {|v| @index_server_port = v.to_i}
28
29
  end
29
30
  # }}}
31
+ # {{{ option_parse
32
+ def option_parse
33
+ begin
34
+ @option.parse!(ARGV)
35
+ rescue OptionParser::ParseError => err
36
+ puts err.message
37
+ puts @option.to_s
38
+ exit 1
39
+ end
40
+ end
41
+ # }}}
42
+ # {{{ option_param_check
43
+ def option_param_check ; end
44
+ # }}}
30
45
  # {{{ info
31
46
  def info(msg)
32
47
  puts "[INFO] #{msg}"
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: flare-tools
3
3
  version: !ruby/object:Gem::Version
4
- hash: 27
4
+ hash: 25
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 1
9
- - 0
10
- version: 0.1.0
9
+ - 1
10
+ version: 0.1.1
11
11
  platform: ruby
12
12
  authors:
13
13
  - kgws
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-11-24 00:00:00 +09:00
18
+ date: 2010-11-25 00:00:00 +09:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency