Page Menu
Home
Software Heritage
Search
Configure Global Search
Log In
Files
F9341028
spec_helper_acceptance.rb
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
3 KB
Subscribers
None
spec_helper_acceptance.rb
View Options
require
'beaker-rspec/spec_helper'
require
'beaker-rspec/helpers/serverspec'
class
String
# Provide ability to remove indentation from strings, for the purpose of
# left justifying heredoc blocks.
def
unindent
gsub
(
/^
#{
scan
(
/^\s*/
)
.
min_by
{
|
l
|
l
.
length
}}
/
,
""
)
end
end
def
shellescape
(
str
)
str
=
str
.
to_s
# An empty argument will be skipped, so return empty quotes.
return
"''"
if
str
.
empty?
str
=
str
.
dup
# Treat multibyte characters as is. It is caller's responsibility
# to encode the string in the right encoding for the shell
# environment.
str
.
gsub!
(
/([^A-Za-z0-9_\-.,:\/@\n])/
,
"
\\\\\\
1"
)
# A LF cannot be escaped with a backslash because a backslash + LF
# combo is regarded as line continuation and simply ignored.
str
.
gsub!
(
/\n/
,
"'
\n
'"
)
return
str
end
def
psql
(
psql_cmd
,
user
=
'postgres'
,
exit_codes
=
[
0
,
1
]
,
&
block
)
psql
=
"psql
#{
psql_cmd
}
"
shell
(
"su
#{
shellescape
(
user
)
}
-c
#{
shellescape
(
psql
)
}
"
,
:acceptable_exit_codes
=>
exit_codes
,
&
block
)
end
unless
ENV
[
'RS_PROVISION'
]
==
'no'
or
ENV
[
'BEAKER_provision'
]
==
'no'
if
hosts
.
first
.
is_pe?
install_pe
else
install_puppet
end
hosts
.
each
do
|
host
|
shell
(
"mkdir -p
#{
host
[
'distmoduledir'
]
}
"
)
if
!
host
.
is_pe?
# Augeas is only used in one place, for Redhat.
if
fact
(
'osfamily'
)
==
'RedHat'
install_package
host
,
'ruby-devel'
#install_package host, 'augeas-devel'
#install_package host, 'ruby-augeas'
end
end
# Set up selinux if appropriate.
if
fact
(
'osfamily'
)
==
'RedHat'
&&
fact
(
'selinux'
)
==
'true'
pp
=
<<-
EOS
if $::osfamily == 'RedHat' and $::selinux == 'true' {
$semanage_package = $::operatingsystemmajrelease ? {
'5' => 'policycoreutils',
default => 'policycoreutils-python',
}
package { $semanage_package: ensure => installed }
exec { 'set_postgres':
command => 'semanage port -a -t postgresql_port_t -p tcp 5433',
path => '/bin:/usr/bin/:/sbin:/usr/sbin',
subscribe => Package[$semanage_package],
refreshonly => true,
}
}
EOS
apply_manifest
(
pp
,
:catch_failures
=>
true
)
end
end
end
UNSUPPORTED_PLATFORMS
=
[
'AIX'
,
'windows'
,
'Solaris'
,
'Suse'
]
RSpec
.
configure
do
|
c
|
# Project root
proj_root
=
File
.
expand_path
(
File
.
join
(
File
.
dirname
(
__FILE__
),
'..'
))
# Readable test descriptions
c
.
formatter
=
:documentation
# Configure all nodes in nodeset
c
.
before
:suite
do
# Install module and dependencies
puppet_module_install
(
:source
=>
proj_root
,
:module_name
=>
'postgresql'
)
hosts
.
each
do
|
host
|
on
host
,
"/bin/touch
#{
default
[
'puppetpath'
]
}
/hiera.yaml"
on
host
,
'chmod 755 /root'
if
fact
(
'osfamily'
)
==
'Debian'
on
host
,
"echo
\"
en_US ISO-8859-1
\n
en_NG.UTF-8 UTF-8
\n
en_US.UTF-8 UTF-8
\n\"
> /etc/locale.gen"
on
host
,
'/usr/sbin/locale-gen'
on
host
,
'/usr/sbin/update-locale'
end
if
fact
(
'osfamily'
)
==
'RedHat'
shell
(
'yum -y install policycoreutils-python'
)
shell
(
'semanage port -a -t postgresql_port_t -p tcp 5433'
)
end
on
host
,
puppet
(
'module'
,
'install'
,
'puppetlabs-stdlib'
),
{
:acceptable_exit_codes
=>
[
0
,
1
]
}
on
host
,
puppet
(
'module'
,
'install'
,
'puppetlabs-firewall'
),
{
:acceptable_exit_codes
=>
[
0
,
1
]
}
on
host
,
puppet
(
'module'
,
'install'
,
'puppetlabs-apt'
),
{
:acceptable_exit_codes
=>
[
0
,
1
]
}
on
host
,
puppet
(
'module'
,
'install'
,
'puppetlabs-concat'
),
{
:acceptable_exit_codes
=>
[
0
,
1
]
}
end
end
end
File Metadata
Details
Attached
Mime Type
text/x-ruby
Expires
Fri, Jul 4, 11:32 AM (3 w, 2 d ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
3394468
Attached To
rSPPG PostgreSQL puppet module
Event Timeline
Log In to Comment