Drop overloaded federation service provider schema

Fix docstring processing which might be list already (why?)

Change-Id: Ia8f88085e00d53815a68565526ca0a387d5d4dbc
This commit is contained in:
Artem Goncharov 2025-01-18 14:15:43 +01:00
parent de69003db3
commit 7eb8b00b61
3 changed files with 12 additions and 91 deletions
codegenerator
common
openapi/keystone_schemas
metadata

@ -1132,13 +1132,19 @@ class TypeManager:
return False
def sanitize_rust_docstrings(doc: str | None) -> str | None:
def sanitize_rust_docstrings(doc: str | list[str] | None) -> str | None:
"""Sanitize the string to be a valid rust docstring"""
if not doc:
return None
code_block_open: bool = False
lines: list[str] = []
for line in doc.split("\n"):
doc_lines: list[str] = []
if isinstance(doc, list):
for line in doc:
doc_lines.extend(line.split("\n"))
else:
doc_lines = doc.split("\n")
for line in doc_lines:
m = re.search(CODEBLOCK_RE, line)
if m and m.groups():
if not code_block_open:

@ -218,66 +218,6 @@ MAPPING_CREATE_SCHEMA: dict[str, Any] = {
"properties": {"mapping": MAPPING_PROPERTIES},
}
FEDERATION_SERVICE_PROVIDER_SCHEMA: dict[str, Any] = {
"type": "object",
"properties": {
"auth_url": {
"type": "string",
"description": "The URL to authenticate against",
},
"description": {
"type": ["string", "null"],
"description": "The description of the Service Provider",
},
"id": {
"type": "string",
"description": "The Service Provider unique ID",
},
"enabled": {
"type": "boolean",
"description": "Whether the Service Provider is enabled or not",
},
"relay_state_prefix": {
"type": ["string", "null"],
"description": "The prefix of the RelayState SAML attribute",
},
"sp_url": {
"type": "string",
"description": "The Service Providers URL",
},
},
"required": ["auth_url", "sp_url"],
}
FEDERATION_SERVICE_PROVIDER_CONTAINER_SCHEMA: dict[str, Any] = {
"type": "object",
"properties": {"service_provider": FEDERATION_SERVICE_PROVIDER_SCHEMA},
}
FEDERATION_SERVICE_PROVIDERS_SCHEMA: dict[str, Any] = {
"type": "object",
"properties": {
"service_providers": {
"type": "array",
"items": FEDERATION_SERVICE_PROVIDER_SCHEMA,
}
},
}
FEDERATION_SERVICE_PROVIDER_CREATE_SCHEMA: dict[str, Any] = {
"type": "object",
"properties": {
"service_provider": federation_schema.service_provider_create
},
}
FEDERATION_SERVICE_PROVIDER_UPDATE_SCHEMA: dict[str, Any] = {
"type": "object",
"properties": {
"service_provider": federation_schema.service_provider_update
},
}
def _post_process_operation_hook(
openapi_spec, operation_spec, path: str | None = None
@ -431,31 +371,6 @@ def _get_schema_ref(
name, TypeSchema(**MAPPING_CREATE_SCHEMA)
)
ref = f"#/components/schemas/{name}"
# ### Identity provider service provider
elif name == "Os_FederationService_ProvidersGetResponse":
openapi_spec.components.schemas.setdefault(
name, TypeSchema(**FEDERATION_SERVICE_PROVIDERS_SCHEMA)
)
ref = f"#/components/schemas/{name}"
elif name in [
"Os_FederationService_ProviderGetResponse",
"Os_FederationService_ProviderPutResponse",
"Os_FederationService_ProviderPatchResponse",
]:
openapi_spec.components.schemas.setdefault(
name, TypeSchema(**FEDERATION_SERVICE_PROVIDER_CONTAINER_SCHEMA)
)
ref = f"#/components/schemas/{name}"
elif name == "Os_FederationService_ProviderPutRequest":
openapi_spec.components.schemas.setdefault(
name, TypeSchema(**FEDERATION_SERVICE_PROVIDER_CREATE_SCHEMA)
)
ref = f"#/components/schemas/{name}"
elif name == "Os_FederationService_ProviderPatchRequest":
openapi_spec.components.schemas.setdefault(
name, TypeSchema(**FEDERATION_SERVICE_PROVIDER_UPDATE_SCHEMA)
)
ref = f"#/components/schemas/{name}"
# SAML2 Metadata
elif name == "Os_FederationSaml2MetadataGetResponse":
mime_type = "text/xml"

@ -1514,7 +1514,7 @@ resources:
rust-sdk:
module_name: head
show:
operation_id: OS-FEDERATION/service_providers/sp_id:get
operation_id: OS-FEDERATION/service_providers/service_provider_id:get
operation_type: show
targets:
rust-sdk:
@ -1524,7 +1524,7 @@ resources:
sdk_mod_name: get
cli_full_command: federation service-provider show
create:
operation_id: OS-FEDERATION/service_providers/sp_id:put
operation_id: OS-FEDERATION/service_providers/service_provider_id:put
operation_type: create
targets:
rust-sdk:
@ -1534,7 +1534,7 @@ resources:
sdk_mod_name: create
cli_full_command: federation service-provider create
delete:
operation_id: OS-FEDERATION/service_providers/sp_id:delete
operation_id: OS-FEDERATION/service_providers/service_provider_id:delete
operation_type: delete
targets:
rust-sdk:
@ -1544,7 +1544,7 @@ resources:
sdk_mod_name: delete
cli_full_command: federation service-provider delete
update:
operation_id: OS-FEDERATION/service_providers/sp_id:patch
operation_id: OS-FEDERATION/service_providers/service_provider_id:patch
operation_type: set
targets:
rust-sdk: