diff --git a/java/code/src/com/redhat/rhn/frontend/action/channel/manage/SyncRepositoriesAction.java b/java/code/src/com/redhat/rhn/frontend/action/channel/manage/SyncRepositoriesAction.java index d711b2c60b48..1541ae7b79dc 100644 --- a/java/code/src/com/redhat/rhn/frontend/action/channel/manage/SyncRepositoriesAction.java +++ b/java/code/src/com/redhat/rhn/frontend/action/channel/manage/SyncRepositoriesAction.java @@ -133,7 +133,7 @@ public ActionForward execute(ActionMapping mapping, try { Map mparams = new HashMap<>(); - String [] lparams = {"no-errata", "latest", "sync-kickstart", "fail"}; + String [] lparams = {"no-errata", "latest", "sync-kickstart", "fail", "no-strict"}; for (String p : lparams) { if (request.getParameter(p) != null) { diff --git a/java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_en_US.xml b/java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_en_US.xml index e2f35354c5bb..ae7b97b88382 100644 --- a/java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_en_US.xml +++ b/java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_en_US.xml @@ -23549,6 +23549,12 @@ given channel. /rhn/channels/manage/Sync.do + + Do not use strict mode + + /rhn/channels/manage/Sync.do + + Sync only latest packages diff --git a/java/code/src/com/redhat/rhn/taskomatic/task/RepoSyncTask.java b/java/code/src/com/redhat/rhn/taskomatic/task/RepoSyncTask.java index 3db2bf58a811..03022bba55b3 100644 --- a/java/code/src/com/redhat/rhn/taskomatic/task/RepoSyncTask.java +++ b/java/code/src/com/redhat/rhn/taskomatic/task/RepoSyncTask.java @@ -63,7 +63,7 @@ public void execute(JobExecutionContext context) throws JobExecutionException { final JobDataMap jobDataMap = context.getJobDetail().getJobDataMap(); final List channelIds = getChannelIds(jobDataMap); - List lparams = List.of("no-errata", "latest", "sync-kickstart", "fail"); + List lparams = List.of("no-errata", "latest", "sync-kickstart", "fail", "no-strict"); List ltrue = List.of("true", "1"); List params = new ArrayList<>(); for (String p : lparams) { diff --git a/java/code/webapp/WEB-INF/pages/channel/manage/syncrepos.jsp b/java/code/webapp/WEB-INF/pages/channel/manage/syncrepos.jsp index 1b071dbbaed9..06d9a734c8b0 100644 --- a/java/code/webapp/WEB-INF/pages/channel/manage/syncrepos.jsp +++ b/java/code/webapp/WEB-INF/pages/channel/manage/syncrepos.jsp @@ -78,6 +78,13 @@ +
+ +
+

- -
- +
@@ -134,7 +139,6 @@
- diff --git a/java/spacewalk-java.changes.rrichardson.reposync_package_deletion b/java/spacewalk-java.changes.rrichardson.reposync_package_deletion new file mode 100644 index 000000000000..0edc7dc0f459 --- /dev/null +++ b/java/spacewalk-java.changes.rrichardson.reposync_package_deletion @@ -0,0 +1 @@ +- Add no-strict checkbox to manage channel sync page diff --git a/python/spacewalk/satellite_tools/reposync.py b/python/spacewalk/satellite_tools/reposync.py index 4a2afd7134ce..7c9088acf821 100644 --- a/python/spacewalk/satellite_tools/reposync.py +++ b/python/spacewalk/satellite_tools/reposync.py @@ -412,7 +412,7 @@ class RepoSync(object): def __init__(self, channel_label, repo_type=None, url=None, fail=False, filters=None, no_errata=False, sync_kickstart=False, latest=False, - metadata_only=False, strict=0, excluded_urls=None, no_packages=False, + metadata_only=False, strict=False, excluded_urls=None, no_packages=False, log_dir="reposync", log_level=None, force_kickstart=False, force_all_errata=False, check_ssl_dates=True, force_null_org_content=False, show_packages_only=False, noninteractive=False, deep_verify=False): diff --git a/python/spacewalk/satellite_tools/spacewalk-repo-sync b/python/spacewalk/satellite_tools/spacewalk-repo-sync index f92f5f80ee44..7ad9f8dd5e0d 100755 --- a/python/spacewalk/satellite_tools/spacewalk-repo-sync +++ b/python/spacewalk/satellite_tools/spacewalk-repo-sync @@ -105,6 +105,7 @@ def main(): callback=reposync.set_filter_opt, type='str', nargs=1, dest='filters', default=[], help="Comma or space separated list of excluded packages or package groups.") + parser.add_option('', '--no-strict', action='store_true',help="do not unlink packages when deleted from repository", dest='no_strict') parser.add_option('', '--email', action="store_true", help="e-mail a report of what was synced/imported") parser.add_option('', '--traceback-mail', action="store", help="alternative email address(es) for sync output (--email option)") @@ -143,7 +144,7 @@ def main(): rhnLog.initLOG(log_path, log_level) log2disk(0, "Command: %s" % str(sys.argv)) - l_params=["no_errata", "sync_kickstart", "fail"] + l_params=["no_errata", "sync_kickstart", "fail", "no-strict"] d_chan_repo=reposync.getChannelRepo() l_ch_custom=reposync.getCustomChannels() d_parent_child=reposync.getParentsChilds() @@ -256,6 +257,7 @@ def main(): repo_type=options.repo_type, url=repo, fail=options.fail, + strict= not options.no_strict, noninteractive=options.noninteractive, filters=options.filters, deep_verify=options.deep_verify, diff --git a/python/spacewalk/spacewalk-backend.changes.rrichardson.reposync_package_deletion b/python/spacewalk/spacewalk-backend.changes.rrichardson.reposync_package_deletion new file mode 100644 index 000000000000..6c1862eb082b --- /dev/null +++ b/python/spacewalk/spacewalk-backend.changes.rrichardson.reposync_package_deletion @@ -0,0 +1,3 @@ +- Implement no-strict option: + * Make strict=false the default in reposync.py + * Add no-script parameter handling to spacewalk-repo-sync