This is an automated email from the ASF dual-hosted git repository. yasith pushed a commit to branch feat/grpc-armeria-migration in repository https://gitbox.apache.org/repos/asf/airavata.git
commit 665c80811b57ccf1f3926c2a298d36799d9abf1a Author: yasithdev <[email protected]> AuthorDate: Wed Apr 1 14:57:23 2026 -0400 docs: update all documentation and config to reflect Armeria/gRPC architecture - Remove all Thrift references (ports 8930/18889/19900, thrift_client_pool, Thrift installation in ansible common role) - Update api_server_port to 9090 across all ansible inventories and role defaults - Update agent scripts to use port 9090 instead of 19900 - Remove Thrift client pool properties from all J2 templates (no longer used) - Update README module structure to include compute-service, storage-service, credential-service and remove non-existent file-server submodule - Update research-service README to reflect embedded-in-unified-server reality - Update docker-startup.sh to reference Armeria instead of Thrift - Remove Thrift build dependencies (bison, flex, libboost, etc.) from ansible --- README.md | 9 ++++- airavata-agent/agent.sh | 2 +- airavata-agent/application/namd.sh | 2 +- airavata-api/research-service/README.md | 24 +++++------ .../inventories/dev/group_vars/all/vars.yml | 8 +--- .../scigap/develop/group_vars/all/vars.yml | 6 +-- .../scigap/production/group_vars/all/vars.yml | 6 +-- .../scigap/staging/group_vars/all/vars.yml | 6 +-- .../scigap/testing/group_vars/all/vars.yml | 2 +- .../inventories/staging/group_vars/all/vars.yml | 2 +- .../inventories/standalone/group_vars/all/vars.yml | 2 +- .../inventories/template/group_vars/all/vars.yml | 2 +- .../template/group_vars/all/vars.yml.example | 2 +- .../template/group_vars/all/vault.yml.example | 2 +- .../roles/airavata_services/defaults/main.yml | 11 +++-- .../airavata_services/tasks/start_services.yml | 2 +- .../airavata_services/tasks/stop_services.yml | 8 +--- .../templates/airavata-server.properties.j2 | 5 +-- dev-tools/ansible/roles/api-orch/defaults/main.yml | 10 ++--- .../templates/airavata-server.properties.j2 | 5 +-- dev-tools/ansible/roles/common/tasks/main.yml | 47 ---------------------- .../ansible/roles/helix_setup/defaults/main.yml | 4 +- .../parser-wm/airavata-server.properties.j2 | 5 +-- .../participant/airavata-server.properties.j2 | 5 +-- .../post-wm/airavata-server.properties.j2 | 5 +-- .../templates/pre-wm/airavata-server.properties.j2 | 5 +-- .../ansible/roles/job_monitor/defaults/main.yml | 4 +- .../email-monitor/airavata-server.properties.j2 | 5 +-- dev-tools/ansible/roles/pga/defaults/main.yml | 4 +- dev-tools/deployment-scripts/docker-startup.sh | 10 ++--- 30 files changed, 66 insertions(+), 144 deletions(-) diff --git a/README.md b/README.md index 7021671b8b..f57c786da2 100644 --- a/README.md +++ b/README.md @@ -171,10 +171,17 @@ The following services are embedded in the unified server (not run separately): | Service | Module | Purpose | |---------|--------|---------| -| **File Server** | `airavata-api/file-server` | SFTP wrapper for secure storage access | | **Agent Service** | `airavata-api/agent-service` | Backend for interactive jobs via bidirectional gRPC | | **Research Service** | `airavata-api/research-service` | Research catalog API (notebooks, datasets, models) | +Additional service modules in `airavata-api/`: + +| Module | Purpose | +|--------|---------| +| `compute-service` | HPC resource catalog, resource profiles | +| `storage-service` | Data products, file service, storage resources | +| `credential-service` | SSH keys, passwords, credential store | + ## 🏗️ Getting Started diff --git a/airavata-agent/agent.sh b/airavata-agent/agent.sh index 23b7a10c86..c7599f7776 100755 --- a/airavata-agent/agent.sh +++ b/airavata-agent/agent.sh @@ -116,4 +116,4 @@ export TMPDIR=$CS_HOME/scratch/tmp export PATH=$PWD:$PATH # run agent -airavata-agent --server "$SERVER:19900" --agent "$AGENT" --environ "$ENVIRON" --lib "$LIBRARIES" --pip "$PIP" +airavata-agent --server "$SERVER:9090" --agent "$AGENT" --environ "$ENVIRON" --lib "$LIBRARIES" --pip "$PIP" diff --git a/airavata-agent/application/namd.sh b/airavata-agent/application/namd.sh index 240cc2ad10..8ad9476bad 100644 --- a/airavata-agent/application/namd.sh +++ b/airavata-agent/application/namd.sh @@ -94,7 +94,7 @@ wget -q https://github.com/cyber-shuttle/binaries/releases/download/1.0.1/airava wget -q https://github.com/cyber-shuttle/binaries/releases/download/1.0.1/kernel.py -O $WORKDIR/kernel.py wget -q https://github.com/mamba-org/micromamba-releases/releases/download/2.3.0-1/micromamba-linux-64 -O $WORKDIR/micromamba chmod +x $WORKDIR/airavata-agent $WORKDIR/micromamba -$WORKDIR/airavata-agent --server "$AGENT_SERVER:19900" --agent "$AGENT_ID" --environ "$AGENT_ID" --lib "" --pip "" & +$WORKDIR/airavata-agent --server "$AGENT_SERVER:9090" --agent "$AGENT_ID" --environ "$AGENT_ID" --lib "" --pip "" & AGENT_PID=$! trap 'kill -TERM $AGENT_PID' EXIT echo "Agent started with PID $AGENT_PID" diff --git a/airavata-api/research-service/README.md b/airavata-api/research-service/README.md index 79c587882c..d2c29672dd 100644 --- a/airavata-api/research-service/README.md +++ b/airavata-api/research-service/README.md @@ -17,24 +17,18 @@ under the License. --> -# Research Service Application +# Research Service -This Spring Boot application supports different profiles for running in production vs development mode. In production mode, a security filter enforces authentication. In development mode, the security filter is bypassed for easier local testing. +The Research Service provides the research catalog API (notebooks, datasets, models). It is embedded in the unified Airavata server and is not run as a standalone application. -## Running in Development Mode +## Development -### Using Maven +The research service is started automatically as part of the unified server (`airavata-server`). Use `tilt up` from the repo root to start the full development stack, which includes the research service on port 9090 alongside all other services. -```bash -mvn spring-boot:run -Dspring-boot.run.profiles=dev -``` +## Profiles -### Using IntelliJ IDEA +The service supports Spring Boot profiles: +- **default (production)**: Security filter enforces authentication +- **dev**: Security filter is bypassed for easier local testing -1. Go to Run > Edit Configurations. -2. Select your Spring Boot run configuration -3. In the Program arguments field, add: - -```bash ---spring.profiles.active=dev -``` +When running via the unified server, the active profile is controlled by the server's `application.yml` configuration. diff --git a/dev-tools/ansible/inventories/dev/group_vars/all/vars.yml b/dev-tools/ansible/inventories/dev/group_vars/all/vars.yml index 5e3b1ed174..713de8a490 100644 --- a/dev-tools/ansible/inventories/dev/group_vars/all/vars.yml +++ b/dev-tools/ansible/inventories/dev/group_vars/all/vars.yml @@ -20,12 +20,8 @@ group: "{{ deploy_user }}" user_home: "/home/{{ user }}" # Service ports -api_server_port: 8930 -api_server_tls_port: 9930 -agent_service_port: 18880 -research_service_port: 18899 -file_server_port: 8050 -restproxy_port: 8082 +# Armeria serves gRPC + REST (HTTP/JSON transcoding) on a single port +api_server_port: 9090 # Database name (single database) db_name: "airavata" diff --git a/dev-tools/ansible/inventories/scigap/develop/group_vars/all/vars.yml b/dev-tools/ansible/inventories/scigap/develop/group_vars/all/vars.yml index 8a576296d5..7fcb558e24 100644 --- a/dev-tools/ansible/inventories/scigap/develop/group_vars/all/vars.yml +++ b/dev-tools/ansible/inventories/scigap/develop/group_vars/all/vars.yml @@ -70,7 +70,7 @@ zookeeper_connection_url: "{{ groups['zookeeper'][0] }}:{{ zookeeper_client_port # API Server related variables api_server_name: "apiserver-node0" api_server_host: "{{ groups['api-orch'][0] }}" -api_server_port: "8930" +api_server_port: "9090" api_server_public_hostname: "apidev.scigap.org" api_secured: "true" tls_enable: "false" @@ -172,8 +172,8 @@ parser_broker_consumer_group: "ParsingConsumer" parser_storage_resource_id: "pgadev.scigap.org_7ddf28fd-d503-4ff8-bbc5-3279a7c3b99e" parser_broker_publisher_id: "ParserProducer" -thrift_client_pool_abandoned_removal_enabled: true -thrift_client_pool_abandoned_removal_logged: true +connection_pool_abandoned_removal_enabled: true +connection_pool_abandoned_removal_logged: true usage_reporting_key: "{{ vault_usage_reporting_key }}" diff --git a/dev-tools/ansible/inventories/scigap/production/group_vars/all/vars.yml b/dev-tools/ansible/inventories/scigap/production/group_vars/all/vars.yml index 6d186d2bd3..9d4994e54d 100644 --- a/dev-tools/ansible/inventories/scigap/production/group_vars/all/vars.yml +++ b/dev-tools/ansible/inventories/scigap/production/group_vars/all/vars.yml @@ -66,7 +66,7 @@ zookeeper_connection_url: "{{ groups['zookeeper'][0] }}:{{ zookeeper_client_port # API Server related variables api_server_name: "apiserver-node0" api_server_host: "{{ groups['api-orch'][0] }}" -api_server_port: "8930" +api_server_port: "9090" api_server_public_hostname: "apiprod.scigap.org" api_secured: "true" tls_enable: "false" @@ -172,8 +172,8 @@ platform_monitor_email_address: "[email protected]" platform_monitor_email_password: "{{ vault_platform_monitor_email_password }}" platform_monitor_target_email_addresses: "[email protected],[email protected]" -thrift_client_pool_abandoned_removal_enabled: true -thrift_client_pool_abandoned_removal_logged: false +connection_pool_abandoned_removal_enabled: true +connection_pool_abandoned_removal_logged: false # Variables related to parser framework parser_broker_url: "{{ groups['kafka'][0] }}:{{ kafka_listener_port }}" diff --git a/dev-tools/ansible/inventories/scigap/staging/group_vars/all/vars.yml b/dev-tools/ansible/inventories/scigap/staging/group_vars/all/vars.yml index 962c8f922f..fcbf10cca9 100644 --- a/dev-tools/ansible/inventories/scigap/staging/group_vars/all/vars.yml +++ b/dev-tools/ansible/inventories/scigap/staging/group_vars/all/vars.yml @@ -65,7 +65,7 @@ zookeeper_connection_url: "{{ groups['zookeeper'][0] }}:{{ zookeeper_client_port # API Server related variables api_server_name: "apiserver-node0" api_server_host: "{{ groups['api-orch'][0] }}" -api_server_port: "8930" +api_server_port: "9090" api_secured: "true" tls_enable: "true" api_server_tls_port: "9930" @@ -176,8 +176,8 @@ parser_broker_consumer_group: "ParsingConsumer" parser_storage_resource_id: "pga.staging.scigap.org_aa63ffa0-a99f-4885-8f4b-81e3c4c4d737" parser_broker_publisher_id: "ParserProducer" -thrift_client_pool_abandoned_removal_enabled: true -thrift_client_pool_abandoned_removal_logged: true +connection_pool_abandoned_removal_enabled: true +connection_pool_abandoned_removal_logged: true # Subnet definitions iu_subnets: diff --git a/dev-tools/ansible/inventories/scigap/testing/group_vars/all/vars.yml b/dev-tools/ansible/inventories/scigap/testing/group_vars/all/vars.yml index 16fb879907..c38e636fa4 100644 --- a/dev-tools/ansible/inventories/scigap/testing/group_vars/all/vars.yml +++ b/dev-tools/ansible/inventories/scigap/testing/group_vars/all/vars.yml @@ -63,7 +63,7 @@ zookeeper_connection_url: "{{ groups['zookeeper'][0] }}:{{ zookeeper_client_port # API Server related variables api_server_name: "apiserver-node0" api_server_host: "{{ groups['api-orch'][0] }}" -api_server_port: "8930" +api_server_port: "9090" api_secured: "false" tls_enable: "true" api_server_tls_port: "9930" diff --git a/dev-tools/ansible/inventories/staging/group_vars/all/vars.yml b/dev-tools/ansible/inventories/staging/group_vars/all/vars.yml index ff14cc6989..8916a8fe7e 100644 --- a/dev-tools/ansible/inventories/staging/group_vars/all/vars.yml +++ b/dev-tools/ansible/inventories/staging/group_vars/all/vars.yml @@ -20,7 +20,7 @@ group: "{{ deploy_user }}" user_home: "/home/{{ user }}" # Service ports -api_server_port: 8930 +api_server_port: 9090 api_server_tls_port: 9930 agent_service_port: 18880 research_service_port: 18899 diff --git a/dev-tools/ansible/inventories/standalone/group_vars/all/vars.yml b/dev-tools/ansible/inventories/standalone/group_vars/all/vars.yml index 54ad3df083..af4da391d2 100644 --- a/dev-tools/ansible/inventories/standalone/group_vars/all/vars.yml +++ b/dev-tools/ansible/inventories/standalone/group_vars/all/vars.yml @@ -73,7 +73,7 @@ zookeeper_connection_url: "{{ groups['zookeeper'][0] }}:{{ zookeeper_client_port api_server_name: "apiserver-node0" api_server_host: "{{ groups['api-orch'][0] }}" api_server_bind_host: "{{ api_server_host }}" -api_server_port: "8930" +api_server_port: "9090" api_secured: "false" tls_enable: "true" api_server_tls_port: "9930" diff --git a/dev-tools/ansible/inventories/template/group_vars/all/vars.yml b/dev-tools/ansible/inventories/template/group_vars/all/vars.yml index 80f1d83bb7..f6efb4f4c5 100644 --- a/dev-tools/ansible/inventories/template/group_vars/all/vars.yml +++ b/dev-tools/ansible/inventories/template/group_vars/all/vars.yml @@ -72,7 +72,7 @@ zookeeper_connection_url: "{{ groups['zookeeper'][0] }}:{{ zookeeper_client_port # API Server related variables api_server_name: "apiserver-node0" api_server_host: "{{ groups['api-orch'][0] }}" -api_server_port: "8930" +api_server_port: "9090" api_secured: "false" tls_enable: "true" api_server_tls_port: "9930" diff --git a/dev-tools/ansible/inventories/template/group_vars/all/vars.yml.example b/dev-tools/ansible/inventories/template/group_vars/all/vars.yml.example index d9022a9a6a..ae990b6090 100644 --- a/dev-tools/ansible/inventories/template/group_vars/all/vars.yml.example +++ b/dev-tools/ansible/inventories/template/group_vars/all/vars.yml.example @@ -14,7 +14,7 @@ apache_maven_version: "apache-maven-3.9.11" # Non-sensitive service settings deploy_user: "CHANGEME_DEPLOY_USER" -api_server_port: 8930 +api_server_port: 9090 profile_service_port: 8962 registry_port: 8970 diff --git a/dev-tools/ansible/inventories/template/group_vars/all/vault.yml.example b/dev-tools/ansible/inventories/template/group_vars/all/vault.yml.example index 7faff4cff5..83ae1a504a 100644 --- a/dev-tools/ansible/inventories/template/group_vars/all/vault.yml.example +++ b/dev-tools/ansible/inventories/template/group_vars/all/vault.yml.example @@ -96,7 +96,7 @@ research_service_datasource_password: "CHANGEME_DB_PASSWORD" # Agent service Airavata settings agent_service_airavata_url: "localhost" -agent_service_airavata_port: 8930 +agent_service_airavata_port: 9090 agent_service_airavata_secure: false # Research service URLs diff --git a/dev-tools/ansible/roles/airavata_services/defaults/main.yml b/dev-tools/ansible/roles/airavata_services/defaults/main.yml index ef086c7b83..22f04a7bb6 100644 --- a/dev-tools/ansible/roles/airavata_services/defaults/main.yml +++ b/dev-tools/ansible/roles/airavata_services/defaults/main.yml @@ -29,9 +29,8 @@ airavata_server_dist_name: "airavata-server-{{ airavata_version }}" airavata_server_dir: "{{ deployment_dir }}/airavata-server-{{ airavata_version }}" # Service ports -thrift_port: 8930 -rest_port: 18889 -grpc_port: 19900 +# Armeria serves gRPC + REST (HTTP/JSON transcoding) on a single port +api_server_port: 9090 monitoring_port: 9097 # Service hosts @@ -125,9 +124,9 @@ data_analyzer_job_scanning_enable: false # Data staging configuration enable_streaming_transfer: false -# Thrift client pool configuration -thrift_client_pool_abandoned_removal_enabled: true -thrift_client_pool_abandoned_removal_logged: false +# Connection pool configuration +connection_pool_abandoned_removal_enabled: true +connection_pool_abandoned_removal_logged: false # Storage configuration local_data_location: "/home/{{ deploy_user }}/temp-storage" diff --git a/dev-tools/ansible/roles/airavata_services/tasks/start_services.yml b/dev-tools/ansible/roles/airavata_services/tasks/start_services.yml index 5fb25d4b7c..1eeaece7a2 100644 --- a/dev-tools/ansible/roles/airavata_services/tasks/start_services.yml +++ b/dev-tools/ansible/roles/airavata_services/tasks/start_services.yml @@ -28,7 +28,7 @@ - name: Wait for Airavata Server to be ready wait_for: - port: '{{ thrift_port }}' + port: '{{ api_server_port }}' host: '{{ api_server_host }}' delay: 5 timeout: 60 diff --git a/dev-tools/ansible/roles/airavata_services/tasks/stop_services.yml b/dev-tools/ansible/roles/airavata_services/tasks/stop_services.yml index 87e477b1ea..295b0f7766 100644 --- a/dev-tools/ansible/roles/airavata_services/tasks/stop_services.yml +++ b/dev-tools/ansible/roles/airavata_services/tasks/stop_services.yml @@ -42,12 +42,8 @@ - name: Define Airavata service ports set_fact: airavata_ports: - - port: "{{ thrift_port }}" - service: "Airavata Server (Thrift)" - - port: "{{ rest_port }}" - service: "Airavata Server (REST)" - - port: "{{ grpc_port }}" - service: "Airavata Server (gRPC)" + - port: "{{ api_server_port }}" + service: "Airavata Server (Armeria gRPC + REST)" - port: "{{ monitoring_port }}" service: "Airavata Server (Monitoring)" - port: "{{ participant_monitoring_port }}" diff --git a/dev-tools/ansible/roles/airavata_services/templates/airavata-server.properties.j2 b/dev-tools/ansible/roles/airavata_services/templates/airavata-server.properties.j2 index ed3eca9750..9b2a933c8a 100644 --- a/dev-tools/ansible/roles/airavata_services/templates/airavata-server.properties.j2 +++ b/dev-tools/ansible/roles/airavata_services/templates/airavata-server.properties.j2 @@ -136,10 +136,7 @@ local.data.location={{ local_data_location }} max.archive.size={{ max_archive_size | default('21474836480') }} ########################################################################### -# ThriftClientPool Configuration -########################################################################### -thrift.client.pool.abandoned.removal.enabled={{ thrift_client_pool_abandoned_removal_enabled }} -thrift.client.pool.abandoned.removal.logged={{ thrift_client_pool_abandoned_removal_logged }} +# Connection pool configuration (Thrift pool removed — gRPC via Armeria) ########################################################################### # Pre-workflow Configuration diff --git a/dev-tools/ansible/roles/api-orch/defaults/main.yml b/dev-tools/ansible/roles/api-orch/defaults/main.yml index 5b054fbbbc..4236a05db8 100644 --- a/dev-tools/ansible/roles/api-orch/defaults/main.yml +++ b/dev-tools/ansible/roles/api-orch/defaults/main.yml @@ -31,10 +31,10 @@ iam_server_super_admin_username: "admin" #iam_server_super_admin_password: "changeme" profile_service_host: "airavata.localhost" -profile_service_port: 8930 +profile_service_port: 9090 mariadb_connector_jar_url: "http://downloads.mariadb.com/Connectors/java/connector-java-2.0.2/mariadb-java-client-2.0.2.jar" -sharing_registry_tls_enabled: "false" +sharing_registry_tls_enabled: false api_server_bind_host: "{{ ansible_default_ipv4.address }}" orchestrator_bind_host: "{{ ansible_default_ipv4.address }}" @@ -48,11 +48,11 @@ default_registry_password : "admin" api_orch_systemd_unit_file: "/etc/systemd/system/apiorch.service" -thrift_client_pool_abandoned_removal_enabled: false -thrift_client_pool_abandoned_removal_logged: false +connection_pool_abandoned_removal_enabled: false +connection_pool_abandoned_removal_logged: false api_server_public_hostname: "airavata.localhost" -api_server_port: 8930 +api_server_port: 9090 api_server_tls_port: 9930 api_server_host: "airavata.localhost" haproxy_api_server_ssl_cert: "/etc/ssl/{{ api_server_public_hostname }}/{{ api_server_public_hostname }}.pem" diff --git a/dev-tools/ansible/roles/api-orch/templates/airavata-server.properties.j2 b/dev-tools/ansible/roles/api-orch/templates/airavata-server.properties.j2 index a1d67e847e..5bb8dd999f 100644 --- a/dev-tools/ansible/roles/api-orch/templates/airavata-server.properties.j2 +++ b/dev-tools/ansible/roles/api-orch/templates/airavata-server.properties.j2 @@ -149,10 +149,7 @@ iam.server.super.admin.password={{ iam_server_super_admin_password }} db_event_manager.class=org.apache.airavata.db.event.manager.DBEventManagerRunner ########################################################################### -# ThriftClientPool Configuration -########################################################################### -thrift.client.pool.abandoned.removal.enabled={{ thrift_client_pool_abandoned_removal_enabled }} -thrift.client.pool.abandoned.removal.logged={{ thrift_client_pool_abandoned_removal_logged }} +# Connection pool configuration (Thrift pool removed — gRPC via Armeria) ########################################################################### # Platform Monitoring Configuration diff --git a/dev-tools/ansible/roles/common/tasks/main.yml b/dev-tools/ansible/roles/common/tasks/main.yml index b7b2db723d..85bbda25c0 100644 --- a/dev-tools/ansible/roles/common/tasks/main.yml +++ b/dev-tools/ansible/roles/common/tasks/main.yml @@ -41,14 +41,6 @@ with_items: - git - build-essential - - automake - - bison - - flex - - libboost-all-dev - - libevent-dev - - libssl-dev - - libtool - - pkg-config become_user: root when: ansible_os_family == "Debian" @@ -85,45 +77,6 @@ become: yes become_user: root -- name: Check if Thrift is installed - command: which thrift - register: thrift_check - changed_when: false - failed_when: false - become: no - -- name: Download Thrift 0.22.0 - shell: | - cd /tmp && \ - wget -q --no-check-certificate https://dlcdn.apache.org/thrift/0.22.0/thrift-0.22.0.tar.gz && \ - tar -xzf thrift-0.22.0.tar.gz - args: - creates: /tmp/thrift-0.22.0 - become: yes - become_user: root - when: thrift_check.rc != 0 - -- name: Build and install Thrift 0.22.0 - shell: | - cd /tmp/thrift-0.22.0 && \ - ./configure --without-rs --enable-libs=no --enable-tests=no && \ - make -j$(nproc) && \ - make install && \ - ldconfig - become: yes - become_user: root - when: thrift_check.rc != 0 - -- name: Verify Thrift installation - command: thrift -version - register: thrift_version - changed_when: false - become: no - -- name: Display Thrift version - debug: - msg: "Thrift version: {{ thrift_version.stdout }}" - # Setup airavata source - name: Create deployment directory {{ deployment_dir }} file: path={{ deployment_dir }} state=directory mode=0755 diff --git a/dev-tools/ansible/roles/helix_setup/defaults/main.yml b/dev-tools/ansible/roles/helix_setup/defaults/main.yml index 1c089f8835..f4178c38b6 100644 --- a/dev-tools/ansible/roles/helix_setup/defaults/main.yml +++ b/dev-tools/ansible/roles/helix_setup/defaults/main.yml @@ -53,8 +53,8 @@ kafka_rest_proxy_listener_port: 8082 local_data_location: "/tmp" -thrift_client_pool_abandoned_removal_enabled: false -thrift_client_pool_abandoned_removal_logged: false +connection_pool_abandoned_removal_enabled: false +connection_pool_abandoned_removal_logged: false max_archive_size: 21474836480 ... diff --git a/dev-tools/ansible/roles/helix_setup/templates/parser-wm/airavata-server.properties.j2 b/dev-tools/ansible/roles/helix_setup/templates/parser-wm/airavata-server.properties.j2 index 6e78323085..b3d9d108c2 100644 --- a/dev-tools/ansible/roles/helix_setup/templates/parser-wm/airavata-server.properties.j2 +++ b/dev-tools/ansible/roles/helix_setup/templates/parser-wm/airavata-server.properties.j2 @@ -58,10 +58,7 @@ data.parser.storage.resource.id={{ parser_storage_resource_id }} post.workflow.manager.loadbalance.clusters=False ########################################################################### -# ThriftClientPool Configuration -########################################################################### -thrift.client.pool.abandoned.removal.enabled={{ thrift_client_pool_abandoned_removal_enabled }} -thrift.client.pool.abandoned.removal.logged={{ thrift_client_pool_abandoned_removal_logged }} +# Connection pool configuration (Thrift pool removed — gRPC via Armeria) ########################################################################### # Platform Monitoring Configuration diff --git a/dev-tools/ansible/roles/helix_setup/templates/participant/airavata-server.properties.j2 b/dev-tools/ansible/roles/helix_setup/templates/participant/airavata-server.properties.j2 index b8f22e2646..d18f478cca 100644 --- a/dev-tools/ansible/roles/helix_setup/templates/participant/airavata-server.properties.j2 +++ b/dev-tools/ansible/roles/helix_setup/templates/participant/airavata-server.properties.j2 @@ -94,10 +94,7 @@ enable.streaming.transfer=False max.archive.size={{ max_archive_size }} ########################################################################### -# ThriftClientPool Configuration -########################################################################### -thrift.client.pool.abandoned.removal.enabled={{ thrift_client_pool_abandoned_removal_enabled }} -thrift.client.pool.abandoned.removal.logged={{ thrift_client_pool_abandoned_removal_logged }} +# Connection pool configuration (Thrift pool removed — gRPC via Armeria) ########################################################################### # Platform Monitoring Configuration diff --git a/dev-tools/ansible/roles/helix_setup/templates/post-wm/airavata-server.properties.j2 b/dev-tools/ansible/roles/helix_setup/templates/post-wm/airavata-server.properties.j2 index 5e7b8026e3..5a086ac4e9 100644 --- a/dev-tools/ansible/roles/helix_setup/templates/post-wm/airavata-server.properties.j2 +++ b/dev-tools/ansible/roles/helix_setup/templates/post-wm/airavata-server.properties.j2 @@ -52,10 +52,7 @@ prefetch.count=200 zookeeper.server.connection={{ zookeeper_connection_url }} ########################################################################### -# ThriftClientPool Configuration -########################################################################### -thrift.client.pool.abandoned.removal.enabled={{ thrift_client_pool_abandoned_removal_enabled }} -thrift.client.pool.abandoned.removal.logged={{ thrift_client_pool_abandoned_removal_logged }} +# Connection pool configuration (Thrift pool removed — gRPC via Armeria) ########################################################################### # Platform Monitoring Configuration diff --git a/dev-tools/ansible/roles/helix_setup/templates/pre-wm/airavata-server.properties.j2 b/dev-tools/ansible/roles/helix_setup/templates/pre-wm/airavata-server.properties.j2 index 303079fd49..38e16b2d14 100644 --- a/dev-tools/ansible/roles/helix_setup/templates/pre-wm/airavata-server.properties.j2 +++ b/dev-tools/ansible/roles/helix_setup/templates/pre-wm/airavata-server.properties.j2 @@ -49,10 +49,7 @@ prefetch.count=200 zookeeper.server.connection={{ zookeeper_connection_url }} ########################################################################### -# ThriftClientPool Configuration -########################################################################### -thrift.client.pool.abandoned.removal.enabled={{ thrift_client_pool_abandoned_removal_enabled }} -thrift.client.pool.abandoned.removal.logged={{ thrift_client_pool_abandoned_removal_logged }} +# Connection pool configuration (Thrift pool removed — gRPC via Armeria) ########################################################################### # Platform Monitoring Configuration diff --git a/dev-tools/ansible/roles/job_monitor/defaults/main.yml b/dev-tools/ansible/roles/job_monitor/defaults/main.yml index ab2e3f961a..85f91801ab 100644 --- a/dev-tools/ansible/roles/job_monitor/defaults/main.yml +++ b/dev-tools/ansible/roles/job_monitor/defaults/main.yml @@ -46,6 +46,6 @@ job_monitor_broker_consumer_group: "MonitoringConsumer" helix_log_max_history: 30 helix_log_total_size_cap: "1 GB" -thrift_client_pool_abandoned_removal_enabled: false -thrift_client_pool_abandoned_removal_logged: false +connection_pool_abandoned_removal_enabled: false +connection_pool_abandoned_removal_logged: false ... diff --git a/dev-tools/ansible/roles/job_monitor/templates/email-monitor/airavata-server.properties.j2 b/dev-tools/ansible/roles/job_monitor/templates/email-monitor/airavata-server.properties.j2 index fde8e1c495..ccb4197fdf 100644 --- a/dev-tools/ansible/roles/job_monitor/templates/email-monitor/airavata-server.properties.j2 +++ b/dev-tools/ansible/roles/job_monitor/templates/email-monitor/airavata-server.properties.j2 @@ -41,7 +41,4 @@ regserver.server.host={{ registry_host }} regserver.server.port={{ registry_port }} ########################################################################### -# ThriftClientPool Configuration -########################################################################### -thrift.client.pool.abandoned.removal.enabled={{ thrift_client_pool_abandoned_removal_enabled }} -thrift.client.pool.abandoned.removal.logged={{ thrift_client_pool_abandoned_removal_logged }} +# Connection pool configuration (Thrift pool removed — gRPC via Armeria) diff --git a/dev-tools/ansible/roles/pga/defaults/main.yml b/dev-tools/ansible/roles/pga/defaults/main.yml index 071c21c0b2..748201d0ff 100644 --- a/dev-tools/ansible/roles/pga/defaults/main.yml +++ b/dev-tools/ansible/roles/pga/defaults/main.yml @@ -80,9 +80,9 @@ oauth_callback_url: "http://{{ vhost_servername }}/callback-url" pga_repo: "https://github.com/apache/airavata-php-gateway.git" pga_git_branch: "master" airavata_server: "{{ groups['api-orch'][0] }}" -airavata_port: "8930" +airavata_port: "9090" airavata_profile_service_server: "{{ airavata_server }}" -airavata_profile_service_port: "8930" +airavata_profile_service_port: "9090" gateway_id: "{{ default_gateway }}" # relative to document root dir experiment_data_dir: "{{ user_data_dir }}" diff --git a/dev-tools/deployment-scripts/docker-startup.sh b/dev-tools/deployment-scripts/docker-startup.sh index dd192f4263..7de5f705d2 100644 --- a/dev-tools/deployment-scripts/docker-startup.sh +++ b/dev-tools/deployment-scripts/docker-startup.sh @@ -6,7 +6,7 @@ set -e export AIRAVATA_CONFIG_DIR=/opt/airavata/vault echo "🚀 Starting Apache Airavata Server..." -echo "📋 Single JVM server with all Thrift services multiplexed on port 8930" +echo "📋 Single JVM server with Armeria (gRPC + REST transcoding) on port 9090" echo "📁 Properties file location: /opt/airavata/vault/airavata-server.properties" echo "📁 Configuration directory: $AIRAVATA_CONFIG_DIR" echo "📊 All logs will be captured and visible via 'docker logs'" @@ -48,7 +48,7 @@ log "Starting Airavata Server..." cd ${AIRAVATA_HOME} -# Start unified Airavata server (Thrift 8930, REST 18889, gRPC 19900, Monitoring 9097) +# Start unified Airavata server (Armeria gRPC + REST on 9090, Monitoring 9097) java -jar lib/airavata-server-*.jar & AIRAVATA_PID=$! @@ -62,10 +62,8 @@ log "Starting log monitoring..." sleep 5 echo "Airavata Server is running!" -echo " Thrift: port 8930" -echo " REST: port 18889" -echo " gRPC: port 19900" -echo " Monitoring: port 9097" +echo " Armeria (gRPC + REST): port 9090" +echo " Monitoring: port 9097" echo "" echo "Use 'docker logs -f' to view server logs" echo ""
