def __init__(self, machine_config, server_log): "Set up machine interface and set up based on the environment." MachineInterface.__init__(self, machine_config, server_log) self.status_data = {} self.local_filename = '' self.report_info = '' self.default_group = "root" self.exit_code = FAIL self.action_result = [] self.state_machine = self._get_state_machine() self.machine_status = MachineStatus(self.server_home, self.machine_name) log_re_str = "\d+\-\d+\-\d+\s\d+\:\d+\:\d+\,\d+\|([A-Z]+)\|(.+)\|" self.log_matcher = re.compile(log_re_str) self.trace_matcher = re.compile( "\|\|\>\>\>(.+)" ) if self.platform.startswith('win'): self.python = '/cygdrive/c/Python25/python.exe' self.spkg_dir = '/cygdrive/c/spkg' else: self.python = '/usr/bin/python' self.spkg_dir = '/opt/spkg' if self.data.get("python_path"): self.python = self.data.get("python_path") if self.data.get("spkg_path"): self.spkg_dir = self.data.get("spkg_path") self.pull_report = True
def freshen(self, job_name, require_status): "Refresh config data" self.set_job(job_name) try: MachineInterface.freshen(self) except MachineUnavailableException: self.unset_job() raise try: self.machine_status.freshen() except MachineStatusException: msg = "Can't find status. Fetching from machine." self.polling_log.warning(msg) self._get_status_yml() try: self.machine_status.freshen() except MachineStatusException: if require_status: self.unset_job() raise return OK