示例#1
0
    def _runObj(self, obj):
        # create the context
        ContextManager.create()

        try:
            obj.run()
        except Exception, e:
            self._printOutput(e)
            self._sendErrorEmail(e)
示例#2
0
    def _runObj(self, obj):
        # create the context
        ContextManager.create()

        try:
            obj.run()
        except Exception, e:
            self._printOutput(e)
            self._sendErrorEmail(e)
示例#3
0
    def setUp( self ):

        # create a context, for storing autoOps
        ContextManager.create()
        ContextManager.set('autoOps', [])

        a = Avatar()
        a.setId("creator")
        self._conf = ConferenceFacade( a )
        self._conf.setId('a')
        self._conf.setTimezone('UTC')

        self._conf.setDates(datetime(2009, 9, 21, 16, 0 ,0, tzinfo=timezone("UTC")),
                            datetime(2009, 9, 21, 19, 0 ,0, tzinfo=timezone("UTC")))

        self._slot1_sDate = datetime(2009, 9, 21, 17, 0, 0, tzinfo=timezone("UTC"))
        self._slot1_eDate = datetime(2009, 9, 21, 18, 0, 0, tzinfo=timezone("UTC"))
        self._slot2_sDate = datetime(2009, 9, 21, 18, 0, 0, tzinfo=timezone("UTC"))
        self._slot2_eDate = datetime(2009, 9, 21, 19, 0, 0, tzinfo=timezone("UTC"))

        self._slot2_laterDate = datetime(2009, 9, 21, 20, 0, 0, tzinfo=timezone("UTC"))

        self._session1 = Session()
        self._session1.setValues({
            'sDate': self._slot1_sDate,
            'eDate': self._slot1_eDate
            })

        self._conf.addSession(self._session1)

        self._slot1 = self._session1.getSlotById(0)
        self._slot2 = SessionSlot(self._session1)

        self._slot2.setValues({
            'sDate': self._slot2_sDate,
            'eDate': self._slot2_eDate
            });

        self._session1.addSlot(self._slot2)
示例#4
0
def invokeMethod(method, params, req):

    # create the context
    ContextManager.create()

    DBMgr.getInstance().startRequest()

    # room booking database
    _startRequestSpecific2RH()
    try:
        try:
            retry = 10
            while retry > 0:
                try:
                    DBMgr.getInstance().sync()

                    result = processRequest(method, params, req)

                    _endRequestSpecific2RH( True )
                    DBMgr.getInstance().endRequest(True)
                    break
                except ConflictError:
                    _abortSpecific2RH()
                    DBMgr.getInstance().abort()
                    retry -= 1
                    continue
                except ClientDisconnected:
                    _abortSpecific2RH()
                    DBMgr.getInstance().abort()
                    retry -= 1
                    time.sleep(10 - retry)
                    continue
        except CausedError, e:
            raise e
        except Exception, e:
            raise ProcessError("ERR-P0", "Error processing method.")
示例#5
0
    def setUp(self):

        # create a context, for storing autoOps
        ContextManager.create()
        ContextManager.set('autoOps', [])

        a = Avatar()
        a.setId("creator")
        self._conf = ConferenceFacade(a)
        self._conf.setId('a')
        self._conf.setTimezone('UTC')

        self._conf.setDates(
            datetime(2009, 9, 21, 16, 0, 0, tzinfo=timezone("UTC")),
            datetime(2009, 9, 21, 19, 0, 0, tzinfo=timezone("UTC")))

        self._slot1_sDate = datetime(2009,
                                     9,
                                     21,
                                     17,
                                     0,
                                     0,
                                     tzinfo=timezone("UTC"))
        self._slot1_eDate = datetime(2009,
                                     9,
                                     21,
                                     18,
                                     0,
                                     0,
                                     tzinfo=timezone("UTC"))
        self._slot2_sDate = datetime(2009,
                                     9,
                                     21,
                                     18,
                                     0,
                                     0,
                                     tzinfo=timezone("UTC"))
        self._slot2_eDate = datetime(2009,
                                     9,
                                     21,
                                     19,
                                     0,
                                     0,
                                     tzinfo=timezone("UTC"))

        self._slot2_laterDate = datetime(2009,
                                         9,
                                         21,
                                         20,
                                         0,
                                         0,
                                         tzinfo=timezone("UTC"))

        self._session1 = Session()
        self._session1.setValues({
            'sDate': self._slot1_sDate,
            'eDate': self._slot1_eDate
        })

        self._conf.addSession(self._session1)

        self._slot1 = self._session1.getSlotById(0)
        self._slot2 = SessionSlot(self._session1)

        self._slot2.setValues({
            'sDate': self._slot2_sDate,
            'eDate': self._slot2_eDate
        })

        self._session1.addSlot(self._slot2)
示例#6
0
 def thread2(self):
     ContextManager.create()
     time.sleep(1)
     ContextManager.set('samevariable', 'b')
     self.assertEquals(ContextManager.get('samevariable'), 'b')
示例#7
0
 def setUp(self):
     ContextManager.create()
示例#8
0
def main(argv):
    category = -1
    meeting = -1
    show = 0

    ContextManager.create()

    try:
        opts, args = getopt.getopt(argv, "hm:c:s",
                                   ["help", "meeting=", "category=", "show"])
    except getopt.GetoptError:
        usage()
        sys.exit(2)
    for opt, arg in opts:
        if opt in ("-h", "--help"):
            usage()
            sys.exit()
        elif opt in ("-s", "--show"):
            show = 1
        elif opt in ("-m", "--meeting"):
            meeting = arg
        elif opt in ("-c", "--category"):
            category = arg

    # Create database instance and open trashcan manager object
    DBMgr.getInstance().startRequest()
    t = TrashCanManager()
    conf = None
    if (show):
        for i in t.getList():
            if isinstance(i, Conference):
                if meeting != -1 and i.getId() == meeting:
                    print "[%s]%s" % (i.getId(), i.getTitle())
                elif meeting == -1:
                    print "[%s]%s" % (i.getId(), i.getTitle())
        sys.exit()

    if (meeting != -1 and category != -1):

        print "Meeting:%s" % meeting
        print "Category:%s" % category
        for i in t.getList():
            if isinstance(i, Conference):
                if i.getId() == meeting:
                    conf = i
                    break

        if conf:
            DBMgr.getInstance().sync()

            with RequestListenerContext():

                # Remove meeting from the TrashCanManager
                t.remove(conf)
                # Attach meeting to desired category
                cat = CategoryManager().getById(category)
                ConferenceHolder().add(conf)
                cat._addConference(conf)

                # Add Evaluation
                c = ConferenceHolder().getById(meeting)
                from MaKaC.evaluation import Evaluation
                c.setEvaluations([Evaluation(c)])

                # indexes
                c.indexConf()
                c._notify('created', cat)

                for contrib in c.getContributionList():
                    contrib._notify('created', c)
        else:
            print "not found!"

        DBMgr.getInstance().endRequest()

    ContextManager.destroy()
示例#9
0
 def thread2(self):
     ContextManager.create()
     time.sleep(1)
     ContextManager.set('samevariable', 'b')
     self.assertEquals(ContextManager.get('samevariable'), 'b')
示例#10
0
 def setUp(self):
     ContextManager.create()
示例#11
0
def main(argv):
    category = -1
    meeting = -1
    show = 0

    ContextManager.create()

    try:
        opts, args = getopt.getopt(argv, "hm:c:s", ["help","meeting=","category=", "show"])
    except getopt.GetoptError:
        usage()
        sys.exit(2)
    for opt, arg in opts:
        if opt in ("-h", "--help"):
            usage()
            sys.exit()
        elif opt in ("-s","--show"):
            show = 1
        elif opt in ("-m","--meeting"):
            meeting = arg
        elif opt in ("-c","--category"):
            category = arg

    # Create database instance and open trashcan manager object
    DBMgr.getInstance().startRequest()
    t=TrashCanManager()
    conf = None
    if(show):
        for i in t.getList():
            if isinstance(i, Conference):
                if meeting != -1 and i.getId() == meeting:
                    print "[%s]%s"%(i.getId(),i.getTitle())
                elif meeting == -1:
                    print "[%s]%s"%(i.getId(),i.getTitle())
        sys.exit()

    if(meeting != -1 and category != -1):

        print "Meeting:%s"%meeting
        print "Category:%s" % category
        for i in t.getList():
            if isinstance(i,Conference):
                if i.getId() == meeting:
                    conf = i
                    break

        if conf:
            DBMgr.getInstance().sync()

            with RequestListenerContext():

                # Remove meeting from the TrashCanManager
                t.remove(conf)
                # Attach meeting to desired category
                cat = CategoryManager().getById(category)
                ConferenceHolder().add(conf)
                cat._addConference(conf)

                # Add Evaluation
                c = ConferenceHolder().getById(meeting)
                from MaKaC.evaluation import Evaluation
                c.setEvaluations([Evaluation(c)])

                # indexes
                c.indexConf()
                c._notify('created', cat)

                for contrib in c.getContributionList():
                    contrib._notify('created', c)
        else:
            print "not found!"

        DBMgr.getInstance().endRequest()

    ContextManager.destroy()
示例#12
0
    def process( self, params ):
        """
        """
        profile = False
        proffilename = ""
        res = ""
        retry = 10
        textLog = []
        self._startTime = datetime.now()

        # create the context
        ContextManager.create()

        #redirect to https if necessary
        if self._checkHttpsRedirect():
            return res
        
        DBMgr.getInstance().startRequest()
        self._startRequestSpecific2RH()     # I.e. implemented by Room Booking request handlers
        textLog.append("%s : Database request started"%(datetime.now() - self._startTime))
        Logger.get('requestHandler').info('[pid=%s] Request %s started (%s)' % (os.getpid(),id(self._req), self._req.unparsed_uri))
        try:
            while retry>0:
                try:
                    Logger.get('requestHandler').info('\t[pid=%s] from host %s' % (os.getpid(), self.getHostIP()))
                    try:
                        DBMgr.getInstance().sync()
                        # keep a link to the web session in the access wrapper
                        # this is used for checking access/modification key existence
                        # in the user session
                        self._aw.setIP( self.getHostIP() )
                        self._aw.setSession(self._getSession())
                        #raise(str(dir(self._websession)))
                        self._setSessionUser()
                        self._setLang()

                        if self._getUser():
                            Logger.get('requestHandler').debug('Request %s identified with user %s (%s)' % (id(self._req), self._getUser().getFullName(), self._getUser().getId()))


                        #if self._getUser() != None and self._getUser().getId() == "893":
                        #    profile = True
                        self._reqParams = copy.copy( params )
                        self._checkParams( self._reqParams )
                        self._checkProtection()
                        security.sanitizationCheck(self._target,
                                               self._reqParams,
                                               self._aw)
                        if self._doProcess:
                            if profile:
                                import hotshot, hotshot.stats
                                proffilename = os.path.join(Config.getInstance().getTempDir(), "stone%s.prof" % str(random.random()))
                                prof = hotshot.Profile(proffilename)
                                res = prof.runcall(self._process)
                                prof.close()
                            else:
                                res = self._process()
                        self._endRequestSpecific2RH( True ) # I.e. implemented by Room Booking request handlers
                        DBMgr.getInstance().endRequest( True )
                        Logger.get('requestHandler').info('Request %s successful' % (id(self._req)))

                        #request succesfull, now, doing tas that must be done only once
                        try:
                            self._sendEmails()
                            self._deleteTempFiles()
                        except:
                            pass
                        break
                    except MaKaCError, e:
                        #DBMgr.getInstance().endRequest(False)
                        res = self._processError(e)
                except ConflictError:
                    self._abortSpecific2RH()
                    DBMgr.getInstance().abort()
                    retry -= 1
                    continue
                except ClientDisconnected:
                    self._abortSpecific2RH()
                    DBMgr.getInstance().abort()
                    retry -= 1
                    time.sleep(10-retry)
                    continue
        except AccessError, e:
            #Access error treatment
            res = self._processAccessError( e )
            self._endRequestSpecific2RH( False )
            DBMgr.getInstance().endRequest(False)