class PkgUninstallComponent(ComponentBase, UninstallComponent): def __init__(self, component_name, *args, **kargs): ComponentBase.__init__(self, component_name, *args, **kargs) self.tracereader = TraceReader(self.tracedir, IN_TRACE) def unconfigure(self): self._unconfigure_files() def _unconfigure_files(self): cfgfiles = self.tracereader.files_configured() if (len(cfgfiles)): LOG.info("Removing %s configuration files" % (len(cfgfiles))) for fn in cfgfiles: if (len(fn)): unlink(fn) LOG.info("Removed %s" % (fn)) def uninstall(self): self._uninstall_pkgs() self._uninstall_touched_files() self._uninstall_dirs() def _uninstall_pkgs(self): pkgsfull = self.tracereader.packages_installed() if (len(pkgsfull)): LOG.info("Potentially removing %s packages" % (len(pkgsfull))) self.packager.remove_batch(pkgsfull) def _uninstall_touched_files(self): filestouched = self.tracereader.files_touched() if (len(filestouched)): LOG.info("Removing %s touched files" % (len(filestouched))) for fn in filestouched: if (len(fn)): unlink(fn) LOG.info("Removed %s" % (fn)) def _uninstall_dirs(self): dirsmade = self.tracereader.dirs_made() if (len(dirsmade)): LOG.info("Removing %s created directories" % (len(dirsmade))) for dirname in dirsmade: deldir(dirname) LOG.info("Removed %s" % (dirname))
class PkgUninstallComponent(ComponentBase, UninstallComponent): def __init__(self, component_name, *args, **kargs): ComponentBase.__init__(self, component_name, *args, **kargs) self.tracereader = TraceReader(self.tracedir, IN_TRACE) def unconfigure(self): self._unconfigure_files() def _unconfigure_files(self): cfgfiles = self.tracereader.files_configured() if(len(cfgfiles)): LOG.info("Removing %s configuration files" % (len(cfgfiles))) for fn in cfgfiles: if(len(fn)): unlink(fn) LOG.info("Removed %s" % (fn)) def uninstall(self): self._uninstall_pkgs() self._uninstall_touched_files() self._uninstall_dirs() def _uninstall_pkgs(self): pkgsfull = self.tracereader.packages_installed() if(len(pkgsfull)): LOG.info("Potentially removing %s packages" % (len(pkgsfull))) self.packager.remove_batch(pkgsfull) def _uninstall_touched_files(self): filestouched = self.tracereader.files_touched() if(len(filestouched)): LOG.info("Removing %s touched files" % (len(filestouched))) for fn in filestouched: if(len(fn)): unlink(fn) LOG.info("Removed %s" % (fn)) def _uninstall_dirs(self): dirsmade = self.tracereader.dirs_made() if(len(dirsmade)): LOG.info("Removing %s created directories" % (len(dirsmade))) for dirname in dirsmade: deldir(dirname) LOG.info("Removed %s" % (dirname))