Esempio n. 1
0
def main(db_name):
    import servicemanager
    pg_dump = PgDumpCli(db_name)
    servicemanager.LogInfoMsg("Starting %s backup sequence" % pg_dump.db_name)

    try:
        p = Popen(pg_dump(), stderr=PIPE, stdout=PIPE, env=pg_dump.env)
        out, err = p.communicate(timeout=TIMEOUT)
        if p.returncode:
            # error code returned
            servicemanager.LogWarningMsg(
                "There was an error during %s backup.\n"
                "pg_dump response is:\n %s" %
                (pg_dump.db_name, err.decode("cp866", errors='ignore')))
        else:
            # successfull completion
            servicemanager.LogInfoMsg("%s backup sequence complete" %
                                      pg_dump.db_name)
            history_manager = BackupHistoryManager(db_name)
            history_manager()
    except OSError:
        # bad command
        servicemanager.LogErrorMsg("There was an error during %s backup.\n"
                                   "pg_dump.exe was not found at %s" %
                                   (pg_dump.db_name, pg_dump.pg_dump_dir))
    except TimeoutExpired:
        p.kill()
        servicemanager.LogErrorMsg("There was an error during %s backup.\n"
                                   "Timeout expired" % pg_dump.db_name)
Esempio n. 2
0
 def warning(self, msg: str) -> None:
     # Log messages go to the Windows APPLICATION log.
     # noinspection PyUnresolvedReferences
     s = "{}: {}".format(self.fullname, msg)
     servicemanager.LogWarningMsg(s)
     if self.debugging:
         log.warning(s)
Esempio n. 3
0
    def restart(self):
        if not self._can_restart():
            servicemanager.LogWarningMsg(
                u"`{0}` reached the limit of restarts ({1} tries during the last {2}s"
                u" (max authorized: {3})). Not restarting...".format(
                    self._name, len(self._restarts), self._RESTART_TIMEFRAME,
                    self._max_restarts))
            self._process.is_enabled = False
            return

        try:
            # Make a new proc instances because multiprocessing
            # won't let you call .start() twice on the same instance.
            if self._process.is_alive():
                self._process.terminate()

            # Recreate a new process
            self._process = self._process.__class__(self._process.config,
                                                    self._process.hostname,
                                                    **self._process.options)
            self._process.start()
        except WindowsError as e:  # pylint: disable=E0602
            servicemanager.LogErrorMsg(
                u"Fail to restart `{process}`: {err}".format(
                    process=self._name, err=e))

        self._restarts.append(time.time())
Esempio n. 4
0
 def log(self, level, msg):
     if level == "error":
         servicemanager.LogErrorMsg(msg)
     elif level == "warn":
         servicemanager.LogWarningMsg(msg)
     elif level == "notice":
         servicemanager.LogInfoMsg(msg)
     else:
         pass
Esempio n. 5
0
 def log(message: str, msg_type: int = INFO):
     """Log a message to the Windows Event Log."""
     if msg_type == INFO:
         servicemanager.LogInfoMsg(str(message))
     if msg_type == WARN:
         servicemanager.LogWarningMsg(str(message))
     elif msg_type == ERR:
         servicemanager.LogErrorMsg(str(message))
     else:
         servicemanager.LogMsg(str(message))
Esempio n. 6
0
 def warning(self, msg: str) -> None:
     """
     Write a warning message to the Windows Application log
     (± to the Python disk log).
     """
     # Log messages go to the Windows APPLICATION log.
     # noinspection PyUnresolvedReferences
     s = f"{self.fullname}: {msg}"
     # noinspection PyUnresolvedReferences
     servicemanager.LogWarningMsg(s)
     if self.debugging:
         log.warning(s)
Esempio n. 7
0
    def updateProject(self, projectid):
        servicemanager.LogWarningMsg(unicode(projectid))
        filters = [["project.Project.id", "is", projectid]]
        fields = ["time_logs_sum", "est_in_mins"]
        for eventTimeLog in self.sg.find('Task', filters, fields):
            self.count = self.count + eventTimeLog['time_logs_sum']
            if eventTimeLog['est_in_mins'] is not None:
                self.estinmins = self.estinmins + eventTimeLog['est_in_mins']

        data = {'sg_artisttimelog': self.count / 600}
        asset = self.sg.update("Project", projectid, data)
        data = {'sg_total_bid': self.estinmins / 600}
        asset = self.sg.update("Project", projectid, data)
Esempio n. 8
0
    def emit(self, record):

        message = self.format(record)
        level = record.levelno

        if level >= logging.ERROR:
            servicemanager.LogErrorMsg(message)

        elif level >= logging.WARNING:
            servicemanager.LogWarningMsg(message)

        else:
            servicemanager.LogInfoMsg(message)
Esempio n. 9
0
    def log(self, level, message):
        # Debug messages are logged to a file
        # our loglevels are 10000 (other), 20000 (debug), ....
        # logging levels are 10 (debug), 20 (info)
        # OTHER = logging.NOTSET
        self.logger.log(level / 1000 - 10, message)

        if level < INFO or self.serviceLogger is False:  # Only information and above will be on event log
            return

        if level < WARN:  # Info
            servicemanager.LogInfoMsg(message)
        elif level < ERROR:  # WARN
            servicemanager.LogWarningMsg(message)
        else:  # Error & Fatal
            servicemanager.LogErrorMsg(message)
Esempio n. 10
0
    def log(self, level: int, message: str) -> None:
        # Debug messages are logged to a file
        # our loglevels are 0 (other), 10000 (debug), ....
        # logging levels are 10 (debug), 20 (info)
        # OTHER = logging.NOTSET
        if self.logger:
            self.logger.log(int(level / 1000), message)

        if level < loglevel.ERROR or self.serviceLogger is False:  # Only information and above will be on event log
            return

        # In fact, we have restricted level in windows event log to ERROR or FATAL
        # but left the code for just a case in the future...
        if level < loglevel.WARN:  # Info
            servicemanager.LogInfoMsg(message)
        elif level < loglevel.ERROR:  # WARN
            servicemanager.LogWarningMsg(message)
        else:  # Error & Fatal
            servicemanager.LogErrorMsg(message)
Esempio n. 11
0
    def SvcDoRun(self):
        self.ReportServiceStatus(win32service.SERVICE_START_PENDING)
        servicemanager.LogInfoMsg("Starting SSH Tunnel Service")
        plink = self._start_tunnel()
        self.ReportServiceStatus(win32service.SERVICE_RUNNING)

        while True:
            signal = win32event.WaitForSingleObject(self.stop, 3000)
            if signal == win32event.WAIT_OBJECT_0:  #received stop signal
                servicemanager.LogInfoMsg("Stopping SSH Tunnel Service")
                if plink.returncode is None:
                    plink.terminate()
                self.ReportServiceStatus(win32service.SERVICE_STOPPED)
                return
            plink.poll()
            if plink.returncode is not None:
                servicemanager.LogWarningMsg(
                    "SSH Tunnel failed with plink returncode " +
                    str(plink.returncode))
                plink = self._start_tunnel()
Esempio n. 12
0
    def SvcDoRun(self):
        import servicemanager
        # Add these two lines and the source will be "PyMyService"
        win32evtlogutil.AddSourceToRegistry(self._svc_name_,
                                            servicemanager.__file__)
        servicemanager.Initialize(self._svc_name_, servicemanager.__file__)
        #
        servicemanager.LogMsg(servicemanager.EVENTLOG_INFORMATION_TYPE,
                              servicemanager.PYS_SERVICE_STARTED,
                              (self._svc_name_, ""))

        servicemanager.LogInfoMsg("Info")  # Event is 255
        servicemanager.LogErrorMsg("Error")  # Event is 255
        servicemanager.LogWarningMsg("Warn")  # Event is 255
        # or
        servicemanager.LogMsg(servicemanager.EVENTLOG_INFORMATION_TYPE, 0xF000,
                              ("Info", ))  # Event is 61440
        servicemanager.LogMsg(servicemanager.EVENTLOG_ERROR_TYPE, 0xF001,
                              ("Error", ))  # Event is 61441
        servicemanager.LogMsg(servicemanager.EVENTLOG_WARNING_TYPE, 0xF002,
                              ("Warn", ))  # Event is 61442
Esempio n. 13
0
def warn(message: str):
    servicemanager.LogWarningMsg(str(message))
Esempio n. 14
0
 def warning(self, s):
     servicemanager.LogWarningMsg(s)
     logging.warning(s)
Esempio n. 15
0
	def log_warn(self, message):
		Logger.log_warn(self, message)
		servicemanager.LogWarningMsg(message)
Esempio n. 16
0
 def warning(self, msg):
     import servicemanager
     servicemanager.LogWarningMsg(str(msg))
 def warn(self, s):
     servicemanager.LogWarningMsg(s)
Esempio n. 18
0
            myProp.writeProps(_PATH + "cfg" + os.sep + "cfg.properties",
                              '\ncode', app.result)
            _prop = myProp.readProps(_PATH + "cfg" + os.sep + "cfg.properties")
            root.destroy()
        else:
            nemesys.info('appresult = ""')
            #root.destroy()
            nemesys.error('Exit: activation code not provided')
            myProp.writeProps(_PATH + "cfg" + os.sep + "cfg.properties",
                              '\nregistered', 'nok')
            _prop = myProp.readProps(_PATH + "cfg" + os.sep + "cfg.properties")
            et = ErrorThread('code')
            et.start()
            raise Exception('Activation Code not provided')
except Exception as e:
    servicemanager.LogWarningMsg('Exception at activation code: ' + str(e))
    sys.exit(1)

try:
    if 'registered' not in _prop:
        nemesys.info('download del file di configurazione')
        #scarico il file di configurazione
        getActivationFile(_prop, _PATH)
    else:
        status = str(_prop['registered'])
        if status == 'ok':
            # Allora posso continuare lo start del servizio
            nemesys.info('Configuration file already downloaded')
        elif status == 'nok':
            # Allora il servizio non puo partire
            nemesys.info(