コード例 #1
0
 def _store_user_settings(self, settings):
     UserSettings.save_to_file(self.user_settings_filepath,
                               settings,
                               add_defaults=True)
     self.user_settings = settings
     self.command_queue.put_nowait(
         GetUserSettings(lambda: self._generate_usersettings_message(
             self.user_settings)))
コード例 #2
0
    def modify_user_settings(self, settings):
        self.user_settings.update(self._extract_settings(settings))
        if self.persistent_user_settings_enabled:
            UserSettings.save_to_file(self.user_settings_filepath,
                                      self.user_settings,
                                      add_defaults=True)

        self.command_queue.put_nowait(
            GetUserSettings(lambda: self._generate_usersettings_message(
                self.user_settings)))
コード例 #3
0
    def _load_usersettings(self):
        if self.persistent_user_settings_enabled:
            try:
                user_settings = UserSettings.load_from_file(
                    self.user_settings_filepath)
            except FileNotFoundError:
                user_settings = UserSettings.get_defaults()

            # always update file with hardcoded defaults (and create it if it does not exist)
            UserSettings.save_to_file(self.user_settings_filepath,
                                      user_settings,
                                      add_defaults=True)
        else:
            user_settings = UserSettings.get_defaults()

        return user_settings
コード例 #4
0
    def _extract_settings(settings):
        modified_settings = UserSettings.get_defaults()
        for setting in settings:
            field = {
                setting['name']: {
                    'active': setting['active'],
                    'value':
                    int(setting['value']) if setting.get('value') else -1
                }
            }
            modified_settings.update(field)

        return modified_settings
コード例 #5
0
    def on_loadcommand_issued(self, param_data: dict):
        jobname = param_data['lot_number']
        # TODO: see no difference !!
        self.loaded_jobname = str(jobname)
        self.loaded_lot_number = str(jobname)

        jobformat = self.configuration.get('jobformat')
        parser = parser_factory.CreateParser(jobformat)
        source = parser_factory.CreateDataSource(jobname, self.configuration,
                                                 parser, self.log)

        if self.configuration.get('skip_jobdata_verification', False):
            data = {
                "DEBUG_OPTION":
                "no content because skip_jobdata_verification enabled"
            }
        else:
            param_data = source.retrieve_data()
            if param_data is None:
                self.error_message = "Failed to execute load command"
                self.load_error()
                return

            if not source.verify_data(param_data):
                self.error_message = "Malformed jobfile"
                self.load_error()
                return

            data = source.get_test_information(param_data)
            self.log.log_message(LogLevel.Debug(),
                                 f'testprogram information: {data}')

        self.arm_timeout(
            LOAD_TIMEOUT,
            lambda: self.timeout("not all sites loaded the testprogram"))
        self.pendingTransitionsControl = SequenceContainer(
            [CONTROL_STATE_LOADING, CONTROL_STATE_BUSY], self.configuredSites,
            lambda: None, lambda site, state: self.on_error(
                f"Bad statetransition of control {site} during load to {state}"
            ))
        self.pendingTransitionsTest = SequenceContainer(
            [TEST_STATE_IDLE], self.configuredSites,
            lambda: self.all_siteloads_complete(),
            lambda site, state: self.on_error(
                f"Bad statetransition of testapp {site} during load to {state}"
            ))
        self.error_message = ''

        self.connectionHandler.send_load_test_to_all_sites(
            self.get_test_parameters(data))
        self._store_user_settings(UserSettings.get_defaults())