From 359cda9d993cc19e0e5400a22c49c6eb3b8e230b Mon Sep 17 00:00:00 2001 From: Andrey Smirnov Date: Wed, 8 Nov 2017 16:39:13 +0300 Subject: [PATCH] Add system test for repo with SHA512-only checksums --- system/files/nvidia.key | 52 +++++++++++++++++++++++ system/lib.py | 14 +++--- system/t04_mirror/UpdateMirror22Test_gold | 11 +++++ system/t04_mirror/update.py | 13 ++++++ 4 files changed, 84 insertions(+), 6 deletions(-) create mode 100644 system/files/nvidia.key create mode 100644 system/t04_mirror/UpdateMirror22Test_gold diff --git a/system/files/nvidia.key b/system/files/nvidia.key new file mode 100644 index 00000000..eded66cf --- /dev/null +++ b/system/files/nvidia.key @@ -0,0 +1,52 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- + +mQINBFnNWDEBEACiX68rxIWvqH3h2GykO25oK9BAqV8fDtb6lXEbw3eKx4g87BRz +M3DQBA0S0IfkQ72ovJ33H50+gVTXuu+Zme5muWk72m3pApccZVDLqdzYlpWPruNb +MC+IlWr70yo8Jw8Zr1ihbWjFvMbDJTkgqPt2djNq3xxvdiKoZlgnpLRKIpSu9iBQ +lNoZLHxTQKFH4219L77prRogv2QV1ckBL5lDVOERJuHo4jHE8mm9/NZ6v3m2HGuu +AEZ7T9nWlPGiAIP8Pww4ZRTJcBANcI2EFKPLdfP61HTH6w0kVMkoAaGlemadTDl3 +ZcLpUpTFLc+ko/2uQ1qVPx9QYyoMrorS3kUmlXrhsA7FvcB09aIcb+JX6SVkcbO5 +A5+baCa3owwUtFBXMHM5hqpLv4P3/GsuW6283YwLZCf53dJY4lJZePqzPGsvs/wS +vhnZrFvb61i/Aqm0hjhVh7h6VNxUiE8geMcjxy29LtzajoyS0EPVxes4xZu0VbS7 +8LQyCNHSpS7TFmtVUQmbXqDN7cpiyr9+yutr0lZOMc7NYQt0nP/3RtYkWEob6wXa +rVImHas1OYzlZymdO1uAnqkediS61E2vSD1OEq37/375FB/Q3AYXuNkQzDjYoJJz +9wsv7Xp0bdPzQ/daLdIFNQXo5MmVIirsWM07JvbZaJhDOiJxGn0MPf11/QARAQAB +tEBOVklESUEgQ09SUE9SQVRJT04gKE9wZW4gU291cmNlIFByb2plY3RzKSA8Y3Vk +YXRvb2xzQG52aWRpYS5jb20+iQI4BBMBCgAiBQJZzVgxAhsPBgsJCggHAwUVCgkI +CwUWAgMBAAIeAQIXgAAKCRDdyuBE95bssAh6EACgUCww2sr8sOztEHKhvdCsonXu +THYbel3YlWmVDPbh4dA31xoRXlvSJptJzPi/zlTc9fkVSFGbEZbFRR4JjnwYTMLD +ElMh5YRMYAoPVYhWGKIO4earu32GhFuPjfr6h+0xNaQeDPIbr7bPe/AEhLSdJMzI +OuAifr7UaC65A6YlxfeaSqyt0HthYujoQ12cWxP998C5jkc0IN2tyLs/OD7HLHht ++lafqDSylykx63cw7jvsV/15rqZwVwjhkcxZyrKET32MTjXF3cxn7+TGpKS8B1k4 +a/EI7uXnncfSoma0dAT9bZM9JZbXQmSzCPDHHuVtnQ/3uh8VyenpigTFnrb20LCy +6WzJd3O9lAZXLhvwF/By3a07WLzRtTZNaUpt37Anb0js2syr3lohbmK9i3xvuqZN +zhGPbqu9IV+vFgSGyTHRJUSBlHKDGiCdOOHc20MLPW1yRCXbx0F4eS9TWchYyJkJ +NNczD5DnEl/gsvL4NCRxa+oUyUhhJ1HpJ6YNmTsy6nAAKIC+6248o164GiavaR3z +03RfaQayGHAUrBKi+PJBY7efgsZeYT8f+hyYrIC04MO8poBKS/GvSUL2QtVtj59N +q+95gIptW2mZM8KRpt2huLH+QQ8SKr1vAECbpKJOwseqKmVyxX02iaSE8ifLE+tX +FE8YgS3CZjWwy5PD0LkBDQRZzVxZAQgA5eJ4zclMsxMF/CRloniHKxyqyyMDlRSR +088+WVtvcQ94ypAOh+vZ+GuTGOD6qQ23a3SrBkdi1gfilWQaQu3KMe8DCpCLavB3 +ipLKIa9ddFFFojdN43mg6JJwi1crVu/08uQfZwP7abo9/C4L00SH8VoF1Tfwv5sQ +/LbcMT2kPgHvur9B11LiU1ZL7EF0Bam+Yt5VEr6vHK/psUkR3VOlpKvDzc36V6uk +jm0qTODqoIaYhDOhUwf4PDWMj9R81VtTFGGLRXLDkWVEAOGihuar4kmhkDuNYG6/ +auyXLWx2jcQpMUSCUXuYAhbsjmyG7wFlHAnpvq5UhnNI23eT0APXwwARAQABiQNE +BBgBCgAPBQJZzVxZAhsCBQkB4TOAASkJEN3K4ET3luywwF0gBBkBCgAGBQJZzVxZ +AAoJEMRbFnagTqVSnGgIAJLCAMIwwK70tFoSc0eF1bMeb3tXQohkSVztcMU8mzEM +qejGnU+4tva5H5XOvoO2oVsuY3ycn7TjQ8wa/9G/ZxKuB6zDxRZBOXPs0eCnDuSx +rOPknlA3pFCMjihss92IjDChtEkXTSWactdAu+R1kIYbDyV9JVW2i6B/4L6f6tMc +0XdxN2kcQqqSRjQhDBefHiU8mnFXAWDgeu/BToyBzlBJSVCZeAEXHxODdIoknNeH +E5lhGTcFQz/p946BKSav991rq2Fl02RaBHFu3LL/BJKbJCz8DoMmVtY1eWYLsKO1 +mf9FdBdl36i9RcfxHH1zVQHrBWVR/guDkvARoOGByrv0OhAAhlwwrZC5Ztotk0Yi +uu3V4AZDKLZord7AgoJoXsHc1C6uCJ+WDNEHsD94fTDeMs0n/xg3oowRJ2O7PVXA +lW7asIimKtHKK8+X+G9z15R2ab3AOfsFILd3GYhVc2lKgOIR1gMg24LnLQ/RVKne +WfP04HL0sYPaCoEMll3HPKEDqIjFKROSJCsyfWM8UsX+BiDVNc/qjCe1syShtISR +nUNa687MG9hJMiGr4iEaey0nEysUYt/NA7hc1iyKyq+A0zPVDBuVfEWXiMHJgwjP +DAIRIa88No1BcYtR1B1weS6m4uggbyi4aJSxnxNg/EoqJv3NEyXfOLz+bGF65B/A +/l4gWEXzu9Vb+027+ZFTymEa8dkdqYclfnqdYuhYbOLsqVQM+ETVTPhZVos28nM3 +ivAE7EqreB+wj/V8ObN4vqzhaU0zl4ElgdyN0GYPR2mbIr4dgAgfQP66yoQvDTxK +DPFzSNC7x4ehDnowy4CrK9LKBdHISR8vorSL10MD4ehdFR3308hyUgTo8/0IUkxa +X5k2Oq99CGhIbuCFttnr1DCKNremMJVzkado7hx/C3Z1liaExG2dvnMrZBiN/S6V +Ct7CJcRi+BjUy+um8P7hJNkN7uqvfax9MgF/pvdvCGmygsQAxUoenbAY/WP1Xz44 +Os8DlMDE6fGy/6l+pHuHpT52NxE= +=cDVy +-----END PGP PUBLIC KEY BLOCK----- diff --git a/system/lib.py b/system/lib.py index 8fd0c204..619170d5 100644 --- a/system/lib.py +++ b/system/lib.py @@ -82,6 +82,12 @@ class BaseTest(object): fixtureDBDir = os.path.join(os.environ["HOME"], "aptly-fixture-db") fixturePoolDir = os.path.join(os.environ["HOME"], "aptly-fixture-pool") + fixtureGpgKeys = ["debian-archive-keyring.gpg", + "launchpad.key", + "flat.key", + "pagerduty.key", + "nvidia.key", + "jenkins.key"] outputMatchPrepare = None @@ -132,12 +138,8 @@ class BaseTest(object): self.fixtureWebServer)) if self.fixtureGpg: - self.run_cmd(["gpg", "--no-default-keyring", "--trust-model", "always", "--batch", "--keyring", "aptlytest.gpg", "--import", - os.path.join(os.path.dirname(inspect.getsourcefile(BaseTest)), "files", "debian-archive-keyring.gpg"), - os.path.join(os.path.dirname(inspect.getsourcefile(BaseTest)), "files", "launchpad.key"), - os.path.join(os.path.dirname(inspect.getsourcefile(BaseTest)), "files", "flat.key"), - os.path.join(os.path.dirname(inspect.getsourcefile(BaseTest)), "files", "pagerduty.key"), - os.path.join(os.path.dirname(inspect.getsourcefile(BaseTest)), "files", "jenkins.key")]) + self.run_cmd(["gpg", "--no-default-keyring", "--trust-model", "always", "--batch", "--keyring", "aptlytest.gpg", "--import"] + + [os.path.join(os.path.dirname(inspect.getsourcefile(BaseTest)), "files", key) for key in self.fixtureGpgKeys]) if hasattr(self, "fixtureCmds"): for cmd in self.fixtureCmds: diff --git a/system/t04_mirror/UpdateMirror22Test_gold b/system/t04_mirror/UpdateMirror22Test_gold new file mode 100644 index 00000000..e869feae --- /dev/null +++ b/system/t04_mirror/UpdateMirror22Test_gold @@ -0,0 +1,11 @@ +Downloading https://nvidia.github.io/libnvidia-container/ubuntu16.04/amd64/InRelease... +openpgp: RSA key ID C45B1676A04EA552 +openpgp: Good signature from "NVIDIA CORPORATION (Open Source Projects) " +Downloading & parsing package files... +Downloading https://nvidia.github.io/libnvidia-container/ubuntu16.04/amd64/Packages.xz... +Applying filter... +Packages filtered: 8 -> 0. +Building download queue... +Download queue: 0 items (0 B) + +Mirror `libnvidia-container` has been successfully updated. diff --git a/system/t04_mirror/update.py b/system/t04_mirror/update.py index 52ffd3a6..865eaf96 100644 --- a/system/t04_mirror/update.py +++ b/system/t04_mirror/update.py @@ -360,3 +360,16 @@ class UpdateMirror21Test(BaseTest): def output_processor(self, output): return "\n".join(line for line in output.split("\n") if ".deb" not in line) + + +class UpdateMirror22Test(BaseTest): + """ + update mirrors: SHA512 checksums only + """ + configOverride = {"gpgProvider": "internal"} + fixtureGpg = True + fixtureCmds = [ + "aptly mirror create --keyring=aptlytest.gpg --filter=nomatch libnvidia-container https://nvidia.github.io/libnvidia-container/ubuntu16.04/amd64 ./" + ] + runCmd = "aptly mirror update --keyring=aptlytest.gpg libnvidia-container" + outputMatchPrepare = filterOutSignature