mcrain 0.1.2 → 0.1.3

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: 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