Fix "buildcache update-index --keys ..." when mirror is S3 (#19141)

This commit is contained in:
Scott Wittenburg 2020-10-19 15:24:41 -06:00 committed by GitHub
parent 449604bfe8
commit f561d3845b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -350,10 +350,15 @@ def generate_key_index(key_prefix, tmpdir=None):
for entry in web_util.list_url(key_prefix, recursive=False) for entry in web_util.list_url(key_prefix, recursive=False)
if entry.endswith('.pub')) if entry.endswith('.pub'))
remove_tmpdir = False
keys_local = url_util.local_file_path(key_prefix) keys_local = url_util.local_file_path(key_prefix)
if keys_local: if keys_local:
target = os.path.join(keys_local, 'index.json') target = os.path.join(keys_local, 'index.json')
else: else:
if not tmpdir:
tmpdir = tempfile.mkdtemp()
remove_tmpdir = True
target = os.path.join(tmpdir, 'index.json') target = os.path.join(tmpdir, 'index.json')
index = { index = {
@ -365,11 +370,15 @@ def generate_key_index(key_prefix, tmpdir=None):
sjson.dump(index, f) sjson.dump(index, f)
if not keys_local: if not keys_local:
try:
web_util.push_to_url( web_util.push_to_url(
target, target,
url_util.join(key_prefix, 'index.json'), url_util.join(key_prefix, 'index.json'),
keep_original=False, keep_original=False,
extra_args={'ContentType': 'application/json'}) extra_args={'ContentType': 'application/json'})
finally:
if remove_tmpdir:
shutil.rmtree(tmpdir)
def build_tarball(spec, outdir, force=False, rel=False, unsigned=False, def build_tarball(spec, outdir, force=False, rel=False, unsigned=False,