yasithdev opened a new pull request, #208: URL: https://github.com/apache/airavata-portals/pull/208
The Django portal now depends on a **single Airavata package** — the gRPC \`airavata-python-sdk\` (import name \`airavata_sdk\`), installed editable from a local apache/airavata checkout. The retired Thrift \`airavata-python-sdk==2.2.7\` and the \`airavata-django-portal-sdk\` package are removed entirely; nothing in the portal pulls in Thrift anymore. ### API-side logic moved into the SDK The framework-agnostic orchestration that used to live in \`airavata_django_portal_sdk\` now lives in the SDK (apache/airavata#657), repointed from Thrift to the gRPC facades: - experiment **launch / clone** + **intermediate-output** → \`airavata_sdk.helpers.experiment_orchestration\` - **queue-settings** calculator registry + \`@queue_settings_calculator\` decorator → \`airavata_sdk.helpers.queue_settings\` The portal's views/serializers stay thin — they call these helpers with \`request.airavata\` + the username. ### Storage / downloads - The two in-use \`/sdk/\` directory-zip endpoints (\`download-dir\`, \`download-experiment-dir/<id>\`) are **ported into the portal** (\`apps/api/downloads.py\`) on the gRPC storage facade, keeping their URL paths so the built frontend's hardcoded links keep working. (They were previously broken anyway — the old SDK reached them through the now-removed Thrift client.) The redundant/unused \`/sdk/\` endpoints are dropped; single-file downloads already go through \`/api/download-file\`. ### Cleanup - Deleted the \`airavata-django-portal-sdk\` package (46 files); dropped \`thrift\`/\`thrift_connector\` and the old SDKs from \`requirements*.txt\`/\`setup.py\`; \`setup.py\` now pins \`airavata-python-sdk>=3.0.0\`. - Repointed the cookiecutter templates and dev/tutorial docs off the old SDK. ### Validation - \`manage.py check\` passes; the portal imports cleanly with the old SDK and Thrift fully gone. - **Live against the tilt backend (:9090):** the launch/clone input-staging primitives were exercised end-to-end — upload → register data product → \`is_input_file\` → \`move_file\` + \`update_replica_location\` (in place, **URI preserved**, \`file_path\` repointed to the experiment data dir) → the ported zip recursion lists + streams the bytes. This confirms the riskiest new behavior (the move/replica round-trip) works on a real backend. Depends on apache/airavata#657 (merged) for the SDK helper layer. 🤖 Generated with [Claude Code](https://claude.com/claude-code) -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
