Пример #1
0
    def run(self, *args, **kwargs):
        self.log = log
        # init database connection
        session = DBSession()

        statuses = ['PENDING',
                    'ACCEPTED_MANAGER',
                    'DENIED',
                    'APPROVED_ADMIN',
                    'CANCELED',
                    'ERROR']
        for status in statuses:
            requests = Request.by_status(session, status)
            self.log.info('number of requests for %s: %d' %
                          (status, len(requests)))

        req_accepted_notified = Request.by_status(session, 'ACCEPTED_MANAGER',
                                                  notified=True)
        self.log.info('number of ACCEPTED_NOTIFIED requests: %d' %
                      len(req_accepted_notified))

        # req_pending_notified = Request.by_status(session, 'PENDING',
        #                                          notified=True)
        # self.log.info('number of PENDING_NOTIFIED requests: %d' %
        #               len(req_pending_notified))

        req_list = []
        req_list.extend(req_accepted_notified)
        # req_list.extend(req_pending_notified)

        for req in req_list:
            self.log.info('selecting task for req type %r' % req.status)

            check_status = req.status
            if req.status == 'ACCEPTED_MANAGER' and req.notified:
                check_status = 'ACCEPTED_NOTIFIED'
            # if req.status == 'PENDING' and req.notified:
            #     check_status = 'PENDING_NOTIFIED'

            req_task = self.worker_tasks[check_status]
            self.log.info('task selected %r' % req_task.name)

            data = {
                'req_id': req.id,
            }

            async_result = subtask(req_task).delay(data=data)
            self.log.info('task scheduled %r' % async_result)

        return True
Пример #2
0
    def run(self, *args, **kwargs):
        self.log = log
        # init database connection
        session = DBSession()

        statuses = [
            'PENDING', 'ACCEPTED_MANAGER', 'DENIED', 'APPROVED_ADMIN',
            'CANCELED', 'ERROR'
        ]
        for status in statuses:
            requests = Request.by_status(session, status)
            self.log.info('number of requests for %s: %d' %
                          (status, len(requests)))

        req_accepted_notified = Request.by_status(session,
                                                  'ACCEPTED_MANAGER',
                                                  notified=True)
        self.log.info('number of ACCEPTED_NOTIFIED requests: %d' %
                      len(req_accepted_notified))

        # req_pending_notified = Request.by_status(session, 'PENDING',
        #                                          notified=True)
        # self.log.info('number of PENDING_NOTIFIED requests: %d' %
        #               len(req_pending_notified))

        req_list = []
        req_list.extend(req_accepted_notified)
        # req_list.extend(req_pending_notified)

        for req in req_list:
            self.log.info('selecting task for req type %r' % req.status)

            check_status = req.status
            if req.status == 'ACCEPTED_MANAGER' and req.notified:
                check_status = 'ACCEPTED_NOTIFIED'
            # if req.status == 'PENDING' and req.notified:
            #     check_status = 'PENDING_NOTIFIED'

            req_task = self.worker_tasks[check_status]
            self.log.info('task selected %r' % req_task.name)

            data = {
                'req_id': req.id,
            }

            async_result = subtask(req_task).delay(data=data)
            self.log.info('task scheduled %r' % async_result)

        return True
Пример #3
0
    def run(self, *args, **kwargs):
        self.log = log
        # init database connection
        session = DBSession()

        req_accepted_notified = Request.by_status(session,
                                                  'ACCEPTED_MANAGER',
                                                  notified=True)
        self.log.info('number of ACCEPTED_NOTIFIED requests: %d' %
                      len(req_accepted_notified))

        req_list = []
        req_list.extend(req_accepted_notified)

        for req in req_list:
            self.log.info('selecting task for req type %r' % req.status)

            check_status = req.status
            if req.status == 'ACCEPTED_MANAGER' and req.notified:
                check_status = 'ACCEPTED_NOTIFIED'

            req_task = self.worker_tasks[check_status]
            self.log.info('task selected %r' % req_task.name)

            data = {
                'req_id': req.id,
            }

            async_result = subtask(req_task).delay(data=data)
            self.log.info('task scheduled %r' % async_result)

        return True
Пример #4
0
 def test_by_status(self):
     from pyvac.models import Request
     requests = Request.by_status(self.session, u'PENDING')
     self.assertEqual(len(requests), 4)
     # take the first
     request = requests[0]
     self.assertIsInstance(request, Request)
Пример #5
0
 def test_by_status_not_notified_ok(self):
     from pyvac.models import Request
     requests = Request.by_status(self.session, u'ACCEPTED_MANAGER',
                                  notified=True)
     self.assertEqual(len(requests), 2)
     # take the first
     request = requests[0]
     self.assertIsInstance(request, Request)
     self.assertEqual(request.days, 5)
     self.assertEqual(request.type, u'RTT')
     self.assertEqual(request.status, u'ACCEPTED_MANAGER')
     self.assertEqual(request.notified, True)
     self.assertEqual(request.date_from, datetime(2015, 4, 24, 0, 0))
     self.assertEqual(request.date_to, datetime(2015, 4, 28, 0, 0))
Пример #6
0
 def test_by_status_not_notified_ok(self):
     from pyvac.models import Request
     requests = Request.by_status(self.session, u'ACCEPTED_MANAGER',
                                  notified=True)
     self.assertEqual(len(requests), 2)
     # take the first
     request = requests[0]
     self.assertIsInstance(request, Request)
     self.assertEqual(request.days, 5)
     self.assertEqual(request.type, u'RTT')
     self.assertEqual(request.status, u'ACCEPTED_MANAGER')
     self.assertEqual(request.notified, True)
     self.assertEqual(request.date_from, datetime(2015, 4, 24, 0, 0))
     self.assertEqual(request.date_to, datetime(2015, 4, 28, 0, 0))
Пример #7
0
 def test_by_status_not_notified_ko(self):
     from pyvac.models import Request
     nb_requests = Request.by_status(self.session, u'ACCEPTED_MANAGER',
                                     count=True)
     self.assertEqual(nb_requests, 0)
Пример #8
0
 def test_by_status_not_notified_ko(self):
     from pyvac.models import Request
     nb_requests = Request.by_status(self.session, u'ACCEPTED_MANAGER',
                                     count=True)
     self.assertEqual(nb_requests, 0)