sts-sponsors team mailing list archive
-
sts-sponsors team
-
Mailing list archive
-
Message #05582
[Merge] ~lloydwaltersj/maas:fix-broken-oapi-param-names into maas:master
Jack Lloyd-Walters has proposed merging ~lloydwaltersj/maas:fix-broken-oapi-param-names into maas:master.
Commit message:
fix LP:2009140, OpenApi parameter names erroneously stripped of trailing '}'
Requested reviews:
MAAS Lander (maas-lander): unittests
MAAS Maintainers (maas-maintainers)
Related bugs:
Bug #2009140 in MAAS: "MAAS OpenApi Schema cutoff variable names"
https://bugs.launchpad.net/maas/+bug/2009140
For more details, see:
https://code.launchpad.net/~lloydwaltersj/maas/+git/maas/+merge/438279
--
Your team MAAS Committers is subscribed to branch maas:master.
diff --git a/src/maasserver/api/doc_oapi.py b/src/maasserver/api/doc_oapi.py
index b7e3a9d..2fba4c8 100644
--- a/src/maasserver/api/doc_oapi.py
+++ b/src/maasserver/api/doc_oapi.py
@@ -213,8 +213,9 @@ def _oapi_item_from_docstring(
oper_obj["deprecated"] = True
for param in ap_dict["params"]:
description = _prettify(param["description_stripped"])
- name = param["name"].strip("}{")
- path_var = name in uri_params
+ # LP 2009140
+ stripped_name = re.match(r"(?<=\{)\.+(?<=\})", param["name"])
+ name = param["name"] if not stripped_name else stripped_name.group()
required = (
param["options"]["required"].lower() == "true"
or name != param["name"]
@@ -223,7 +224,7 @@ def _oapi_item_from_docstring(
if name != param["name"]:
param_dict = {
"name": name,
- "in": "path" if path_var else "query",
+ "in": "path" if name in uri_params else "query",
"description": description,
"schema": {
"type": _type_to_string(param["type"]),