mcrain 0.3.3 → 0.4.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.
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