mcrain 0.1.2 → 0.1.3

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: 111888ffdf2dde9a910f755931c9f08cd2590102
4
- data.tar.gz: 18d629850d3d0cf1bc619f27358312918c507238
3
+ metadata.gz: cc578a0721095fef45ebbdb1de7e11a3e60866ff
4
+ data.tar.gz: 490854be4bd04643793c24e8df1f5a11568bd271
5
5
  SHA512:
6
- metadata.gz: 8464b124a581aca5c4f6ff14c4d693cc7bf011bd93b88694dd7ac6029b9022cc3c92ae4ded28f2f756c8483172742068ea824d715e0b090a8abc4cdb174b162e
7
- data.tar.gz: 86093d944bef21880ff958992a62cfe0120dd851bc1ae54f48efca5a42a1601719be7d0aafb3f9ace5008c6ee0d4ab270fed697708c3b6f4ce7d615ae8c5f3da
6
+ metadata.gz: 97246dd34ac4c0169233327b4be1817c60a4ef8168534f3c016cb5945e37b660772496ce06e496cc05c60dc324a294cd0e342f4cad28d8b63ced9648179992cd
7
+ data.tar.gz: 6c77b085f865b76db6747afcee260aba25b66c4b42b3151d81034fd0496f12be52bdcccc371857ec25a60e044be651650903e5141523be06d09a18466a564fd3
data/Gemfile CHANGED
@@ -13,6 +13,9 @@ group :development do
13
13
  # for riak
14
14
  gem "docker-api", "~> 1.21.1"
15
15
  gem "riak-client"
16
+
17
+ # for mysql
18
+ gem "mysql2"
16
19
  end
17
20
 
18
21
  group :development do
data/exe/mcrain CHANGED
@@ -9,7 +9,7 @@ if action.nil? || service.nil?
9
9
  $stderr.puts(<<MESSAGE)
10
10
  #{$PROGRAM_NAME} <action> <target> [n] [-v or --verbose]
11
11
  action: start or stop
12
- service: redis, rabbitmq or riak
12
+ service: redis, rabbitmq, mysql or riak
13
13
  n: cluster size for riak
14
14
  MESSAGE
15
15
 
data/lib/mcrain.rb CHANGED
@@ -81,8 +81,10 @@ module Mcrain
81
81
  autoload :Riak, 'mcrain/riak'
82
82
  autoload :Redis, 'mcrain/redis'
83
83
  autoload :Rabbitmq, 'mcrain/rabbitmq'
84
+ autoload :Mysql, 'mcrain/mysql'
84
85
 
85
86
  register :riak, "Mcrain::Riak"
86
87
  register :redis, "Mcrain::Redis"
87
88
  register :rabbitmq, "Mcrain::Rabbitmq"
89
+ register :mysql, "Mcrain::Mysql"
88
90
  end
data/lib/mcrain/base.rb CHANGED
@@ -3,6 +3,7 @@ require 'mcrain'
3
3
 
4
4
  require 'uri'
5
5
  require 'timeout'
6
+ require 'socket'
6
7
 
7
8
  require 'logger_pipe'
8
9
 
@@ -0,0 +1,53 @@
1
+ require 'mcrain'
2
+
3
+ # don't require 'redis' here in order to use mcrain without 'redis' gem
4
+ # require 'redis'
5
+
6
+ module Mcrain
7
+ class Mysql < Base
8
+ self.server_name = :mysql
9
+
10
+ self.container_image = "mysql:5.5"
11
+ self.port = 3306
12
+
13
+ def client_require
14
+ 'mysql2'
15
+ end
16
+
17
+ def client_class
18
+ ::Mysql2::Client
19
+ end
20
+
21
+ def client_init_args
22
+ options = {
23
+ host: host,
24
+ port: port,
25
+ username: username || "root"
26
+ }
27
+ options[:password] = password if password.present?
28
+ options[:database] = database if database.present?
29
+ return [options]
30
+ end
31
+
32
+ def wait_for_ready
33
+ client.query("show databases").to_a
34
+ end
35
+
36
+ attr_accessor :db_dir
37
+ attr_accessor :database
38
+ attr_accessor :username, :password
39
+
40
+ def docker_extra_options
41
+ opts = ['']
42
+ username = self.username || "root" # overwrite locally
43
+ key_user = (username == "root") ? nil : "MYSQL_USER"
44
+ key_pw = (username == "root") ? "MYSQL_ROOT_PASSWORD" : "MYSQL_PASSWORD"
45
+
46
+ opts << (password.blank? ? "-e MYSQL_ALLOW_EMPTY_PASSWORD=yes" : "-e #{key_pw}=#{password}")
47
+ opts << (key_user ? "-e #{key_user}=#{username}" : nil)
48
+ opts << "-e MYSQL_DATABASE=#{database}" if database
49
+ opts << "-v #{File.expand_path(db_dir)}:/var/lib/mysql" if db_dir
50
+ opts.compact.join(' ')
51
+ end
52
+ end
53
+ end
@@ -1,3 +1,3 @@
1
1
  module Mcrain
2
- VERSION = "0.1.2"
2
+ VERSION = "0.1.3"
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.1.2
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - akm
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2015-05-19 00:00:00.000000000 Z
11
+ date: 2015-06-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: logger_pipe
@@ -122,6 +122,7 @@ files:
122
122
  - lib/mcrain.rb
123
123
  - lib/mcrain/base.rb
124
124
  - lib/mcrain/boot2docker.rb
125
+ - lib/mcrain/mysql.rb
125
126
  - lib/mcrain/rabbitmq.rb
126
127
  - lib/mcrain/redis.rb
127
128
  - lib/mcrain/riak.rb