Loading edge_cloud_management_api/controllers/app_controllers.py +71 −43 Original line number Diff line number Diff line Loading @@ -90,6 +90,28 @@ def _ensure_res_pool(value, fallback_source): return candidate[:32] def _normalize_federated_app_id(app_id): pattern = ( r"^(?:[A-Za-z][A-Za-z0-9_]{7,63}|" r"[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-" r"[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$" ) if app_id and re.match(pattern, str(app_id)): return app_id return str(uuid.uuid5(uuid.NAMESPACE_URL, f"federated-app:{app_id}")) def _normalize_federated_app_provider_id(app_provider_id, fallback_source): return _ensure_gsma_id( app_provider_id, r"^[A-Za-z][A-Za-z0-9_]{7,63}$", "provider", 8, 64, fallback_source, ) def submit_app(body: dict): """ Controller for submitting application metadata. Loading Loading @@ -304,6 +326,8 @@ def create_app_instance(): "appId": app_id }), 404 federated_app_id = _normalize_federated_app_id(app_id) # ============================================================ # Step 2: Compose GSMA artefact payload # artefactId == appId (INTENTIONAL) Loading Loading @@ -347,6 +371,10 @@ def create_app_instance(): 64, app_id, ) federated_app_provider_id = _normalize_federated_app_provider_id( app_provider_id, app_id, ) app_name = _ensure_gsma_id( app_name, r"^[A-Za-z][A-Za-z0-9_]{7,31}$", Loading Loading @@ -491,8 +519,8 @@ def create_app_instance(): onboard_app = { "appId": app_id, "appProviderId": app_provider_id, "appId": federated_app_id, "appProviderId": federated_app_provider_id, "appMetaData": { "appName": app_name, "version": app_version, Loading Loading @@ -550,8 +578,8 @@ def create_app_instance(): zone.get("edgeCloudZoneId") ) deploy_app = { "appId": app_id, "appProviderId": app_provider_id, "appId": federated_app_id, "appProviderId": federated_app_provider_id, "appVersion": app_version, "appInstCallbackLink": appData.get("appInstCallbackLink", ""), "zoneInfo": { Loading Loading
edge_cloud_management_api/controllers/app_controllers.py +71 −43 Original line number Diff line number Diff line Loading @@ -90,6 +90,28 @@ def _ensure_res_pool(value, fallback_source): return candidate[:32] def _normalize_federated_app_id(app_id): pattern = ( r"^(?:[A-Za-z][A-Za-z0-9_]{7,63}|" r"[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-" r"[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$" ) if app_id and re.match(pattern, str(app_id)): return app_id return str(uuid.uuid5(uuid.NAMESPACE_URL, f"federated-app:{app_id}")) def _normalize_federated_app_provider_id(app_provider_id, fallback_source): return _ensure_gsma_id( app_provider_id, r"^[A-Za-z][A-Za-z0-9_]{7,63}$", "provider", 8, 64, fallback_source, ) def submit_app(body: dict): """ Controller for submitting application metadata. Loading Loading @@ -304,6 +326,8 @@ def create_app_instance(): "appId": app_id }), 404 federated_app_id = _normalize_federated_app_id(app_id) # ============================================================ # Step 2: Compose GSMA artefact payload # artefactId == appId (INTENTIONAL) Loading Loading @@ -347,6 +371,10 @@ def create_app_instance(): 64, app_id, ) federated_app_provider_id = _normalize_federated_app_provider_id( app_provider_id, app_id, ) app_name = _ensure_gsma_id( app_name, r"^[A-Za-z][A-Za-z0-9_]{7,31}$", Loading Loading @@ -491,8 +519,8 @@ def create_app_instance(): onboard_app = { "appId": app_id, "appProviderId": app_provider_id, "appId": federated_app_id, "appProviderId": federated_app_provider_id, "appMetaData": { "appName": app_name, "version": app_version, Loading Loading @@ -550,8 +578,8 @@ def create_app_instance(): zone.get("edgeCloudZoneId") ) deploy_app = { "appId": app_id, "appProviderId": app_provider_id, "appId": federated_app_id, "appProviderId": federated_app_provider_id, "appVersion": app_version, "appInstCallbackLink": appData.get("appInstCallbackLink", ""), "zoneInfo": { Loading