From a1391e2898cde0daa65ecdc6025da67d7e1ec40e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?P=C3=A4r=20Lindfors?= <paran@nsc.liu.se>
Date: Fri, 17 Mar 2017 10:58:40 +0100
Subject: [PATCH] Quote unquoted file modes.

For compatibility with Puppet 4, which differentiates between strings
and integers, and file modes must be strings (since it could otherwise
be ambigous if a mode was specified as octal or decimal).

Found and fixed using puppet-lint for file, manually for concat::file.

(It would be tempting to use symbolic modes, e.g. 'u=rwx,go=rx', but
at least Puppet 2.7 does not remove setuid, setgid and sticky bits
correctly in this case.)

Signed-off-by: Thomas Bellman <bellman@nsc.liu.se>
---
 manifests/init.pp | 22 +++++++++++-----------
 1 file changed, 11 insertions(+), 11 deletions(-)

diff --git a/manifests/init.pp b/manifests/init.pp
index a34f3d8..88b3aa8 100644
--- a/manifests/init.pp
+++ b/manifests/init.pp
@@ -199,7 +199,7 @@ define tsmclient($serveraddress, $nodename=$fqdn,
 	"${tsmdir}/bin/include_exclude.${tsm_servername}":
 	    ensure => file,
 	    content => template('tsmclient/include_exclude.erb'),
-	    owner => 'root', group => 'root', mode => 0444,
+	    owner => 'root', group => 'root', mode => '0444',
 	    require => Package['TIVsm-BA'], notify => Service['dsmcad'];
     }
     concat::part {
@@ -227,11 +227,11 @@ class tsmclient::dsmtca_nosuid
     file {
 	"${tsmclient::vars::tsmdir}/bin/dsmtca":
 	    ensure => file,
-	    owner => 'root', group => 'bin', mode => 0755,
+	    owner => 'root', group => 'bin', mode => '0755',
 	    require => Package['TIVsm-BA'];
 	"${tsmclient::vars::tsmprefix}/client/api/bin64/dsmtca":
 	    ensure => file,
-	    owner => 'root', group => 'bin', mode => 0755,
+	    owner => 'root', group => 'bin', mode => '0755',
 	    require => Package['TIVsm-API64'];
     }
     # Some (older) versions of TIVsm-BA pulls in TIVsm-API, others (newer)
@@ -243,7 +243,7 @@ class tsmclient::dsmtca_nosuid
 	file {
 	    "${tsmclient::vars::tsmprefix}/client/api/bin/dsmtca":
 		ensure => file,
-		owner => 'root', group => 'bin', mode => 0755,
+		owner => 'root', group => 'bin', mode => '0755',
 		require => Package['TIVsm-BA'];
 	}
     }
@@ -321,24 +321,24 @@ class tsmclient::install
     file {
 	$tsmpassworddir:
 	    ensure => directory,
-	    owner => 'root', group => 'root', mode => 0755,
+	    owner => 'root', group => 'root', mode => '0755',
 	    require => Package['TIVsm-BA'];
 
 	'/etc/init.d/dsmcad':
 	    ensure => file,
-	    owner => 'root', group => 'root', mode => 0555,
+	    owner => 'root', group => 'root', mode => '0555',
 	    content => template('tsmclient/dsmcad-sysvinit.sh.erb'),
 	    require => Package['TIVsm-BA'];
 	'/etc/logrotate.d/dsmcad':
 	    ensure => file,
-	    owner => 'root', group => 'root', mode => 0444,
+	    owner => 'root', group => 'root', mode => '0444',
 	    content => template('tsmclient/logrotate.conf.erb'),
 	    require => Package['TIVsm-BA'];
 
 	'/etc/sysconfig/dsmcad':
 	    ensure => file,
 	    content => "LC_ALL=en_US.ISO-8859-1; export LC_ALL; unset LANG\n",
-	    owner => 'root', group => 'root', mode => 0644,
+	    owner => 'root', group => 'root', mode => '0644',
 	    require => Package['TIVsm-BA'], notify => Service['dsmcad'];
 
 	# Remnants from older versions of the tsmclient definition
@@ -348,10 +348,10 @@ class tsmclient::install
     }
     concat::file {
 	"${tsmdir}/bin/dsm.opt":
-	    owner => 'root', group => 'root', mode => 0444,
+	    owner => 'root', group => 'root', mode => '0444',
 	    require => Package['TIVsm-BA'], notify => Service['dsmcad'];
 	"${tsmdir}/bin/dsm.sys":
-	    owner => 'root', group => 'root', mode => 0444,
+	    owner => 'root', group => 'root', mode => '0444',
 	    require => Package['TIVsm-BA'], notify => Service['dsmcad'];
     }
 
@@ -368,7 +368,7 @@ class tsmclient::install
 	    "${tsmpassworddir}/TSM.PWD":
 		ensure => file, links => follow, replace => false,
 		source => $tsmclient::siteconfig::password_source,
-		owner => 'root', group => 'root', mode => 0600,
+		owner => 'root', group => 'root', mode => '0600',
 		notify => Service['dsmcad'];
 	}
     }
-- 
GitLab