commit: e27762011461e8fb4761412a96ede630740684eb
Author: Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Jan 30 16:39:58 2018 +0000
Commit: Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue Jan 30 19:15:55 2018 +0000
URL: https://gitweb.gentoo.org/proj/portage.git/commit/?id=e2776201
rsync: Support overriding number of jobs for verification
Requested-by: Ulrich Müller <ulm <AT> gentoo.org>
Reviewed-by: Zac Medico <zmedico <AT> gentoo.org>
man/portage.5 | 4 ++++
pym/portage/sync/modules/rsync/__init__.py | 1 +
pym/portage/sync/modules/rsync/rsync.py | 5 +++++
3 files changed, 10 insertions(+)
diff --git a/man/portage.5 b/man/portage.5
index 2d444a86f..84999bd2f 100644
--- a/man/portage.5
+++ b/man/portage.5
@@ -1081,6 +1081,10 @@ Ignore vcs directories that may be present in the
repository. It is the
user's responsibility to set sync-rsync-extra-opts to protect vcs
directories if appropriate.
.TP
+.B sync\-rsync\-verify\-jobs
+Number of parallel jobs to use when verifying nested Manifests. Defaults
+to the apparent number of processors.
+.TP
.B sync\-rsync\-verify\-metamanifest = true|false
Require the repository to contain a signed MetaManifest and verify
it using \fBapp\-portage/gemato\fR. Defaults to false.
diff --git a/pym/portage/sync/modules/rsync/__init__.py
b/pym/portage/sync/modules/rsync/__init__.py
index df9a1995a..14af2120c 100644
--- a/pym/portage/sync/modules/rsync/__init__.py
+++ b/pym/portage/sync/modules/rsync/__init__.py
@@ -29,6 +29,7 @@ module_spec = {
'sync-rsync-extra-opts',
'sync-rsync-openpgp-key-path',
'sync-rsync-vcs-ignore',
+ 'sync-rsync-verify-jobs',
'sync-rsync-verify-metamanifest',
),
}
diff --git a/pym/portage/sync/modules/rsync/rsync.py
b/pym/portage/sync/modules/rsync/rsync.py
index 47f0e1ea3..552ac6f6b 100644
--- a/pym/portage/sync/modules/rsync/rsync.py
+++ b/pym/portage/sync/modules/rsync/rsync.py
@@ -91,6 +91,9 @@ class RsyncSync(NewBase):
self.openpgp_key_path = (
self.repo.module_specific_options.get(
'sync-rsync-openpgp-key-path', None))
+ # Support overriding job count.
+ self.verify_jobs = self.repo.module_specific_options.get(
+ 'sync-rsync-verify-jobs', None)
# Real local timestamp file.
self.servertimestampfile = os.path.join(
@@ -275,6 +278,8 @@ class RsyncSync(NewBase):
command = ['gemato', 'verify', '-s', self.repo.location]
if self.openpgp_key_path is not None:
command += ['-K', self.openpgp_key_path]
+ if self.verify_jobs is not None:
+ command += ['-j', self.verify_jobs]
exitcode = portage.process.spawn(command,
**self.spawn_kwargs)
return (exitcode, updatecache_flg)