|
Packit Service |
863627 |
#!/usr/bin/python3
|
|
Packit Service |
863627 |
"""
|
|
Packit Service |
863627 |
Download packages via dnf
|
|
Packit Service |
863627 |
"""
|
|
Packit Service |
863627 |
|
|
Packit Service |
863627 |
|
|
Packit Service |
863627 |
import json
|
|
Packit Service |
863627 |
import sys
|
|
Packit Service |
863627 |
|
|
Packit Service |
863627 |
|
|
Packit Service |
863627 |
SCHEMA = """
|
|
Packit Service |
863627 |
"additionalProperties": true
|
|
Packit Service |
863627 |
"""
|
|
Packit Service |
863627 |
|
|
Packit Service |
863627 |
|
|
Packit Service |
863627 |
def main(options, sources, secrets):
|
|
Packit Service |
863627 |
repos = options.get("repos", {})
|
|
Packit Service |
863627 |
repo_secrets = secrets.get("repos", {})
|
|
Packit Service |
863627 |
|
|
Packit Service |
863627 |
reply = []
|
|
Packit Service |
863627 |
for checksum in sources:
|
|
Packit Service |
863627 |
try:
|
|
Packit Service |
863627 |
source_repo = repos[checksum]
|
|
Packit Service |
863627 |
source_repo_secrets = repo_secrets.get(checksum, {})
|
|
Packit Service |
863627 |
except KeyError:
|
|
Packit Service |
863627 |
json.dump({"error": f"source unknown: {checksum}"}, sys.stdout)
|
|
Packit Service |
863627 |
return 1
|
|
Packit Service |
863627 |
|
|
Packit Service |
863627 |
repo = {"checksum": checksum}
|
|
Packit Service |
863627 |
|
|
Packit Service |
863627 |
if "baseurl" in source_repo:
|
|
Packit Service |
863627 |
repo["baseurl"] = source_repo["baseurl"]
|
|
Packit Service |
863627 |
elif "mirrorlist" in source_repo:
|
|
Packit Service |
863627 |
repo["mirrorlist"] = source_repo["mirrorlist"]
|
|
Packit Service |
863627 |
elif "metalink" in source_repo:
|
|
Packit Service |
863627 |
repo["metalink"] = source_repo["metalink"]
|
|
Packit Service |
863627 |
else:
|
|
Packit Service |
863627 |
json.dump({"error": f"repo {checksum} is missing baseurl, mirrorlist, or metalink key"}, sys.stdout)
|
|
Packit Service |
863627 |
|
|
Packit Service |
863627 |
if "sslcacert" in source_repo:
|
|
Packit Service |
863627 |
repo["sslcacert"] = source_repo["sslcacert"]
|
|
Packit Service |
863627 |
|
|
Packit Service |
863627 |
if "gpgkey" in source_repo:
|
|
Packit Service |
863627 |
repo["gpgkey"] = source_repo["gpgkey"]
|
|
Packit Service |
863627 |
|
|
Packit Service |
863627 |
if "sslclientcert" in source_repo_secrets:
|
|
Packit Service |
863627 |
repo["sslclientcert"] = source_repo_secrets["sslclientcert"]
|
|
Packit Service |
863627 |
|
|
Packit Service |
863627 |
if "sslclientkey" in source_repo_secrets:
|
|
Packit Service |
863627 |
repo["sslclientkey"] = source_repo_secrets["sslclientkey"]
|
|
Packit Service |
863627 |
|
|
Packit Service |
863627 |
reply.append(repo)
|
|
Packit Service |
863627 |
|
|
Packit Service |
863627 |
json.dump(reply, sys.stdout)
|
|
Packit Service |
863627 |
return 0
|
|
Packit Service |
863627 |
|
|
Packit Service |
863627 |
|
|
Packit Service |
863627 |
if __name__ == '__main__':
|
|
Packit Service |
863627 |
args = json.load(sys.stdin)
|
|
Packit Service |
863627 |
r = main(args["options"], args["checksums"], args.get("secrets", {}))
|
|
Packit Service |
863627 |
sys.exit(r)
|