Upgrade all packages after puppet managed ones
This updates tripleo::packages so that when enable_upgrade is used it will: 1) upgrade puppet managed packages (will trigger puppet dependencies) 2) then upgrade all packages via exec 3) then restart services NOTE: the intention here is that the Exec['update-packages'] will always execute if enable_upgrade is set. It is not idempotent in this regard because I think we always want to execute it if enable_upgrade is set. Change-Id: I02f7cf07792765359f19fdf357024d9e48690e42 Related-bug: #1522943
This commit is contained in:
parent
d20f87fd07
commit
62e74d9663
|
@ -45,7 +45,26 @@ class tripleo::packages (
|
|||
|
||||
if $enable_upgrade {
|
||||
Package <| |> { ensure => 'latest' }
|
||||
|
||||
case $::osfamily {
|
||||
'RedHat': {
|
||||
$pkg_upgrade_cmd = 'yum -y update'
|
||||
}
|
||||
default: {
|
||||
warning('Please specify a package upgrade command for distribution.')
|
||||
}
|
||||
}
|
||||
|
||||
exec { 'package-upgrade':
|
||||
command => $pkg_upgrade_cmd,
|
||||
path => '/usr/bin',
|
||||
}
|
||||
# A resource chain to ensure the upgrade ordering we want:
|
||||
# 1) upgrade puppet managed packages (will trigger puppet dependencies)
|
||||
# 2) then upgrade all packages via exec
|
||||
# 3) then restart services
|
||||
Package <| |> -> Exec['package-upgrade'] -> Service <| |>
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -0,0 +1,52 @@
|
|||
#
|
||||
# Copyright (C) 2015 Red Hat Inc.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||
# not use this file except in compliance with the License. You may obtain
|
||||
# a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
require 'spec_helper'
|
||||
|
||||
describe 'tripleo::packages' do
|
||||
|
||||
shared_examples_for 'Red Hat distributions' do
|
||||
|
||||
let :pre_condition do
|
||||
"
|
||||
package{'nova-compute': ensure => present}
|
||||
service{'nova-compute': ensure => 'running'}
|
||||
"
|
||||
end
|
||||
|
||||
let :facts do
|
||||
{
|
||||
:osfamily => 'RedHat',
|
||||
:operatingsystemmajrelease => 7,
|
||||
}
|
||||
end
|
||||
|
||||
let :params do
|
||||
{
|
||||
:enable_upgrade => true
|
||||
}
|
||||
end
|
||||
|
||||
it 'should contain correct upgrade ordering' do
|
||||
is_expected.to contain_package('nova-compute').that_comes_before('Exec[package-upgrade]')
|
||||
is_expected.to contain_exec('package-upgrade').that_comes_before('Service[nova-compute]')
|
||||
is_expected.to contain_exec('package-upgrade').with(:command => 'yum -y update')
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
it_configures 'Red Hat distributions'
|
||||
|
||||
end
|
Loading…
Reference in New Issue