Пример #1
0
    def start():

        scheduler = Scheduler.get()
        scheduler.start_thread()
        task = TransactionQueueManager(
            #check_interval=0.1,
            max_jobs_completed=20)
        task.cleanup_db_jobs()
        scheduler.add_single_task(task, mode='threaded', delay=1)
        # important to close connection after adding tasks
        DbContainer.close_all()
Пример #2
0
 def execute(self):
     try:
         #Batch()
         #Command.execute_cmd(timed_trigger)
         Project.set_project(self.project_code)
         timed_triggers[self.index].execute()
     except Exception as e:
         raise
     finally:
         DbContainer.close_thread_sql()
         DbContainer.commit_thread_sql()
         DbContainer.close_all()
Пример #3
0
 def start():
     
     scheduler = Scheduler.get()
     scheduler.start_thread()
     task = TransactionQueueManager(
         #check_interval=0.1,
         max_jobs_completed=20
     )
     task.cleanup_db_jobs()
     scheduler.add_single_task(task, mode='threaded', delay=1)
     # important to close connection after adding tasks
     DbContainer.close_all()
Пример #4
0
 def execute(self):
     try:
         #Batch()
         #Command.execute_cmd(timed_trigger)
         Project.set_project(self.project_code)
         timed_triggers[self.index].execute()
     except Exception as e:
         raise
     finally:
         DbContainer.close_thread_sql()
         DbContainer.commit_thread_sql()
         DbContainer.close_all()
Пример #5
0
    def start(cls):

        task = WatchServerFolderTask()

        scheduler = Scheduler.get()
        scheduler.add_single_task(task, 3)
        #scheduler.add_interval_task(task, 1)

        scheduler.start_thread()
        # important to close connection after adding tasks
        DbContainer.close_all()

        return scheduler
Пример #6
0
    def start(cls):
        
        task = WatchServerFolderTask()

        scheduler = Scheduler.get()
        scheduler.add_single_task(task, 3)
        #scheduler.add_interval_task(task, 1)

        scheduler.start_thread()
        # important to close connection after adding tasks
        DbContainer.close_all()

        return scheduler
Пример #7
0
            def execute(self):
                start = time.time()
                #Batch()

                #print "refresh caches ..."
                caches = CacheContainer.get_all_caches()
                for key, cache in caches.items():
                    #print "... %s" % key, cache
                    cache.init_cache()
                #print "... %s seconds" % (time.time() - start)

                DbContainer.commit_thread_sql()
                DbContainer.close_all()
Пример #8
0
            def execute(self):
                start = time.time()
                #Batch()

                #print "refresh caches ..."
                caches = CacheContainer.get_all_caches()
                for key, cache in caches.items():
                    #print "... %s" % key, cache
                    cache.init_cache()
                #print "... %s seconds" % (time.time() - start)

                DbContainer.commit_thread_sql()
                DbContainer.close_all()
Пример #9
0
            def execute(my):
                #Batch()

                dirty_caches = CacheContainer.get_dirty()
                for dirty_cache in dirty_caches:
                    key = dirty_cache.get_value("key")
                    #print "... caching: ", key
                    cache = CacheContainer.get(key)
                    if not cache:
                        print "WARNING: cache [%s] does not exist in memory" % key
                        continue

                    cache.init_cache()

                DbContainer.commit_thread_sql()
                DbContainer.close_all()
Пример #10
0
            def execute(my):
                #Batch()

                dirty_caches = CacheContainer.get_dirty()
                for dirty_cache in dirty_caches:
                    key = dirty_cache.get_value("key")
                    #print "... caching: ", key
                    cache = CacheContainer.get(key)
                    if not cache:
                        print "WARNING: cache [%s] does not exist in memory" % key
                        continue

                    cache.init_cache()

                DbContainer.commit_thread_sql()
                DbContainer.close_all()
Пример #11
0
    def execute(my):
        Batch()


        # get all of the file servers
        search = Search("sthpw/sync_server")
        search.add_filter("state", "online")
        search.add_filter("sync_mode", "file")
        my.servers = search.get_sobjects()

        my.tasks = []
        for server in my.servers:
            base_dir = server.get_value("base_dir")
            if not base_dir:
                continue

            transaction_dir = "%s/transactions" % base_dir

            ticket = server.get_value("ticket")
            task = WatchFolderTask(base_dir=transaction_dir, ticket=ticket)
            my.tasks.append(task)


        # close all the database connections
        DbContainer.close_all()


        count = 0
        while 1:
            #start = time.time()

            for task in my.tasks:
                try:
                    task.execute()
                except Exception, e:
                    print "WARNING: error executing task:"
                    print "Reported Error: ", str(e)


            #print time.time() - start
            # catch a breather?
            time.sleep(2)
            count += 1
Пример #12
0
 def __del__(self):
     # ensure that database connections are always closed
     if DbContainer:
         DbContainer.close_all()
Пример #13
0
                my.index = kwargs.get("index")
                my.project_code = kwargs.get("project_code")

            def execute(my):
                try:
                    #Batch()
                    #Command.execute_cmd(timed_trigger)
                    Project.set_project(my.project_code)
                    timed_triggers[my.index].execute()
                except Exception, e:
                    print "Error running trigger"
                    raise
                finally:
                    DbContainer.close_thread_sql()
                    DbContainer.commit_thread_sql()
                    DbContainer.close_all()


        for idx, timed_trigger in enumerate(timed_triggers):

            data = timed_trigger.get_input()
            if not data:
                continue

            """
            data = {
                'type': 'interval',
                'interval': 10,
                'delay': 0,
                'mode': 'threaded'
            }
Пример #14
0
                my.index = kwargs.get("index")
                my.project_code = kwargs.get("project_code")

            def execute(my):
                try:
                    #Batch()
                    #Command.execute_cmd(timed_trigger)
                    Project.set_project(my.project_code)
                    timed_triggers[my.index].execute()
                except Exception, e:
                    print "Error running trigger"
                    raise
                finally:
                    DbContainer.close_thread_sql()
                    DbContainer.commit_thread_sql()
                    DbContainer.close_all()


        for idx, timed_trigger in enumerate(timed_triggers):

            data = timed_trigger.get_input()
            if not data:
                continue

            """
            data = {
                'type': 'interval',
                'interval': 10,
                'delay': 0,
                'mode': 'threaded'
            }
Пример #15
0
    def execute(self):
        self.buffer = cStringIO.StringIO()
        error = None

        try:
            try:

                # clear the main container for this thread
                Container.create()

                # clear the buffer
                WebContainer.clear_buffer()

                # initialize the web environment object and register it
                adapter = self.get_adapter()
                WebContainer.set_web(adapter)

                # get the display
                self._get_display()

            except SetupException as e:
                '''Display setup exception in the interface'''
                print("Setup exception: ", e.__str__())
                DbContainer.rollback_all()
                ExceptionLog.log(e)
                self.writeln("<h3>Tactic Setup Error</h3>")
                self.writeln("<pre>")
                self.writeln(e.__str__())
                self.writeln("</pre>")
                error = "405: TACTIC Setup Error"

            except DatabaseException as e:
                from tactic.ui.startup import DbConfigPanelWdg
                config_wdg = DbConfigPanelWdg()
                self.writeln("<pre>")
                self.writeln(config_wdg.get_buffer_display())
                self.writeln("</pre>")
                error = "405: TACTIC Database Error"

            except Exception as e:
                stack_trace = ExceptionLog.get_stack_trace(e)
                #print(stack_trace)
                self.writeln("<pre>")
                self.writeln(stack_trace)
                self.writeln("</pre>")
                error = "405 %s" % str(e)

                # it is possible that the security object was not set
                security = Environment.get_security()
                if not security:
                    security = Security()
                    WebContainer.set_security(security)

                log = None
                # ensure that database connections are rolled back
                try:
                    DbContainer.rollback_all()
                except Exception as e2:
                    print("Error: Could not rollback: ", e2.__str__())
                    self.writeln("Error: Could not rollback: '%s'" %
                                 e2.__str__())
                    stack_trace = ExceptionLog.get_stack_trace(e2)
                    print(stack_trace)
                    self.writeln("<pre>")
                    self.writeln(stack_trace)
                    self.writeln("</pre>")
                    raise e
                    #return

                try:
                    # WARNING: if this call causes an exception, the error
                    # will be obscure
                    log = ExceptionLog.log(e)
                except Exception as e2:

                    print("Error: Could not log exception: ", e2.__str__())
                    self.writeln("Error '%s': Could not log exception" %
                                 e2.__str__())
                    stack_trace = ExceptionLog.get_stack_trace(e2)
                    print(stack_trace)
                    self.writeln("<pre>")
                    self.writeln(stack_trace)
                    self.writeln("</pre>")
                    return

                self.writeln("<pre>")
                self.writeln(
                    "An Error has occurred.  Please see your Tactic Administrator<br/>"
                )
                self.writeln("Error Message: %s" % log.get_value("message"))
                self.writeln("Error Id: %s" % log.get_id())
                #self.writeln( log.get_value("stack_trace") )
                self.writeln("</pre>")

        finally:
            # ensure that database connections are always closed
            DbContainer.close_all()
            # clear the container
            Container.delete()
            WebContainer.get_buffer().write(self.buffer.getvalue())

            if error:
                import cherrypy
                print("error: ", error)
                cherrypy.response.status = error
Пример #16
0
    def execute(self):
        self.buffer = cStringIO.StringIO()
        error = None

        try:
            try:

                # clear the main container for this thread
                Container.create()

                # clear the buffer
                WebContainer.clear_buffer()

                # initialize the web environment object and register it
                adapter = self.get_adapter()
                WebContainer.set_web(adapter)

                # get the display
                self._get_display()

            except SetupException as e:
                '''Display setup exception in the interface'''
                print("Setup exception: ", e.__str__())
                DbContainer.rollback_all()
                ExceptionLog.log(e)
                self.writeln("<h3>Tactic Setup Error</h3>" )
                self.writeln("<pre>" )
                self.writeln(e.__str__() )
                self.writeln("</pre>" )
                error = "405: TACTIC Setup Error"

            except DatabaseException as e:
                from tactic.ui.startup import DbConfigPanelWdg
                config_wdg = DbConfigPanelWdg()
                self.writeln("<pre>")
                self.writeln(config_wdg.get_buffer_display())
                self.writeln("</pre>")
                error = "405: TACTIC Database Error"


            except Exception as e:
                stack_trace = ExceptionLog.get_stack_trace(e)
                #print(stack_trace)
                self.writeln("<pre>")
                self.writeln(stack_trace)
                self.writeln("</pre>")
                error = "405 %s" % str(e)

                # it is possible that the security object was not set
                security = Environment.get_security()
                if not security:
                    security = Security()
                    WebContainer.set_security(security)

                log = None
                # ensure that database connections are rolled back
                try:
                    DbContainer.rollback_all()
                except Exception as e2:
                    print("Error: Could not rollback: ", e2.__str__())
                    self.writeln("Error: Could not rollback: '%s'" % e2.__str__() )
                    stack_trace = ExceptionLog.get_stack_trace(e2)
                    print(stack_trace)
                    self.writeln("<pre>")
                    self.writeln(stack_trace)
                    self.writeln("</pre>")
                    raise e
                    #return


                try:
                    # WARNING: if this call causes an exception, the error
                    # will be obscure
                    log = ExceptionLog.log(e)
                except Exception as e2:

                    print("Error: Could not log exception: ", e2.__str__())
                    self.writeln("Error '%s': Could not log exception" % e2.__str__() )
                    stack_trace = ExceptionLog.get_stack_trace(e2)
                    print(stack_trace)
                    self.writeln("<pre>")
                    self.writeln(stack_trace)
                    self.writeln("</pre>")
                    return

                self.writeln("<pre>")
                self.writeln("An Error has occurred.  Please see your Tactic Administrator<br/>")
                self.writeln( "Error Message: %s" % log.get_value("message") )
                self.writeln("Error Id: %s" % log.get_id() )
                #self.writeln( log.get_value("stack_trace") )
                self.writeln("</pre>")


        finally:
            # ensure that database connections are always closed
            DbContainer.close_all()
            # clear the container
            Container.delete()
            WebContainer.get_buffer().write( self.buffer.getvalue() )

            if error:
                import cherrypy
                print("error: ", error)
                cherrypy.response.status = error