def execute_actions(self): if self.is_running(): logutil.info('Schedule', '%s is still running' % self.name) return self._process = Process(target=self._execute()) self._process.start()
def call(command, cwd=None): _install_package_if_not_exists(command) logutil.info("Execute", " ".join(command)) popen = Popen(command, stdout=PIPE, stderr=PIPE, env=_get_env(), cwd=cwd) out, err = popen.communicate() if popen.returncode != 0: logutil.error("Return Code", popen.returncode) logutil.error("Output", out.decode("utf8", errors="ignore")) logutil.error("Error", err.decode("utf8", errors="ignore")) return popen.returncode, out.decode("utf8", errors="ignore"), err.decode("utf8", errors="ignore")
def reset(self): logutil.info(self.name, 'Initialize') if self.time == 'Always': self._time_reserved = str(DateTime.now()) else: hour = int(self.time[0:2]) minute = int(self.time[2:4]) reserved_time = DateTime(hour=hour, minute=minute) if reserved_time < DateTime.now(): reserved_time.after(days=1) self._time_reserved = str(reserved_time)
def _execute(self): logutil.info(self.name, 'Execute') parameters = {}.copy() for action in self.actions: try: module_name, func_name = action['Name'].split('.') module = import_module('actions.' + module_name) func = getattr(module, func_name) parameters = func(dict(list(parameters.items()) + list(action.get('Parameters', {}).items()))) if parameters is None: parameters = {}.copy() except Exception: import traceback logutil.error(self.name, traceback.format_exc()) traceback.print_exc() logutil.newline() return logutil.info(self.name, 'Success') logutil.newline()
def call(parameters): command = parameters["command"] cwd = parameters.get('cwd', None) ret_code, out, err = processutil.call(command, cwd=cwd) logutil.info('Return Code', str(ret_code)) logutil.info('Output', out) logutil.info('Error', err)