Esempio n. 1
0
def modify_pom_files():
    for pom in POM_FILE_PATHS:
        file_path = Path(cm.workspace + "/" + cm.product_id + "/" + pom)
        if sys.platform.startswith('win'):
            file_path = cm.winapi_path(file_path)
        logger.info("Modifying pom file: " + str(file_path))
        ET.register_namespace('', NS['d'])
        artifact_tree = ET.parse(file_path)
        artifarct_root = artifact_tree.getroot()
        data_sources = artifarct_root.find('d:build', NS)
        plugins = data_sources.find('d:plugins', NS)
        for plugin in plugins.findall('d:plugin', NS):
            artifact_id = plugin.find('d:artifactId', NS)
            if artifact_id is not None and artifact_id.text == SURFACE_PLUGIN_ARTIFACT_ID:
                configuration = plugin.find('d:configuration', NS)
                system_properties = configuration.find('d:systemProperties', NS)
                for neighbor in system_properties.iter('{' + NS['d'] + '}' + CARBON_NAME):
                    neighbor.text = cm.modify_distribution_name(neighbor)
                for prop in system_properties:
                    name = prop.find('d:name', NS)
                    if name is not None and name.text == CARBON_NAME:
                        for data in prop:
                            if data.tag == VALUE_TAG:
                                data.text = cm.modify_distribution_name(data)
                break
        artifact_tree.write(file_path)
Esempio n. 2
0
def copy_file(source, target):
    """Copy the source file to the target.
    """
    try:
        if sys.platform.startswith('win'):
            source = cm.winapi_path(source)
            target = cm.winapi_path(target)

        if os.path.isdir(source):
            shutil.copytree(source,
                            target,
                            ignore=cm.ignore_dirs(IGNORE_DIR_TYPES))
        else:
            shutil.copy(source, target)
    except OSError as e:
        print('Directory not copied. Error: %s' % e)
Esempio n. 3
0
def modify_datasources():
    file_path = Path(storage_dist_abs_path / datasource_path)
    if sys.platform.startswith('win'):
        file_path = cm.winapi_path(file_path)
    logger.info("Modifying datasource: " + str(file_path))
    deployment_toml_config = toml.load(file_path)
    logger.info("loading dep,loyment.toml file")
    logger.info(deployment_toml_config)

    for key in deployment_toml_config:
        if key == 'database':
            database_config = deployment_toml_config[key]
            for key in database_config:
                if key == 'identity_db':
                    identity_db_config = database_config['identity_db']
                    identity_db_config['url'] = "$env{IDENTITY_DATABASE_URL}"
                    identity_db_config[
                        'username'] = "******"
                    identity_db_config[
                        'password'] = "******"
                    identity_db_config[
                        'driver'] = "$env{IDENTITY_DATABASE_DRIVER}"
                    database_names.append(identity_db)

            if key == 'shared_db':
                shared_db_config = database_config['shared_db']
                shared_db_config['url'] = "$env{SHARED_DATABASE_URL}"
                shared_db_config['username'] = "******"
                shared_db_config['password'] = "******"
                shared_db_config['driver'] = "$env{SHARED_DATABASE_DRIVER}"
                database_names.append(shared_db)

    with open(file_path, 'w') as writer:
        writer.write(toml.dumps(deployment_toml_config))
def modify_datasources():
    for data_source in datasource_paths:
        file_path = Path(storage_dist_abs_path / data_source)
        if sys.platform.startswith('win'):
            file_path = cm.winapi_path(file_path)
        logger.info("Modifying datasource: " + str(file_path))
        artifact_tree = ET.parse(file_path)
        artifarc_root = artifact_tree.getroot()
        data_sources = artifarc_root.find('datasources')
        for item in data_sources.findall('datasource'):
            database_name = None
            for child in item:
                if child.tag == 'name':
                    database_name = child.text
                # special checking for namespace object content:media
                if child.tag == 'definition' and database_name:
                    configuration = child.find('configuration')
                    url = configuration.find('url')
                    user = configuration.find('username')
                    password = configuration.find('password')
                    validation_query = configuration.find('validationQuery')
                    drive_class_name = configuration.find('driverClassName')
                    if MYSQL_DB_ENGINE == cm.database_config[
                            'db_engine'].upper():
                        url.text = url.text.replace(
                            url.text,
                            cm.database_config['url'] + "/" + database_name +
                            "?autoReconnect=true&useSSL=false&requireSSL=false&"
                            "verifyServerCertificate=false")
                        user.text = user.text.replace(
                            user.text, cm.database_config['user'])
                    elif ORACLE_DB_ENGINE == cm.database_config[
                            'db_engine'].upper():
                        url.text = url.text.replace(
                            url.text, cm.database_config['url'] + "/" +
                            DEFAULT_ORACLE_SID)
                        user.text = user.text.replace(user.text, database_name)
                        validation_query.text = validation_query.text.replace(
                            validation_query.text, "SELECT 1 FROM DUAL")
                    elif MSSQL_DB_ENGINE == cm.database_config[
                            'db_engine'].upper():
                        url.text = url.text.replace(
                            url.text, cm.database_config['url'] + ";" +
                            "databaseName=" + database_name)
                        user.text = user.text.replace(
                            user.text, cm.database_config['user'])
                    else:
                        url.text = url.text.replace(
                            url.text,
                            cm.database_config['url'] + "/" + database_name)
                        user.text = user.text.replace(
                            user.text, cm.database_config['user'])
                    password.text = password.text.replace(
                        password.text, cm.database_config['password'])
                    drive_class_name.text = drive_class_name.text.replace(
                        drive_class_name.text,
                        cm.database_config['driver_class_name'])
                    database_names.append(database_name)
        artifact_tree.write(file_path)
Esempio n. 5
0
def modify_datasources():
        file_path = Path(storage_dist_abs_path / datasource_path)
        if sys.platform.startswith('win'):
            file_path = cm.winapi_path(file_path)
        logger.info("Modifying datasource: " + str(file_path))
        deployment_toml_config = toml.load(file_path)
        logger.info("loading dep,loyment.toml file")
        logger.info(deployment_toml_config)


        db_config = {'database': {'identity_db': {'url': '$env{IDENTITY_DATABASE_URL}',
                                            'username': '******',
                                            'password': '******',
                                            'driver': '$env{IDENTITY_DATABASE_DRIVER}',
                                            'pool_options': {'defaultAutoCommit': "$env{IDENTITY_DATABASE_DEFAULT_AUTOCOMMIT}",
                                                             'validationQuery': "$env{IDENTITY_DATABASE_DEFAULT_VALIDATION_QUERY}"}},
                            'shared_db': { 'url': "$env{SHARED_DATABASE_URL}",
                                           'username': "******",
                                           'password': "******",
                                           'driver': '$env{SHARED_DATABASE_DRIVER}',
                                           'pool_options': {'defaultAutoCommit': "$env{SHARED_DATABASE_DEFAULT_AUTOCOMMIT}",
                                                            'validationQuery': "$env{SHARED_DATABASE_DEFAULT_VALIDATION_QUERY}"}}}}

        deployment_toml_config.update(db_config)
        database_names.append(identity_db)
        database_names.append(shared_db)
        logger.info("******New db config")
        logger.info(deployment_toml_config)

                # if key == 'shared_db':
                #         shared_db_config = database_config['shared_db']
                #         shared_db_config ['url'] = "$env{SHARED_DATABASE_URL}"
                #         shared_db_config ['username'] = "******"
                #         shared_db_config ['password'] = "******"
                #         shared_db_config ['driver'] = "$env{SHARED_DATABASE_DRIVER}"
                #
                #         dbconf = database_config['database.identity_db.pool_options']
                #         dbconf['validationQuery'] = "$env{SHARED_DATABASE_DEFAULT_VALIDATION_QUERY}"
                #         dbconf['defaultAutoCommit'] = "$env{SHARED_DATABASE_DEFAULT_AUTOCOMMIT}"
                #         database_names.append(shared_db)

        with open(file_path, 'w') as writer:
            writer.write(toml.dumps(deployment_toml_config))