Feature #9293

yum repos should be ensurable.

Added by Nigel Kersten 9 months ago. Updated 10 days ago.

Status:Accepted Start date:08/31/2011
Priority:Normal Due date:
Assignee:- % Done:

0%

Category:yumrepo
Target version:3.X
Affected Puppet version: Branch:
Keywords:
Votes: 10

Description

This should be done so that we can solve:

#949 – yumrepo should support removal of repository

#1023 – yumrepo option to purge unmanaged repos


Related issues

duplicated by Puppet - Feature #949: yumrepo should support removal of repository Duplicate
duplicated by Puppet - Feature #1023: yumrepo option to purge unmanaged repos Duplicate
duplicated by Puppet - Bug #12687: RFE: yumrepo enabled absent removes repo file Duplicate 02/16/2012

History

Updated by Nigel Kersten 9 months ago

  • Description updated (diff)

Updated by Nigel Kersten 9 months ago

  • Description updated (diff)

Updated by Nigel Kersten 9 months ago

  • Category set to yumrepo

Updated by K Hightower 8 months ago

  • Assignee set to K Hightower

Updated by K Hightower 4 months ago

  • Assignee deleted (K Hightower)

Updated by Bill Tong 4 months ago

Does anyone have a workaround for this in the meantime? Something like retrieving a list of files managed by the yumrepo type and deleting everything else?

Updated by Steve Traylen 10 days ago

As a work around this is fairly easy to use, define a new resource

define osrepos::ai121yumrepo ($enabled,$baseurl,$descr,$includepkgs='absent',$gpgcheck='1',$gpgkey='absent',$priority='99') {

$filename = $title

yumrepo{$filename:
   descr        => $descr,
   enabled      => $enabled,
   baseurl      => $baseurl,
   includepkgs  => $includepkgs,
   gpgcheck     => $gpgcheck,
   gpgkey       => $gpgkey,
   priority     => $priority
 }
 file {"/etc/yum.repos.d/${filename}.repo":
     ensure  => present,
     require => [Yumrepo[$title],Package['yum']]
 }
}

Add some where a purge

file { "/etc/yum.repos.d":
    ensure => directory,
    recurse => true,
    purge => true
 }

And then define each of your yumrepos not as

yumrepo{'myrepo':
  descr => 'lakdjfa'
 baseurl => 'http://...
}

but as

osrepos:ai121yumrepo{'myrepo':
  descr => 'lakdjfa'
  baseurl => 'http://...
}

You can still use the normal

package{'xyz':
   ensure => present,
   require => Yumrepo['myrepo']
}

where ever you like.

Also available in: Atom PDF