diff --git a/CHANGES/903.bugfix b/CHANGES/903.bugfix new file mode 100644 index 000000000..5bb14b477 --- /dev/null +++ b/CHANGES/903.bugfix @@ -0,0 +1 @@ +Optimize mode can now take effect, when switching from mirrored to not mirrored mode between syncs. diff --git a/pulp_deb/app/tasks/synchronizing.py b/pulp_deb/app/tasks/synchronizing.py index e5ccac9a9..87e8cace0 100644 --- a/pulp_deb/app/tasks/synchronizing.py +++ b/pulp_deb/app/tasks/synchronizing.py @@ -546,7 +546,6 @@ def __init__(self, remote, optimize, mirror, previous_repo_version, *args, **kwa self.remote = remote self.optimize = optimize self.previous_repo_version = previous_repo_version - self.previous_sync_info = defaultdict(dict, previous_repo_version.info) self.sync_info = defaultdict() self.sync_info["remote_options"] = self._gen_remote_options() self.sync_info["sync_options"] = { @@ -554,11 +553,14 @@ def __init__(self, remote, optimize, mirror, previous_repo_version, *args, **kwa "mirror": mirror, } self.parsed_url = urlparse(remote.url) - self.sync_options_unchanged = ( - self.previous_sync_info["remote_options"] == self.sync_info["remote_options"] - and self.previous_sync_info["sync_options"]["mirror"] - == self.sync_info["sync_options"]["mirror"] - ) + if self.optimize: + previous_sync_info = defaultdict(dict, self.previous_repo_version.info) + if not previous_sync_info["remote_options"] == self.sync_info["remote_options"]: + log.info(_("Setting optimize=False since the remote options have changed.")) + self.optimize = False + if mirror and not previous_sync_info["sync_options"]["mirror"]: + log.info(_("Setting optimize=False since this sync switches to mirror=True.")) + self.optimize = False async def run(self): """ @@ -618,7 +620,7 @@ async def _handle_distribution(self, distribution): release_file = await self._create_unit(release_file_dc) if release_file is None: return - if self.optimize and self.sync_options_unchanged: + if self.optimize: previous_release_file = await _get_previous_release_file( self.previous_repo_version, distribution ) @@ -899,7 +901,7 @@ async def _handle_package_index( else: raise NoPackageIndexFile(relative_dir=package_index_dir) - if self.optimize and self.sync_options_unchanged: + if self.optimize: previous_package_index = await _get_previous_package_index( self.previous_repo_version, relative_path )