Actually mark the upload/deploy as errored if pre-authorization fails
authorJon Turney <jon.turney@dronecode.org.uk>
Wed, 9 Jul 2025 16:07:47 +0000 (17:07 +0100)
committerJon Turney <jon.turney@dronecode.org.uk>
Thu, 10 Jul 2025 19:59:02 +0000 (20:59 +0100)
This ensures correct feedback to scallywag when a user attempts a deploy
which they are not authorized for.

Also, update tests appropriately.
Also, fix a typo noticed while investigating.

calm/calm.py
calm/uploads.py
test/test_calm.py

index 887d46984f8e6c2be1d44d6ae50ace787239d522..21cb30f0c14f199317f1cd67052d5aee2c0afabd 100755 (executable)
@@ -188,7 +188,7 @@ def process_maintainer_uploads(args, state, all_packages, m, basedir, desc, scru
         uploads.auth_check(args, m, scan_result, state.packages)
 
     if scan_result.error:
-        logging.error("error while reading uploadedpackages from maintainer %s" % (m.name))
+        logging.error("error while reading uploaded packages from maintainer %s" % (m.name))
         success = False
 
     if success:
index 1c2d922a09a2b10afba10d40fe5c7e47d6399041..412bfe611a7c1834a221fd87f773451395a21899 100644 (file)
@@ -156,11 +156,13 @@ def scan(scandir, m, all_packages, args):
         # package doesn't appear in package list at all?
         superpackage = splitpath[2]
         if superpackage not in all_packages:
+            error = True
             logging.error("package '%s' is not in the package list" % superpackage)
             continue
 
         # only process packages for which we are listed as a maintainer, or we are a trusted maintainer
         if not ((superpackage in m.pkgs) or (m.name in args.trustedmaint.split('/'))):
+            error = True
             logging.warning("package '%s' is not in the package list for maintainer '%s'" % (superpackage, m.name))
             continue
 
index c87ad6cad44f264d70e5fc288b8a56797c49d3b6..78effd11a7c2f356add07ea18e8ee212db23fbfb 100755 (executable)
@@ -314,7 +314,7 @@ class CalmTest(unittest.TestCase):
         oldcwd = os.getcwd()
         os.chdir(test_root)
 
-        pkglist = ['after-ready', 'not-ready', 'testpackage', 'testpackage2', 'testpackage-zstd']
+        pkglist = ['after-ready', 'corrupt', 'not-ready', 'testpackage', 'testpackage2', 'testpackage-zstd']
 
         mlist = {}
         mlist = maintainers.add_directories(mlist, 'testdata/homes')
@@ -468,7 +468,6 @@ class CalmTest(unittest.TestCase):
         # set appropriate !readys
         m_homedir = os.path.join(args.homedir, 'Blooey McFooey')
         ready_fns = [(os.path.join(m_homedir, 'x86_64', 'release', 'testpackage', '!ready'), ''),
-                     (os.path.join(m_homedir, 'x86_64', 'release', 'testpackage2', 'testpackage2-subpackage', '!ready'), ''),
                      (os.path.join(m_homedir, 'x86_64', 'release', 'after-ready', '!ready'), '-t 198709011700'),
                      (os.path.join(m_homedir, 'noarch', 'release', 'perl-Net-SMTP-SSL', '!ready'), ''),
                      (os.path.join(m_homedir, 'x86_64', 'release', 'corrupt', '!ready'), ''),
This page took 0.123436 seconds and 5 git commands to generate.