From bbb697da850d7dd7c372e5e46037274fced8a0eb Mon Sep 17 00:00:00 2001 From: Mohan Boddu Date: Aug 13 2020 15:56:37 +0000 Subject: [PATCH 1/3] Generate the private odcs compose for all arches Signed-off-by: Mohan Boddu --- diff --git a/scripts/odcs-private-compose.py b/scripts/odcs-private-compose.py index 12ba711..33650a9 100755 --- a/scripts/odcs-private-compose.py +++ b/scripts/odcs-private-compose.py @@ -25,5 +25,6 @@ odcs = ODCS("https://odcs.fedoraproject.org", source = ComposeSourceTag(tag) # Making a private compose with no inheritance -compose = odcs.request_compose(source, target_dir="private", flags=["no_inheritance"]) +arches = ["armv7hl", "i686", "x86_64", "aarch64", "ppc64le", "s390x"] +compose = odcs.request_compose(source, target_dir="private", arches = arches, flags=["no_inheritance"]) print(compose) From 8bdbf173a7144d564be862e5a91e5b7d9a2a5ace Mon Sep 17 00:00:00 2001 From: Mohan Boddu Date: Aug 13 2020 16:00:48 +0000 Subject: [PATCH 2/3] Adding some usage to odcs-private-compose.py Signed-off-by: Mohan Boddu --- diff --git a/scripts/odcs-private-compose.py b/scripts/odcs-private-compose.py index 33650a9..0f2fd21 100755 --- a/scripts/odcs-private-compose.py +++ b/scripts/odcs-private-compose.py @@ -7,6 +7,17 @@ # Private compose from a tag using odcs # +""" + +Usage: python odcs-private-compose.py + +This is used to generate private composes using ODCS. +This script is specifically used to generate openh264 repos. +The compsoe is stored in /srv/odcs/private/ dir on +odcs-backend-releng01.iad2.fedoraproject.org + +""" + import argparse from odcs.client.odcs import ODCS, AuthMech, ComposeSourceTag From d3385cabec0dc67c760043bfefab7cd9bbb15916 Mon Sep 17 00:00:00 2001 From: Mohan Boddu Date: Aug 13 2020 16:03:45 +0000 Subject: [PATCH 3/3] Adding a script to generate odcs token Also, moving the odcs related scripts to odcs/ dir Signed-off-by: Mohan Boddu --- diff --git a/scripts/odcs-private-compose.py b/scripts/odcs-private-compose.py deleted file mode 100755 index 0f2fd21..0000000 --- a/scripts/odcs-private-compose.py +++ /dev/null @@ -1,41 +0,0 @@ -#!/usr/bin/python -# -*- coding: utf-8 -*- -# -# SPDX-License-Identifier: GPL-2.0 -# Author: Mohan Boddu -# -# Private compose from a tag using odcs -# - -""" - -Usage: python odcs-private-compose.py - -This is used to generate private composes using ODCS. -This script is specifically used to generate openh264 repos. -The compsoe is stored in /srv/odcs/private/ dir on -odcs-backend-releng01.iad2.fedoraproject.org - -""" - -import argparse -from odcs.client.odcs import ODCS, AuthMech, ComposeSourceTag - -# We need oidc token to authenticate to odcs and a koji tag to compose from -parser = argparse.ArgumentParser() -parser.add_argument("token", help="OIDC token for authenticating to ODCS") -parser.add_argument("tag", help="koji tag to compose") -args = parser.parse_args() -token = args.token -tag = args.tag - -odcs = ODCS("https://odcs.fedoraproject.org", - auth_mech=AuthMech.OpenIDC, - openidc_token=token) - -source = ComposeSourceTag(tag) - -# Making a private compose with no inheritance -arches = ["armv7hl", "i686", "x86_64", "aarch64", "ppc64le", "s390x"] -compose = odcs.request_compose(source, target_dir="private", arches = arches, flags=["no_inheritance"]) -print(compose) diff --git a/scripts/odcs/odcs-private-compose.py b/scripts/odcs/odcs-private-compose.py new file mode 100755 index 0000000..0f2fd21 --- /dev/null +++ b/scripts/odcs/odcs-private-compose.py @@ -0,0 +1,41 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# SPDX-License-Identifier: GPL-2.0 +# Author: Mohan Boddu +# +# Private compose from a tag using odcs +# + +""" + +Usage: python odcs-private-compose.py + +This is used to generate private composes using ODCS. +This script is specifically used to generate openh264 repos. +The compsoe is stored in /srv/odcs/private/ dir on +odcs-backend-releng01.iad2.fedoraproject.org + +""" + +import argparse +from odcs.client.odcs import ODCS, AuthMech, ComposeSourceTag + +# We need oidc token to authenticate to odcs and a koji tag to compose from +parser = argparse.ArgumentParser() +parser.add_argument("token", help="OIDC token for authenticating to ODCS") +parser.add_argument("tag", help="koji tag to compose") +args = parser.parse_args() +token = args.token +tag = args.tag + +odcs = ODCS("https://odcs.fedoraproject.org", + auth_mech=AuthMech.OpenIDC, + openidc_token=token) + +source = ComposeSourceTag(tag) + +# Making a private compose with no inheritance +arches = ["armv7hl", "i686", "x86_64", "aarch64", "ppc64le", "s390x"] +compose = odcs.request_compose(source, target_dir="private", arches = arches, flags=["no_inheritance"]) +print(compose) diff --git a/scripts/odcs/odcs-token.py b/scripts/odcs/odcs-token.py new file mode 100755 index 0000000..8d660a2 --- /dev/null +++ b/scripts/odcs/odcs-token.py @@ -0,0 +1,48 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# SPDX-License-Identifier: GPL-2.0 +# Author: Mohan Boddu +# +# Private compose from a tag using odcs +# + +""" + +Usage: python odcs-token.py + +This is used to generate a token needed to run odcs composes + +""" + +import openidc_client +staging = False + +if staging: + id_provider = 'https://id.stg.fedoraproject.org/openidc/' +else: + id_provider = 'https://id.fedoraproject.org/openidc/' + +# Get the auth token using the OpenID client. +oidc = openidc_client.OpenIDCClient( + 'odcs', + id_provider, + {'Token': 'Token', 'Authorization': 'Authorization'}, + 'odcs-authorizer', + 'notsecret', +) + +scopes = [ + 'openid', + 'https://id.fedoraproject.org/scope/groups', + 'https://pagure.io/odcs/new-compose', + 'https://pagure.io/odcs/renew-compose', + 'https://pagure.io/odcs/delete-compose', +] +try: + token = oidc.get_token(scopes, new_token=True) + token = oidc.report_token_issue() + print(token) +except requests.exceptions.HTTPError as e: + print(e.response.text) + raise