dblink.merge: remove unused scheduler callbacks
authorZac Medico <zmedico@gentoo.org>
Fri, 3 Jun 2011 10:16:16 +0000 (03:16 -0700)
committerZac Medico <zmedico@gentoo.org>
Fri, 3 Jun 2011 10:16:16 +0000 (03:16 -0700)
pym/_emerge/Scheduler.py
pym/portage/dbapi/vartree.py

index b10439a004b06af25489906504aab167046f0ca7..bdc13aa855d8098e5c29fd184deb71c5661180c7 100644 (file)
@@ -86,8 +86,7 @@ class Scheduler(PollScheduler):
        _fetch_log = os.path.join(_emerge_log_dir, 'emerge-fetch.log')
 
        class _iface_class(SlotObject):
-               __slots__ = ("dblinkEbuildPhase", "dblinkDisplayMerge",
-                       "dblinkElog", "dblinkEmergeLog", "fetch",
+               __slots__ = ("fetch",
                        "output", "register", "schedule",
                        "scheduleSetup", "scheduleUnpack", "scheduleYield",
                        "unregister")
@@ -220,10 +219,6 @@ class Scheduler(PollScheduler):
                fetch_iface = self._fetch_iface_class(log_file=self._fetch_log,
                        schedule=self._schedule_fetch)
                self._sched_iface = self._iface_class(
-                       dblinkEbuildPhase=self._dblink_ebuild_phase,
-                       dblinkDisplayMerge=self._dblink_display_merge,
-                       dblinkElog=self._dblink_elog,
-                       dblinkEmergeLog=self._dblink_emerge_log,
                        fetch=fetch_iface, output=self._task_output,
                        register=self._register,
                        schedule=self._schedule_wait,
@@ -613,67 +608,6 @@ class Scheduler(PollScheduler):
 
                return blocker_dblinks
 
-       def _dblink_pkg(self, pkg_dblink):
-               cpv = pkg_dblink.mycpv
-               type_name = RootConfig.tree_pkg_map[pkg_dblink.treetype]
-               root_config = self.trees[pkg_dblink.myroot]["root_config"]
-               installed = type_name == "installed"
-               repo = pkg_dblink.settings.get("PORTAGE_REPO_NAME")
-               return self._pkg(cpv, type_name, root_config,
-                       installed=installed, myrepo=repo)
-
-       def _dblink_elog(self, pkg_dblink, phase, func, msgs):
-
-               log_path = pkg_dblink.settings.get("PORTAGE_LOG_FILE")
-               out = StringIO()
-
-               for msg in msgs:
-                       func(msg, phase=phase, key=pkg_dblink.mycpv, out=out)
-
-               out_str = out.getvalue()
-
-               self._task_output(out_str, log_path=log_path)
-
-       def _dblink_emerge_log(self, msg):
-               self._logger.log(msg)
-
-       def _dblink_display_merge(self, pkg_dblink, msg, level=0, noiselevel=0):
-               log_path = pkg_dblink.settings.get("PORTAGE_LOG_FILE")
-               background = self._background
-
-               if log_path is None:
-                       if not (background and level < logging.WARN):
-                               portage.util.writemsg_level(msg,
-                                       level=level, noiselevel=noiselevel)
-               else:
-                       self._task_output(msg, log_path=log_path)
-
-       def _dblink_ebuild_phase(self,
-               pkg_dblink, pkg_dbapi, ebuild_path, phase):
-               """
-               Using this callback for merge phases allows the scheduler
-               to run while these phases execute asynchronously, and allows
-               the scheduler control output handling.
-               """
-
-               scheduler = self._sched_iface
-               settings = pkg_dblink.settings
-               background = self._background
-               log_path = settings.get("PORTAGE_LOG_FILE")
-
-               if phase in ('die_hooks', 'success_hooks'):
-                       ebuild_phase = MiscFunctionsProcess(background=background,
-                               commands=[phase], phase=phase,
-                               scheduler=scheduler, settings=settings)
-               else:
-                       ebuild_phase = EbuildPhase(background=background,
-                               phase=phase, scheduler=scheduler,
-                               settings=settings)
-               ebuild_phase.start()
-               ebuild_phase.wait()
-
-               return ebuild_phase.returncode
-
        def _generate_digests(self):
                """
                Generate digests if necessary for --digests or FEATURES=digest.
index 889cb588a8316f2b8b64707bd822151d5ecd8a88..16cf48b76dfc64f8cfd407df93201a1d918ce630 100644 (file)
@@ -57,6 +57,7 @@ from portage import _unicode_encode
 from _emerge.AsynchronousLock import AsynchronousLock
 from _emerge.EbuildBuildDir import EbuildBuildDir
 from _emerge.EbuildPhase import EbuildPhase
+from _emerge.emergelog import emergelog
 from _emerge.PollScheduler import PollScheduler
 from _emerge.MiscFunctionsProcess import MiscFunctionsProcess
 
@@ -2957,6 +2958,9 @@ class dblink(object):
                        if str_buffer:
                                os.write(self._pipe, _unicode_encode(''.join(str_buffer)))
 
+       def _emerge_log(self, msg):
+               emergelog(False, msg)
+
        def treewalk(self, srcroot, destroot, inforoot, myebuild, cleanup=0,
                mydbapi=None, prev_mtimes=None, counter=None):
                """
@@ -3003,8 +3007,6 @@ class dblink(object):
                        encoding=_encodings['content'], errors='strict')
 
                showMessage = self._display_merge
-               scheduler = self._scheduler
-
                srcroot = normalize_path(srcroot).rstrip(os.path.sep) + os.path.sep
 
                if not os.path.isdir(srcroot):
@@ -3359,12 +3361,12 @@ class dblink(object):
                ensure_dirs(self.dbtmpdir)
 
                # run preinst script
-               if scheduler is None:
-                       showMessage(_(">>> Merging %(cpv)s to %(destroot)s\n") % {"cpv":self.mycpv, "destroot":destroot})
-                       a = _spawn_phase("preinst", self.settings)
-               else:
-                       a = scheduler.dblinkEbuildPhase(
-                               self, mydbapi, myebuild, "preinst")
+               showMessage(_(">>> Merging %(cpv)s to %(destroot)s\n") % \
+                       {"cpv":self.mycpv, "destroot":destroot})
+               phase = EbuildPhase(background=False, phase="preinst",
+                       scheduler=self._scheduler, settings=self.settings)
+               phase.start()
+               a = phase.wait()
 
                # XXX: Decide how to handle failures here.
                if a != os.EX_OK:
@@ -3459,11 +3461,7 @@ class dblink(object):
                        match_from_list(PORTAGE_PACKAGE_ATOM, [self.mycpv]):
                        reinstall_self = True
 
-               if scheduler is None:
-                       def emerge_log(msg):
-                               pass
-               else:
-                       emerge_log = scheduler.dblinkEmergeLog
+               emerge_log = self._emerge_log
 
                # If we have any preserved libraries then autoclean
                # is forced so that preserve-libs logic doesn't have
@@ -3608,13 +3606,12 @@ class dblink(object):
                        os.path.join(self.dbpkgdir, "environment.bz2")
                self.settings.backup_changes("PORTAGE_UPDATE_ENV")
                try:
-                       if scheduler is None:
-                               a = _spawn_phase("postinst", self.settings)
-                               if a == os.EX_OK:
-                                       showMessage(_(">>> %s merged.\n") % self.mycpv)
-                       else:
-                               a = scheduler.dblinkEbuildPhase(
-                                       self, mydbapi, myebuild, "postinst")
+                       phase = EbuildPhase(background=False, phase="postinst",
+                               scheduler=self._scheduler, settings=self.settings)
+                       phase.start()
+                       a = phase.wait()
+                       if a == os.EX_OK:
+                               showMessage(_(">>> %s merged.\n") % self.mycpv)
                finally:
                        self.settings.pop("PORTAGE_UPDATE_ENV", None)
 
@@ -4068,6 +4065,8 @@ class dblink(object):
                if not parallel_install:
                        self.lockdb()
                self.vartree.dbapi._bump_mtime(self.mycpv)
+               if self._scheduler is None:
+                       self._scheduler = PollScheduler().sched_iface
                try:
                        retval = self.treewalk(mergeroot, myroot, inforoot, myebuild,
                                cleanup=cleanup, mydbapi=mydbapi, prev_mtimes=prev_mtimes,
@@ -4075,8 +4074,7 @@ class dblink(object):
 
                        # If PORTAGE_BUILDDIR doesn't exist, then it probably means
                        # fail-clean is enabled, and the success/die hooks have
-                       # already been called by _emerge.EbuildPhase (via
-                       # self._scheduler.dblinkEbuildPhase) prior to cleaning.
+                       # already been called by EbuildPhase.
                        if os.path.isdir(self.settings['PORTAGE_BUILDDIR']):
 
                                if retval == os.EX_OK:
@@ -4084,18 +4082,11 @@ class dblink(object):
                                else:
                                        phase = 'die_hooks'
 
-                               if self._scheduler is None:
-                                       ebuild_phase = MiscFunctionsProcess(
-                                               background=False,
-                                               commands=[phase],
-                                               scheduler=PollScheduler().sched_iface,
-                                               settings=self.settings)
-                                       ebuild_phase.start()
-                                       ebuild_phase.wait()
-                               else:
-                                       self._scheduler.dblinkEbuildPhase(
-                                               self, mydbapi, myebuild, phase)
-
+                               ebuild_phase = MiscFunctionsProcess(
+                                       background=False, commands=[phase],
+                                       scheduler=self._scheduler, settings=self.settings)
+                               ebuild_phase.start()
+                               ebuild_phase.wait()
                                self._elog_process()
 
                                if 'noclean' not in self.settings.features and \
@@ -4106,12 +4097,10 @@ class dblink(object):
 
                                        doebuild_environment(myebuild, "clean",
                                                settings=self.settings, db=mydbapi)
-                                       if self._scheduler is None:
-                                               _spawn_phase("clean", self.settings)
-                                       else:
-                                               self._scheduler.dblinkEbuildPhase(
-                                                       self, mydbapi, myebuild, "clean")
-
+                                       phase = EbuildPhase(background=False, phase="clean",
+                                               scheduler=self._scheduler, settings=self.settings)
+                                       phase.start()
+                                       phase.wait()
                finally:
                        self.settings.pop('REPLACING_VERSIONS', None)
                        if self.vartree.dbapi._linkmap is None: