Page Menu
Home
Software Heritage
Search
Configure Global Search
Log In
Files
F8393259
mysql_grant_spec.rb
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
4 KB
Subscribers
None
mysql_grant_spec.rb
View Options
require
'spec_helper_system'
describe
'mysql_grant'
do
describe
'setup'
do
it
'setup mysql::server'
do
pp
=
<<-
EOS
class { 'mysql::server': }
EOS
puppet_apply
(
pp
)
end
end
describe
'missing privileges for user'
do
it
'should fail'
do
pp
=
<<-
EOS
mysql_grant { 'test@tester/test.*':
ensure => 'present',
table => 'test.*',
user => 'test@tester',
}
EOS
puppet_apply
(
pp
)
do
|
r
|
r
.
stderr
.
should
=~
/privileges parameter is required/
end
end
it
'should not find the user'
do
shell
(
"mysql -NBe
\"
SHOW GRANTS FOR test@tester
\"
"
)
do
|
r
|
r
.
stderr
.
should
=~
/There is no such grant defined for user 'test' on host 'tester'/
r
.
exit_code
.
should
eq
1
end
end
end
describe
'missing table for user'
do
it
'should fail'
do
pp
=
<<-
EOS
mysql_grant { 'atest@tester/test.*':
ensure => 'present',
user => 'atest@tester',
privileges => ['ALL'],
}
EOS
puppet_apply
(
pp
)
do
|
r
|
r
.
exit_code
.
should
eq
4
end
end
it
'should not find the user'
do
shell
(
"mysql -NBe
\"
SHOW GRANTS FOR atest@tester
\"
"
)
do
|
r
|
r
.
stderr
.
should
=~
/There is no such grant defined for user 'atest' on host 'tester'/
r
.
exit_code
.
should
eq
1
end
end
end
describe
'adding privileges'
do
it
'should work without errors'
do
pp
=
<<-
EOS
mysql_grant { 'test@tester/test.*':
ensure => 'present',
table => 'test.*',
user => 'test@tester',
privileges => ['SELECT', 'UPDATE'],
}
EOS
puppet_apply
(
pp
)
end
it
'should find the user'
do
shell
(
"mysql -NBe
\"
SHOW GRANTS FOR test@tester
\"
"
)
do
|
r
|
r
.
stdout
.
should
=~
/GRANT SELECT, UPDATE.*TO 'test'@'tester'/
r
.
stderr
.
should
be_empty
r
.
exit_code
.
should
be_zero
end
end
end
describe
'adding option'
do
it
'should work without errors'
do
pp
=
<<-
EOS
mysql_grant { 'test@tester/test.*':
ensure => 'present',
table => 'test.*',
user => 'test@tester',
options => ['GRANT'],
privileges => ['SELECT', 'UPDATE'],
}
EOS
puppet_apply
(
pp
)
end
it
'should find the user'
do
shell
(
"mysql -NBe
\"
SHOW GRANTS FOR test@tester
\"
"
)
do
|
r
|
r
.
stdout
.
should
=~
/GRANT SELECT, UPDATE ON `test`.* TO 'test'@'tester' WITH GRANT OPTION$/
r
.
stderr
.
should
be_empty
r
.
exit_code
.
should
be_zero
end
end
end
describe
'adding all privileges'
do
it
'should only try to apply ALL'
do
pp
=
<<-
EOS
mysql_grant { 'test@tester/test.*':
ensure => 'present',
table => 'test.*',
user => 'test@tester',
options => ['GRANT'],
privileges => ['SELECT', 'UPDATE', 'ALL'],
}
EOS
puppet_apply
(
pp
)
end
it
'should find the user'
do
shell
(
"mysql -NBe
\"
SHOW GRANTS FOR test@tester
\"
"
)
do
|
r
|
r
.
stdout
.
should
=~
/GRANT ALL PRIVILEGES ON `test`.* TO 'test'@'tester' WITH GRANT OPTION/
r
.
stderr
.
should
be_empty
r
.
exit_code
.
should
be_zero
end
end
end
# Test combinations of user@host to ensure all cases work.
describe
'hostname with wildcards'
do
it
'should apply'
do
pp
=
<<-
EOS
mysql_grant { 'test@192.168.%/test.*':
ensure => 'present',
table => 'test.*',
user => 'test@192.168.%',
privileges => 'ALL',
}
EOS
puppet_apply
(
pp
)
end
it
'finds hostname with wildcards'
do
shell
(
"mysql -NBe
\"
SHOW GRANTS FOR test@'192.168.%'
\"
"
)
do
|
r
|
r
.
stdout
.
should
=~
/GRANT ALL PRIVILEGES ON `test`.* TO 'test'@'192.168.%'/
r
.
stderr
.
should
be_empty
r
.
exit_code
.
should
be_zero
end
end
it
'should not do any changes on second run'
do
pp
=
<<-
EOS
mysql_grant { 'test@192.168.%/test.*':
ensure => 'present',
table => 'test.*',
user => 'test@192.168.%',
privileges => 'ALL',
}
EOS
puppet_apply
(
pp
)
do
|
r
|
r
.
exit_code
.
should
be_zero
end
end
end
end
File Metadata
Details
Attached
Mime Type
text/x-ruby
Expires
Jun 4 2025, 7:10 PM (9 w, 4 d ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
3398966
Attached To
rSPMY puppet-puppetlabs-mysql
Event Timeline
Log In to Comment