mcrain 0.3.3 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b5629c435f26df6400e933c493df85b13e5a09bd
4
- data.tar.gz: 3d63157ba342d42c2021963af422061e072127b4
3
+ metadata.gz: 32c04fa1f39c69a60b478fbc2b705fff5f9be98a
4
+ data.tar.gz: 02d9789d7754370e6efefccaf76b3eb318daa733
5
5
  SHA512:
6
- metadata.gz: 39cfe426a5b1a9b22960e504d1459982c0212d5750250d97d3567ebf11d91785e4ff79b6ab4be37c277ac9150f8670a3fefd73a2d8a632a32c38e37ce483f550
7
- data.tar.gz: c6ae5b7cd0e03408ad61f8300a1aafdbd27406e18b00b0e46d5e203b7fdf06411f24d081f5ca81b3312c3f0fce0503c42b5e6835d08281f97d0c1ba092cc7bab
6
+ metadata.gz: 9ffa2ac30980d2e94509a8dbfda57c957e46ac9235e0ba12d4a20abb226e1cc8006326da3c7c9fa877d380b1af05d75f23fa3e76e6f2abe54b48155221556d44
7
+ data.tar.gz: 10c42352c1e25d7596dd2a975a189bbac5c862fb199084da4aad286d75190a20393a43620ca5574fce0693b6ca14e049169f1919b5716d50cbc6ae97ce82d15d
data/README.md CHANGED
@@ -7,13 +7,13 @@ It supports redis, rabbitmq and riak (stand alone node or clustering) currently.
7
7
 
8
8
  ## Prerequisite
9
9
 
10
- ### With boot2docker
10
+ ### With docker-machine
11
11
 
12
12
  - [install docker into Mac](https://docs.docker.com/installation/mac/)
13
13
  - [install docker into Windows](https://docs.docker.com/installation/windows/)
14
14
 
15
15
 
16
- ### Without boot2docker
16
+ ### Without docker-machine
17
17
 
18
18
  The docker daemon must be started with tcp socket option like `-H tcp://0.0.0.0:2375`.
19
19
  Because mcrain uses [Docker Remote API](https://docs.docker.com/reference/api/docker_remote_api/).
data/lib/mcrain.rb CHANGED
@@ -81,7 +81,7 @@ module Mcrain
81
81
  end
82
82
 
83
83
  autoload :Base, 'mcrain/base'
84
- autoload :Boot2docker, 'mcrain/boot2docker'
84
+ autoload :DockerMachine, 'mcrain/docker_machine'
85
85
  autoload :ContainerController, 'mcrain/container_controller'
86
86
  autoload :ClientProvider, 'mcrain/client_provider'
87
87
 
data/lib/mcrain/base.rb CHANGED
@@ -46,7 +46,7 @@ module Mcrain
46
46
 
47
47
  def setup
48
48
  Timeout.timeout(30) do
49
- Boot2docker.setup_docker_options
49
+ DockerMachine.setup_docker_options
50
50
  container.start!
51
51
  end
52
52
  return container
@@ -10,12 +10,16 @@ require 'net/ssh'
10
10
  require 'docker'
11
11
 
12
12
  module Mcrain
13
- module Boot2docker
13
+ module DockerMachine
14
14
 
15
15
  class << self
16
16
  attr_accessor :certs_dir
17
+
18
+ def docker_machine_name
19
+ ENV['DOCKER_MACHINE_NAME']
20
+ end
17
21
  end
18
- self.certs_dir = File.expand_path('.boot2docker/certs/boot2docker-vm', ENV["HOME"])
22
+ self.certs_dir = File.expand_path('.docker/machine/certs', ENV["HOME"])
19
23
 
20
24
  module_function
21
25
 
@@ -25,10 +29,12 @@ module Mcrain
25
29
 
26
30
  def preparing_command
27
31
  return "" unless used?
28
- unless `boot2docker status`.strip == "running"
29
- raise "boot2docker is not running. Please `boot2docker start`"
32
+ name = Mcrain::DockerMachine.docker_machine_name
33
+ unless `docker-machine status #{name}`.strip.downcase == "running"
34
+ raise "docker-machine #{name} is not running. Please `docker-machine start #{name}`"
30
35
  end
31
- exports = `boot2docker shellinit 2>/dev/null`.strip.split(/\n/)
36
+ exports = `docker-machine env #{name} 2>/dev/null`.strip.split(/\n/).
37
+ select{|line| line =~ /\Aexport /}
32
38
  exports.empty? ? '' : "%s && " % exports.join(" && ")
33
39
  end
34
40
 
@@ -44,7 +50,7 @@ module Mcrain
44
50
  end
45
51
 
46
52
  def build_docker_options(uri)
47
- d = Boot2docker.certs_dir
53
+ d = DockerMachine.certs_dir
48
54
  cert_path = File.join(d, "cert.pem")
49
55
  key_path = File.join(d, "key.pem")
50
56
  files = {
@@ -61,6 +67,9 @@ module Mcrain
61
67
 
62
68
  # http://docs.docker.com/reference/api/docker_remote_api/
63
69
  # https://github.com/boot2docker/boot2docker#ssh-into-vm
70
+ #
71
+ # can't find tcuser in virtualbox...
72
+ # https://github.com/docker/machine/blob/master/drivers/vmwarefusion/fusion_darwin.go#L28
64
73
  def download_files_from_vm(host, files)
65
74
  return if files.values.all?{|f| File.readable?(f)}
66
75
  files.values.each{|f| FileUtils.mkdir_p(File.dirname(f))}
@@ -75,11 +84,11 @@ module Mcrain
75
84
  Net::SCP.start(host, "docker", :password => "tcuser", &block)
76
85
  end
77
86
 
78
- BOOT2DOCKER_DOCKER_HOME = '/home/docker'.freeze
87
+ DOCKER_MACHINE_DOCKER_HOME = '/home/docker'.freeze
79
88
 
80
89
  # return temporary dire for 2nd argument of Dir.mktmpdir
81
90
  def tmpdir
82
- used? ? File.join(BOOT2DOCKER_DOCKER_HOME, 'tmp', Dir.tmpdir) : Dir.tmpdir
91
+ used? ? File.join(DOCKER_MACHINE_DOCKER_HOME, 'tmp', Dir.tmpdir) : Dir.tmpdir
83
92
  end
84
93
 
85
94
  def ssh_to_vm(&block)
@@ -102,7 +111,7 @@ module Mcrain
102
111
 
103
112
  def mktmpdir_remote(ssh, &block)
104
113
  Dir.mktmpdir do |orig_dir|
105
- dir = File.join(BOOT2DOCKER_DOCKER_HOME, 'tmp', orig_dir)
114
+ dir = File.join(DOCKER_MACHINE_DOCKER_HOME, 'tmp', orig_dir)
106
115
  cmd1 = "mkdir -p #{dir}"
107
116
  Mcrain.logger.debug(cmd1)
108
117
  ssh.exec! cmd1
data/lib/mcrain/riak.rb CHANGED
@@ -139,7 +139,7 @@ module Mcrain
139
139
  end
140
140
 
141
141
  def setup
142
- Boot2docker.setup_docker_options
142
+ DockerMachine.setup_docker_options
143
143
  # setup_nodes(nodes[0, 1]) # primary node
144
144
  # setup_nodes(nodes[1..-1])
145
145
  nodes.each do |node|
@@ -1,3 +1,3 @@
1
1
  module Mcrain
2
- VERSION = "0.3.3"
2
+ VERSION = "0.4.0"
3
3
  end
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.3
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - akm
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2015-08-14 00:00:00.000000000 Z
11
+ date: 2015-08-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: logger_pipe
@@ -122,9 +122,9 @@ files:
122
122
  - exe/mcrain
123
123
  - lib/mcrain.rb
124
124
  - lib/mcrain/base.rb
125
- - lib/mcrain/boot2docker.rb
126
125
  - lib/mcrain/client_provider.rb
127
126
  - lib/mcrain/container_controller.rb
127
+ - lib/mcrain/docker_machine.rb
128
128
  - lib/mcrain/mysql.rb
129
129
  - lib/mcrain/rabbitmq.rb
130
130
  - lib/mcrain/redis.rb