def initialize(task_pages_dict: dict, logging_mode: str = 'INFO', log_to_file_var: bool = False, contrib_log_mode: str = 'silent'): ################################################################################################################### # Contrib_Compare_inst - used to analyze pages and create page contribution maps based on the content, # # collected from one of supported platforms # # mysql_connector_inst, sql_connector_inst - used to store\load page contribution maps in\from SQL\mySQL # # xWikiAPI_inst, mWikiAPI_instance, ConfluenceAPI_inst - used to get data from the supported sources # # # ################################################################################################################### formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s') logger_inst = logging.getLogger() logger_inst.setLevel(logging_mode) integration_config = Configuration.Integration() if log_to_file_var is True: if len(task_pages_dict) == 1: task_pages_dict_temp = task_pages_dict.copy() log_title, log_platform = task_pages_dict_temp.popitem() log_name = integration_config.CC_log_location + "Core_v2.1_" + str( datetime.now().strftime( "%Y-%m-%d_%H_%M_%S")) + '_' + str(log_title).replace( '/', '').replace('\\', '').replace(' ', '_').replace( '"', '_') + '_' + log_platform + '.log' else: log_name = integration_config.CC_log_location + "Core_v2.1_" + str( datetime.now().strftime("%Y-%m-%d_%H_%M_%S")) + '.log' fh = logging.FileHandler(log_name) fh.setLevel(logging_mode) fh.setFormatter(formatter) logger_inst.addHandler(fh) ch = logging.StreamHandler() ch.setLevel(logging_mode) ch.setFormatter(formatter) logger_inst.addHandler(ch) contrib_compare_inst = ContributionComparator(contrib_log_mode) sql__config_inst = Configuration.SQLConfig() confluence__config_inst = Configuration.ConfluenceConfig() m_wiki__config_inst = Configuration.MediaWIKIConfig() x_wiki__config_inst = Configuration.XWikiConfig( ['Migration pool', 'Sandbox', 'Main', 'StagingWiki']) mysql__config_inst = Configuration.MySQLConfig() mysql_connector_inst = MysqlConnector(mysql__config_inst) sql_connector_inst = SQLConnector(sql__config_inst) confluence_api_inst = ConfluenceAPI(confluence__config_inst.USER, confluence__config_inst.PASS, confluence__config_inst.ULR) x_wiki_api_inst = XWikiClient(x_wiki__config_inst.api_root, x_wiki__config_inst.auth_user, x_wiki__config_inst.auth_pass) m_wiki_api_instance = Site( (m_wiki__config_inst.Protocol, m_wiki__config_inst.URL), path=m_wiki__config_inst.APIPath, clients_useragent=m_wiki__config_inst.UserAgent) search_config_inst = Configuration.SearchConfig() return contrib_compare_inst, mysql_connector_inst, confluence_api_inst, sql_connector_inst, logger_inst, x_wiki_api_inst, m_wiki_api_instance, search_config_inst
def initialize(logging_mode: str = 'DEBUG', log_to_file: bool = True): ################################################################################################################### # Contrib_Compare_inst # # Main instance, used to analyze pages and create page contribution maps based on the content, # # collected from one of supported platforms # # Mysql_Connector_inst # # Here used to connect to xWIKI DB to get a list of pages from a requested space # # ConfluenceAPI_inst # # ConfluenceAPI_inst - same for Confluence # # SQL_Connector_inst # # Used to store\load page contribution maps in\from SQL # # Page_Creator_inst # # Creates PAGE objects - data handlers for currently analyzed page # ################################################################################################################### formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s') logger_inst = logging.getLogger() logger_inst.setLevel(logging_mode) Integration_config = Configuration.Integration() if log_to_file is True: log_name = Integration_config.log_location + "Comparer_task_builder_v1.0_" + str(datetime.now().strftime("%Y-%m-%d_%H_%M_%S", )) + '.log' fh = logging.FileHandler(log_name) fh.setLevel(logging_mode) fh.setFormatter(formatter) logger_inst.addHandler(fh) ch = logging.StreamHandler() ch.setLevel(logging_mode) ch.setFormatter(formatter) logger_inst.addHandler(ch) contrib_compare_inst = ContributionComparator() SQL_config_inst = Configuration.SQLConfig() confluence_config_inst = Configuration.ConfluenceConfig() try: media_w_i_k_i__config_inst = Configuration.MediaWIKIConfig() media_wiki_api_inst = Site((media_w_i_k_i__config_inst.Protocol, media_w_i_k_i__config_inst.URL), path=media_w_i_k_i__config_inst.APIPath, clients_useragent=media_w_i_k_i__config_inst.UserAgent,retry_timeout=1, max_retries=1) except Exception: media_wiki_api_inst = None xWiki_Config_inst = Configuration.XWikiConfig(['Migration pool', 'Sandbox', 'Main', 'StagingWiki']) MySQL_Config_inst = Configuration.MySQLConfig() Mysql_connector_inst = MysqlConnector(MySQL_Config_inst) SQL_connector_inst = SQLConnector(SQL_config_inst) # getting all pages in Confluence: confluenceAPI_inst = ConfluenceAPI(confluence_config_inst.USER, confluence_config_inst.PASS, confluence_config_inst.ULR) return contrib_compare_inst, Mysql_connector_inst, confluenceAPI_inst, SQL_connector_inst, logger_inst, media_wiki_api_inst
from grab import Grab import logging from simple_salesforce import Salesforce import pyodbc import re import traceback from datetime import datetime from PythonConfluenceAPI import ConfluenceAPI import KB_upload import Configuration ConfluenceConfig = Configuration.ConfluenceConfig() SQLConfig = Configuration.SQLConfig() SFConfig = Configuration.SFConfig() #configuring Confluence connection: api = ConfluenceAPI(ConfluenceConfig.USER, ConfluenceConfig.PASS, ConfluenceConfig.ULR) #configuring SQL connection: cnxn = pyodbc.connect('DRIVER=' + SQLConfig.Driver + ';PORT=1433;SERVER=' + SQLConfig.Server + ';PORT=1443;DATABASE=' + SQLConfig.Database + ';UID=' + SQLConfig.Username + ';PWD=' + SQLConfig.Password) cursor = cnxn.cursor() #configuring SF connection: sf = Salesforce(username=SFConfig.User, password=SFConfig.Password, security_token=SFConfig.SecurityToken) #configuring Grab: g = Grab() def checking_existence(dictionary):