Beispiel #1
0
def update_stack_test_results(root_folder, rating_dict, default_weight):
    LogConfig.init_logging()
    logger = logging.getLogger(__name__)
    daily_folders = testing.get_daily_directories(root_folder)
    model = Model('stack_test_result')
    column_list = ['daily_folder',]
    parsed_folders = [record['daily_folder'] for record in model.select(column_list)]
    
    for daily_folder in daily_folders:
        if daily_folder in parsed_folders:
            continue
        try:
            daily_results = testing.get_daily_results_from_daily_directory(daily_folder)
            parsed_results = testing.parse_test_result(daily_results, 
                    rating_dict, default_weight)
            crio_date = parsed_results['crio_date']
            results = parsed_results['results']
            for os_name, pass_rates in results.items():
                for target_model, pass_rate in pass_rates.items():
                    table_record = {
                            'daily_folder': daily_folder,
                            'validated_stack': crio_date,
                            'os_name': os_name,
                            'target_name': target_model,
                            'pass_rate': pass_rate
                    }
                    model.insert(table_record)
        except Exception as e:
            logger.warning('Exception happened: %s', e)
Beispiel #2
0
 def LoadConfig(self, config=None):
     if not config:
         config = self._defaultConfig
     self._config = LogConfig(config)
     self._minimalLevel = LogEventLevel[self._config.GetLogRoot()
                                        ["MinLevel"]]
     for appender_name in self._config.GetLogAppenders():
         if self._config.GetLogAppenders(
         )[appender_name]["Type"] == "FileAppender":
             self._logPath = self._config.GetLogAppenders(
             )[appender_name]["File"]["Path"]
             self._appendTo = self._config.GetLogAppenders(
             )[appender_name]["File"]["AppendTo"] == "True"
Beispiel #3
0
            main_config.NEWER_THAN_DATE)

    logger.info('UPDATE TABLE myrio_%s_bundle_installer_dashboard', year)
    update_bundle_installer('myrio_'+year+'_bundle_installer_dashboard', 
            main_config.MYRIO_BUNDLE_INSTALLER_DAILY_FOLDER, 
            ['myRIO-1900'], 
            ['myRIO_DVD1', 'myRIO_DVD2'],
            main_config.NEWER_THAN_DATE)

    logger.info('UPDATE TABLE roborio_%s_bundle_installer_dashboard', year)
    update_bundle_installer('roborio_'+year+'_bundle_installer_dashboard', 
            main_config.ROBORIO_BUNDLE_INSTALLER_DAILY_FOLDER, 
            ['roboRIO'], 
            ['roboRIO_DVD1', 'roboRIO_DVD2'], 
            main_config.NEWER_THAN_DATE)

    logger.info('UPDATE TABLE stack_test_result')
    update_stack_test_results(main_config.SANITY_TEST_ROOT_FOLDER,
            main_config.SANITY_TEST_RATING_DICT,
            main_config.SANITY_TEST_DEFAULT_WEIGHT)

if __name__ == '__main__':
    LogConfig.init_logging()

    # make sure the db file in the cwd.
    cwd = os.path.dirname(__file__)
    if cwd != '':
        os.chdir(os.path.dirname(__file__))

    update_db(main_config.CURRENT_YEAR)
Beispiel #4
0
class Logger():
    def __init__(self):
        self._minimalLevel = LogEventLevel.VERBO
        self._config = None
        self._defaultConfig = "LogConfig.xml"
        self._logPath = "Logger.log"
        self._appendTo = True
        self._logFile = None

    def LoadConfig(self, config=None):
        if not config:
            config = self._defaultConfig
        self._config = LogConfig(config)
        self._minimalLevel = LogEventLevel[self._config.GetLogRoot()
                                           ["MinLevel"]]
        for appender_name in self._config.GetLogAppenders():
            if self._config.GetLogAppenders(
            )[appender_name]["Type"] == "FileAppender":
                self._logPath = self._config.GetLogAppenders(
                )[appender_name]["File"]["Path"]
                self._appendTo = self._config.GetLogAppenders(
                )[appender_name]["File"]["AppendTo"] == "True"

    def EnableAppender(self, appenderType, enable):
        for appender_name in self._config.GetLogAppenders():
            if self._config.GetLogAppenders(
            )[appender_name]["Type"] == appenderType:
                self._config.GetLogAppenders(
                )[appender_name]["Enabled"] = enable

    def SetLogPath(self, log):
        self._logPath = log

    def SetLogAppendTo(self, appendTo):
        if self._appendTo != appendTo:
            self._logFile = None
        self._appendTo = appendTo

    def IsEnabled(self, level):
        if level.value < self._minimalLevel.value:
            return False
        return True

    def Write(self, level, message, exception=None):
        self.WriteImp(LogEvent(level, message, exception))

    def WriteImp(self, event):
        if not self.IsEnabled(event.GetLevel()):
            return
        for appender_name in self._config.GetLogAppenders():
            appender = self._config.GetLogAppenders()[appender_name]
            if appender["Enabled"]:
                if appender["Type"] == "FileAppender":
                    if not self._logFile:
                        if self._appendTo:
                            self._logFile = open(self._logPath, "a+")
                        else:
                            self._logFile = open(self._logPath, "w+")
                    self._logFile.write(appender["Pattern"].format(
                        event.GetTimestamp(),
                        event.GetLevel().name, event.GetMessage()) + "\n")
                    if event.GetException():
                        self._logFile.write(appender["Pattern"].format(
                            event.GetTimestamp(),
                            event.GetLevel().name, event.GetException()) +
                                            "\n")
                if appender["Type"] == "ConsoleAppender":
                    print(appender["Pattern"].format(event.GetTimestamp(),
                                                     event.GetLevel().name,
                                                     event.GetMessage()))
                    if event.GetException():
                        print(appender["Pattern"].format(
                            event.GetTimestamp(),
                            event.GetLevel().name, event.GetException()))
                if appender["Type"] == "ColoredConsoleAppender":
                    if event.GetLevel().name in appender["Colors"]:
                        fore_color = appender["Colors"][
                            event.GetLevel().name]["ForeColor"]
                    if fore_color:
                        print(LogColor[fore_color].value +
                              appender["Pattern"].format(
                                  event.GetTimestamp(),
                                  event.GetLevel().name, event.GetMessage()) +
                              LogColor["ENDC"].value)
                        if event.GetException():
                            print(LogColor[fore_color].value +
                                  appender["Pattern"].format(
                                      event.GetTimestamp(),
                                      event.GetLevel().name,
                                      event.GetException()) +
                                  LogColor["ENDC"].value)
                    else:
                        print(appender["Pattern"].format(
                            event.GetTimestamp(),
                            event.GetLevel().name, event.GetMessage()))
                        if event.GetException():
                            print(appender["Pattern"].format(
                                event.GetTimestamp(),
                                event.GetLevel().name, event.GetException()))

    def Verbose(self, message, exception=None):
        self.Write(LogEventLevel.VERBO, message, exception)

    def Debug(self, message, exception=None):
        self.Write(LogEventLevel.DEBUG, message, exception)

    def Information(self, message, exception=None):
        self.Write(LogEventLevel.INFOR, message, exception)

    def Warning(self, message, exception=None):
        self.Write(LogEventLevel.WARNN, message, exception)

    def Error(self, message, exception=None):
        self.Write(LogEventLevel.ERROR, message, exception)

    def Fatal(self, message, exception=None):
        self.Write(LogEventLevel.FATAL, message, exception)