Example #1
0
 def test_production_update_order_if_complete(self):
     order = Order.find(self.mock_order.generate_testing_order(self.user_id))
     Scene.bulk_update([s.id for s in order.scenes()], {'status': 'retry'})
     order.order_source = 'espa'
     order.completion_email_sent = None
     order.save()
     self.assertTrue(production_provider.update_order_if_complete(order))
Example #2
0
    def error_to(self, orderid, state):
        order = Order.find(orderid)
        err_scenes = order.scenes({'status': 'error'})
        try:
            if state == 'submitted':
                Scene.bulk_update(
                    [s.id for s in err_scenes], {
                        'status': state,
                        'orphaned': None,
                        'reported_orphan': None,
                        'log_file_contents': '',
                        'note': '',
                        'retry_count': 0
                    })

                order.status = 'ordered'
                order.completion_email_sent = None
                order.save()

            else:
                Scene.bulk_update([s.id for s in err_scenes],
                                  {'status': state})

            return True
        except SceneException as e:
            logger.critical('ERR admin provider error_to\ntrace: {}'.format(
                e.message))
            raise AdministrationProviderException('ERR updating with error_to')
 def test_hadoop_reset_status(self):
     order_id = self.mock_order.generate_testing_order(self.user_id)
     scenes = Scene.where({'order_id': order_id})
     Scene.bulk_update([s.id for s in scenes], {'status': 'processing'})
     self.assertTrue(production_provider.reset_processing_status())
     scenes = Scene.where({'order_id': order_id})
     self.assertEqual({'submitted'}, set([s.status for s in scenes]))
    def cancel_order(self, orderid, request_ip_address):
        """
        Cancels an order, and all scenes contained within it

        :return:
        """
        order = Order.where({'id': orderid})
        if len(order) != 1:
            raise OrderingProviderException('Order not found')
        else:
            order = order.pop()

        logger.info('Received request to cancel {} from {}'.format(
            orderid, request_ip_address))
        killable_scene_states = ('submitted', 'oncache', 'onorder', 'queued',
                                 'retry', 'error', 'unavailable', 'complete')
        scenes = order.scenes(sql_dict={'status': killable_scene_states})
        if len(scenes) > 0:
            Scene.bulk_update([s.id for s in scenes], Scene.cancel_opts())
        else:
            logger.info('No scenes to cancel for order {}'.format(
                orderid, request_ip_address))

        order.status = 'cancelled'
        order.save()
        logger.info('Request to cancel {} from {} successful.'.format(
            orderid, request_ip_address))
        return order
 def test_production_update_order_if_complete(self):
     order = Order.find(self.mock_order.generate_testing_order(self.user_id))
     Scene.bulk_update([s.id for s in order.scenes()], {'status': 'retry'})
     order.order_source = 'espa'
     order.completion_email_sent = None
     order.save()
     self.assertTrue(production_provider.update_order_if_complete(order))
 def test_production_calc_scene_download_sizes(self):
     order = Order.find(self.mock_order.generate_testing_order(self.user_id))
     scenes = order.scenes()
     Scene.bulk_update([s.id for s in scenes], {'status': 'complete', 'download_size': 0})
     self.assertTrue(production_provider.calc_scene_download_sizes())
     upscenes = Scene.where({'status': 'complete', 'download_size': 999})
     self.assertEqual(len(upscenes), len(scenes))
Example #7
0
 def test_production_calc_scene_download_sizes(self):
     order = Order.find(self.mock_order.generate_testing_order(self.user_id))
     scenes = order.scenes()
     Scene.bulk_update([s.id for s in scenes], {'status': 'complete', 'download_size': 0})
     scenes = Order.find(order.id).scenes({'status': 'complete', 'download_size': 0})
     self.assertTrue(production_provider.calc_scene_download_sizes(scenes))
     upscenes = Scene.where({'status': 'complete', 'download_size': 999})
     self.assertEqual(len(upscenes), len(scenes))
 def test_production_order_completion_email_error(self):
     """
     Make sure that order status is not set to complete if the completion email failed to send
     """
     order = Order.find(self.mock_order.generate_testing_order(
         self.user_id))
     Scene.bulk_update([s.id for s in order.scenes()],
                       {'status': 'complete'})
     order.order_source = 'espa'
     order.completion_email_sent = None
     order.save()
     production_provider.update_order_if_complete(order)
     self.assertEquals(order.status, 'ordered')