Update from upstream #11
@ -1339,6 +1339,7 @@ CONFIG_DEPS = {
|
|||||||
"requires": ((lambda x: x, ["base_product_name", "base_product_short"]),),
|
"requires": ((lambda x: x, ["base_product_name", "base_product_short"]),),
|
||||||
"conflicts": ((lambda x: not x, ["base_product_name", "base_product_short"]),),
|
"conflicts": ((lambda x: not x, ["base_product_name", "base_product_short"]),),
|
||||||
},
|
},
|
||||||
|
"cts_url": {"requires": ((lambda x: x, ["translate_paths"]),)},
|
||||||
"product_id": {"conflicts": [(lambda x: not x, ["product_id_allow_missing"])]},
|
"product_id": {"conflicts": [(lambda x: not x, ["product_id_allow_missing"])]},
|
||||||
"pkgset_scratch_modules": {"requires": ((lambda x: x, ["mbs_api_url"]),)},
|
"pkgset_scratch_modules": {"requires": ((lambda x: x, ["mbs_api_url"]),)},
|
||||||
"pkgset_source": {
|
"pkgset_source": {
|
||||||
|
@ -41,6 +41,7 @@ from pungi.util import (
|
|||||||
get_arch_variant_data,
|
get_arch_variant_data,
|
||||||
get_format_substs,
|
get_format_substs,
|
||||||
get_variant_data,
|
get_variant_data,
|
||||||
|
translate_path_raw,
|
||||||
)
|
)
|
||||||
from pungi.metadata import compose_to_composeinfo
|
from pungi.metadata import compose_to_composeinfo
|
||||||
|
|
||||||
@ -95,9 +96,12 @@ def get_compose_info(
|
|||||||
# So at first backup the current environment and revert to it
|
# So at first backup the current environment and revert to it
|
||||||
# after the requests.post call.
|
# after the requests.post call.
|
||||||
cts_keytab = conf.get("cts_keytab", None)
|
cts_keytab = conf.get("cts_keytab", None)
|
||||||
|
authentication = None
|
||||||
if cts_keytab:
|
if cts_keytab:
|
||||||
environ_copy = dict(os.environ)
|
environ_copy = dict(os.environ)
|
||||||
os.environ["KRB5_CLIENT_KTNAME"] = cts_keytab
|
os.environ["KRB5_CLIENT_KTNAME"] = cts_keytab
|
||||||
|
# Enables Kerberos Authentication if cts_keytab is specified
|
||||||
|
authentication = HTTPKerberosAuth()
|
||||||
|
|
||||||
try:
|
try:
|
||||||
# Create compose in CTS and get the reserved compose ID.
|
# Create compose in CTS and get the reserved compose ID.
|
||||||
@ -108,7 +112,7 @@ def get_compose_info(
|
|||||||
"parent_compose_ids": parent_compose_ids,
|
"parent_compose_ids": parent_compose_ids,
|
||||||
"respin_of": respin_of,
|
"respin_of": respin_of,
|
||||||
}
|
}
|
||||||
rv = requests.post(url, json=data, auth=HTTPKerberosAuth())
|
rv = requests.post(url, json=data, auth=authentication)
|
||||||
rv.raise_for_status()
|
rv.raise_for_status()
|
||||||
finally:
|
finally:
|
||||||
if cts_keytab:
|
if cts_keytab:
|
||||||
@ -120,6 +124,7 @@ def get_compose_info(
|
|||||||
cts_ci.loads(rv.text)
|
cts_ci.loads(rv.text)
|
||||||
ci.compose.respin = cts_ci.compose.respin
|
ci.compose.respin = cts_ci.compose.respin
|
||||||
ci.compose.id = cts_ci.compose.id
|
ci.compose.id = cts_ci.compose.id
|
||||||
|
|
||||||
else:
|
else:
|
||||||
ci.compose.id = ci.create_compose_id()
|
ci.compose.id = ci.create_compose_id()
|
||||||
|
|
||||||
@ -138,6 +143,22 @@ def write_compose_info(compose_dir, ci):
|
|||||||
ci.dump(os.path.join(work_dir, "composeinfo-base.json"))
|
ci.dump(os.path.join(work_dir, "composeinfo-base.json"))
|
||||||
|
|
||||||
|
|
||||||
|
def update_compose_url(compose_dir, conf):
|
||||||
|
import requests
|
||||||
|
|
||||||
|
with open(os.path.join(compose_dir, "COMPOSE_ID"), "r") as f:
|
||||||
|
compose_id = f.read()
|
||||||
|
cts_url = conf.get("cts_url", None)
|
||||||
|
url = os.path.join(cts_url, "api/1/composes", compose_id)
|
||||||
|
tp = conf.get("translate_paths", None)
|
||||||
|
compose_url = translate_path_raw(tp, compose_dir)
|
||||||
|
data = {
|
||||||
|
"action": "set_url",
|
||||||
|
"compose_url": compose_url,
|
||||||
|
}
|
||||||
|
return requests.patch(url, json=data)
|
||||||
|
|
||||||
|
|
||||||
def get_compose_dir(
|
def get_compose_dir(
|
||||||
topdir,
|
topdir,
|
||||||
conf,
|
conf,
|
||||||
@ -306,6 +327,7 @@ class Compose(kobo.log.LoggingBase):
|
|||||||
get_compose_info = staticmethod(get_compose_info)
|
get_compose_info = staticmethod(get_compose_info)
|
||||||
write_compose_info = staticmethod(write_compose_info)
|
write_compose_info = staticmethod(write_compose_info)
|
||||||
get_compose_dir = staticmethod(get_compose_dir)
|
get_compose_dir = staticmethod(get_compose_dir)
|
||||||
|
update_compose_url = staticmethod(update_compose_url)
|
||||||
|
|
||||||
def __getitem__(self, name):
|
def __getitem__(self, name):
|
||||||
return self.variants[name]
|
return self.variants[name]
|
||||||
|
@ -328,6 +328,11 @@ def main():
|
|||||||
logger=logger,
|
logger=logger,
|
||||||
notifier=notifier,
|
notifier=notifier,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
rv = Compose.update_compose_url(compose_dir, conf)
|
||||||
|
if not rv.ok:
|
||||||
|
logger.error("CTS compose_url update failed with the error: %s" % rv.text)
|
||||||
|
|
||||||
errors, warnings = pungi.checks.validate(conf, offline=False)
|
errors, warnings = pungi.checks.validate(conf, offline=False)
|
||||||
if errors:
|
if errors:
|
||||||
for error in errors:
|
for error in errors:
|
||||||
|
Loading…
Reference in New Issue
Block a user