Skip to content

Fixes suggested by RubyMine (just playing around with it) #219

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 4 commits into from
Jul 11, 2013
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion lib/puppet/parser/functions/mysql_password.rb
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ module Puppet::Parser::Functions
EOS
) do |args|

raise(Puppet::ParseError, "mysql_password(): Wrong number of arguments " +
raise(Puppet::ParseError, 'mysql_password(): Wrong number of arguments ' +
"given (#{args.size} for 1)") if args.size != 1

'*' + Digest::SHA1.hexdigest(Digest::SHA1.digest(args[0])).upcase
Expand Down
6 changes: 3 additions & 3 deletions lib/puppet/provider/database/mysql.rb
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
Puppet::Type.type(:database).provide(:mysql) do
desc "Manages MySQL database."
desc 'Manages MySQL database.'

defaultfor :kernel => 'Linux'

Expand All @@ -19,7 +19,7 @@ def defaults_file
end

def self.instances
mysql([defaults_file, '-NBe', "show databases"].compact).split("\n").collect do |name|
mysql([defaults_file, '-NBe', 'show databases'].compact).split("\n").collect do |name|
new(:name => name)
end
end
Expand All @@ -42,7 +42,7 @@ def charset=(value)

def exists?
begin
mysql([defaults_file, '-NBe', "show databases"].compact).match(/^#{@resource[:name]}$/)
mysql([defaults_file, '-NBe', 'show databases'].compact).match(/^#{@resource[:name]}$/)
rescue => e
debug(e.message)
return nil
Expand Down
28 changes: 14 additions & 14 deletions lib/puppet/provider/database_grant/mysql.rb
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@

Puppet::Type.type(:database_grant).provide(:mysql) do

desc "Uses mysql as database."
desc 'Uses mysql as database.'

defaultfor :kernel => 'Linux'

Expand Down Expand Up @@ -34,19 +34,19 @@ def db_privs
end

def self.query_user_privs
results = mysql([defaults_file, "mysql", "-Be", "describe user"].compact)
results = mysql([defaults_file, 'mysql', '-Be', 'describe user'].compact)
column_names = results.split(/\n/).map { |l| l.chomp.split(/\t/)[0] }
@user_privs = column_names.delete_if { |e| !( e =~/_priv$/) }
end

def self.query_db_privs
results = mysql([defaults_file, "mysql", "-Be", "describe db"].compact)
results = mysql([defaults_file, 'mysql', '-Be', 'describe db'].compact)
column_names = results.split(/\n/).map { |l| l.chomp.split(/\t/)[0] }
@db_privs = column_names.delete_if { |e| !(e =~/_priv$/) }
end

def mysql_flush
mysqladmin([defaults_file, "flush-privileges"].compact)
mysqladmin([defaults_file, 'flush-privileges'].compact)
end

# this parses the
Expand Down Expand Up @@ -74,11 +74,11 @@ def create_row
name = split_name(@resource[:name])
case name[:type]
when :user
mysql([defaults_file, "mysql", "-e", "INSERT INTO user (host, user) VALUES ('%s', '%s')" % [
mysql([defaults_file, 'mysql', '-e', "INSERT INTO user (host, user) VALUES ('%s', '%s')" % [
name[:host], name[:user],
]].compact)
when :db
mysql([defaults_file, "mysql", "-e", "INSERT INTO db (host, user, db) VALUES ('%s', '%s', '%s')" % [
mysql([defaults_file, 'mysql', '-e', "INSERT INTO db (host, user, db) VALUES ('%s', '%s', '%s')" % [
name[:host], name[:user], name[:db],
]].compact)
end
Expand All @@ -87,7 +87,7 @@ def create_row
end

def destroy
mysql([defaults_file, "mysql", "-e", "REVOKE ALL ON '%s'.* FROM '%s@%s'" % [ @resource[:privileges], @resource[:database], @resource[:name], @resource[:host] ]].compact)
mysql([defaults_file, 'mysql', '-e', "REVOKE ALL ON '%s'.* FROM '%s@%s'" % [ @resource[:privileges], @resource[:database], @resource[:name], @resource[:host] ]].compact)
end

def row_exists?
Expand All @@ -96,7 +96,7 @@ def row_exists?
if name[:type] == :db
fields << :db
end
not mysql([defaults_file, "mysql", '-NBe', "SELECT '1' FROM %s WHERE %s" % [ name[:type], fields.map do |f| "%s='%s'" % [f, name[f]] end.join(' AND ')]].compact).empty?
not mysql([defaults_file, 'mysql', '-NBe', "SELECT '1' FROM %s WHERE %s" % [ name[:type], fields.map do |f| "%s='%s'" % [f, name[f]] end.join(' AND ')]].compact).empty?
end

def all_privs_set?
Expand All @@ -106,21 +106,21 @@ def all_privs_set?
when :db
db_privs
end
all_privs = all_privs.collect do |p| p.downcase end.sort.join("|")
privs = privileges.collect do |p| p.downcase end.sort.join("|")
all_privs = all_privs.collect do |p| p.downcase end.sort.join('|')
privs = privileges.collect do |p| p.downcase end.sort.join('|')

all_privs == privs
end

def privileges
name = split_name(@resource[:name])
privs = ""
privs = ''

case name[:type]
when :user
privs = mysql([defaults_file, "mysql", "-Be", "select * from mysql.user where user='%s' and host='%s'" % [ name[:user], name[:host] ]].compact)
privs = mysql([defaults_file, 'mysql', '-Be', "select * from mysql.user where user='%s' and host='%s'" % [ name[:user], name[:host] ]].compact)
when :db
privs = mysql([defaults_file, "mysql", "-Be", "select * from mysql.db where user='%s' and host='%s' and db='%s'" % [ name[:user], name[:host], name[:db] ]].compact)
privs = mysql([defaults_file, 'mysql', '-Be', "select * from mysql.db where user='%s' and host='%s' and db='%s'" % [ name[:user], name[:host], name[:db] ]].compact)
end

if privs.match(/^$/)
Expand Down Expand Up @@ -172,7 +172,7 @@ def privileges=(privs)
stmt = stmt << set << where

validate_privs privs, all_privs
mysql([defaults_file, "mysql", "-Be", stmt].compact)
mysql([defaults_file, 'mysql', '-Be', stmt].compact)
mysql_flush
end

Expand Down
20 changes: 10 additions & 10 deletions lib/puppet/provider/database_user/mysql.rb
Original file line number Diff line number Diff line change
@@ -1,43 +1,43 @@
Puppet::Type.type(:database_user).provide(:mysql) do

desc "manage users for a mysql database."
desc 'manage users for a mysql database.'

defaultfor :kernel => 'Linux'

commands :mysql => 'mysql'
commands :mysqladmin => 'mysqladmin'

def self.instances
users = mysql([defaults_file, "mysql", '-BNe' "select concat(User, '@',Host) as User from mysql.user"].compact).split("\n")
users = mysql([defaults_file, 'mysql', '-BNe' "select concat(User, '@',Host) as User from mysql.user"].compact).split("\n")
users.select{ |user| user =~ /.+@/ }.collect do |name|
new(:name => name)
end
end

def create
merged_name = @resource[:name].sub("@", "'@'")
merged_name = @resource[:name].sub('@', "'@'")
password_hash = @resource.value(:password_hash)
max_user_connections = @resource.value(:max_user_connections) || 0

mysql([defaults_file, "mysql", "-e", "grant usage on *.* to '#{merged_name}' identified by PASSWORD
mysql([defaults_file, 'mysql', '-e', "grant usage on *.* to '#{merged_name}' identified by PASSWORD
'#{password_hash}' with max_user_connections #{max_user_connections}"].compact)

exists? ? (return true) : (return false)
end

def destroy
merged_name = @resource[:name].sub("@", "'@'")
mysql([defaults_file, "mysql", "-e", "drop user '#{merged_name}'"].compact)
merged_name = @resource[:name].sub('@', "'@'")
mysql([defaults_file, 'mysql', '-e', "drop user '#{merged_name}'"].compact)

exists? ? (return false) : (return true)
end

def password_hash
mysql([defaults_file, "mysql", "-NBe", "select password from mysql.user where CONCAT(user, '@', host) = '#{@resource[:name]}'"].compact).chomp
mysql([defaults_file, 'mysql', '-NBe', "select password from mysql.user where CONCAT(user, '@', host) = '#{@resource[:name]}'"].compact).chomp
end

def password_hash=(string)
mysql([defaults_file, "mysql", "-e", "SET PASSWORD FOR '%s' = '%s'" % [ @resource[:name].sub("@", "'@'"), string ] ].compact)
mysql([defaults_file, 'mysql', '-e', "SET PASSWORD FOR '%s' = '%s'" % [ @resource[:name].sub('@', "'@'"), string ] ].compact)

password_hash == string ? (return true) : (return false)
end
Expand All @@ -53,12 +53,12 @@ def max_user_connections=(int)
end

def exists?
not mysql([defaults_file, "mysql", "-NBe", "select '1' from mysql.user where CONCAT(user, '@', host) = '%s'" % @resource.value(:name)].compact).empty?
not mysql([defaults_file, 'mysql', '-NBe', "select '1' from mysql.user where CONCAT(user, '@', host) = '%s'" % @resource.value(:name)].compact).empty?
end

def flush
@property_hash.clear
mysqladmin([defaults_file, "flush-privileges"].compact)
mysqladmin([defaults_file, 'flush-privileges'].compact)
end

# Optional defaults file
Expand Down
6 changes: 3 additions & 3 deletions lib/puppet/type/database.rb
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
# This has to be a separate type to enable collecting
Puppet::Type.newtype(:database) do
@doc = "Manage databases."
@doc = 'Manage databases.'

ensurable

newparam(:name, :namevar=>true) do
desc "The name of the database."
desc 'The name of the database.'
end

newproperty(:charset) do
desc "The characterset to use for a database"
desc 'The characterset to use for a database'
defaultto :utf8
newvalue(/^\S+$/)
end
Expand Down
12 changes: 6 additions & 6 deletions lib/puppet/type/database_grant.rb
Original file line number Diff line number Diff line change
Expand Up @@ -19,25 +19,25 @@
reqs = []
matches = self[:name].match(/^([^@]+)@([^\/]+).*$/)
unless matches.nil?
reqs << "%s@%s" % [ matches[1], matches[2] ]
reqs << '%s@%s' % [ matches[1], matches[2] ]
end
# puts "Autoreq: '%s'" % reqs.join(" ")
reqs
end

newparam(:name, :namevar=>true) do
desc "The primary key: either user@host for global privilges or user@host/database for database specific privileges"
desc 'The primary key: either user@host for global privilges or user@host/database for database specific privileges'
end

newproperty(:privileges, :array_matching => :all) do
desc "The privileges the user should have. The possible values are implementation dependent."
desc 'The privileges the user should have. The possible values are implementation dependent.'

def should_to_s(newvalue = @should)
if newvalue
unless newvalue.is_a?(Array)
newvalue = [ newvalue ]
end
newvalue.collect do |v| v.downcase end.sort.join ", "
newvalue.collect do |v| v.downcase end.sort.join ', '
else
nil
end
Expand All @@ -48,7 +48,7 @@ def is_to_s(currentvalue = @is)
unless currentvalue.is_a?(Array)
currentvalue = [ currentvalue ]
end
currentvalue.collect do |v| v.downcase end.sort.join ", "
currentvalue.collect do |v| v.downcase end.sort.join ', '
else
nil
end
Expand All @@ -58,7 +58,7 @@ def is_to_s(currentvalue = @is)
def insync?(is)
if defined? @should and @should
case self.should_to_s
when "all"
when 'all'
self.provider.all_privs_set?
when self.is_to_s(is)
true
Expand Down
6 changes: 3 additions & 3 deletions lib/puppet/type/database_user.rb
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# This has to be a separate type to enable collecting
Puppet::Type.newtype(:database_user) do
@doc = "Manage a database user. This includes management of users password as well as privileges"
@doc = 'Manage a database user. This includes management of users password as well as privileges'

ensurable

Expand All @@ -12,13 +12,13 @@
raise(ArgumentError, "Invalid database user #{value}") unless value =~ /[\w-]*@[\w%\.:]+/
username = value.split('@')[0]
if username.size > 16
raise ArgumentError, "MySQL usernames are limited to a maximum of 16 characters"
raise ArgumentError, 'MySQL usernames are limited to a maximum of 16 characters'
end
end
end

newproperty(:password_hash) do
desc "The password hash of the user. Use mysql_password() for creating such a hash."
desc 'The password hash of the user. Use mysql_password() for creating such a hash.'
newvalue(/\w+/)
end

Expand Down
2 changes: 1 addition & 1 deletion manifests/params.pp
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@
$query_cache_limit = '1M'
$query_cache_size = '16M'
$expire_logs_days = 10
$max_binlog_size = 100M
$max_binlog_size = '100M'

case $::operatingsystem {
'Ubuntu': {
Expand Down
6 changes: 3 additions & 3 deletions spec/classes/mysql_backup_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -10,13 +10,13 @@
'delete_before_dump' => true,
}
}
context "standard conditions" do
context 'standard conditions' do
let(:params) { default_params }

it { should contain_database_user('testuser@localhost')}

it { should contain_database_grant('testuser@localhost').with(
:privileges => [ 'Select_priv', 'Reload_priv', 'Lock_tables_priv', 'Show_view_priv' ]
:privileges => %w(Select_priv Reload_priv Lock_tables_priv Show_view_priv)
)}

it { should contain_cron('mysql-backup').with(
Expand Down Expand Up @@ -46,7 +46,7 @@
end
end

context "with compression disabled" do
context 'with compression disabled' do
let(:params) do
{ :backupcompress => false }.merge(default_params)
end
Expand Down
1 change: 0 additions & 1 deletion spec/classes/mysql_config_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -135,7 +135,6 @@
{
:service_name => 'dans_service',
:config_file => '/home/dan/mysql.conf',
:service_name => 'dans_mysql',
:pidfile => '/home/dan/mysql.pid',
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Another real issue, duplicated service_name.

:socket => '/home/dan/mysql.sock',
:bind_address => '0.0.0.0',
Expand Down
2 changes: 1 addition & 1 deletion spec/classes/mysql_server_monitor_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -14,5 +14,5 @@
}
end

it { should contain_database_user("monitoruser@monitorhost")}
it { should contain_database_user('monitoruser@monitorhost')}
end
2 changes: 1 addition & 1 deletion spec/system/mysql_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ class { 'mysql': }
it { should be_installed }
end

describe service('mysqld') do
describe service('mysql') do
it { should_not be_running }
it { should_not be_enabled }
end
Expand Down
16 changes: 8 additions & 8 deletions spec/unit/mysql_password_spec.rb
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
#!/usr/bin/env rspec
require 'spec_helper'

describe "the mysql_password function" do
describe 'the mysql_password function' do
before :all do
Puppet::Parser::Functions.autoloader.loadall
end
Expand All @@ -14,20 +14,20 @@
end
end

it "should exist" do
Puppet::Parser::Functions.function("mysql_password").should == "function_mysql_password"
it 'should exist' do
Puppet::Parser::Functions.function('mysql_password').should == 'function_mysql_password'
end

it "should raise a ParseError if there is less than 1 arguments" do
it 'should raise a ParseError if there is less than 1 arguments' do
lambda { @scope.function_mysql_password([]) }.should( raise_error(Puppet::ParseError))
end

it "should raise a ParseError if there is more than 1 arguments" do
lambda { @scope.function_mysql_password(['foo', 'bar']) }.should( raise_error(Puppet::ParseError))
it 'should raise a ParseError if there is more than 1 arguments' do
lambda { @scope.function_mysql_password(%w(foo bar)) }.should( raise_error(Puppet::ParseError))
end

it "should convert password into a hash" do
result = @scope.function_mysql_password(["password"])
it 'should convert password into a hash' do
result = @scope.function_mysql_password(%w(password))
result.should(eq('*2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19'))
end

Expand Down
Loading