From 715263c21c49493c7d4dcac96163e6c153e65ca4 Mon Sep 17 00:00:00 2001 From: Thomas Goirand Date: Fri, 11 Sep 2020 14:37:33 +0200 Subject: [PATCH] Avoid defining resources twice in iscsi backend In its current form, cinder::backend::iscsi is a define, allowing to call it multiple times, which is desirable (if a server has multiple backends). However, some resources are defined twice if the class is called twice. To avoid this, this patch decorates the resource definition for packages and services with if !defined. Change-Id: I779dfd416da6fe8bb713105ed246172ebf0aae85 --- manifests/backend/iscsi.pp | 42 +++++++++++++++++++++++--------------- 1 file changed, 25 insertions(+), 17 deletions(-) diff --git a/manifests/backend/iscsi.pp b/manifests/backend/iscsi.pp index 9198dd7b..07753bd2 100644 --- a/manifests/backend/iscsi.pp +++ b/manifests/backend/iscsi.pp @@ -98,10 +98,12 @@ define cinder::backend::iscsi ( case $target_helper { 'tgtadm': { - package { 'tgt': - ensure => present, - name => $::cinder::params::tgt_package_name, - tag => 'cinder-support-package', + if ! defined(Package['tgt']) { + package { 'tgt': + ensure => present, + name => $::cinder::params::tgt_package_name, + tag => 'cinder-support-package', + } } if($::osfamily == 'RedHat') { @@ -114,25 +116,31 @@ define cinder::backend::iscsi ( } } - service { 'tgtd': - ensure => running, - name => $::cinder::params::tgt_service_name, - enable => true, - tag => 'cinder-support-service', + if ! defined(Service['tgtd']) { + service { 'tgtd': + ensure => running, + name => $::cinder::params::tgt_service_name, + enable => true, + tag => 'cinder-support-service', + } } } 'lioadm': { - service { 'target': - ensure => running, - enable => true, - tag => 'cinder-support-service', + if ! defined(Service['target']) { + service { 'target': + ensure => running, + enable => true, + tag => 'cinder-support-service', + } } - package { 'targetcli': - ensure => present, - name => $::cinder::params::lio_package_name, - tag => 'cinder-support-package', + if ! defined(Package['targetcli']) { + package { 'targetcli': + ensure => present, + name => $::cinder::params::lio_package_name, + tag => 'cinder-support-package', + } } }