예제 #1
0
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
예제 #2
0
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
예제 #3
0
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):