[SBI] Ignore unknown enum values and continue parsing (#2622) (#2649)

* [SBI] Ignore unknown enum values and continue parsing (#2622)

* [SBI] Reject empty enum lists (#2622)

Enum lists that are empty due to ignoring
unsupported enum values are also rejected.

* Revert changing `generator.sh`
This commit is contained in:
Brias 2023-10-26 15:44:51 +02:00 committed by GitHub
parent e3c2fd00d9
commit 3c6811a322
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
72 changed files with 978 additions and 366 deletions

View file

@ -1154,10 +1154,15 @@ OpenAPI_sm_policy_update_context_data_t *OpenAPI_sm_policy_update_context_data_p
}
localEnum = OpenAPI_policy_control_request_trigger_FromString(rep_policy_ctrl_req_triggers_local->valuestring);
if (!localEnum) {
ogs_error("OpenAPI_policy_control_request_trigger_FromString(rep_policy_ctrl_req_triggers_local->valuestring) failed");
goto end;
ogs_info("Enum value \"%s\" for field \"rep_policy_ctrl_req_triggers\" is not supported. Ignoring it ...",
rep_policy_ctrl_req_triggers_local->valuestring);
} else {
OpenAPI_list_add(rep_policy_ctrl_req_triggersList, (void *)localEnum);
}
OpenAPI_list_add(rep_policy_ctrl_req_triggersList, (void *)localEnum);
}
if (rep_policy_ctrl_req_triggersList->count == 0) {
ogs_error("OpenAPI_sm_policy_update_context_data_parseFromJSON() failed: Expected rep_policy_ctrl_req_triggersList to not be empty (after ignoring unsupported enum values).");
goto end;
}
}
@ -1722,10 +1727,15 @@ OpenAPI_sm_policy_update_context_data_t *OpenAPI_sm_policy_update_context_data_p
}
localEnum = OpenAPI_policy_decision_failure_code_FromString(policy_dec_failure_reports_local->valuestring);
if (!localEnum) {
ogs_error("OpenAPI_policy_decision_failure_code_FromString(policy_dec_failure_reports_local->valuestring) failed");
goto end;
ogs_info("Enum value \"%s\" for field \"policy_dec_failure_reports\" is not supported. Ignoring it ...",
policy_dec_failure_reports_local->valuestring);
} else {
OpenAPI_list_add(policy_dec_failure_reportsList, (void *)localEnum);
}
OpenAPI_list_add(policy_dec_failure_reportsList, (void *)localEnum);
}
if (policy_dec_failure_reportsList->count == 0) {
ogs_error("OpenAPI_sm_policy_update_context_data_parseFromJSON() failed: Expected policy_dec_failure_reportsList to not be empty (after ignoring unsupported enum values).");
goto end;
}
}
@ -1803,10 +1813,15 @@ OpenAPI_sm_policy_update_context_data_t *OpenAPI_sm_policy_update_context_data_p
}
localEnum = OpenAPI_dl_data_delivery_status_FromString(types_of_notif_local->valuestring);
if (!localEnum) {
ogs_error("OpenAPI_dl_data_delivery_status_FromString(types_of_notif_local->valuestring) failed");
goto end;
ogs_info("Enum value \"%s\" for field \"types_of_notif\" is not supported. Ignoring it ...",
types_of_notif_local->valuestring);
} else {
OpenAPI_list_add(types_of_notifList, (void *)localEnum);
}
OpenAPI_list_add(types_of_notifList, (void *)localEnum);
}
if (types_of_notifList->count == 0) {
ogs_error("OpenAPI_sm_policy_update_context_data_parseFromJSON() failed: Expected types_of_notifList to not be empty (after ignoring unsupported enum values).");
goto end;
}
}