Fix beaker on xenial

Since the beaker jobs are being run on xenial, we need a special nodeset
for it, otherwise beaker gives an error:

 beaker-hostgenerator was not able to use this value as input.
 Exiting with an Error.

We also want to install puppet from the Ubuntu repos rather than from
puppetlabs, since puppetlabs doesn't support puppet 3 for Xenial. For
centos we can keep the install process the same.

This patch includes additional fixes for issues that were probably
present when the tests were first merged:

- make sure the irc pip package is installed by the puppet class
- use double quotes for the channels.yaml fixture so properly render the
  newline characters
- add "access" and "global" sections to the channels.yaml fixture since
  accessbot will otherwise be unable to parse the file
- remove spec assertions about the accessbot process, because if it was
  successful it should have exited during the puppet run, and in fact if
  it didn't exit the puppet run would have failed.
- correct the group name the spec is asserting of the config file

Additionally, out of band from this patch, the nick 'accessbot-test' is
nowregistered on freenode. If it's not registered, it becomes stuck in
the irc infinite loop without performing any actions. This does not mean
it has any permissions to make any real access changes.

Change-Id: Ifd2244ae9dd212b2475f9cd6adb994bc058a4769
Depends-On: I23d0a9c0f4b6ecbb3403447adb03e845d2695366
This commit is contained in:
Colleen Murphy 2017-05-02 16:31:20 +02:00 committed by Colleen Murphy
parent 91480ef543
commit 593e930d71
5 changed files with 28 additions and 13 deletions

View File

@ -28,6 +28,11 @@ class accessbot(
}
}
package { 'irc':
ensure => installed,
provider => openstack_pip,
}
exec { 'run_accessbot' :
command => '/usr/local/bin/accessbot -c /etc/accessbot/accessbot.config -l /etc/accessbot/channels.yaml >> /var/log/accessbot/accessbot.log 2>&1',
path => '/usr/local/bin:/usr/bin:/bin/',
@ -36,7 +41,8 @@ class accessbot(
subscribe => File['/etc/accessbot/channels.yaml'],
require => [File['/etc/accessbot/channels.yaml'],
File['/etc/accessbot/accessbot.config'],
File['/usr/local/bin/accessbot']],
File['/usr/local/bin/accessbot'],
Package['irc']],
}
file { '/etc/accessbot':

View File

@ -33,16 +33,7 @@ describe 'basic accessbot' do
it { should be_file }
it { should be_owned_by 'root' }
it { should be_mode 440 }
it { should be_grouped_into 'accessbo' }
end
end
context 'main proccess' do
describe process("accessbot") do
its(:user) { should eq "accessbot" }
its(:args) { should match /-c accessbot.config/ }
it { should be_grouped_into 'accessbot' }
end
end

View File

@ -1,6 +1,6 @@
file { '/etc/channels.yaml':
ensure => file,
content => 'channels:\n - name: openstack-rainbow-unicorn-pals',
content => "access:\n nobody: +v\nglobal:\n nobody:\n - nobody\nchannels:\n - name: openstack-rainbow-unicorn-pals",
}
class { '::accessbot':

View File

@ -0,0 +1,10 @@
HOSTS:
ubuntu-16.04-amd64:
roles:
- master
platform: ubuntu-16.04-amd64
hypervisor: none
ip: 127.0.0.1
CONFIG:
type: foss
set_env: false

View File

@ -2,7 +2,15 @@ require 'beaker-rspec'
hosts.each do |host|
install_puppet
# puppet 3 isn't available from apt.puppetlabs.com so install it from the Xenial repos
on host, "which apt-get && apt-get install puppet -y", { :acceptable_exit_codes => [0,1] }
# otherwise use the beaker helpers to install the yum.puppetlabs.com repo and puppet
r = on host, "which yum", { :acceptable_exit_codes => [0,1] }
if r.exit_code == 0
install_puppet
end
add_platform_foss_defaults(host, 'unix')
on host, "mkdir -p #{host['distmoduledir']}"
end