def parse_and_import_eri_3g4g(parent_dag_name, child_dag_name, start_date,
                              schedule_interval):
    dag = DAG(
        '%s.%s' % (parent_dag_name, child_dag_name),
        schedule_interval=schedule_interval,
        start_date=start_date,
    )

    t1 = BashOperator(
        task_id='check_if_ericsson_bulkcm_raw_files_exist',
        # bash_command='if [ 0 -eq `ls -1 /mediation/data/cm/ericsson/3g4g/raw/in | wc -l` ]; then exit 1; fi',
        bash_command='echo "0"',
        dag=dag)

    # Backup previously generate csv files from parsing
    t5 = BashOperator(
        task_id='backup_ericsson_bulkcm_csv_files',
        bash_command=
        'mv -f /mediation/data/cm/ericsson/parsed/bulkcm/* /mediation/data/cm/ericsson/parsed/backup/ 2>/dev/null || true',
        dag=dag)

    t2 = BashOperator(
        task_id='run_ericsson_bulkcm_parser',
        bash_command=
        'java -jar /mediation/bin/boda-bulkcmparser.jar -i /mediation/data/cm/ericsson/raw/bulkcm -o /mediation/data/cm/ericsson/parsed/bulkcm -c /mediation/conf/cm/ericsson_bulkcm_parser.cfg',
        dag=dag)

    # Truncate ericsson 3g4g cm tables
    def clear_ericsson_bulkcm_tables():
        bts_utils.truncate_schema_tables(schema="eri_cm_3g4g")

    t7 = PythonOperator(task_id='clear_ericsson_bulkcm_tables',
                        python_callable=clear_ericsson_bulkcm_tables,
                        dag=dag)

    import_csv_files = BashOperator(
        task_id='import_ericsson_bulkcm_data',
        bash_command=
        'python /mediation/bin/load_cm_data_into_db.py ericsson_bulkcm /mediation/data/cm/ericsson/parsed/bulkcm ',
        dag=dag)

    t_run_ericsson_bulkcm_insert_queries = BashOperator(
        task_id='run_ericsson_bulkcm_insert_queries',
        bash_command=
        'python /mediation/bin/run_cm_load_insert_queries.py ericsson_bulkcm',
        dag=dag)

    dag.set_dependency('check_if_ericsson_bulkcm_raw_files_exist',
                       'backup_ericsson_bulkcm_csv_files')
    dag.set_dependency('backup_ericsson_bulkcm_csv_files',
                       'run_ericsson_bulkcm_parser')
    dag.set_dependency('run_ericsson_bulkcm_parser',
                       'clear_ericsson_bulkcm_tables')
    dag.set_dependency('clear_ericsson_bulkcm_tables',
                       'import_ericsson_bulkcm_data')
    dag.set_dependency('import_ericsson_bulkcm_data',
                       'run_ericsson_bulkcm_insert_queries')

    return dag
Exemple #2
0
def import_huawei_gexport_parsed_csv(parent_dag_name, child_dag_name,
                                     start_date, schedule_interval):
    """
    Parse huawei 2g cm files.

    :param parent_dag_name:
    :param child_dag_name:
    :param start_date:
    :param schedule_interval:
    :return:
    """
    dag = DAG(
        '%s.%s' % (parent_dag_name, child_dag_name),
        schedule_interval=schedule_interval,
        start_date=start_date,
    )

    t23 = DummyOperator(task_id='branch_huawei_4g_importer', dag=dag)

    import_mml_csv = BashOperator(
        task_id='import_huawei_4g_mml_data',
        bash_command=
        'python /mediation/bin/load_cm_data_into_db.py huawei_mml_lte /mediation/data/cm/huawei/parsed/mml_lte ',
        dag=dag)

    import_nbi_csv = BashOperator(
        task_id='import_huawei_4g_nbi_data',
        bash_command=
        'python /mediation/bin/load_cm_data_into_db.py huawei_nbi_lte /mediation/data/cm/huawei/parsed/nbi_lte ',
        dag=dag)

    import_nbi_csv = BashOperator(
        task_id='import_huawei_4g_gexport_data',
        bash_command=
        'python /mediation/bin/load_cm_data_into_db.py huawei_gexport_lte /mediation/data/cm/huawei/parsed/gexport_lte ',
        dag=dag)

    t_join = DummyOperator(
        task_id='join_huawei_4g_importer',
        dag=dag,
    )

    dag.set_dependency('branch_huawei_4g_importer',
                       'import_huawei_4g_mml_data')
    dag.set_dependency('branch_huawei_4g_importer',
                       'import_huawei_4g_nbi_data')
    dag.set_dependency('branch_huawei_4g_importer',
                       'import_huawei_4g_gexport_data')

    dag.set_dependency('import_huawei_4g_mml_data', 'join_huawei_4g_importer')
    dag.set_dependency('import_huawei_4g_nbi_data', 'join_huawei_4g_importer')
    dag.set_dependency('import_huawei_4g_gexport_data',
                       'join_huawei_4g_importer')

    return dag
Exemple #3
0
def parse_and_import_nokia_raml20(parent_dag_name, child_dag_name, start_date, schedule_interval):
    """
    Parse and import ZTE xlsx files

    :param parent_dag_name:
    :param child_dag_name:
    :param start_date:
    :param schedule_interval:
    :return:
    """
    dag_id = '%s.%s' % (parent_dag_name, child_dag_name)

    dag = DAG(
        '%s.%s' % (parent_dag_name, child_dag_name),
        schedule_interval=schedule_interval,
        start_date=start_date,
    )

    task_clean_mo_names = BashOperator(
        task_id='clean_raml20_mo_names',
        bash_command="true",
#		r"""
#sed -i "
#/lowerMarginCio/ s//lowerMarginCIO/g;
#/upperMarginCio/ s//upperMarginCIO/g;
#" /mediation/data/cm/nokia/raw/raml20/*.xml || true
#        """,
        dag=dag
    )
	
    parse_nokia_raml20_cm_files = BashOperator(
      task_id='parse_nokia_raml20_cm_files',
      bash_command='java -jar /mediation/bin/boda-nokiacmdataparser.jar -i /mediation/data/cm/nokia/raw/raml20 -o /mediation/data/cm/nokia/parsed/raml20 -c /mediation/conf/cm/nokia_raml20_parser.cfg',
      dag=dag)

    import_nokia_raml20_csv = BashOperator(
        task_id='import_nokia_raml20_parsed_csv',
        bash_command='python /mediation/bin/load_cm_data_into_db.py nokia_raml20 /mediation/data/cm/nokia/parsed/raml20',
        dag=dag)

    t_run_nokia_raml20_insert_queries = BashOperator(
        task_id='run_nokia_raml20_insert_queries',
        bash_command='python /mediation/bin/run_cm_load_insert_queries.py nokia_raml20',
        dag=dag)

    def clear_nokia_raml20_cm_tables():
        pass

    t50 = PythonOperator(
        task_id='clear_nokia_raml20_cm_tables',
        python_callable=clear_nokia_raml20_cm_tables,
        dag=dag)

    dag.set_dependency('clean_raml20_mo_names', 'parse_nokia_raml20_cm_files')
    dag.set_dependency('parse_nokia_raml20_cm_files', 'clear_nokia_raml20_cm_tables')
    dag.set_dependency('clear_nokia_raml20_cm_tables', 'import_nokia_raml20_parsed_csv')
    dag.set_dependency('import_nokia_raml20_parsed_csv', 'run_nokia_raml20_insert_queries')

    return dag
Exemple #4
0
def parse_and_import_huawei_4g(parent_dag_name, child_dag_name, start_date,
                               schedule_interval):

    dag_id = '%s.%s' % (parent_dag_name, child_dag_name)

    dag = DAG(
        '%s.%s' % (parent_dag_name, child_dag_name),
        schedule_interval=schedule_interval,
        start_date=start_date,
    )

    t47 = BashOperator(
        task_id='check_if_hua_4g_raw_files_exist',
        bash_command=
        'if [ 0 -eq `ls -1 /mediation/data/cm/huawei/4g/raw/in | wc -l` ]; then exit 1; fi',
        dag=dag)

    t48 = BashOperator(
        task_id='backup_huawei_4g_csv_files',
        bash_command=
        'mv -f /mediation/data/cm/huawei/4g/parsed/in/* /mediation/data/cm/huawei/4g/parsed/out/ 2>/dev/null || true',
        dag=dag)

    t49 = BashOperator(
        task_id='run_huawei_4g_parser',
        bash_command=
        'java -jar /mediation/bin/boda-huaweinbixmlparser.jar /mediation/data/cm/huawei/4g/raw/in /mediation/data/cm/huawei/4g/parsed/in /mediation/conf/cm/hua_cm_4g_nbi_parser.cfg',
        dag=dag)

    # Clear 4G CM data tables
    def clear_huawei_4g_cm_tables():
        pass

    t50 = PythonOperator(task_id='clear_huawei_4g_cm_tables',
                         python_callable=clear_huawei_4g_cm_tables,
                         dag=dag)

    t51 = BashOperator(
        task_id='import_huawei_4g_cm_data',
        bash_command=
        'export PGPASSWORD=password && psql -h $POSTGRES_HOST -U bodastage -d bts -a -w -f "/mediation/conf/cm/hua_cm_4g_nbi_loader.cfg"',
        dag=dag)

    dag.set_dependency('check_if_hua_4g_raw_files_exist',
                       'backup_huawei_4g_csv_files')
    dag.set_dependency('backup_huawei_4g_csv_files', 'run_huawei_4g_parser')
    dag.set_dependency('run_huawei_4g_parser', 'clear_huawei_4g_cm_tables')
    dag.set_dependency('clear_huawei_4g_cm_tables', 'import_huawei_4g_cm_data')

    return dag
def parse_and_import_eri_3g4g(parent_dag_name, child_dag_name, start_date,
                              schedule_interval):
    dag = DAG(
        '%s.%s' % (parent_dag_name, child_dag_name),
        schedule_interval=schedule_interval,
        start_date=start_date,
    )

    t1 = BashOperator(
        task_id='check_if_eri_3g4g_raw_files_exist',
        bash_command=
        'if [ 0 -eq `ls -1 /mediation/data/cm/ericsson/3g4g/raw/in | wc -l` ]; then exit 1; fi',
        dag=dag)

    # Backup previously generate csv files from parsing
    t5 = BashOperator(
        task_id='backup_prev_eri_3g4g_csv_files',
        bash_command=
        'mv -f /mediation/data/cm/ericsson/3g4g/parsed/in/* /mediation/data/cm/ericsson/3g4g/parsed/out/ 2>/dev/null || true',
        dag=dag)

    t2 = BashOperator(
        task_id='run_eri_3g4g_parser',
        bash_command=
        'java -jar /mediation/bin/boda_bulkcmparser.jar /mediation/data/cm/ericsson/3g4g/raw/in /mediation/data/cm/ericsson/3g4g/parsed/in /mediation/conf/cm/eri_cm_3g4g_parser.cfg',
        dag=dag)

    # Truncate ericsson 3g4g cm tables
    def clear_eri_3g4g_cm_tables():
        bts_utils.truncate_schema_tables(schema="eri_cm_3g4g")

    t7 = PythonOperator(task_id='clear_eri_3g4g_cm_tables',
                        python_callable=clear_eri_3g4g_cm_tables,
                        dag=dag)

    # Import csv files into csv files
    t3 = BashOperator(
        task_id='import_eri_3g4g_cm_data',
        bash_command=
        'export PGPASSWORD=password && psql -h $POSTGRES_HOST -U bodastage -d bts -a -w -f "/mediation/conf/cm/eri_cm_3g4g_loader.cfg"',
        dag=dag)

    dag.set_dependency('check_if_eri_3g4g_raw_files_exist',
                       'backup_prev_eri_3g4g_csv_files')
    dag.set_dependency('backup_prev_eri_3g4g_csv_files', 'run_eri_3g4g_parser')
    dag.set_dependency('run_eri_3g4g_parser', 'clear_eri_3g4g_cm_tables')
    dag.set_dependency('clear_eri_3g4g_cm_tables', 'import_eri_3g4g_cm_data')

    return dag
Exemple #6
0
def parse_and_import_eri_2g(parent_dag_name, child_dag_name, start_date,
                            schedule_interval):
    dag = DAG(
        '%s.%s' % (parent_dag_name, child_dag_name),
        schedule_interval=schedule_interval,
        start_date=start_date,
    )

    t22 = BashOperator(
        task_id='check_if_2g_raw_files_exist',
        bash_command=
        'if [ 0 -eq `ls -1 /mediation/data/cm/ericsson/2g/raw/in | wc -l` ]; then exit 1; fi',
        dag=dag)

    # .. || true added to make sure the command alwasy succeeds
    t21 = BashOperator(
        task_id='backup_ericsson_2g_csv_files',
        bash_command=
        'mv -f /mediation/data/cm/ericsson/2g/parsed/in/* /mediation/data/cm/ericsson/2g/parsed/out/ 2>/dev/null || true',
        dag=dag)

    t20 = BashOperator(
        task_id='run_ericsson_2g_parser',
        bash_command=
        'java -jar /mediation/bin/boda-ericssoncnaiparser.jar /mediation/data/cm/ericsson/2g/raw/in /mediation/data/cm/ericsson/2g/parsed/in /mediation/conf/cm/eri_cm_2g_cnaiv2_parser.cfg',
        dag=dag)

    def clear_ericsson_2g_cm_tables():
        pass

    t19 = PythonOperator(task_id='clear_ericsson_2g_cm_tables',
                         python_callable=clear_ericsson_2g_cm_tables,
                         dag=dag)

    t18 = BashOperator(
        task_id='import_eri_2g_cm_data',
        bash_command=
        'export PGPASSWORD=password && psql -h $POSTGRES_HOST -U bodastage -d bts -a -w -f "/mediation/conf/cm/eri_cm_2g_loader.cfg"',
        dag=dag)

    dag.set_dependency('check_if_2g_raw_files_exist',
                       'backup_ericsson_2g_csv_files')
    dag.set_dependency('backup_ericsson_2g_csv_files',
                       'run_ericsson_2g_parser')
    dag.set_dependency('run_ericsson_2g_parser', 'clear_ericsson_2g_cm_tables')
    dag.set_dependency('clear_ericsson_2g_cm_tables', 'import_eri_2g_cm_data')

    return dag
Exemple #7
0
def run_huawei_2g_parser(parent_dag_name, child_dag_name, start_date, schedule_interval):
    """
    Parse huawei 2g cm files.

    :param parent_dag_name:
    :param child_dag_name:
    :param start_date:
    :param schedule_interval:
    :return:
    """
    dag = DAG(
    '%s.%s' % (parent_dag_name, child_dag_name),
    schedule_interval=schedule_interval,
    start_date=start_date,
    )

    def get_cm_file_format():
      # if  'huawei_mml'
      return 'run_huawei_2g_mml_parser'

    t23 = BranchPythonOperator(
      task_id='branch_huawei_2g_parser',
      python_callable=get_cm_file_format,
      dag=dag)

    t29 = BashOperator(
      task_id='run_huawei_2g_xml_nbi_parser',
      bash_command='java -jar /mediation/bin/boda-huaweinbixmlparser.jar /mediation/data/cm/huawei/2g/raw/in /mediation/data/cm/huawei/2g/parsed/in /mediation/conf/cm/hua_cm_2g_nbi_parameters.cfg',
      dag=dag)

    t29_2 = BashOperator(
      task_id='run_huawei_2g_mml_parser',
      bash_command='java -jar /mediation/bin/boda-huaweimmlparser.jar /mediation/data/cm/huawei/2g/raw/in /mediation/data/cm/huawei/2g/parsed/in /mediation/conf/cm/hua_cm_2g_mml_parser.cfg',
      dag=dag)

    t_join = DummyOperator(
    task_id='join_huawei_2g_parser',
    dag=dag,
    )

    dag.set_dependency('branch_huawei_2g_parser', 'run_huawei_2g_mml_parser')
    dag.set_dependency('branch_huawei_2g_parser', 'run_huawei_2g_xml_nbi_parser')

    dag.set_dependency('run_huawei_2g_mml_parser', 'join_huawei_2g_parser')
    dag.set_dependency('run_huawei_2g_xml_nbi_parser', 'join_huawei_2g_parser')


    return dag
def parse_and_import_huawei_cfgsyn(parent_dag_name, child_dag_name, start_date,
                                   schedule_interval):

    dag_id = '%s.%s' % (parent_dag_name, child_dag_name)

    dag = DAG(
        '%s.%s' % (parent_dag_name, child_dag_name),
        schedule_interval=schedule_interval,
        start_date=start_date,
    )

    parse_huawei_cfgsyn_cm_files = BashOperator(
        task_id='parse_huawei_cfgsyn_cm_files',
        bash_command=
        'java -jar /mediation/bin/boda-huaweicfgsynparser.jar /mediation/data/cm/huawei/raw/cfgsyn /mediation/data/cm/huawei/parsed/cfgsyn /mediation/conf/cm/huawei_cfgsyn_parser.cfg',
        dag=dag)

    import_nbi_csv = BashOperator(
        task_id='import_huawei_cfgsyn_parsed_csv',
        bash_command=
        'python /mediation/bin/load_cm_data_into_db.py huawei_cfgsyn /mediation/data/cm/huawei/parsed/cfgsyn',
        dag=dag)

    # Clear cfgsyn CM data tables
    def clear_huawei_cfgsyn_cm_tables():
        pass

    t50 = PythonOperator(task_id='clear_huawei_cfgsyn_cm_tables',
                         python_callable=clear_huawei_cfgsyn_cm_tables,
                         dag=dag)

    dag.set_dependency('parse_huawei_cfgsyn_cm_files',
                       'clear_huawei_cfgsyn_cm_tables')
    dag.set_dependency('clear_huawei_cfgsyn_cm_tables',
                       'import_huawei_cfgsyn_parsed_csv')

    return dag
def parse_and_import_eri_2g(parent_dag_name, child_dag_name, start_date, schedule_interval):
    """Parse and import Ericsson GSM CM data"""
    dag = DAG(
        '%s.%s' % (parent_dag_name, child_dag_name),
        schedule_interval=schedule_interval,
        start_date=start_date,
    )

    t22 = BashOperator(
        task_id='check_if_cnaiv2_raw_files_exist',
        # bash_command='if [ 0 -eq `ls -1 /mediation/data/cm/ericsson/2g/raw/in | wc -l` ]; then exit 1; fi',
        bash_command='echo 0;',
        dag=dag)

    # .. || true added to make sure the command alwasy succeeds
    t21 = BashOperator(
        task_id='backup_ericsson_cnaiv2_csv_files',
        bash_command='mv -f /mediation/data/cm/ericsson/parsed/cnaiv2/* /mediation/data/cm/ericsson/parsed/backup/ 2>/dev/null || true',
        dag=dag)

    t20 = BashOperator(
        task_id='run_ericsson_cnaiv2_parser',
        bash_command='java -jar /mediation/bin/boda-ericssoncnaiparser.jar /mediation/data/cm/ericsson/raw/cnaiv2 /mediation/data/cm/ericsson/parsed/cnaiv2 /mediation/conf/cm/ericsson_cnaiv2_gsm_parser.cfg',
        dag=dag)

    def clear_ericsson_cnaiv2_cm_tables():
        pass

    t19 = PythonOperator(
        task_id='clear_ericsson_cnaiv2_cm_tables',
        python_callable=clear_ericsson_cnaiv2_cm_tables,
        dag=dag)


    import_csv_files = BashOperator(
        task_id='import_ericsson_cnaiv2_data',
        bash_command='python /mediation/bin/load_cm_data_into_db.py ericsson_cnaiv2 /mediation/data/cm/ericsson/parsed/cnaiv2 ',
        dag=dag)

    dag.set_dependency('check_if_cnaiv2_raw_files_exist', 'backup_ericsson_cnaiv2_csv_files')
    dag.set_dependency('backup_ericsson_cnaiv2_csv_files', 'run_ericsson_cnaiv2_parser')
    dag.set_dependency('run_ericsson_cnaiv2_parser', 'clear_ericsson_cnaiv2_cm_tables')
    dag.set_dependency('clear_ericsson_cnaiv2_cm_tables', 'import_ericsson_cnaiv2_data')

    return dag
Exemple #10
0
def parse_and_import_huawei_3g(parent_dag_name, child_dag_name, start_date,
                               schedule_interval):

    dag_id = '%s.%s' % (parent_dag_name, child_dag_name)

    dag = DAG(
        '%s.%s' % (parent_dag_name, child_dag_name),
        schedule_interval=schedule_interval,
        start_date=start_date,
    )

    t42 = BashOperator(
        task_id='check_if_hua_3g_raw_files_exist',
        bash_command=
        'if [ 0 -eq `ls -1 /mediation/data/cm/huawei/3g/raw/in | wc -l` ]; then exit 1; fi',
        dag=dag)

    t43 = BashOperator(
        task_id='backup_huawei_3g_csv_files',
        bash_command=
        'mv -f /mediation/data/cm/huawei/3g/parsed/in/* /mediation/data/cm/huawei/3g/parsed/out/ 2>/dev/null || true',
        dag=dag)

    # Clear 3G CM data tables
    def clear_huawei_3g_cm_tables():
        pass

    t45 = PythonOperator(task_id='clear_huawei_3g_cm_tables',
                         python_callable=clear_huawei_3g_cm_tables,
                         dag=dag)

    t46 = BashOperator(
        task_id='import_huawei_3g_cm_data',
        bash_command=
        'export PGPASSWORD=password && psql -h $POSTGRES_HOST -U bodastage -d bts -a -w -f "/mediation/conf/cm/hua_cm_3g_nbi_loader.cfg"',
        dag=dag)

    sub_dag_parser_huawei_3g_cm_files = SubDagOperator(
        subdag=run_huawei_3g_parser(dag_id,
                                    'parse_huawei_3g_cm_files',
                                    start_date=dag.start_date,
                                    schedule_interval=dag.schedule_interval),
        task_id='parse_huawei_3g_cm_files',
        dag=dag,
    )

    dag.set_dependency('check_if_hua_3g_raw_files_exist',
                       'backup_huawei_3g_csv_files')
    dag.set_dependency('backup_huawei_3g_csv_files',
                       'parse_huawei_3g_cm_files')
    dag.set_dependency('parse_huawei_3g_cm_files', 'clear_huawei_3g_cm_tables')
    dag.set_dependency('clear_huawei_3g_cm_tables', 'import_huawei_3g_cm_data')

    return dag
def parse_and_import_zte_excel(parent_dag_name, child_dag_name, start_date,
                               schedule_interval):
    """
    Parse and import ZTE xlsx files

    :param parent_dag_name:
    :param child_dag_name:
    :param start_date:
    :param schedule_interval:
    :return:
    """
    dag_id = '%s.%s' % (parent_dag_name, child_dag_name)

    dag = DAG(
        '%s.%s' % (parent_dag_name, child_dag_name),
        schedule_interval=schedule_interval,
        start_date=start_date,
    )

    parse_zte_excel_cm_files = BashOperator(
        task_id='parse_zte_excel_cm_files',
        bash_command=
        'python /mediation/bin/parse_zte_excel.py -i /mediation/data/cm/zte/raw/excel -o /mediation/data/cm/zte/parsed/excel -c /mediation/conf/cm/zte_excel_parser.cfg',
        dag=dag)

    import_zte_excel_csv = BashOperator(
        task_id='import_zte_excel_parsed_csv',
        bash_command=
        'python /mediation/bin/load_cm_data_into_db.py zte_excel /mediation/data/cm/zte/parsed/excel',
        dag=dag)

    t_run_zte_excel_insert_queries = BashOperator(
        task_id='run_zte_excel_insert_queries',
        bash_command=
        'python /mediation/bin/run_cm_load_insert_queries.py zte_excel',
        dag=dag)

    # Clear 4G CM data tables
    def clear_zte_excel_cm_tables():
        pass

    t50 = PythonOperator(task_id='clear_zte_excel_cm_tables',
                         python_callable=clear_zte_excel_cm_tables,
                         dag=dag)

    dag.set_dependency('parse_zte_excel_cm_files', 'clear_zte_excel_cm_tables')
    dag.set_dependency('clear_zte_excel_cm_tables',
                       'import_zte_excel_parsed_csv')
    dag.set_dependency('import_zte_excel_parsed_csv',
                       'run_zte_excel_insert_queries')

    return dag
def parse_and_import_zte_2g(parent_dag_name, child_dag_name, start_date,
                            schedule_interval):
    """Parse and import ZTE 2G"""

    dag_id = '%s.%s' % (parent_dag_name, child_dag_name)
    dag = DAG(
        '%s.%s' % (parent_dag_name, child_dag_name),
        schedule_interval=schedule_interval,
        start_date=start_date,
    )

    # @TODO: Investigate other ways to check if there are not files yet
    t28 = BashOperator(
        task_id='check_if_zte_2g_raw_files_exist',
        bash_command='ls -1 /mediation/data/cm/zte/raw/in | wc -l',
        dag=dag)

    # @TODO: Backup parsed files
    t30 = BashOperator(
        task_id='backup_zte_2g_csv_files',
        bash_command=
        'mv -f /mediation/data/cm/zte/parsed/bulkcm_gsm/* /mediation/data/cm/zte/parsed/backup 2>/dev/null || true',
        dag=dag)

    def clear_zte_2g_cm_tables():
        pass

    t31 = PythonOperator(task_id='clear_zte_2g_cm_tables',
                         python_callable=clear_zte_2g_cm_tables,
                         dag=dag)

    parse_zte_2g_cm_files = BashOperator(
        task_id='parse_zte_2g_cm_files',
        bash_command=
        'java -jar /mediation/bin/boda-bulkcmparser.jar /mediation/data/cm/zte/raw/bulkcm_gsm /mediation/data/cm/zte/parsed/bulkcm_gsm /mediation/conf/cm/zte_cm_2g_blkcm_parser.cfg',
        dag=dag)

    import_zte_cm_data = BashOperator(
        task_id='import_zte_2g_cm_data',
        bash_command=
        'python /mediation/bin/load_cm_data_into_db.py zte_bulkcm_gsm /mediation/data/cm/zte/parsed/bulkcm_gsm ',
        dag=dag)

    dag.set_dependency('check_if_zte_2g_raw_files_exist',
                       'backup_zte_2g_csv_files')
    dag.set_dependency('backup_zte_2g_csv_files', 'parse_zte_2g_cm_files')
    dag.set_dependency('parse_zte_2g_cm_files', 'clear_zte_2g_cm_tables')
    dag.set_dependency('clear_zte_2g_cm_tables', 'import_zte_2g_cm_data')

    return dag
Exemple #13
0
def parse_and_import_zte_bulkcm(parent_dag_name, child_dag_name, start_date,
                                schedule_interval):

    dag_id = '%s.%s' % (parent_dag_name, child_dag_name)

    dag = DAG(
        '%s.%s' % (parent_dag_name, child_dag_name),
        schedule_interval=schedule_interval,
        start_date=start_date,
    )

    parse_zte_bulkcm_cm_files = BashOperator(
        task_id='parse_zte_bulkcm_cm_files',
        bash_command=
        'java -jar /mediation/bin/boda-bulkcmparser.jar -i /mediation/data/cm/zte/raw/bulkcm -o /mediation/data/cm/zte/parsed/bulkcm -c /mediation/conf/cm/zte_bulkcm_parser.cfg',
        dag=dag)

    import_mml_csv = BashOperator(
        task_id='import_zte_bulkcm_parsed_csv',
        bash_command=
        'python /mediation/bin/load_cm_data_into_db.py zte_bulkcm /mediation/data/cm/zte/parsed/bulkcm',
        dag=dag)

    t_run_zte_bulkcm_insert_queries = BashOperator(
        task_id='run_zte_bulkcm_insert_queries',
        bash_command=
        'python /mediation/bin/run_cm_load_insert_queries.py zte_bulkcm',
        dag=dag)

    # Clear 4G CM data tables
    def clear_zte_bulkcm_cm_tables():
        pass

    t50 = PythonOperator(task_id='clear_zte_bulkcm_cm_tables',
                         python_callable=clear_zte_bulkcm_cm_tables,
                         dag=dag)

    dag.set_dependency('parse_zte_bulkcm_cm_files',
                       'clear_zte_bulkcm_cm_tables')
    dag.set_dependency('clear_zte_bulkcm_cm_tables',
                       'import_zte_bulkcm_parsed_csv')
    dag.set_dependency('import_zte_bulkcm_parsed_csv',
                       'run_zte_bulkcm_insert_queries')

    return dag
def parse_and_import_huawei_rnp(parent_dag_name, child_dag_name, start_date, schedule_interval):

    dag_id = '%s.%s' % (parent_dag_name, child_dag_name)

    dag = DAG(
        '%s.%s' % (parent_dag_name, child_dag_name),
        schedule_interval=schedule_interval,
        start_date=start_date,
    )

    parse_huawei_rnp_cm_files = BashOperator(
      task_id='parse_huawei_rnp_cm_files',
      bash_command='python /mediation/bin/parse_huawei_rnp_data_templates.py /mediation/data/cm/huawei/raw/rnp /mediation/data/cm/huawei/parsed/rnp /mediation/conf/cm/huawei_rnp_parser.cfg',
      dag=dag)

    import_nbi_csv = BashOperator(
        task_id='import_huawei_rnp_parsed_csv',
        bash_command='python /mediation/bin/load_cm_data_into_db.py huawei_rnp /mediation/data/cm/huawei/parsed/rnp',
        dag=dag)

    t_run_huawei_gexport_insert_queries = BashOperator(
        task_id='run_huawei_rnp_insert_queries',
        bash_command='python /mediation/bin/run_cm_load_insert_queries.py huawei_rnp',
        dag=dag)


    # Clear 4G CM data tables
    def clear_huawei_rnp_cm_tables():
        pass

    t50 = PythonOperator(
        task_id='clear_huawei_rnp_cm_tables',
        python_callable=clear_huawei_rnp_cm_tables,
        dag=dag)


    dag.set_dependency('parse_huawei_rnp_cm_files', 'clear_huawei_rnp_cm_tables')
    dag.set_dependency('clear_huawei_rnp_cm_tables', 'import_huawei_rnp_parsed_csv')
    dag.set_dependency('import_huawei_rnp_parsed_csv', 'run_huawei_rnp_insert_queries')

    return dag
def parse_and_import_huawei_3g(parent_dag_name, child_dag_name, start_date,
                               schedule_interval):

    dag_id = '%s.%s' % (parent_dag_name, child_dag_name)

    dag = DAG(
        '%s.%s' % (parent_dag_name, child_dag_name),
        schedule_interval=schedule_interval,
        start_date=start_date,
    )

    # @TODO: Investigate other ways to check if there are not files yet considering all the formats supported
    t42 = BashOperator(
        task_id='check_if_hua_3g_raw_files_exist',
        # bash_command='if [ 0 -eq `ls -1 /mediation/data/cm/huawei/3g/raw/in | wc -l` ]; then exit 1; fi',
        bash_command='ls -1 /mediation/data/cm/huawei/2g/raw/in | wc -l',
        dag=dag)

    t43 = BashOperator(
        task_id='backup_huawei_3g_csv_files',
        bash_command=
        'mv -f /mediation/data/cm/huawei/parsed/{nbi_umts,nbi_sran,nbi_lte,nbi_gsm,mml_umts,mml_lte,mml_gsm,gexport_wcdma,gexport_sran,gexport_other,gexport_lte,gexport_gsm,gexport_cdma}/* /mediation/data/cm/huawei/parsed/backup 2>/dev/null || true',
        dag=dag)

    # Clear 3G CM data tables
    def clear_huawei_3g_cm_tables():
        pass

    t45 = PythonOperator(task_id='clear_huawei_3g_cm_tables',
                         python_callable=clear_huawei_3g_cm_tables,
                         dag=dag)

    # t46 = BashOperator(
    #     task_id='import_huawei_3g_cm_data',
    #     bash_command='export PGPASSWORD=password && psql -h $POSTGRES_HOST -U bodastage -d bts -a -w -f "/mediation/conf/cm/hua_cm_3g_nbi_loader.cfg"',
    #     dag=dag)

    sub_dag_import_huawei_3g_csv = SubDagOperator(
        subdag=import_huawei_3g_parsed_csv(
            dag_id,
            'import_huawei_3g_parsed_csv',
            start_date=dag.start_date,
            schedule_interval=dag.schedule_interval),
        task_id='import_huawei_3g_parsed_csv',
        dag=dag,
    )

    sub_dag_parser_huawei_3g_cm_files = SubDagOperator(
        subdag=run_huawei_3g_parser(dag_id,
                                    'parse_huawei_3g_cm_files',
                                    start_date=dag.start_date,
                                    schedule_interval=dag.schedule_interval),
        task_id='parse_huawei_3g_cm_files',
        dag=dag,
    )

    dag.set_dependency('check_if_hua_3g_raw_files_exist',
                       'backup_huawei_3g_csv_files')
    dag.set_dependency('backup_huawei_3g_csv_files',
                       'parse_huawei_3g_cm_files')
    dag.set_dependency('parse_huawei_3g_cm_files', 'clear_huawei_3g_cm_tables')
    dag.set_dependency('clear_huawei_3g_cm_tables',
                       'import_huawei_3g_parsed_csv')

    return dag
Exemple #16
0
def extract_2g_externals(parent_dag_name, child_dag_name, start_date,
                         schedule_interval):
    """
    Parse huawei 4g cm files.

    :param parent_dag_name:
    :param child_dag_name:
    :param start_date:
    :param schedule_interval:
    :return:
    """
    dag = DAG(
        '%s.%s' % (parent_dag_name, child_dag_name),
        schedule_interval=schedule_interval,
        start_date=start_date,
    )

    branch_start = BranchPythonOperator(task_id='branch_huawei_2g_externals',
                                        python_callable=pre_clean_up,
                                        dag=dag)

    def extract_huawei_2g_externals():
        huawei_cm.extract_live_network_2g_externals_on_2g()
        huawei_cm.extract_live_network_3g_externals_on_2g()
        huawei_cm.extract_live_network_4g_externals_on_2g()

    t66 = PythonOperator(task_id='extract_huawei_2g_externals',
                         python_callable=extract_huawei_2g_externals,
                         dag=dag)

    t29 = BashOperator(
        task_id='run_huawei_4g_xml_nbi_parser',
        bash_command=
        'java -jar /mediation/bin/boda-huaweinbixmlparser.jar /mediation/data/cm/huawei/raw/nbi_lte /mediation/data/cm/huawei/parsed/nbi_lte /mediation/conf/cm/huawei_nbi_lte_parser.cfg',
        dag=dag)

    t29_2 = BashOperator(
        task_id='run_huawei_4g_mml_parser',
        bash_command=
        'java -jar /mediation/bin/boda-huaweimmlparser.jar /mediation/data/cm/huawei/raw/mml_lte /mediation/data/cm/huawei/parsed/mml_lte /mediation/conf/cm/huawei_mml_lte_parser.cfg',
        dag=dag)

    run_huawei_2g_xml_gexport_parser = BashOperator(
        task_id='run_huawei_4g_xml_gexport_parser',
        bash_command=
        'java -jar /mediation/bin/boda-huaweicmobjectparser.jar /mediation/data/cm/huawei/raw/gexport_lte /mediation/data/cm/huawei/parsed/gexport_lte /mediation/conf/cm/huawei_gexport_lte_parser.cfg',
        dag=dag)

    t_join = DummyOperator(
        task_id='join_huawei_2g_externals',
        dag=dag,
    )

    dag.set_dependency('branch_huawei_4g_parser', 'run_huawei_4g_mml_parser')
    dag.set_dependency('branch_huawei_4g_parser',
                       'run_huawei_4g_xml_nbi_parser')
    dag.set_dependency('branch_huawei_4g_parser',
                       'run_huawei_4g_xml_gexport_parser')

    dag.set_dependency('run_huawei_4g_mml_parser', 'join_huawei_4g_parser')
    dag.set_dependency('run_huawei_4g_xml_nbi_parser', 'join_huawei_4g_parser')
    dag.set_dependency('run_huawei_4g_xml_gexport_parser',
                       'join_huawei_4g_parser')

    return dag
def run_house_keeping_tasks(parent_dag_name, child_dag_name, start_date,
                            schedule_interval):
    """
    Live network external definitions for all vendors

    :param parent_dag_name:
    :param child_dag_name:
    :param start_date:
    :param schedule_interval:
    :return:
    """
    dag = DAG(
        '%s.%s' % (parent_dag_name, child_dag_name),
        schedule_interval=schedule_interval,
        start_date=start_date,
    )

    start_house_keeping_tasks = DummyOperator(task_id='start_house_keeping',
                                              dag=dag)
    join_externals_task = DummyOperator(task_id='end_house_keeping', dag=dag)

    backup_huawei_cm_dumps_task = BashOperator(
        task_id='backup_huawei_cm_dumps',
        bash_command=
        'mv -f /mediation/data/cm/huawei/raw/{nbi,mml,gexport,cfgsyn}/* /mediation/data/cm/huawei/raw/backup/ 2>/dev/null || true',
        dag=dag)

    backup_ericsson_cm_dumps_task = BashOperator(
        task_id='backup_ericsson_cm_dumps',
        bash_command=
        'mv -f /mediation/data/cm/ericsson/raw/{bulkcm,eaw,cnaiv2}/* /mediation/data/cm/ericsson/raw/backup/ 2>/dev/null || true',
        dag=dag)

    backup_zte_cm_dumps_task = BashOperator(
        task_id='backup_zte_cm_dumps',
        bash_command=
        'mv -f /mediation/data/cm/zte/raw/{bulkcm,excel}/* /mediation/data/cm/zte/raw/backup/ 2>/dev/null || true',
        dag=dag)

    backup_nokia_cm_dumps_task = BashOperator(
        task_id='backup_nokia_cm_dumps',
        bash_command=
        'mv -f /mediation/data/cm/nokia/raw/{raml20}/* /mediation/data/cm/nokia/raw/backup/ 2>/dev/null || true',
        dag=dag)

    dag.set_dependency('start_house_keeping', 'backup_huawei_cm_dumps')
    dag.set_dependency('start_house_keeping', 'backup_ericsson_cm_dumps')
    dag.set_dependency('start_house_keeping', 'backup_zte_cm_dumps')
    dag.set_dependency('start_house_keeping', 'backup_nokia_cm_dumps')

    dag.set_dependency('backup_huawei_cm_dumps', 'end_house_keeping')
    dag.set_dependency('backup_ericsson_cm_dumps', 'end_house_keeping')
    dag.set_dependency('backup_zte_cm_dumps', 'end_house_keeping')
    dag.set_dependency('backup_nokia_cm_dumps', 'end_house_keeping')

    return dag
Exemple #18
0
def extract_network_externals(parent_dag_name, child_dag_name, start_date, schedule_interval):
    """
    Live network external definitions for all vendors

    :param parent_dag_name:
    :param child_dag_name:
    :param start_date:
    :param schedule_interval:
    :return:
    """
    dag = DAG(
        '%s.%s' % (parent_dag_name, child_dag_name),
        schedule_interval=schedule_interval,
        start_date=start_date,
    )

    branch_externals_task = DummyOperator( task_id='branch_externals', dag=dag)
    join_externals_task = DummyOperator(task_id='join_externals', dag=dag)

    def extract_external_definitions_on_ericsson():
        ericsson_cm.extract_live_network_externals_on_2g()
        ericsson_cm.extract_live_network_externals_on_3g()
        ericsson_cm.extract_live_network_externals_on_4g()

    extract_external_definitions_on_ericsson_task = BranchPythonOperator(
        task_id='extract_external_definitions_on_ericsson',
        python_callable=extract_external_definitions_on_ericsson,
        dag=dag)

    def extract_external_definitions_on_huawei():
        huawei_cm.extract_live_network_externals_on_2g()
        huawei_cm.extract_live_network_externals_on_3g()
        huawei_cm.extract_live_network_externals_on_4g()

    extract_external_definitions_on_huawei_task = BranchPythonOperator(
        task_id='extract_external_definitions_on_huawei',
        python_callable=extract_external_definitions_on_huawei,
        dag=dag)

    def extract_external_definitions_on_zte():
        zte_cm.extract_live_network_externals_on_2g()
        zte_cm.extract_live_network_externals_on_3g()
        zte_cm.extract_live_network_externals_on_4g()

    extract_external_definitions_on_zte_task = BranchPythonOperator(
        task_id='extract_external_definitions_on_zte',
        python_callable=extract_external_definitions_on_zte,
        dag=dag)

    dag.set_dependency('branch_externals', 'extract_external_definitions_on_ericsson')
    dag.set_dependency('branch_externals', 'extract_external_definitions_on_huawei')
    dag.set_dependency('branch_externals', 'extract_external_definitions_on_zte')

    dag.set_dependency('extract_external_definitions_on_ericsson', 'join_externals')
    dag.set_dependency('extract_external_definitions_on_huawei', 'join_externals')
    dag.set_dependency('extract_external_definitions_on_zte', 'join_externals')


    return dag
Exemple #19
0
deps = {
        'task_1':[
            'wf_upstream_1',
            'wf_upstream_2',
            ],
        'task_2':[
            'wf_upstream_1',
            'wf_upstream_2',
            'wf_upstream_3',
            ],
        }

# Explicitly define the dependencies in the DAG
for downstream, upstream_list in deps.iteritems():
    for upstream in upstream_list:
        dag.set_dependency(upstream, downstream)

'''
Principles of a Good ETL Pipeline:
    - Partition data tables
        Data partitioning can be especially useful
        when dealing with large-size tables with a
        long history. When data is partitioned using
        datestamps, we can leverage dynamic partions
        to parallelize backfilling.

            CREATE TABLE IF NOT EXISTS fct_bookings(
                    id_listing BIGINT COMMENT 'Unique ID of the listing'
                  , id_host    BIGINT COMMENT 'Unique ID of the host who owns the listing'
                  , m_bookings BIGINT COMMENT 'Denoted 1 if a booking transaction occurred'
                )
Exemple #20
0
def run_network_baseline_audit():
    nb.run_baseline_audit()


network_baseline_audit = PythonOperator(
    task_id='run_network_baseline_audit',
    python_callable=run_network_baseline_audit,
    dag=dag)

ext_dep = ExternalTaskSensor(external_dag_id='cm_load',
                             external_task_id='end_cm_load',
                             task_id='start_baseline',
                             dag=dag)

dag.set_dependency('start_baseline', 'huawei_2g_value_counts')
dag.set_dependency('start_baseline', 'huawei_3g_value_counts')
dag.set_dependency('start_baseline', 'huawei_4g_value_counts')

dag.set_dependency('start_baseline', 'ericsson_2g_value_counts')
dag.set_dependency('start_baseline', 'ericsson_3g_value_counts')
dag.set_dependency('start_baseline', 'ericsson_4g_value_counts')

dag.set_dependency('start_baseline', 'zte_2g_value_counts')
dag.set_dependency('start_baseline', 'zte_3g_value_counts')
dag.set_dependency('start_baseline', 'zte_4g_value_counts')

dag.set_dependency('huawei_2g_value_counts', 'compute_network_baseline')
dag.set_dependency('huawei_3g_value_counts', 'compute_network_baseline')
dag.set_dependency('huawei_4g_value_counts', 'compute_network_baseline')
def parse_and_import_huawei_2g(parent_dag_name, child_dag_name, start_date,
                               schedule_interval):

    dag_id = '%s.%s' % (parent_dag_name, child_dag_name)
    dag = DAG(
        '%s.%s' % (parent_dag_name, child_dag_name),
        schedule_interval=schedule_interval,
        start_date=start_date,
    )

    # @TODO: Investigate other ways to check if there are not files yet
    t28 = BashOperator(
        task_id='check_if_huawei_2g_raw_files_exist',
        # bash_command='if [ 0 -eq `ls -1 /mediation/data/cm/huawei/2g/raw/in | wc -l` ]; then exit 1; fi',
        bash_command='ls -1 /mediation/data/cm/huawei/2g/raw/in | wc -l',
        dag=dag)

    # @TODO: Backup parsed files
    t30 = BashOperator(
        task_id='backup_huawei_2g_csv_files',
        # bash_command='mv -f /mediation/data/cm/huawei/2g/parsed/in/* /mediation/data/cm/huawei/2g/parsed/out/ 2>/dev/null || true',
        bash_command=
        'mv -f /mediation/data/cm/huawei/2g/parsed/in/* /mediation/data/cm/huawei/2g/parsed/out/ 2>/dev/null || true',
        dag=dag)

    def clear_huawei_2g_cm_tables():
        pass

    t31 = PythonOperator(task_id='clear_huawei_2g_cm_tables',
                         python_callable=clear_huawei_2g_cm_tables,
                         dag=dag)

    # Run Huawei 2G parser
    sub_dag_parse_huawei_2g_cm_files = SubDagOperator(
        subdag=run_huawei_2g_parser(dag_id,
                                    'parse_huawei_2g_cm_files',
                                    start_date=dag.start_date,
                                    schedule_interval=dag.schedule_interval),
        task_id='parse_huawei_2g_cm_files',
        dag=dag,
    )

    sub_dag_import_huawei_2g_csv = SubDagOperator(
        subdag=import_huawei_2g_parsed_csv(
            dag_id,
            'import_huawei_2g_parsed_csv',
            start_date=dag.start_date,
            schedule_interval=dag.schedule_interval),
        task_id='import_huawei_2g_parsed_csv',
        dag=dag,
    )
    #
    # t32 = BashOperator(
    #     task_id='import_huawei_2g_cm_data',
    #     bash_command='export PGPASSWORD=password && psql -h $POSTGRES_HOST -U bodastage -d bts -a -w -f "/mediation/conf/cm/hua_cm_2g_nbi_loader.cfg"',
    #     dag=dag)

    dag.set_dependency('check_if_huawei_2g_raw_files_exist',
                       'backup_huawei_2g_csv_files')
    dag.set_dependency('backup_huawei_2g_csv_files',
                       'parse_huawei_2g_cm_files')
    dag.set_dependency('parse_huawei_2g_cm_files', 'clear_huawei_2g_cm_tables')
    dag.set_dependency('clear_huawei_2g_cm_tables',
                       'import_huawei_2g_parsed_csv')

    return dag
def run_huawei_4g_parser(parent_dag_name, child_dag_name, start_date, schedule_interval):
    """
    Parse huawei 4g cm files.

    :param parent_dag_name:
    :param child_dag_name:
    :param start_date:
    :param schedule_interval:
    :return:
    """
    dag = DAG(
        '%s.%s' % (parent_dag_name, child_dag_name),
        schedule_interval=schedule_interval,
        start_date=start_date,
    )

    def pre_clean_up():
        pass

    t23 = DummyOperator(
        task_id='branch_huawei_4g_parser',
        dag=dag)

    t29 = BashOperator(
        task_id='run_huawei_4g_xml_nbi_parser',
        bash_command='java -jar /mediation/bin/boda-huaweinbixmlparser.jar /mediation/data/cm/huawei/raw/nbi_lte /mediation/data/cm/huawei/parsed/nbi_lte /mediation/conf/cm/huawei_nbi_lte_parser.cfg',
        dag=dag)

    t29_2 = BashOperator(
        task_id='run_huawei_4g_mml_parser',
        bash_command='java -jar /mediation/bin/boda-huaweimmlparser.jar /mediation/data/cm/huawei/raw/mml_lte /mediation/data/cm/huawei/parsed/mml_lte /mediation/conf/cm/huawei_mml_lte_parser.cfg',
        dag=dag)

    run_huawei_2g_xml_gexport_parser = BashOperator(
      task_id='run_huawei_4g_xml_gexport_parser',
      bash_command='java -jar /mediation/bin/boda-huaweicmobjectparser.jar /mediation/data/cm/huawei/raw/gexport_lte /mediation/data/cm/huawei/parsed/gexport_lte /mediation/conf/cm/huawei_gexport_lte_parser.cfg',
      dag=dag)

    t_join = DummyOperator(
        task_id='join_huawei_4g_parser',
        dag=dag,
    )

    dag.set_dependency('branch_huawei_4g_parser', 'run_huawei_4g_mml_parser')
    dag.set_dependency('branch_huawei_4g_parser', 'run_huawei_4g_xml_nbi_parser')
    dag.set_dependency('branch_huawei_4g_parser', 'run_huawei_4g_xml_gexport_parser')

    dag.set_dependency('run_huawei_4g_mml_parser', 'join_huawei_4g_parser')
    dag.set_dependency('run_huawei_4g_xml_nbi_parser', 'join_huawei_4g_parser')
    dag.set_dependency('run_huawei_4g_xml_gexport_parser', 'join_huawei_4g_parser')


    return dag
Exemple #23
0
inconsistent_lte_externals_task = PythonOperator(
    task_id='generate_inconsistent_lte_externals',
    python_callable=inconsistent_lte_externals,
    dag=dag)

generate_missing_one_way_relations_task = PythonOperator(
    task_id='generate_missing_one_way_relations',
    python_callable=generate_missing_one_way_relations,
    dag=dag)

generate_missing_cosite_relations_task = PythonOperator(
    task_id='generate_missing_cosite_relations',
    python_callable=generate_missing_cosite_relations,
    dag=dag)

dag.set_dependency('start_network_audits',
                   'generate_inconsistent_gsm_externals')
dag.set_dependency('start_network_audits',
                   'generate_inconsistent_umts_externals')
dag.set_dependency('start_network_audits',
                   'generate_inconsistent_lte_externals')
dag.set_dependency('start_network_audits',
                   'generate_missing_one_way_relations')
dag.set_dependency('start_network_audits', 'generate_missing_cosite_relations')

dag.set_dependency('generate_inconsistent_gsm_externals', 'end_network_audits')
dag.set_dependency('generate_inconsistent_umts_externals',
                   'end_network_audits')
dag.set_dependency('generate_inconsistent_lte_externals', 'end_network_audits')
dag.set_dependency('generate_missing_one_way_relations', 'end_network_audits')
dag.set_dependency('generate_missing_cosite_relations', 'end_network_audits')
def run_huawei_2g_parser(parent_dag_name, child_dag_name, start_date,
                         schedule_interval):
    """
    Parse huawei 2g cm files.

    :param parent_dag_name:
    :param child_dag_name:
    :param start_date:
    :param schedule_interval:
    :return:
    """
    dag = DAG(
        '%s.%s' % (parent_dag_name, child_dag_name),
        schedule_interval=schedule_interval,
        start_date=start_date,
    )

    t23 = DummyOperator(task_id='branch_huawei_2g_parser', dag=dag)

    t29 = BashOperator(
        task_id='run_huawei_2g_xml_nbi_parser',
        bash_command=
        'java -jar /mediation/bin/boda-huaweinbixmlparser.jar /mediation/data/cm/huawei/raw/nbi_gsm /mediation/data/cm/huawei/parsed/nbi_gsm /mediation/conf/cm/huawei_nbi_gsm_parser.cfg',
        dag=dag)

    t29_2 = BashOperator(
        task_id='run_huawei_2g_mml_parser',
        bash_command=
        'java -jar /mediation/bin/boda-huaweimmlparser.jar /mediation/data/cm/huawei/raw/mml_gsm /mediation/data/cm/huawei/parsed/mml_gsm /mediation/conf/cm/huawei_mml_gsm_parser.cfg',
        dag=dag)

    t29_3 = BashOperator(
        task_id='run_huawei_2g_xml_gexport_parser',
        bash_command=
        'java -jar /mediation/bin/boda-huaweicmobjectparser.jar /mediation/data/cm/huawei/raw/gexport_gsm /mediation/data/cm/huawei/parsed/gexport_gsm /mediation/conf/cm/huawei_gexport_gsm_parser.cfg',
        dag=dag)

    t_join = DummyOperator(
        task_id='join_huawei_2g_parser',
        dag=dag,
    )

    t_strip_neversion_from_mo = BashOperator(
        task_id='strip_neversion_from_gsm_mos',
        bash_command=
        'sed -i -r " s/_(BSC6900GSM|BSC6900UMTS|BSC6900GU|BSC6910GSM|BSC6910UMTS|BSC6910GU)//ig; s/_(BTS3900|PICOBTS3900|BTS3911B|PICOBTS3911B|MICROBTS3900|MICROBTS3911B)//ig;" /mediation/data/cm/huawei/raw/gexport_gsm/*',
        dag=dag)

    dag.set_dependency('branch_huawei_2g_parser', 'run_huawei_2g_mml_parser')
    dag.set_dependency('branch_huawei_2g_parser',
                       'run_huawei_2g_xml_nbi_parser')
    dag.set_dependency('branch_huawei_2g_parser',
                       'strip_neversion_from_gsm_mos')
    dag.set_dependency('strip_neversion_from_gsm_mos',
                       'run_huawei_2g_xml_gexport_parser')

    dag.set_dependency('run_huawei_2g_mml_parser', 'join_huawei_2g_parser')
    dag.set_dependency('run_huawei_2g_xml_nbi_parser', 'join_huawei_2g_parser')
    dag.set_dependency('run_huawei_2g_xml_gexport_parser',
                       'join_huawei_2g_parser')

    return dag
Exemple #25
0
                    trigger_rule=TriggerRule.ALL_SUCCESS,
                    dag=dag)

t81 = DummyOperator(task_id='join_ericsson_supported',
                    trigger_rule=TriggerRule.ONE_SUCCESS,
                    dag=dag)

t82 = DummyOperator(task_id='join_huawei_supported',
                    trigger_rule=TriggerRule.ONE_SUCCESS,
                    dag=dag)

# Ericsson

# Build dependency graph
# dag.set_dependency('start_cm_etlp','is_ericsson_supported')
dag.set_dependency('start_cm_etlp', 'is_ericsson_2g_supported')
dag.set_dependency('start_cm_etlp', 'is_ericsson_3g4g_supported')

dag.set_dependency('is_ericsson_3g4g_supported', 'ericsson_3g4g_supported')
dag.set_dependency('is_ericsson_3g4g_supported', 'ericsson_3g4g_not_supported')

# dag.set_dependency('is_ericsson_supported','ericsson_is_supported')
# dag.set_dependency('is_ericsson_supported','ericsson_not_supported')

# dag.set_dependency('ericsson_not_supported','join_ericsson_supported')
dag.set_dependency('ericsson_cm_done', 'join_ericsson_supported')
dag.set_dependency('join_ericsson_supported', 'end_cm_etlp')

dag.set_dependency('ericsson_3g4g_not_supported', 'ericsson_cm_done')
dag.set_dependency('ericsson_3g4g_supported',
                   'parser_and_import_ericsson_3g4g')
Exemple #26
0
def parse_and_import_huawei_gexport(parent_dag_name, child_dag_name,
                                    start_date, schedule_interval):

    dag_id = '%s.%s' % (parent_dag_name, child_dag_name)

    dag = DAG(
        '%s.%s' % (parent_dag_name, child_dag_name),
        schedule_interval=schedule_interval,
        start_date=start_date,
    )

    task_clean_mo_names = BashOperator(task_id='clean_gexport_mo_names',
                                       bash_command=r"""
sed -i -r "
s/_(BSC6900GSM|BSC6900UMTS|BSC6900GU|BSC6910GSM|BSC6910UMTS|BSC6910GU)//ig;
s/_(BTS3900|PICOBTS3900|BTS3911B|PICOBTS3911B|MICROBTS3900|MICROBTS3911B)//ig;
s/BSC(6910|6900)(UMTS|GSM)Function/FUNCTION/ig;
s/BSC(6910|6900)Equipment/EQUIPMENT/ig;
s/<class name=\"(.*)\"/<class name=\"\U\1\"/ig;
s/<class name=\"(.*)_MSCSERVER/<class name=\"\1/ig;
s/<class name=\"(.*)_ENODEB\"/<class name=\"\1\"/ig;
s/<class name=\"(.*)3900/<class name=\"\1/ig;
" /mediation/data/cm/huawei/raw/gexport/*.xml || true
        """,
                                       dag=dag)

    parse_huawei_gexport_cm_files = BashOperator(
        task_id='parse_huawei_gexport_cm_files',
        bash_command=
        'java -jar /mediation/bin/boda-huaweicmobjectparser.jar -i /mediation/data/cm/huawei/raw/gexport -o /mediation/data/cm/huawei/parsed/gexport -c /mediation/conf/cm/huawei_gexport_parser.cfg',
        dag=dag)

    import_nbi_csv = BashOperator(
        task_id='import_huawei_gexport_parsed_csv',
        bash_command=
        'python /mediation/bin/load_cm_data_into_db.py huawei_gexport /mediation/data/cm/huawei/parsed/gexport',
        dag=dag)

    t_run_huawei_gexport_insert_queries = BashOperator(
        task_id='run_huawei_gexport_insert_queries',
        bash_command=
        'python /mediation/bin/run_cm_load_insert_queries.py huawei_gexport',
        dag=dag)

    # Clear 4G CM data tables
    def clear_huawei_gexport_cm_tables():
        pass

    t50 = PythonOperator(task_id='clear_huawei_gexport_cm_tables',
                         python_callable=clear_huawei_gexport_cm_tables,
                         dag=dag)

    dag.set_dependency('clean_gexport_mo_names',
                       'parse_huawei_gexport_cm_files')
    dag.set_dependency('parse_huawei_gexport_cm_files',
                       'clear_huawei_gexport_cm_tables')
    dag.set_dependency('clear_huawei_gexport_cm_tables',
                       'import_huawei_gexport_parsed_csv')
    dag.set_dependency('import_huawei_gexport_parsed_csv',
                       'run_huawei_gexport_insert_queries')

    return dag
Exemple #27
0

task_extract_zte_4g4g_nbrs = PythonOperator(
    task_id='extract_zte_4g4g_nbrs',
    python_callable=extract_zte_4g4g_nbrs,
    dag=dag)

task_zte_cm_done = DummyOperator(task_id='zte_cm_done', dag=dag)

join_nokia_supported_task = DummyOperator(task_id='join_nokia_supported',
                                          trigger_rule=TriggerRule.ONE_SUCCESS,
                                          dag=dag)

# Build dependency graph
# dag.set_dependency('start_cm_load','is_ericsson_supported')
dag.set_dependency('start_cm_load', 'process_ericsson')

dag.set_dependency('ericsson_cm_done', 'join_ericsson_supported')
dag.set_dependency('join_ericsson_supported', 'end_cm_load')

dag.set_dependency('process_ericsson', 'parse_and_import_ericsson_bulkcm')

dag.set_dependency('parse_and_import_ericsson_bulkcm', 'backup_3g4g_raw_files')
dag.set_dependency('parse_and_import_ericsson_bulkcm', 'process_eri_rncs')
dag.set_dependency('parse_and_import_ericsson_bulkcm', 'process_eri_enodebs')
dag.set_dependency('process_eri_rncs', 'extract_ericsson_3g_sites')
dag.set_dependency('extract_ericsson_3g_sites', 'extract_ericsson_3g_cells')
dag.set_dependency('process_eri_enodebs', 'extract_ericsson_4g_cells')
dag.set_dependency('extract_ericsson_3g_cells', 'cell_extraction_done')

dag.set_dependency('backup_3g4g_raw_files', 'ericsson_cm_done')