compose.py: add osbuild plugin api client
A client that will create a compose request via the koji plugins.
This commit is contained in:
parent
b9b3680809
commit
64ffe431ec
1 changed files with 56 additions and 0 deletions
56
compose.py
Executable file
56
compose.py
Executable file
|
|
@ -0,0 +1,56 @@
|
||||||
|
#!/usr/bin/python3
|
||||||
|
import argparse
|
||||||
|
import koji
|
||||||
|
import os
|
||||||
|
|
||||||
|
from pprint import pprint
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
|
parser = argparse.ArgumentParser(description="osbuild koji client")
|
||||||
|
parser.add_argument("--url", metavar="URL", type=str,
|
||||||
|
default="https://localhost/kojihub",
|
||||||
|
help="The URL koji hub API endpoint")
|
||||||
|
parser.add_argument("--repo", metavar="REPO", help='The repository to use',
|
||||||
|
type=str, action="append", default=[])
|
||||||
|
parser.add_argument("--user", metavar="USER", default="kojiadmin")
|
||||||
|
parser.add_argument("--password", metavar="PASSWORD", default="kojipass")
|
||||||
|
parser.add_argument("--principal", metavar="USER", default="osbuild-krb@LOCAL")
|
||||||
|
parser.add_argument("--keytab", metavar="FILE", help="kerberos keytab",
|
||||||
|
default="/tmp/osbuild-composer-koji-test/client.keytab")
|
||||||
|
parser.add_argument("--serverca", metavar="FILE", help="Server CA",
|
||||||
|
default="/tmp/osbuild-composer-koji-test/ca-crt.pem")
|
||||||
|
parser.add_argument("--plain", help="use plain text login",
|
||||||
|
default=False, action="store_true")
|
||||||
|
parser.add_argument("name", metavar="NAME", help='The distribution name')
|
||||||
|
parser.add_argument("version", metavar="VERSION", help='The distribution version')
|
||||||
|
parser.add_argument("target", metavar="TARGET", help='The build target')
|
||||||
|
parser.add_argument("arch", metavar="ARCHITECTURE", help='Request the architecture',
|
||||||
|
type=str, nargs="+")
|
||||||
|
args = parser.parse_args()
|
||||||
|
|
||||||
|
opts = {"user": args.user, "password": args.password, "serverca": args.serverca}
|
||||||
|
session = koji.ClientSession(args.url, opts)
|
||||||
|
if args.plain:
|
||||||
|
session.login()
|
||||||
|
else:
|
||||||
|
session.gssapi_login(principal=args.principal, keytab=args.keytab)
|
||||||
|
|
||||||
|
name, version, arch, target = args.name, args.version, args.arch, args.target
|
||||||
|
|
||||||
|
opts = {}
|
||||||
|
if args.repo:
|
||||||
|
opts["repo"] = ",".join(args.repo)
|
||||||
|
|
||||||
|
print("name:", name)
|
||||||
|
print("version:", version)
|
||||||
|
print("arches:", ", ".join(arch))
|
||||||
|
print("target:", target)
|
||||||
|
if opts:
|
||||||
|
pprint(opts)
|
||||||
|
|
||||||
|
session.osbuildImageTest(name, version, arch, target, opts=opts)
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
main()
|
||||||
Loading…
Add table
Add a link
Reference in a new issue