Beispiel #1
0
    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()
Beispiel #2
0
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")
Beispiel #3
0
    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)
Beispiel #4
0
    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()
Beispiel #5
0
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)