コード例 #1
0
 def setUpClass(self):
     try:
         config_path = dict(os.environ)['UDL2_CONF']
     except Exception:
         config_path = UDL2_DEFAULT_CONFIG_PATH_FILE
     conf_tup = read_ini_file(config_path)
     self.conf = conf_tup[0]
コード例 #2
0
 def setUpClass(self):
     try:
         config_path = dict(os.environ)['UDL2_CONF']
     except Exception:
         config_path = UDL2_DEFAULT_CONFIG_PATH_FILE
     conf_tup = read_ini_file(config_path)
     self.conf = conf_tup[0]
コード例 #3
0
    def setUp(self):
        try:
            config_path = dict(os.environ)['UDL2_CONF']
        except Exception:
            config_path = UDL2_DEFAULT_CONFIG_PATH_FILE

        conf_tup = read_ini_file(config_path)
        udl2_conf = conf_tup[0]
        initialize_db_udl(udl2_conf)
        self.ref_schema = udl2_conf['udl2_db_conn']['db_schema']
        self.ref_table_name = Constants.UDL2_REF_MAPPING_TABLE(Constants.LOAD_TYPE_ASSESSMENT)

        # Testable Rules
        self.rule_names = transform_rules.keys()
        self.rule_conf = transform_rules
        self.rule_list = transformation_code_generator.generate_transformations(self.rule_names, rule_conf=self.rule_conf)
        self.testable_rules = []
        for rule in self.rule_list:
            self.testable_rules.append(rule[0])

        test_rows = []
        for rule in self.testable_rules:
            ins_dict = {
                'phase': -999,
                'source_table': 'ftest_table',
                'source_column': 'ftest_column',
                'target_table': 'ftest_table1',
                'target_column': 'ftest_column1',
                'transformation_rule': rule,
            }
            test_rows.append(ins_dict)
        with get_udl_connection() as conn:
            self.ref_table = conn.get_table(self.ref_table_name)
            conn.execute(self.ref_table.insert(test_rows))
コード例 #4
0
def main():
    try:
        config_path_file = os.environ['UDL2_CONF']
    except Exception:
        config_path_file = UDL2_DEFAULT_CONFIG_PATH_FILE
    udl2_conf, udl2_flat_conf = read_ini_file(config_path_file)
    initialize_db_prod(udl2_conf)
    load_data('cat')
コード例 #5
0
 def setUp(self):
     try:
         config_path = dict(os.environ)['UDL2_CONF']
     except Exception:
         config_path = UDL2_DEFAULT_CONFIG_PATH_FILE
     conf_tup = read_ini_file(config_path)
     self.conf = conf_tup[0]
     self.output_dir = tempfile.mkdtemp()
コード例 #6
0
 def setUp(self):
     try:
         config_path = dict(os.environ)['UDL2_CONF']
     except Exception:
         config_path = UDL2_DEFAULT_CONFIG_PATH_FILE
     conf_tup = read_ini_file(config_path)
     self.conf = conf_tup[0]
     self.output_dir = tempfile.mkdtemp()
コード例 #7
0
 def setUp(self):
     try:
         config_path = dict(os.environ)['UDL2_CONF']
     except Exception:
         config_path = UDL2_DEFAULT_CONFIG_PATH_FILE
     conf_tup = read_ini_file(config_path)
     self.conf = conf_tup[0]
     initialize_all_db(udl2_conf, udl2_flat_conf)
     self.base_data_dir = os.path.join(os.path.dirname(__file__), "..", "data")
コード例 #8
0
 def setUp(self):
     try:
         config_path = dict(os.environ)['UDL2_CONF']
     except Exception:
         config_path = UDL2_DEFAULT_CONFIG_PATH_FILE
     conf_tup = read_ini_file(config_path)
     self.conf = conf_tup[0]
     initialize_all_db(udl2_conf, udl2_flat_conf)
     self.base_data_dir = os.path.join(os.path.dirname(__file__), "..",
                                       "data")
コード例 #9
0
 def setUp(self):
     try:
         config_path = dict(os.environ)['UDL2_CONF']
     except Exception:
         config_path = UDL2_DEFAULT_CONFIG_PATH_FILE
     udl2_conf = read_ini_file(config_path)
     if isinstance(udl2_conf, tuple):
         self.conf = udl2_conf[0]
     else:
         self.conf = udl2_conf
     self.test_expanded_dir = tempfile.mkdtemp()
コード例 #10
0
 def setUp(self, ):
     # TODO: don't rely on env. var
     # TODO: mock the data instead of using ini file
     try:
         config_path = dict(os.environ)['UDL2_CONF']
     except Exception:
         config_path = UDL2_DEFAULT_CONFIG_PATH_FILE
     conf_tup = read_ini_file(config_path)
     udl2_conf = conf_tup[0]
     self.conf = udl2_conf
     self.maxDiff = None
コード例 #11
0
 def setUp(self,):
     # TODO: don't rely on env. var
     # TODO: mock the data instead of using ini file
     try:
         config_path = dict(os.environ)['UDL2_CONF']
     except Exception:
         config_path = UDL2_DEFAULT_CONFIG_PATH_FILE
     conf_tup = read_ini_file(config_path)
     udl2_conf = conf_tup[0]
     self.conf = udl2_conf
     self.maxDiff = None
コード例 #12
0
 def setUp(self):
     try:
         config_path = dict(os.environ)['UDL2_CONF']
     except Exception:
         config_path = UDL2_DEFAULT_CONFIG_PATH_FILE
     udl2_conf = read_ini_file(config_path)
     if isinstance(udl2_conf, tuple):
         self.conf = udl2_conf[0]
     else:
         self.conf = udl2_conf
     self.test_expanded_dir = tempfile.mkdtemp()
コード例 #13
0
    def setUpClass(cls, data_dir):
        try:
            config_path_file = os.environ['UDL2_CONF']
        except Exception:
            config_path_file = UDL2_DEFAULT_CONFIG_PATH_FILE

        cls.udl2_conf, cls.settings = read_ini_file(config_path_file)
        cls.encrypt_helper = EncryptHelper(cls.settings)
        cls.data_dir = data_dir
        cls.gpg_home = cls.settings.get('gpg_home', None)
        # prepare gpg keys for tests
        if cls.gpg_home and not os.path.exists(cls.gpg_home):
            config_gpg = os.path.join(os.path.dirname(__file__), "../../../../config/gpg")
            shutil.copytree(config_gpg, cls.gpg_home)
コード例 #14
0
    def setUpClass(cls, data_dir):
        try:
            config_path_file = os.environ['UDL2_CONF']
        except Exception:
            config_path_file = UDL2_DEFAULT_CONFIG_PATH_FILE

        cls.udl2_conf, cls.settings = read_ini_file(config_path_file)
        cls.encrypt_helper = EncryptHelper(cls.settings)
        cls.data_dir = data_dir
        cls.gpg_home = cls.settings.get('gpg_home', None)
        # prepare gpg keys for tests
        if cls.gpg_home and not os.path.exists(cls.gpg_home):
            config_gpg = os.path.join(os.path.dirname(__file__),
                                      "../../../../config/gpg")
            shutil.copytree(config_gpg, cls.gpg_home)
コード例 #15
0
    def setUp(self):
        try:
            config_path = dict(os.environ)['UDL2_CONF']
        except Exception:
            config_path = UDL2_DEFAULT_CONFIG_PATH_FILE
        conf_tup = read_ini_file(config_path)
        udl2_conf = conf_tup[0]
        initialize_db_udl(udl2_conf)
        self.rule_names = transform_rules.keys()
        self.rule_conf = transform_rules
        self.rule_list = transformation_code_generator.generate_transformations(self.rule_names, rule_conf=self.rule_conf)

        with get_udl_connection() as conn:
            trans = conn.get_transaction()
            for rule in self.rule_list:
                try:
                    conn.execute(rule[2])
                except ProgrammingError as e:
                    raise AssertionError('UNABLE TO CREATE FUNCTION: %s, Error: "%s"' % (rule[0], e))
                    trans.rollback()
            trans.commit()
コード例 #16
0
def main():
    '''
    create or drop udl2 database objects according to command line.
    The purpose for this script is to enable clean up whole database artifacts or create
    whole database artifacts without problem. Since UDL uses databases to clean data. Database object
    in UDL can be dropped or recreated at will for changes. So we can verifiy system
    '''
    (parser, args) = _parse_args()
    if args.config_file is None:
        config_path_file = UDL2_DEFAULT_CONFIG_PATH_FILE
    else:
        config_path_file = args.config_file
    conf_tup = read_ini_file(config_path_file)
    udl2_conf = conf_tup[0]

    if args.action is None:
        parser.print_help()
        return
    if args.action == 'setup':
        setup_udl2_schema(udl2_conf)
    elif args.action == 'teardown':
        teardown_udl2_schema(udl2_conf)
コード例 #17
0
    def setUp(self):
        try:
            config_path = dict(os.environ)['UDL2_CONF']
        except Exception:
            config_path = UDL2_DEFAULT_CONFIG_PATH_FILE
        conf_tup = read_ini_file(config_path)
        udl2_conf = conf_tup[0]
        initialize_db_udl(udl2_conf)
        self.rule_names = transform_rules.keys()
        self.rule_conf = transform_rules
        self.rule_list = transformation_code_generator.generate_transformations(
            self.rule_names, rule_conf=self.rule_conf)

        with get_udl_connection() as conn:
            trans = conn.get_transaction()
            for rule in self.rule_list:
                try:
                    conn.execute(rule[2])
                except ProgrammingError as e:
                    raise AssertionError(
                        'UNABLE TO CREATE FUNCTION: %s, Error: "%s"' %
                        (rule[0], e))
                    trans.rollback()
            trans.commit()
コード例 #18
0
    def setUp(self):
        try:
            config_path = dict(os.environ)['UDL2_CONF']
        except Exception:
            config_path = UDL2_DEFAULT_CONFIG_PATH_FILE

        conf_tup = read_ini_file(config_path)
        udl2_conf = conf_tup[0]
        initialize_db_udl(udl2_conf)
        self.ref_schema = udl2_conf['udl2_db_conn']['db_schema']
        self.ref_table_name = Constants.UDL2_REF_MAPPING_TABLE(
            Constants.LOAD_TYPE_ASSESSMENT)

        # Testable Rules
        self.rule_names = transform_rules.keys()
        self.rule_conf = transform_rules
        self.rule_list = transformation_code_generator.generate_transformations(
            self.rule_names, rule_conf=self.rule_conf)
        self.testable_rules = []
        for rule in self.rule_list:
            self.testable_rules.append(rule[0])

        test_rows = []
        for rule in self.testable_rules:
            ins_dict = {
                'phase': -999,
                'source_table': 'ftest_table',
                'source_column': 'ftest_column',
                'target_table': 'ftest_table1',
                'target_column': 'ftest_column1',
                'transformation_rule': rule,
            }
            test_rows.append(ins_dict)
        with get_udl_connection() as conn:
            self.ref_table = conn.get_table(self.ref_table_name)
            conn.execute(self.ref_table.insert(test_rows))
コード例 #19
0

FILES = ['BENCHMARK_RECORDS_10K.tar.gz.asc', 'BENCHMARK_RECORDS_50K.tar.gz.asc', 'BENCHMARK_RECORDS_100K.tar.gz.asc', 'BENCHMARK_RECORDS_500K.tar.gz.asc', 'BENCHMARK_RECORDS_2M.tar.gz.asc', 'BENCHMARK_RECORDS_5M.tar.gz.asc']
#CSV_FILES = ['REALDATA_RECORDS_10K.csv', 'REALDATA_RECORDS_50K.csv', 'REALDATA_RECORDS_100K.csv',
#             'REALDATA_RECORDS_500K.csv', 'REALDATA_RECORDS_2M.csv', 'REALDATA_RECORDS_5M.csv']
#JSON_FILES = ['METADATA_RECORDS_10K.json', 'METADATA_RECORDS_50K.json', 'METADATA_RECORDS_100K.json',
#              'METADATA_RECORDS_500K.json', 'METADATA_RECORDS_2M.json', 'METADATA_RECORDS_5M.json']
HISTORY_TABLE = 'HISTORY_TABLE'
BATCH_TABLE = 'UDL_BATCH'

__location__ = os.path.realpath(os.path.join(os.getcwd(), os.path.dirname(__file__)))
logger = get_task_logger(__name__)

config_path_file = UDL2_DEFAULT_CONFIG_PATH_FILE

conf_tup = read_ini_file(config_path_file)
udl2_conf = conf_tup[0]


def start_test(directory_path, memory, cpu, hist_db, hist_schema, port, user, passwd, host):
    '''
    kick off the tests by scheduling the task with celery
    '''
    run_pipeline.apply_async(({'directory': directory_path, 'memory': memory, 'cpu': cpu, 'hist_db': hist_db,
                               'hist_schema': hist_schema, 'port': port, 'user': user, 'passwd': passwd, 'host': host}, ))


@celery.task(name='benchmarking.run_benchmarking.run_pipeline')
def run_pipeline(msg):
    '''
    Run the pipeline for the current file and use this task as a callback for future tasks
コード例 #20
0
def main():
    config_path_file = UDL2_DEFAULT_CONFIG_PATH_FILE
    udl2_conf, udl2_flat_conf = read_ini_file(config_path_file)
    initialize_db_target(udl2_conf)
    clean_up_unused_schemas()
コード例 #21
0
    parser.add_argument('-r', dest='report_hour', help='report hour, e.g. yesterday 10am to today 10am', default='10')
    parser.add_argument('-p', dest='pidfile', default='/opt/edware/run/edudl2-report.pid',
                        help="pid file for edudl2 trigger daemon")
    parser.add_argument('-d', dest='daemon', action='store_true', default=False,
                        help="daemon mode for udl report")
    args = parser.parse_args()

    config_path_file = args.ini_file
    hour = args.hour
    report_hour = args.report_hour
    daemon_mode = args.daemon
    pid_file = args.pidfile
    if daemon_mode:
        create_daemon(pid_file)
    # get udl2 configuration as nested and flat dictionary
    udl2_conf, udl2_flat_conf = read_ini_file(config_path_file)
    initialize_all_db(udl2_conf, udl2_flat_conf)

    email_to = udl2_flat_conf.get(UDL_REPORT_MAIL_TO)
    subject = udl2_flat_conf.get(UDL_REPORT_SUBJECT)
    email_from = udl2_flat_conf.get(UDL_REPORT_MAIL_FROM)
    enabled = udl2_flat_conf.get(UDL_REPORT_ENABLED)
    start_date = today = datetime.datetime.today().strftime('%Y-%m-%d %H:00:00')
    if enabled is not None and enabled.lower() == 'true':
        generate_report_settings = {'report.enable': 'True',
                                    'report.schedule.cron.hour': hour,
                                    'report.schedule.cron.minute': '0',
                                    'report.schedule.cron.second': '0',
                                    'hour': report_hour,
                                    'mail_to': email_to,
                                    'subject': subject,
コード例 #22
0
    parser.add_argument('-d',
                        dest='daemon',
                        action='store_true',
                        default=False,
                        help="daemon mode for udl report")
    args = parser.parse_args()

    config_path_file = args.ini_file
    hour = args.hour
    report_hour = args.report_hour
    daemon_mode = args.daemon
    pid_file = args.pidfile
    if daemon_mode:
        create_daemon(pid_file)
    # get udl2 configuration as nested and flat dictionary
    udl2_conf, udl2_flat_conf = read_ini_file(config_path_file)
    initialize_all_db(udl2_conf, udl2_flat_conf)

    email_to = udl2_flat_conf.get(UDL_REPORT_MAIL_TO)
    subject = udl2_flat_conf.get(UDL_REPORT_SUBJECT)
    email_from = udl2_flat_conf.get(UDL_REPORT_MAIL_FROM)
    enabled = udl2_flat_conf.get(UDL_REPORT_ENABLED)
    start_date = today = datetime.datetime.today().strftime(
        '%Y-%m-%d %H:00:00')
    if enabled is not None and enabled.lower() == 'true':
        generate_report_settings = {
            'report.enable': 'True',
            'report.schedule.cron.hour': hour,
            'report.schedule.cron.minute': '0',
            'report.schedule.cron.second': '0',
            'hour': report_hour,