Fix compatibiilty issue
authorWenzheng Jiang <wjiang@freelancer.com>
Mon, 30 Jul 2018 02:08:37 +0000 (12:08 +1000)
committerWenzheng Jiang <wjiang@freelancer.com>
Mon, 30 Jul 2018 02:10:56 +0000 (12:10 +1000)
manifests/ppa.pp
spec/defines/ppa_spec.rb

index a6ef8036d84d2e415588648cae9c6f45838a2c3c..740d59643c02c9362b6449e1f0c0885776970b07 100644 (file)
@@ -16,18 +16,25 @@ define apt::ppa(
 
   if versioncmp($facts['lsbdistrelease'], '15.10') >= 0 {
     $distid = downcase($facts['lsbdistid'])
-    $filename = regsubst($name, '^ppa:([^/]+)/(.+)$', "\\1-${distid}-\\2-${release}")
+    $dash_filename = regsubst($name, '^ppa:([^/]+)/(.+)$', "\\1-${distid}-\\2")
+    $underscore_filename = regsubst($name, '^ppa:([^/]+)/(.+)$', "\\1_${distid}_\\2")
   } else {
-    $filename = regsubst($name, '^ppa:([^/]+)/(.+)$', "\\1-\\2-${release}")
+    $dash_filename = regsubst($name, '^ppa:([^/]+)/(.+)$', "\\1-\\2")
+    $underscore_filename = regsubst($name, '^ppa:([^/]+)/(.+)$', "\\1_\\2")
   }
 
-  $filename_no_slashes      = regsubst($filename, '/', '-', 'G')
-  $filename_no_specialchars = regsubst($filename_no_slashes, '[\.\+]', '_', 'G')
-  $sources_list_d_filename  = "${filename_no_specialchars}.list"
+  $dash_filename_no_slashes      = regsubst($dash_filename, '/', '-', 'G')
+  $dash_filename_no_specialchars = regsubst($dash_filename_no_slashes, '[\.\+]', '_', 'G')
+  $underscore_filename_no_slashes      = regsubst($underscore_filename, '/', '-', 'G')
+  $underscore_filename_no_specialchars = regsubst($underscore_filename_no_slashes, '[\.\+]', '_', 'G')
 
-  $name_no_slashes = regsubst($name, '/', '-', 'G')
-  $name_no_specialchars = regsubst($name_no_slashes, '[\.\+]', '_', 'G')
-  $trusted_gpg_d_filename = regsubst($name_no_specialchars, '^ppa:(.+)', "\\1.gpg")
+  $sources_list_d_filename  = "${dash_filename_no_specialchars}-${release}.list"
+
+  if versioncmp($facts['lsbdistrelease'], '15.10') >= 0 {
+    $trusted_gpg_d_filename = "${underscore_filename_no_specialchars}.gpg"
+  } else {
+    $trusted_gpg_d_filename = "${dash_filename_no_specialchars}.gpg"
+  }
 
   if $ensure == 'present' {
     if $package_manage {
index efbf482e8d71cf0ae32eb4605644f7ed11881a55..4c4dddb171d7c3479c5a8aa21a279ca12060adf2 100644 (file)
@@ -47,7 +47,7 @@ describe 'apt::ppa' do
     it {
       is_expected.to contain_exec('add-apt-repository-ppa:user/foo').that_notifies('Class[Apt::Update]').with(environment: [],
                                                                                                               command: '/usr/bin/add-apt-repository -y ppa:user/foo',
-                                                                                                              unless: '/usr/bin/test -f /etc/apt/sources.list.d/user-ubuntu-foo-wily.list && /usr/bin/test -f /etc/apt/trusted.gpg.d/user-foo.gpg', # rubocop:disable Metrics/LineLength
+                                                                                                              unless: '/usr/bin/test -f /etc/apt/sources.list.d/user-ubuntu-foo-wily.list && /usr/bin/test -f /etc/apt/trusted.gpg.d/user_ubuntu_foo.gpg', # rubocop:disable Metrics/LineLength
                                                                                                               user: 'root',
                                                                                                               logoutput: 'on_failure')
     }