From f9cd7bdc50fad6c24ac226a6532ecfb81d78cbe2 Mon Sep 17 00:00:00 2001 From: Scott Worley Date: Thu, 9 Apr 2020 16:33:22 -0700 Subject: [PATCH] Verify channel tarball metadata --- pinch.py | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/pinch.py b/pinch.py index 1a97f53..c77d891 100644 --- a/pinch.py +++ b/pinch.py @@ -318,11 +318,37 @@ def git_checkout(v: Verification, channel: Channel, dest: str) -> None: v.result(git.returncode == 0 and tar.returncode == 0) +def check_channel_metadata( + v: Verification, + channel: Channel, + channel_contents: str) -> None: + v.status('Verifying git commit in channel tarball') + v.result( + open( + os.path.join( + channel_contents, + channel.release_name, + '.git-revision')).read(999) == channel.git_commit) + + v.status( + 'Verifying version-suffix is a suffix of release name %s:' % + channel.release_name) + version_suffix = open( + os.path.join( + channel_contents, + channel.release_name, + '.version-suffix')).read(999) + v.status(version_suffix) + v.result(channel.release_name.endswith(version_suffix)) + + def check_channel_contents(v: Verification, channel: Channel) -> None: with tempfile.TemporaryDirectory() as channel_contents, \ tempfile.TemporaryDirectory() as git_contents: extract_tarball(v, channel, channel_contents) + check_channel_metadata(v, channel, channel_contents) + git_checkout(v, channel, git_contents) compare_tarball_and_git(v, channel, channel_contents, git_contents) -- 2.44.1