76 lines
2.6 KiB
Python
76 lines
2.6 KiB
Python
import sys
|
|
import os
|
|
from airflow import DAG
|
|
from airflow.operators.python import PythonOperator
|
|
from airflow.utils.dates import days_ago
|
|
from datetime import datetime, timedelta
|
|
import logging
|
|
|
|
# Importing custom modules
|
|
sys.path.append('/opt/airflow/python/connectors/devo')
|
|
sys.path.append('/opt/airflow/python/mrds_common')
|
|
sys.path.append('/opt/airflow/src/airflow/dags/ods/rqsd')
|
|
sys.path.append('/opt/airflow/python/connectors/devo')
|
|
|
|
# Import the main function from your script
|
|
from devo_connector import main as devo_main
|
|
|
|
### DEVO CONNECTOR WITH STATIC workflow (task 3)
|
|
|
|
|
|
# Default DAG arguments
|
|
default_args = {
|
|
'owner': 'airflow',
|
|
'depends_on_past': False,
|
|
'start_date': days_ago(1),
|
|
'email_on_failure': False,
|
|
'email_on_retry': False,
|
|
'retries': 3,
|
|
'retry_delay': timedelta(minutes=5),
|
|
}
|
|
|
|
with DAG(
|
|
dag_id='devo_connector_test',
|
|
default_args=default_args,
|
|
description='Run devo RQSD data ingestion workflow',
|
|
schedule_interval=None, # we can set later
|
|
#start_date=datetime(2025, 10, 7),
|
|
catchup=False,
|
|
tags=['Devo', 'RQSD', 'Connector'],
|
|
) as dag:
|
|
|
|
def run_devo_connector_rqsd(**context):
|
|
try:
|
|
# Pick env from ENV variables
|
|
env = os.getenv("MRDS_ENV")
|
|
username = os.getenv("MRDS_LOADER_DB_USER")
|
|
password = os.getenv("MRDS_LOADER_DB_PASS")
|
|
tnsalias = os.getenv("MRDS_LOADER_DB_TNS")
|
|
if not all([username, password, tnsalias]):
|
|
raise ValueError(
|
|
"Missing one or more required environment variables: "
|
|
"MRDS_LOADER_DB_USER, MRDS_LOADER_DB_PASS, MRDS_LOADER_DB_TNS"
|
|
)
|
|
|
|
logging.info(
|
|
f"Starting Casper RQSD workflow from Airflow DAG for env '{env}'"
|
|
)
|
|
|
|
workflow_context = {"run_id": 34, "a_workflow_history_key": 6}
|
|
flow_config_path = "/opt/airflow/src/airflow/dags/ods/rqsd/rqsd_process/config/yaml/flow_config_rqsd_observations.yaml"
|
|
env_config_path = "/opt/airflow/python/connectors/devo/config/env_config_rqsd.yaml"
|
|
#env = "tst"
|
|
# flow_config_rqsd_observations.yaml
|
|
|
|
logging.info("Starting Devo RQSD workflow from Airflow DAG")
|
|
devo_main(workflow_context, flow_config_path, env_config_path, env)
|
|
logging.info("Devo RQSD workflow completed successfully")
|
|
except Exception as e:
|
|
logging.error(f"Error running Devo RQSD workflow: {e}", exc_info=True)
|
|
raise
|
|
|
|
run_devo = PythonOperator(
|
|
task_id='run_devo_connector_rqsd',
|
|
python_callable=run_devo_connector_rqsd,
|
|
)
|