def _remove(self, pkg):
     yum.YumPackager._remove(self, pkg)
     options = pkg.get('packager_options') or {}
     links = options.get('links') or []
     for entry in links:
         if sh.islink(entry['target']):
             sh.unlink(entry['target'])
 def _remove(self, pkg):
     response = yum.YumPackager._remove(self, pkg)
     if response:
         options = pkg.get('packager_options', {})
         links = options.get('links', [])
         for entry in links:
             src = entry['source']
             tgt = entry['target']
             if sh.islink(tgt):
                 sh.unlink(tgt)
     return response
 def _install(self, pkg):
     yum.YumPackager._install(self, pkg)
     options = pkg.get('packager_options', {})
     links = options.get('links', [])
     for entry in links:
         src = entry['source']
         tgt = entry['target']
         if not sh.islink(tgt):
             # This is actually a feature, EPEL must not conflict
             # with RHEL, so X pkg installs newer version in
             # parallel.
             #
             # This of course doesn't work when running from git
             # like anvil does....
             sh.symlink(src, tgt)
     return True
 def _install(self, pkg):
     yum.YumPackager._install(self, pkg)
     options = pkg.get('packager_options') or {}
     links = options.get('links') or []
     for entry in links:
         tgt = entry.get('target')
         src = entry.get('source')
         if not tgt or not src:
             continue
         src = glob.glob(src)
         if not isinstance(tgt, (list, tuple)):
             tgt = [tgt]
         if len(src) != len(tgt):
             raise RuntimeError("Unable to link %s sources to %s locations" % (len(src), len(tgt)))
         for i in range(len(src)):
             i_src = src[i]
             i_tgt = tgt[i]
             if not sh.islink(i_tgt):
                 sh.symlink(i_src, i_tgt)