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)
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)
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)
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))