From 7b4c7aa3d134c3aaf5bbfeeea90a910c40199eaf Mon Sep 17 00:00:00 2001 From: Tomas Kopecek Date: Mar 03 2020 13:13:53 +0000 Subject: PR#1891: Disable notifications from clone-tag by default Merges #1891 https://pagure.io/koji/pull-request/1891 Fixes: #1890 https://pagure.io/koji/issue/1890 clone-tag should not generate notifications --- diff --git a/Makefile b/Makefile index 995b23f..cee8982 100644 --- a/Makefile +++ b/Makefile @@ -81,7 +81,7 @@ test: test2 test3 test2: coverage2 erase PYTHONPATH=hub/.:plugins/hub/.:plugins/builder/.:plugins/cli/.:cli/.:www/lib coverage2 run \ - --source . /usr/bin/nosetests + --source . -m nose coverage2 report coverage2 html @echo Full coverage report at file://${CURDIR}/htmlcov/py2/index.html @@ -89,8 +89,7 @@ test2: test3: coverage3 erase --rcfile .coveragerc3 PYTHONPATH=hub/.:plugins/hub/.:plugins/builder/.:plugins/cli/.:cli/.:www/lib coverage3 run \ - --rcfile .coveragerc3 --source . \ - /usr/bin/nosetests-3 + --rcfile .coveragerc3 --source . -m nose coverage3 report --rcfile .coveragerc3 coverage3 html --rcfile .coveragerc3 @echo Full coverage report at file://${CURDIR}/htmlcov/py3/index.html diff --git a/cli/koji_cli/commands.py b/cli/koji_cli/commands.py index d721893..08c9544 100644 --- a/cli/koji_cli/commands.py +++ b/cli/koji_cli/commands.py @@ -3272,6 +3272,8 @@ def handle_clone_tag(goptions, session, args): help=_('Clone tag at a specific repo event')) parser.add_option("-v", "--verbose", action="store_true", help=_("show changes")) + parser.add_option("--notify", action="store_true", default=False, + help=_('Send tagging/untagging notifications')) parser.add_option("-f", "--force", action="store_true", help=_("override tag locks if necessary")) parser.add_option("-n", "--test", action="store_true", help=_("test mode")) @@ -3371,7 +3373,8 @@ def handle_clone_tag(goptions, session, args): if not options.test: session.tagBuildBypass(newtag['name'], build, - force=options.force) + force=options.force, + notify=options.notify) if not options.test: session.multiCall(batch=options.batch) if options.groups: @@ -3546,7 +3549,8 @@ def handle_clone_tag(goptions, session, args): if not options.test: session.untagBuildBypass(dsttag['name'], build, - force=options.force) + force=options.force, + notify=options.notify) if not options.test: session.multiCall(batch=options.batch) # ADD builds. @@ -3565,7 +3569,8 @@ def handle_clone_tag(goptions, session, args): if not options.test: session.tagBuildBypass(dsttag['name'], build, - force=options.force) + force=options.force, + notify=options.notify) if not options.test: session.multiCall(batch=options.batch) # ADD groups. @@ -3631,7 +3636,8 @@ def handle_clone_tag(goptions, session, args): if not options.test: session.untagBuildBypass(dsttag['name'], build, - force=options.force) + force=options.force, + notify=options.notify) # now safe to remove package itself since we resolved its builds. chgpkglist.append(('[del]', pkg['package_name'], diff --git a/tests/test_cli/test_clone_tag.py b/tests/test_cli/test_clone_tag.py index 8257097..1fde1ce 100644 --- a/tests/test_cli/test_clone_tag.py +++ b/tests/test_cli/test_clone_tag.py @@ -244,25 +244,29 @@ clone-tag will create the destination tag if it does not already exist 'nvr': 'pkg2-1.0-1', 'package_name': 'pkg2', 'state': 2, 'tag_name': 'src-tag-p', - 'name': 'pkg2'}, force=None), + 'name': 'pkg2'}, force=None, + notify=False), call.tagBuildBypass('dst-tag', { 'owner_name': 'b_owner', 'nvr': 'pkg1-1.0-1', 'package_name': 'pkg1', 'state': 1, 'tag_name': 'src-tag', - 'name': 'pkg1'}, force=None), + 'name': 'pkg1'}, force=None, + notify=False), call.tagBuildBypass('dst-tag', { 'owner_name': 'b_owner', 'nvr': 'pkg1-1.0-2', 'package_name': 'pkg1', 'state': 1, 'tag_name': 'src-tag', - 'name': 'pkg1'}, force=None), + 'name': 'pkg1'}, force=None, + notify=False), call.tagBuildBypass('dst-tag', { 'owner_name': 'b_owner', 'nvr': 'pkg1-1.1-2', 'package_name': 'pkg1', 'state': 1, 'tag_name': 'src-tag', - 'name': 'pkg1'}, force=None), + 'name': 'pkg1'}, force=None, + notify=False), call.multiCall(batch=1000), call.getTagGroups('src-tag', event=None), @@ -506,38 +510,44 @@ List of changes: 'nvr': 'pkg1-2.1-2', 'package_name': 'pkg1', 'state': 1, 'tag_name': 'dst-tag', - 'name': 'pkg1'}, force=None), + 'name': 'pkg1'}, force=None, + notify=False), call.untagBuildBypass('dst-tag', { 'owner_name': 'b_owner', 'nvr': 'pkg1-0.1-1', 'package_name': 'pkg1', 'state': 1, 'tag_name': 'dst-tag', - 'name': 'pkg1'}, force=None), + 'name': 'pkg1'}, force=None, + notify=False), call.untagBuildBypass('dst-tag', { 'owner_name': 'b_owner', 'nvr': 'pkg3-1.0-1', 'package_name': 'pkg3', 'state': 1, 'tag_name': 'dst-tag', - 'name': 'pkg3'}, force=None), + 'name': 'pkg3'}, force=None, + notify=False), call.multiCall(batch=1000), call.tagBuildBypass('dst-tag', { 'owner_name': 'b_owner', 'nvr': 'pkg1-0.1-1', 'package_name': 'pkg1', 'state': 1, 'tag_name': 'src-tag', - 'name': 'pkg1'}, force=None), + 'name': 'pkg1'}, force=None, + notify=False), call.tagBuildBypass('dst-tag', { 'owner_name': 'b_owner', 'nvr': 'pkg1-1.0-2', 'package_name': 'pkg1', 'state': 1, 'tag_name': 'src-tag', - 'name': 'pkg1'}, force=None), + 'name': 'pkg1'}, force=None, + notify=False), call.tagBuildBypass('dst-tag', { 'owner_name': 'b_owner', 'nvr': 'pkg1-1.1-2', 'package_name': 'pkg1', 'state': 1, 'tag_name': 'src-tag', - 'name': 'pkg1'}, force=None), + 'name': 'pkg1'}, force=None, + notify=False), call.multiCall(batch=1000), call.multiCall(batch=1000), call.groupPackageListAdd('dst-tag', @@ -633,6 +643,7 @@ Options: --event=EVENT Clone tag at a specific event --repo=REPO Clone tag at a specific repo event -v, --verbose show changes + --notify Send tagging/untagging notifications -f, --force override tag locks if necessary -n, --test test mode --batch=SIZE batch size of multicalls [0 to disable, default: 1000]