redis-mmm 0.0.2 → 0.1.0
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/bin/redis_mmm +27 -4
- metadata +3 -3
data/bin/redis_mmm
CHANGED
@@ -73,11 +73,12 @@ class RedisMMM < Thor
|
|
73
73
|
end
|
74
74
|
|
75
75
|
def add_ip(ip, interface)
|
76
|
-
ssh("
|
76
|
+
$log.debug ssh("ip addr show #{interface} | grep #{ip} || sudo ip addr add #{ip} dev #{interface}")
|
77
|
+
|
77
78
|
end
|
78
79
|
|
79
80
|
def remove_ip(ip, interface)
|
80
|
-
ssh("
|
81
|
+
$log.debug ssh("ip addr show #{interface} | grep #{ip} && sudo ip addr del #{ip} dev #{interface}")
|
81
82
|
end
|
82
83
|
|
83
84
|
def slaveof(host)
|
@@ -103,9 +104,9 @@ class RedisMMM < Thor
|
|
103
104
|
end
|
104
105
|
|
105
106
|
def ssh(command)
|
106
|
-
cmd = "/usr/bin/ssh -p #{ssh_port} #{ssh_user}@#{address}
|
107
|
+
cmd = "/usr/bin/ssh -p #{ssh_port} #{ssh_user}@#{address} \"#{command}\""
|
107
108
|
$log.debug "Executing #{cmd}"
|
108
|
-
|
109
|
+
`#{cmd}`
|
109
110
|
end
|
110
111
|
|
111
112
|
end
|
@@ -114,6 +115,9 @@ class RedisMMM < Thor
|
|
114
115
|
|
115
116
|
desc "mon", "Start the monitor"
|
116
117
|
method_option :config, :default => "/etc/redis-mmm.conf", :required => true, :aliases => "-c"
|
118
|
+
method_option :log, :type => :string
|
119
|
+
method_option :verbose, :type =>:boolean, :aliases => "-v"
|
120
|
+
method_option :pid, :type => :string
|
117
121
|
def mon
|
118
122
|
init_state
|
119
123
|
|
@@ -127,6 +131,7 @@ class RedisMMM < Thor
|
|
127
131
|
|
128
132
|
desc "info [HOST]", "Get info about the host"
|
129
133
|
method_option :config, :default => "/etc/redis-mmm.conf", :required => true, :aliases => "-c"
|
134
|
+
method_option :verbose, :type =>:boolean, :aliases => "-v"
|
130
135
|
def info(name)
|
131
136
|
host = self.host(name)
|
132
137
|
info = host.state
|
@@ -145,6 +150,7 @@ class RedisMMM < Thor
|
|
145
150
|
|
146
151
|
desc "status", "Show the current cluster status"
|
147
152
|
method_option :config, :default => "/etc/redis-mmm.conf", :required => true, :aliases => "-c"
|
153
|
+
method_option :verbose, :type =>:boolean, :aliases => "-v"
|
148
154
|
def status
|
149
155
|
puts "Configured hosts"
|
150
156
|
hosts.each do |host|
|
@@ -154,6 +160,7 @@ class RedisMMM < Thor
|
|
154
160
|
|
155
161
|
desc "set_master [HOST]", "Changes the master"
|
156
162
|
method_option :config, :default => "/etc/redis-mmm.conf", :required => true, :aliases => "-c"
|
163
|
+
method_option :verbose, :type =>:boolean, :aliases => "-v"
|
157
164
|
def set_master(host)
|
158
165
|
init_state
|
159
166
|
change_master_to(host)
|
@@ -162,6 +169,22 @@ class RedisMMM < Thor
|
|
162
169
|
protected
|
163
170
|
|
164
171
|
def init_state
|
172
|
+
if log = (options.log || config.params['log'])
|
173
|
+
$log = Logger.new(log)
|
174
|
+
end
|
175
|
+
|
176
|
+
$log.level = options.verbose || config.params['verbose'] ? Logger::DEBUG : Logger::INFO
|
177
|
+
|
178
|
+
if pidfile = (options.pid || config.params['pid'])
|
179
|
+
File.open(pidfile, "w") do |f|
|
180
|
+
f.write(Process.pid.to_s)
|
181
|
+
end
|
182
|
+
|
183
|
+
at_exit do
|
184
|
+
FileUtils.rm_f(pidfile)
|
185
|
+
end
|
186
|
+
end
|
187
|
+
|
165
188
|
@current_master = find_current_master
|
166
189
|
$log.info "current master is #{@current_master}"
|
167
190
|
end
|
metadata
CHANGED
@@ -5,9 +5,9 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
|
+
- 1
|
8
9
|
- 0
|
9
|
-
|
10
|
-
version: 0.0.2
|
10
|
+
version: 0.1.0
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Michael Siebert
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2011-11-
|
18
|
+
date: 2011-11-17 00:00:00 +01:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|