def test_update_product_details_set_product_unavailable(self): order = Order.find(self.mock_order.generate_testing_order(self.user_id)) scene = order.scenes()[0] production_provider.update_product('set_product_unavailable', name=scene.name, orderid=order.orderid, processing_loc="L8SRLEXAMPLE", error='include_dswe is an unavailable product option for OLITIRS') self.assertTrue('unavailable' == Scene.get('ordering_scene.status', scene.name, order.orderid))
def test_production_set_product_error_retry(self): """ Move a scene status from error to retry based on the error message """ order = Order.find(self.mock_order.generate_testing_order(self.user_id)) scene = order.scenes()[2] production_provider.set_product_error(scene.name, order.orderid, 'somewhere', 'Verify the missing auxillary data products') self.assertTrue('retry' == Scene.get('ordering_scene.status', scene.name, order.orderid))
def test_production_set_product_error_submitted(self): """ Move a scene status from error to submitted based on the error message """ order = Order.find(self.mock_order.generate_testing_order(self.user_id)) scene = order.scenes({'name !=': 'plot'})[0] production_provider.set_product_error(scene.name, order.orderid, 'get_products_to_process', 'BLOCK, COMING FROM LST AS WELL: No such file or directory') self.assertTrue('submitted' == Scene.get('ordering_scene.status', scene.name, order.orderid))
def test_production_set_product_error_retry_lasrc_segfault(self): """ Move a scene status from error to retry based on the error message """ order = Order.find(self.mock_order.generate_testing_order(self.user_id)) scene = order.scenes({'sensor_type': 'landsat'})[-1] production_provider.set_product_error(scene.name, order.orderid, 'somewhere', 'runSr sh: line 1: 1010 Segmentation fault lasrc --xml=') self.assertTrue('retry' == Scene.get('ordering_scene.status', scene.name, order.orderid))
def test_production_set_product_error_unavailable(self): """ Move a scene status from error to unavailable based on the error message """ order = Order.find(self.mock_order.generate_testing_order(self.user_id)) scene = order.scenes({'name !=': 'plot'})[0] production_provider.set_product_error(scene.name, order.orderid, 'get_products_to_process', 'include_dswe is an unavailable product option for OLITIRS') self.assertTrue('unavailable' == Scene.get('ordering_scene.status', scene.name, order.orderid))
def test_update_product_details_mark_product_complete(self): order = Order.find(self.mock_order.generate_testing_order(self.user_id)) scene = order.scenes()[0] production_provider.update_product('mark_product_complete', name=scene.name, orderid=order.orderid, processing_loc='L8SRLEXAMPLE', completed_file_location='/some/loc', cksum_file_location='some checksum', log_file_contents='some log') self.assertTrue('complete' == Scene.get('ordering_scene.status', scene.name, order.orderid))
def test_update_product_details_update_status(self): """ Set a scene status to Queued """ order = Order.find(self.mock_order.generate_testing_order(self.user_id)) scene = order.scenes()[0] api.update_product_details('update_status', {'name': scene.name, 'orderid': order.orderid, 'processing_loc': 'L8SRLEXAMPLE', 'status': 'Queued'}) self.assertTrue(Scene.get('ordering_scene.status', scene.name, order.orderid) == 'Queued')
def set_product_retry(self, name, orderid, processing_loc, error, note, retry_after, retry_limit=None): try: order_id = Scene.get('order_id', name, orderid) assert(type(retry_after) is int) assert(type(processing_loc) is str) assert(type(error) is str) assert(type(note) is str) except Exception: raise return True
def test_production_set_product_error_unavail_reproject(self): """ Move a scene status from error to retry based on the error message """ order = Order.find(self.mock_order.generate_testing_order(self.user_id)) scene = order.scenes({'sensor_type': 'landsat'})[-1] log_file_contents = ('BLAH BLAH BLAH WarpVerificationError: Failed to ' 'compute statistics, no valid pixels found in ' 'sampling BLAH BLAH BLAH') production_provider.set_product_error(scene.name, order.orderid, 'somewhere', log_file_contents) self.assertEqual('unavailable', Scene.get('ordering_scene.status', scene.name, order.orderid))
def test_production_set_product_error_retry_missing_mtl(self): """ Move a scene status from error to retry based on the error message """ order = Order.find(self.mock_order.generate_testing_order(self.user_id)) scene = order.scenes({'sensor_type': 'landsat'})[-1] log_file_contents = ('BLAH BLAH BLAH ESPAException: Unable to ' 'locate the MTL file in ' '[a path to a mtl file somewhere] BLAH BLAH BLAH') production_provider.set_product_error(scene.name, order.orderid, 'somewhere', log_file_contents) self.assertTrue('retry' == Scene.get('ordering_scene.status', scene.name, order.orderid))
def test_production_set_product_retry(self): order_id = self.mock_order.generate_testing_order(self.user_id) order = Order.find(order_id) scene = order.scenes()[3] scene.update('retry_count', 4) processing_loc = "get_products_to_process" error = 'not available after EE call ' note = 'note this' retry_after = datetime.datetime.now() + datetime.timedelta(hours=1) retry_limit = 9 response = production_provider.set_product_retry(scene.name, order.orderid, processing_loc, error, note, retry_after, retry_limit) new = Scene.get('ordering_scene.status', scene.name, order.orderid) self.assertTrue('retry' == new)
def test_production_set_product_error_unavail_ncep(self): """ Move a scene status from error to unavailable based on the error message """ order = Order.find(self.mock_order.generate_testing_order(self.user_id)) scene = order.scenes({'sensor_type': 'landsat'})[-1] log_file_contents = ('BLAH BLAH BLAH Warning: lndpm : Could not find ' 'NCEP REANALYSIS auxiliary data: a_file_.hdf ' 'Check LEDAPS_AUX_DIR environment variable. ' 'Error: lndpm : Verify the missing auxiliary data products, ' 'then try reprocessing. BLAH BLAH BLAH') production_provider.set_product_error(scene.name, order.orderid, 'somewhere', log_file_contents) self.assertEqual('unavailable', Scene.get('ordering_scene.status', scene.name, order.orderid))