}
# Validate the resource name
- if $name !~ /^ppa:([a-zA-Z0-9\-_]+)\/([a-zA-z0-9\-_]+)$/ {
+ if $name !~ /^ppa:([a-zA-Z0-9\-_]+)\/([a-zA-z0-9\-_\.]+)$/ {
fail("Invalid PPA name: ${name}")
}
$trusted_gpg_d_filename = "${dash_filename_no_specialchars}.gpg"
}
- # This is the location of our main exec script
- $script_path = "/opt/puppetlabs/puppet/cache/add-apt-repository-${dash_filename_no_specialchars}-${release}.sh"
+ # This is the location of our main exec script.
+ $cache_path = $facts['puppet_vardir']
+ $script_path = "${cache_path}/add-apt-repository-${dash_filename_no_specialchars}-${release}.sh"
if $ensure == 'present' {
if $package_manage {
id: 'Ubuntu',
},
},
+ puppet_vardir: '/opt/puppetlabs/puppet/cache'
}
end
}
end
+ [
+ 'ppa:foo/bar',
+ 'ppa:foo/bar1.0',
+ 'ppa:foo10/bar10',
+ 'ppa:foo-/bar_',
+ ].each do |value|
+ describe 'valid resource names' do
+ let :facts do
+ {
+ os: {
+ family: 'Debian',
+ name: 'Ubuntu',
+ release: {
+ major: '18',
+ full: '18.04',
+ },
+ distro: {
+ codename: 'trusty',
+ id: 'Ubuntu',
+ },
+ },
+ }
+ end
+
+ let(:title) { value }
+
+ it { is_expected.not_to raise_error }
+ it { is_expected.to contain_exec("add-apt-repository-#{value}") }
+ end
+ end
+
+ [
+ 'ppa:foo!/bar',
+ 'ppa:foo/bar!',
+ 'ppa:foo1.0/bar',
+ 'ppa:foo/bar/foobar',
+ '|| ls -la ||',
+ '|| touch /tmp/foo.txt ||',
+ ].each do |value|
+ describe 'invalid resource names' do
+ let :facts do
+ {
+ os: {
+ family: 'Debian',
+ name: 'Ubuntu',
+ release: {
+ major: '18',
+ full: '18.04',
+ },
+ distro: {
+ codename: 'trusty',
+ id: 'Ubuntu',
+ },
+ },
+ }
+ end
+
+ let(:title) { value }
+
+ it { is_expected.to raise_error(Puppet::PreformattedError, %r{Invalid PPA name: #{value}}) }
+ end
+ end
+
describe 'Ubuntu 15.10 sources.list filename' do
let :facts do
{
id: 'Ubuntu',
},
},
+ puppet_vardir: '/opt/puppetlabs/puppet/cache',
}
end
id: 'Ubuntu',
},
},
+ puppet_vardir: '/opt/puppetlabs/puppet/cache',
}
end
id: 'Ubuntu',
},
},
+ puppet_vardir: '/opt/puppetlabs/puppet/cache',
}
end
id: 'Ubuntu',
},
},
+ puppet_vardir: '/opt/puppetlabs/puppet/cache',
}
end
id: 'Ubuntu',
},
},
+ puppet_vardir: '/opt/puppetlabs/puppet/cache',
}
end
id: 'Ubuntu',
},
},
+ puppet_vardir: '/opt/puppetlabs/puppet/cache',
}
end
id: 'Ubuntu',
},
},
+ puppet_vardir: '/opt/puppetlabs/puppet/cache',
}
end
id: 'Ubuntu',
},
},
+ puppet_vardir: '/opt/puppetlabs/puppet/cache',
}
end