Merge "Add enable flag for RDO yum repository on RHEL"
This commit is contained in:
@@ -79,6 +79,7 @@ default['openstack']['apt']['components'] = ["precise-updates/#{node['openstack'
|
||||
default['openstack']['zypp']['repo-key'] = 'd85f9316' # 32 bit key ID
|
||||
default['openstack']['zypp']['uri'] = 'http://download.opensuse.org/repositories/Cloud:/OpenStack:/%release%/%suse-release%/'
|
||||
|
||||
default['openstack']['yum']['rdo_enabled'] = true
|
||||
default['openstack']['yum']['uri'] = 'http://repos.fedorapeople.org/repos/openstack/openstack-havana/epel-6'
|
||||
default['openstack']['yum']['repo-key'] = 'https://raw.github.com/redhat-openstack/rdo-release/master/RPM-GPG-KEY-RDO-Havana'
|
||||
|
||||
|
@@ -39,9 +39,15 @@ when 'debian'
|
||||
|
||||
when 'rhel'
|
||||
|
||||
if node['openstack']['yum']['rdo_enabled']
|
||||
repo_action = :add
|
||||
else
|
||||
repo_action = :remove
|
||||
end
|
||||
|
||||
yum_key "RPM-GPG-KEY-RDO-#{node['openstack']['release']}" do
|
||||
url node['openstack']['yum']['repo-key']
|
||||
action :add
|
||||
action repo_action
|
||||
end
|
||||
|
||||
yum_repository "RDO-#{node['openstack']['release']}" do
|
||||
@@ -49,6 +55,7 @@ when 'rhel'
|
||||
key "RPM-GPG-KEY-RDO-#{node['openstack']['release']}"
|
||||
url node['openstack']['yum']['uri']
|
||||
enabled 1
|
||||
action repo_action
|
||||
end
|
||||
|
||||
when 'suse'
|
||||
|
44
spec/default-redhat_spec.rb
Normal file
44
spec/default-redhat_spec.rb
Normal file
@@ -0,0 +1,44 @@
|
||||
# encoding: UTF-8
|
||||
|
||||
require_relative 'spec_helper'
|
||||
|
||||
describe 'openstack-common::default' do
|
||||
describe 'rhel-rdo' do
|
||||
before do
|
||||
@chef_run = ::ChefSpec::Runner.new(::REDHAT_OPTS) do |n|
|
||||
n.set['openstack']['release'] = 'testrelease'
|
||||
end
|
||||
@chef_run.converge 'openstack-common::default'
|
||||
end
|
||||
|
||||
it 'installs RDO repo GPG key' do
|
||||
key_name = 'RPM-GPG-KEY-RDO-testrelease'
|
||||
expect(@chef_run).to add_yum_key(key_name)
|
||||
end
|
||||
|
||||
it 'configures RDO yum repository' do
|
||||
repo_name = 'RDO-testrelease'
|
||||
expect(@chef_run).to add_yum_repository(repo_name)
|
||||
end
|
||||
end
|
||||
|
||||
describe 'rhel-no-rdo' do
|
||||
before do
|
||||
@chef_run = ::ChefSpec::Runner.new(::REDHAT_OPTS) do |n|
|
||||
n.set['openstack']['release'] = 'testrelease'
|
||||
n.set['openstack']['yum']['rdo_enabled'] = false
|
||||
end
|
||||
@chef_run.converge 'openstack-common::default'
|
||||
end
|
||||
|
||||
it 'installs RDO repo GPG key' do
|
||||
key_name = 'RPM-GPG-KEY-RDO-testrelease'
|
||||
expect(@chef_run).to remove_yum_key(key_name)
|
||||
end
|
||||
|
||||
it 'configures RDO yum repository' do
|
||||
repo_name = 'RDO-testrelease'
|
||||
expect(@chef_run).to remove_yum_repository(repo_name)
|
||||
end
|
||||
end
|
||||
end
|
@@ -3,12 +3,19 @@
|
||||
require 'chefspec'
|
||||
require 'chefspec/berkshelf'
|
||||
|
||||
require_relative 'support/matchers'
|
||||
|
||||
::LOG_LEVEL = :fatal
|
||||
::UBUNTU_OPTS = {
|
||||
platform: 'ubuntu',
|
||||
version: '12.04',
|
||||
log_level: ::LOG_LEVEL
|
||||
}
|
||||
::REDHAT_OPTS = {
|
||||
platform: 'redhat',
|
||||
version: '6.3',
|
||||
log_level: ::LOG_LEVEL
|
||||
}
|
||||
::CHEFSPEC_OPTS = {
|
||||
log_level: ::LOG_LEVEL
|
||||
}
|
||||
|
28
spec/support/matchers.rb
Normal file
28
spec/support/matchers.rb
Normal file
@@ -0,0 +1,28 @@
|
||||
# encoding: UTF-8
|
||||
|
||||
# for yum cookbook LWRPs
|
||||
# yum_key
|
||||
def add_yum_key(resource_name)
|
||||
ChefSpec::Matchers::ResourceMatcher.new(:yum_key, :add, resource_name)
|
||||
end
|
||||
|
||||
def remove_yum_key(resource_name)
|
||||
ChefSpec::Matchers::ResourceMatcher.new(:yum_key, :remove, resource_name)
|
||||
end
|
||||
|
||||
# yum_repository
|
||||
def add_yum_repository(resource_name)
|
||||
ChefSpec::Matchers::ResourceMatcher.new(:yum_repository, :add, resource_name)
|
||||
end
|
||||
|
||||
def remove_yum_repository(resource_name)
|
||||
ChefSpec::Matchers::ResourceMatcher.new(:yum_repository, :remove, resource_name)
|
||||
end
|
||||
|
||||
def update_yum_repository(resource_name)
|
||||
ChefSpec::Matchers::ResourceMatcher.new(:yum_repository, :update, resource_name)
|
||||
end
|
||||
|
||||
def create_yum_repository(resource_name)
|
||||
ChefSpec::Matchers::ResourceMatcher.new(:yum_repository, :create, resource_name)
|
||||
end
|
Reference in New Issue
Block a user