diff --git a/manifests/init.pp b/manifests/init.pp index f8af3c7fc..a6c77467d 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -540,6 +540,9 @@ if $admin_enable and $service_manage { include 'rabbitmq::install::rabbitmqadmin' + # Trigger upgrade of rabbitmqadmin on package upgrade (Issue #804) + Class['rabbitmq::install'] ~> Class['rabbitmq::install::rabbitmqadmin'] + Class['rabbitmq::service'] -> Class['rabbitmq::install::rabbitmqadmin'] Class['rabbitmq::install::rabbitmqadmin'] -> Rabbitmq_exchange<| |> } diff --git a/manifests/install/rabbitmqadmin.pp b/manifests/install/rabbitmqadmin.pp index 1a7ab3e0f..f90aa0b94 100644 --- a/manifests/install/rabbitmqadmin.pp +++ b/manifests/install/rabbitmqadmin.pp @@ -40,9 +40,24 @@ } if !($rabbitmq::use_config_file_for_plugins) { - $rabbitmqadmin_archive_require = [Class['rabbitmq::service'], Rabbitmq_plugin['rabbitmq_management']] + $rabbitmqadmin_archive_require = [ + Class['rabbitmq::service'], + Rabbitmq_plugin['rabbitmq_management'], + Exec['remove_old_rabbitmqadmin_on_upgrade'] + ] } else { - $rabbitmqadmin_archive_require = [Class['rabbitmq::service'], File['enabled_plugins']] + $rabbitmqadmin_archive_require = [ + Class['rabbitmq::service'], + File['enabled_plugins'], + Exec['remove_old_rabbitmqadmin_on_upgrade'] + ] + } + + Exec { 'remove_old_rabbitmqadmin_on_upgrade': + path => ['/bin','/usr/bin','/sbin','/usr/sbin'], + command => "rm ${rabbitmq::rabbitmq_home}/rabbitmqadmin", + onlyif => ["test -f ${rabbitmq::rabbitmq_home}/rabbitmqadmin"], + refreshonly => true, } archive { 'rabbitmqadmin':