Skip to content

Commit ddc0a69

Browse files
authored
Merge pull request #67 from treasure-data/rdb-sslmode-support
Support ssl_mode option for RDBBackend
2 parents 1a04b37 + 027d4f4 commit ddc0a69

File tree

3 files changed

+17
-1
lines changed

3 files changed

+17
-1
lines changed

lib/perfectqueue/backend/rdb.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ def initialize(uri, table, config={})
2424
@pq_connect_timeout = config.fetch(:pq_connect_timeout, 20)
2525
options[:connect_timeout] = config.fetch(:connect_timeout, 3)
2626
options[:sslca] = config[:sslca] if config[:sslca]
27+
options[:ssl_mode] = config[:ssl_mode] if config[:ssl_mode]
2728
db_name = u.path.split('/')[1]
2829
@db = Sequel.mysql2(db_name, options)
2930

perfectqueue.gemspec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,5 +22,5 @@ Gem::Specification.new do |gem|
2222
gem.add_development_dependency "rake", "~> 0.9.2"
2323
gem.add_development_dependency "rspec", "~> 3.3.0"
2424
gem.add_development_dependency "simplecov", "~> 0.10.0"
25-
gem.add_development_dependency "mysql2", ">= 0.3.20"
25+
gem.add_development_dependency "mysql2", ">= 0.4.5"
2626
end

spec/rdb_backend_spec.rb

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
require 'spec_helper'
22
require 'perfectqueue/backend/rdb'
3+
require 'mysql2'
34

45
describe Backend::RDBBackend do
56
let (:now){ Time.now.to_i }
@@ -17,6 +18,20 @@
1718
it 'supports mysql' do
1819
expect(Backend::RDBBackend.new(uri, table)).to be_an_instance_of(Backend::RDBBackend)
1920
end
21+
22+
describe 'supports ssl_mode as an option' do
23+
let (:uri){ 'mysql2://root:@127.0.0.1/perfectqueue_test' }
24+
25+
it 'passes ssl_mode to Mysql2::Client initializer' do
26+
expect(Mysql2::Client).to receive(:new) do |params|
27+
expect(params[:ssl_mode]).to be(:disabled)
28+
end.and_call_original
29+
Backend::RDBBackend.new(uri, table, ssl_mode: :disabled)
30+
end
31+
it 'invalid value causes error' do
32+
expect { Backend::RDBBackend.new(uri, table, ssl_mode: :invalid) }.to raise_error(Sequel::DatabaseConnectionError)
33+
end
34+
end
2035
end
2136

2237
context '#submit' do

0 commit comments

Comments
 (0)