mcrain 0.3.1 → 0.3.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.
- checksums.yaml +4 -4
- data/exe/mcrain +23 -9
- data/lib/mcrain/container_controller.rb +11 -1
- data/lib/mcrain/mysql.rb +0 -1
- data/lib/mcrain/rabbitmq.rb +0 -1
- data/lib/mcrain/redis.rb +0 -1
- data/lib/mcrain/riak.rb +0 -2
- data/lib/mcrain/version.rb +1 -1
- data/lib/mcrain.rb +11 -6
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 25014588e4b0a4b53163edc9897c7d28c728bba7
|
4
|
+
data.tar.gz: e2c8625531480453ffd5a2c06472657523bf1fe1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ff1342b68ede623290b779dd96c37682b2d53ac6630122a99c379304105a5fbdbad3f49bde301ee7ca5d3bd55bf1f30c218fb32d3ecace0cb074296d2705b72f
|
7
|
+
data.tar.gz: 77c4fa278139c172f6fbe30f89a37af6d2feb32b6cedd40368cf270ba0c021f3969b45ee8c38b0b9e7841733e60685204038285c2150b310e2cd3389e01c3f1b
|
data/exe/mcrain
CHANGED
@@ -4,13 +4,21 @@
|
|
4
4
|
require "mcrain"
|
5
5
|
|
6
6
|
action, service, *args = *ARGV
|
7
|
-
verbose = ARGV.include?('-V') || ARGV.include?('--verbose')
|
7
|
+
verbose = ARGV.include?('-V') || ARGV.include?('--verbose')
|
8
8
|
if action.nil? || service.nil?
|
9
9
|
$stderr.puts(<<MESSAGE)
|
10
|
-
#{$PROGRAM_NAME} <action> <
|
11
|
-
|
12
|
-
|
13
|
-
|
10
|
+
#{$PROGRAM_NAME} <action> <service> [n] [-v or --verbose]
|
11
|
+
actions: start, stop or pull
|
12
|
+
|
13
|
+
start:
|
14
|
+
service: redis, rabbitmq, mysql or riak
|
15
|
+
n: cluster size for riak
|
16
|
+
|
17
|
+
stop:
|
18
|
+
service: redis, rabbitmq, mysql or riak
|
19
|
+
|
20
|
+
pull:
|
21
|
+
service: redis, rabbitmq, mysql, riak or all
|
14
22
|
MESSAGE
|
15
23
|
|
16
24
|
exit(1)
|
@@ -25,15 +33,21 @@ begin
|
|
25
33
|
options = {}
|
26
34
|
case service
|
27
35
|
when "riak" then
|
28
|
-
raise "DOCKER_RIAK_PATH is blank. Set it the path to docker-riak repository." unless ENV['DOCKER_RIAK_PATH']
|
29
|
-
Mcrain::Riak.docker_riak_path = ENV['DOCKER_RIAK_PATH']
|
30
36
|
cluster_size = args.shift.to_i
|
31
37
|
cluster_size = 1 if cluster_size == 0
|
32
38
|
options = {cluster_size: cluster_size, automatic_clustering: cluster_size > 1}
|
33
39
|
end
|
34
40
|
|
35
|
-
|
36
|
-
|
41
|
+
case action
|
42
|
+
when "start", "stop" then
|
43
|
+
server = Mcrain.lookup(service.to_sym, options)
|
44
|
+
server.send(action)
|
45
|
+
when "pull" then
|
46
|
+
services = (service == "all") ? Mcrain.images.keys : [service]
|
47
|
+
services.map(&:to_sym).map{|s| Mcrain.class_for(s)}.each(&:pull_image)
|
48
|
+
else
|
49
|
+
raise "Unknown action: #{action.inspect}"
|
50
|
+
end
|
37
51
|
|
38
52
|
case action
|
39
53
|
when "start" then
|
@@ -12,7 +12,17 @@ module Mcrain
|
|
12
12
|
@server_name ||= self.name.split(/::/).last.underscore.to_sym
|
13
13
|
end
|
14
14
|
|
15
|
-
|
15
|
+
def container_image
|
16
|
+
@container_image ||= Mcrain.images[server_name]
|
17
|
+
end
|
18
|
+
attr_writer :container_image
|
19
|
+
attr_accessor :port
|
20
|
+
|
21
|
+
def pull_image
|
22
|
+
Timeout.timeout(10.minutes) do
|
23
|
+
LoggerPipe.run(Mcrain.logger, "docker pull #{container_image}")
|
24
|
+
end
|
25
|
+
end
|
16
26
|
end
|
17
27
|
|
18
28
|
# @return [Docker::Container]
|
data/lib/mcrain/mysql.rb
CHANGED
data/lib/mcrain/rabbitmq.rb
CHANGED
data/lib/mcrain/redis.rb
CHANGED
data/lib/mcrain/riak.rb
CHANGED
data/lib/mcrain/version.rb
CHANGED
data/lib/mcrain.rb
CHANGED
@@ -8,6 +8,7 @@ require 'logger_pipe'
|
|
8
8
|
require 'active_support/inflector/inflections'
|
9
9
|
require 'active_support/core_ext/class/subclasses'
|
10
10
|
require 'active_support/core_ext/object/blank'
|
11
|
+
require 'active_support/core_ext/numeric/time'
|
11
12
|
|
12
13
|
module Mcrain
|
13
14
|
class << self
|
@@ -45,13 +46,17 @@ module Mcrain
|
|
45
46
|
@instances ||= {}
|
46
47
|
end
|
47
48
|
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
49
|
+
DEFAULT_IMAGES = {
|
50
|
+
mysql: "mysql:5.5",
|
51
|
+
redis: "redis:2.8.19",
|
52
|
+
rabbitmq: "rabbitmq:3.4.4-management",
|
53
|
+
riak: "hectcastro/riak",
|
54
|
+
}.freeze
|
55
|
+
|
56
|
+
def images
|
57
|
+
@images ||= DEFAULT_IMAGES.dup
|
54
58
|
end
|
59
|
+
attr_writer :images
|
55
60
|
|
56
61
|
attr_writer :logger
|
57
62
|
def logger
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mcrain
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- akm
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-08-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: logger_pipe
|