diff --git a/engine/.env.core b/engine/.env.core new file mode 100644 index 0000000..35b265c --- /dev/null +++ b/engine/.env.core @@ -0,0 +1,40 @@ + +# Environment Variables ====================================================== +BASIC_AUTH_USERNAME=user +BASIC_AUTH_PASSWORD=password +SWAGGER_URL="/documentation" +API_URL="/swagger.json" + +# Flask Configuration ========================================================= +FLASK_APP=wsgi.py +FLASK_ENV=development +APP_PORT=4500 + +#Database Configuration ==========qq============================================= +DATABASE_USER=FIRSTADVSTG +DATABASE_PASSWORD=Pchanged_56789 +DATABASE_HOST=ig-x6-uat-scan +DATABASE_PORT=1521 +DATABASE_NAME=FIRSTADVSTG +DATABASE_SID=firstadv +SQLALCHEMY_DATABASE_URI_FULL="oracle+oracledb://FIRSTADVSTG:Pchanged_56789@10.2.110.30:1521/?service_name=firstadv" + +# Event Bus ===================================================================== +KAFKA_BROKER="10.2.110.20:9082" + +#Bank Calls ===================================================================== +SIMBRELLA_BASE_URL="https://bank-emulator.dev.simbrellang.net" +SIMBRELLA_APP_ID="app1" +SIMBRELLA_API_KEY="testtest-api-key-12345" + +#Events Direct Location ========================================================= +EVENTS_SERVICE_BASE_URL="http://10.2.24.133:5000" +ENDPOINT_DIRECT_LOAN="/autocall/direct/loan" +ENDPOINT_DIRECT_REPAYMENT="/autocall/direct/repayment" + +#EVENTS_SERVICE_BASE_URL2="https://event-core.simbrellang.net" +#EVENTS_SERVICE_BASE_URL="http://10.10.11.17:14700" + + + + diff --git a/engine/.env.event b/engine/.env.event new file mode 100644 index 0000000..2287481 --- /dev/null +++ b/engine/.env.event @@ -0,0 +1,28 @@ + +APP_PORT=5000 +API_URL="/swagger.json" + +KAFKA_TIMEOUT=1000.0 +KAFKA_TOPICS="PROCESS_PAYMENT,LOAN_REPAYMENT" + +DATABASE_USER=FIRSTADVSTG +DATABASE_PASSWORD=Pchanged_56789 +DATABASE_HOST=ig-x6-uat-scan +DATABASE_PORT=1521 +DATABASE_NAME=FIRSTADVSTG +DATABASE_SID=firstadv +SQLALCHEMY_DATABASE_URI_FULL="oracle+oracledb://FIRSTADVSTG:Pchanged_56789@10.2.110.30:1521/?service_name=firstadv" + +KAFKA_BROKER="10.2.110.20:9092" + + +BANK_CALL_APP_ID="app1" +BANK_CALL_API_KEY="testtest-api-key-12345" + +BANK_CALL_BASE_URL="https://first-advance-middleware-develop.fbn-devops-dev-asenv.appserviceenvironment.net" +BANK_CALL_DISBURSE_LOAN_ENDPOINT="/api/DisburseLoan" +BANK_CALL_COLLECT_LOAN_ENDPOINT="/api/CollectLoan" +BANK_CALL_TRANSACTION_VERIFY="/api/TransactionVerify" + +FLASK_APP=wsgi.py +FLASK_ENV=development \ No newline at end of file diff --git a/engine/docker-compose.yml b/engine/docker-compose.yml new file mode 100644 index 0000000..6f90695 --- /dev/null +++ b/engine/docker-compose.yml @@ -0,0 +1,58 @@ +services: + digifi-core: + image: "registry.simbrellang.net/digifi/banktoproductcore:latest" + # build: + # dockerfile: Dockerfile + env_file: + - .env.core + ports: + - "${APP_PORT:-4500}:5000" + environment: + - FLASK_APP=wsgi.py + - FLASK_ENV=production + #- SQLALCHEMY_DATABASE_URI_FULL="oracle+oracledb://FIRSTADVSTG:Pchanged_56789@10.2.110.30:1521/?service_name=firstadv" + volumes: + - .:/app + #network_mode: "host" # Uses the host's network + restart: always + networks: + - digifi-net + + digifi-event: + image: "registry.simbrellang.net/digifi/eventmanager:latest" + #build: . + env_file: + - .env.event + ports: + - "5000:5000" + environment: + - FLASK_APP=app.py + - FLASK_RUN_HOST=0.0.0.0 + volumes: + - .:/app + restart: always + networks: + - digifi-net + + swagger: + image: swaggerapi/swagger-ui:v5.1.0 + ports: + - "9000:8080" + volumes: + - ./openapi.yml:/usr/local/openapi.yml + environment: + - SWAGGER_JSON=/usr/local/openapi.yml + restart: always + networks: + - digifi-net + +networks: + digifi-net: + driver: bridge + +#networks: +# default: +# driver: bridge +# ipam: +# config: +# - subnet: 10.244.0.0/26 diff --git a/engine/start_release.sh b/engine/start_release.sh new file mode 100644 index 0000000..0adfb23 --- /dev/null +++ b/engine/start_release.sh @@ -0,0 +1,51 @@ +#!/usr/bin/env bash + +log() { + local message="$1" + echo -e "\033[32mLog: $message\033[0m" +} + +handle_error() { + local error_message="$1" + echo -e "\033[31mError: $error_message\033[0m" + exit 1 +} + +retry() { + local max_attempts=2 + local attempt=1 + local delay=1 + + while true; do + "$@" && break || { + if [ $attempt -lt $max_attempts ]; then + log "Command failed (attempt $attempt/$max_attempts). Retrying in $delay seconds..." + sleep $delay + delay=$((delay * 2)) + ((attempt++)) + else + handle_error "Command failed after $attempt attempts: $*" + fi + } + done +} + + +################################################################################ +# MAIN +################################################################################ +if [ "$1" == "product" ]; then + #start_services + docker login -u="admin" -p="may12002" registry.simbrellang.net + + retry docker --no-cache pull registry.simbrellang.net/digifi/eventmanager:latest + + retry docker --no-cache pull registry.simbrellang.net/digifi/banktoproductcore:latest + + +elif [ "$1" == "clean" ]; then + retry docker stop digi_co +else + handle_error "Invalid argument. Use 'clean' or 'product'." +fi +