From 481770e4d1d69f5302d6ba6084da540917128330 Mon Sep 17 00:00:00 2001 From: Joshua Harlow Date: Sun, 4 Aug 2013 19:46:49 -0700 Subject: [PATCH] Use the passed in opts job count (if provided). Change-Id: Ie2730e595fcc19d45451bf5b932392ba48765b78 --- anvil/actions/build.py | 4 +++- anvil/actions/prepare.py | 4 +++- anvil/packaging/yum.py | 15 ++++++++++++--- 3 files changed, 18 insertions(+), 5 deletions(-) diff --git a/anvil/actions/build.py b/anvil/actions/build.py index 8ba8b226..82fbf376 100644 --- a/anvil/actions/build.py +++ b/anvil/actions/build.py @@ -28,6 +28,7 @@ class BuildAction(action.Action): def __init__(self, name, distro, root_dir, cli_opts): action.Action.__init__(self, name, distro, root_dir, cli_opts) self.usr_only = cli_opts.get('usr_only') + self.jobs = cli_opts.get('jobs') @property def lookup_name(self): @@ -38,5 +39,6 @@ class BuildAction(action.Action): dependency_handler = dependency_handler_class(self.distro, self.root_dir, instances.values(), - opts={"usr_only": self.usr_only}) + opts={"usr_only": self.usr_only, + "jobs": self.jobs}) dependency_handler.build_binary() diff --git a/anvil/actions/prepare.py b/anvil/actions/prepare.py index fa0bad1b..1a378a63 100644 --- a/anvil/actions/prepare.py +++ b/anvil/actions/prepare.py @@ -28,6 +28,7 @@ class PrepareAction(action.Action): def __init__(self, name, distro, root_dir, cli_opts): action.Action.__init__(self, name, distro, root_dir, cli_opts) + self.jobs = cli_opts.get('jobs') @property def lookup_name(self): @@ -61,7 +62,8 @@ class PrepareAction(action.Action): dependency_handler_class = self.distro.dependency_handler_class dependency_handler = dependency_handler_class(self.distro, self.root_dir, - instances.values()) + instances.values(), + opts={"jobs": self.jobs}) dependency_handler.package_start() self._run_phase( action.PhaseFunctors( diff --git a/anvil/packaging/yum.py b/anvil/packaging/yum.py index c79afda4..11c78a8f 100644 --- a/anvil/packaging/yum.py +++ b/anvil/packaging/yum.py @@ -106,6 +106,15 @@ class YumDependencyHandler(base.DependencyHandler): self.yumfind_executable = sh.which("yumfind", ["tools/"]) # We inspect yum for packages, this helper allows us to do this. self.helper = yum_helper.Helper(self.log_dir) + # See if we are requested to run at a higher make parallelism level + self._jobs = self.JOBS + if 'jobs' in self.opts: + try: + self._jobs = int(self.opts.get('jobs', self.JOBS)) + if self._jobs <= 0: + self._jobs = self.JOBS + except (TypeError, ValueError): + pass def py2rpm_start_cmdline(self): cmdline = [ @@ -206,7 +215,7 @@ class YumDependencyHandler(base.DependencyHandler): utils.log_iterable(src_repo_files, header=('Building %s RPM packages from their' ' SRPMs for repo %s using %s jobs') % - (len(src_repo_files), self.SRC_REPOS[repo_name], self.JOBS), + (len(src_repo_files), self.SRC_REPOS[repo_name], self._jobs), logger=LOG) makefile_path = sh.joinpths(self.deps_dir, "binary-%s.mk" % repo_name) marks_dir = sh.joinpths(self.deps_dir, "marks-binary") @@ -233,7 +242,7 @@ class YumDependencyHandler(base.DependencyHandler): self._create_repo(repo_name) def _execute_make(self, filename, marks_dir): - cmdline = ["make", "-f", filename, "-j", str(self.JOBS)] + cmdline = ["make", "-f", filename, "-j", str(self._jobs)] out_filename = sh.joinpths(self.log_dir, "%s.log" % sh.basename(filename)) sh.execute_save_output(cmdline, cwd=marks_dir, out_filename=out_filename) @@ -393,7 +402,7 @@ class YumDependencyHandler(base.DependencyHandler): sh.write_file(makefile_path, utils.expand_template(content, params), tracewriter=self.tracewriter) utils.log_iterable(package_files, - header="Building %s SRPM packages using %s jobs" % (len(package_files), self.JOBS), + header="Building %s SRPM packages using %s jobs" % (len(package_files), self._jobs), logger=LOG) self._execute_make(makefile_path, marks_dir)