mysql-pause 0.1.4 → 0.1.5
Sign up to get free protection for your applications and to get access to all the features.
- data/README +4 -0
- data/bin/mpctl +30 -9
- data/bin/mysql-pause +4 -2
- data/lib/mysql-pause/backend.rb +12 -0
- data/lib/mysql-pause/constants.rb +1 -1
- data/lib/mysql-pause/proxy.rb +14 -0
- data/lib/mysql-pause/server.rb +1 -0
- metadata +2 -2
data/README
CHANGED
data/bin/mpctl
CHANGED
@@ -4,10 +4,28 @@ $: << File.expand_path(File.dirname(__FILE__) + '/../lib')
|
|
4
4
|
require 'drb/drb'
|
5
5
|
require 'optparse'
|
6
6
|
require 'mysql-pause/constants'
|
7
|
+
require 'yaml'
|
8
|
+
|
9
|
+
COMMAND_NAME = File.basename(__FILE__)
|
7
10
|
|
8
11
|
COMMANDS = {
|
9
|
-
'pause'
|
10
|
-
|
12
|
+
'pause' => lambda {|server_options|
|
13
|
+
server_options[:pause] = true
|
14
|
+
},
|
15
|
+
'resume' => lambda {|server_options|
|
16
|
+
server_options[:pause] = false
|
17
|
+
},
|
18
|
+
'status' => lambda {|server_options|
|
19
|
+
h = {}
|
20
|
+
server_options.to_hash.each {|k, v| h[k.to_s] = v }
|
21
|
+
puts YAML.dump(h)
|
22
|
+
},
|
23
|
+
'set-interval' => lambda {|server_options, v|
|
24
|
+
server_options[:interval] = v.to_i
|
25
|
+
},
|
26
|
+
'set-debug' => lambda {|server_options, v|
|
27
|
+
server_options[:debug] = !!(/#{Regexp.escape(v)}/i =~ 'true')
|
28
|
+
},
|
11
29
|
}
|
12
30
|
|
13
31
|
options = nil
|
@@ -19,11 +37,10 @@ ARGV.options do |parser|
|
|
19
37
|
:socket => "/var/tmp/#{APP_NAME}.sock",
|
20
38
|
}
|
21
39
|
|
22
|
-
parser.on('-
|
23
|
-
parser.on('' , '--socket=SOCK_FILE') {|v| options[:socket] = v }
|
40
|
+
parser.on('-S', '--socket=SOCK_FILE') {|v| options[:socket] = v }
|
24
41
|
|
25
42
|
help_and_exit = lambda do |v|
|
26
|
-
$stderr.puts parser.help.sub(
|
43
|
+
$stderr.puts parser.help.sub(COMMAND_NAME, "#{COMMAND_NAME} {#{cmds.join('|')}}")
|
27
44
|
exit 1
|
28
45
|
end
|
29
46
|
|
@@ -31,13 +48,17 @@ ARGV.options do |parser|
|
|
31
48
|
|
32
49
|
parser.parse!
|
33
50
|
|
34
|
-
unless
|
51
|
+
unless ARGV.length >= 1 and cmds.include?(ARGV[0])
|
35
52
|
help_and_exit.call(true)
|
36
53
|
end
|
37
54
|
end # parse options
|
38
55
|
|
39
|
-
cmd = ARGV[0]
|
40
56
|
server_options = DRbObject.new_with_uri("drbunix:#{options[:socket]}")
|
41
57
|
|
42
|
-
|
43
|
-
|
58
|
+
cmd = COMMANDS.fetch(ARGV[0])
|
59
|
+
|
60
|
+
if cmd.arity > 1
|
61
|
+
cmd.call(server_options, ARGV[1])
|
62
|
+
else
|
63
|
+
cmd.call(server_options)
|
64
|
+
end
|
data/bin/mysql-pause
CHANGED
@@ -18,6 +18,7 @@ ARGV.options do |parser|
|
|
18
18
|
:interval => 3,
|
19
19
|
:working_dir => '/var',
|
20
20
|
:socket => "/var/tmp/#{APP_NAME}.sock",
|
21
|
+
:debug => false,
|
21
22
|
}
|
22
23
|
|
23
24
|
parser.on('-a', '--addr=ADDR' ) {|v| options[:addr] = v }
|
@@ -26,8 +27,9 @@ ARGV.options do |parser|
|
|
26
27
|
parser.on('-P', '--backend-port=PORT') {|v| options[:backend_port] = v.to_i }
|
27
28
|
parser.on('-i', '--inerval=N' ) {|v| options[:interval] = v.to_i }
|
28
29
|
parser.on('-n', '--threads=SIZE' ) {|v| options[:threads] = v.to_i }
|
29
|
-
parser.on(''
|
30
|
-
parser.on(''
|
30
|
+
parser.on('-W', '--working-dir=DIR' ) {|v| options[:working_dir] = v }
|
31
|
+
parser.on('-S', '--socket=SOCK_FILE' ) {|v| options[:socket] = v }
|
32
|
+
parser.on('', '--debug' ) { options[:debug] = true }
|
31
33
|
|
32
34
|
help_and_exit = lambda do |v|
|
33
35
|
$stderr.puts parser.help.sub(APP_NAME, "#{APP_NAME} {#{daemon_commands.join('|')}}")
|
data/lib/mysql-pause/backend.rb
CHANGED
@@ -6,6 +6,18 @@ module MysqlPause
|
|
6
6
|
@proxy = proxy
|
7
7
|
end
|
8
8
|
|
9
|
+
def post_init
|
10
|
+
if @proxy.options[:debug]
|
11
|
+
@proxy.logger.debug("backend: connect")
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
def unbind
|
16
|
+
if @proxy.options[:debug]
|
17
|
+
@proxy.logger.debug("backend: unbind")
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
9
21
|
def receive_data(data)
|
10
22
|
@proxy.send_data(data)
|
11
23
|
end
|
@@ -1,2 +1,2 @@
|
|
1
1
|
APP_NAME = 'mysql-pause'
|
2
|
-
Version = '0.1.
|
2
|
+
Version = '0.1.5'
|
data/lib/mysql-pause/proxy.rb
CHANGED
@@ -6,6 +6,8 @@ require 'socket'
|
|
6
6
|
|
7
7
|
module MysqlPause
|
8
8
|
class Proxy < EM::Connection
|
9
|
+
attr_reader :options
|
10
|
+
attr_reader :logger
|
9
11
|
|
10
12
|
def initialize(be_host, be_port, options)
|
11
13
|
@options = options
|
@@ -23,6 +25,18 @@ module MysqlPause
|
|
23
25
|
end
|
24
26
|
end
|
25
27
|
|
28
|
+
def post_init
|
29
|
+
if @options[:debug]
|
30
|
+
@logger.debug("proxy: connect")
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
def unbind
|
35
|
+
if @options[:debug]
|
36
|
+
@logger.debug("proxy: unbind")
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
26
40
|
def receive_data(data)
|
27
41
|
EM.defer {
|
28
42
|
if @options[:pause]
|
data/lib/mysql-pause/server.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mysql-pause
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.5
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-05-
|
12
|
+
date: 2013-05-27 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: eventmachine
|