UAT C1256445396-POCLOUD (TOPEX_POSEIDON_GDR_F) #961
GitHub Actions / Tested with Harmony
failed
Oct 17, 2024 in 0s
1 fail in 44s
Annotations
Check warning on line 0 in tests.verify_collection
github-actions / Tested with Harmony
test_concatenate[C1256445396-POCLOUD] (tests.verify_collection) failed
test-results/test_report.xml [took 42s]
Raw output
harmony.harmony.ProcessingFailedException: WorkItem failed: podaac/concise:0.10.0rc2: Service request failed with an unknown error
collection_concept_id = 'C1256445396-POCLOUD'
harmony_env = <Environment.UAT: 3>
bearer_token = 'eyJ0eXAiOiJKV1QiLCJvcmlnaW4iOiJFYXJ0aGRhdGEgTG9naW4iLCJzaWciOiJlZGxqd3RwdWJrZXlfdWF0IiwiYWxnIjoiUlMyNTYifQ.eyJ0eXBlIj...IdabNmCJplKiv8UZ_V3Zm05f1pUhqu2W9dM4eOOh74bzTdWX_4ehyL0BTmA62ucCaqr4SwFVd69MJoSyfH74bYAIJeEGCujbTOXcMreeOQGDwKQODHhxBg'
@pytest.mark.timeout(600)
def test_concatenate(collection_concept_id, harmony_env, bearer_token):
max_results = 2
harmony_client = harmony.Client(env=harmony_env, token=bearer_token)
collection = harmony.Collection(id=collection_concept_id)
latest_granule_ids = get_latest_granules(collection_concept_id, max_results, harmony_env, bearer_token)
if latest_granule_ids is None:
if harmony_env == harmony.config.Environment.UAT:
pytest.skip(f"No granules found for UAT collection {collection_concept_id}")
raise Exception('Bad Request', 'Error: No matching granules found.')
request = harmony.Request(
collection=collection,
concatenate=True,
max_results=max_results,
granule_id=latest_granule_ids,
skip_preview=True,
format="application/x-netcdf4",
)
request.is_valid()
logging.info("Sending harmony request %s", harmony_client.request_as_url(request))
try:
job1_id = harmony_client.submit(request)
except Exception as ex:
if str(ex) == "('Bad Request', 'Error: No matching granules found.')":
if harmony_env == harmony.config.Environment.UAT:
pytest.skip(f"No granules found for UAT collection {collection_concept_id}")
raise ex
logging.info(f'\n{job1_id}')
logging.info(harmony_client.status(job1_id))
logging.info('\nWaiting for the job to finish')
results = harmony_client.result_json(job1_id)
logging.info('\nDownloading results:')
futures = harmony_client.download_all(job1_id)
> file_names = [f.result() for f in futures]
tests/verify_collection.py:275:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tests/verify_collection.py:275: in <listcomp>
file_names = [f.result() for f in futures]
../../../.cache/pypoetry/virtualenvs/concise-autotest-tfGktGnJ-py3.10/lib/python3.10/site-packages/harmony/harmony.py:1244: in download_all
for url in self.result_urls(job_id_or_result_json, show_progress=False) or []:
../../../.cache/pypoetry/virtualenvs/concise-autotest-tfGktGnJ-py3.10/lib/python3.10/site-packages/harmony/harmony.py:1100: in result_urls
for page in self._result_pages(job_id, show_progress, link_type):
../../../.cache/pypoetry/virtualenvs/concise-autotest-tfGktGnJ-py3.10/lib/python3.10/site-packages/harmony/harmony.py:1075: in _result_pages
self.wait_for_processing(job_id, show_progress)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <harmony.harmony.Client object at 0x7fa3f5592c50>
job_id = '8d5c1d69-3945-4cbe-a2c0-33b75510fc39', show_progress = False
def wait_for_processing(self, job_id: str, show_progress: bool = False) -> None:
"""Retrieve a submitted job's completion status in percent.
Args:
job_id: UUID string for the job you wish to interrogate.
Returns:
The job's processing progress as a percentage.
:raises
Exception: This can happen if an invalid job_id is provided or Harmony services
can't be reached.
"""
# How often to refresh the screen for progress updates and animating spinners.
ui_update_interval = 0.33 # in seconds
running_w_errors_logged = False
intervals = round(self.check_interval / ui_update_interval)
if show_progress:
with progressbar.ProgressBar(max_value=100, widgets=progressbar_widgets) as bar:
progress = 0
while progress < 100:
progress, status, message = self.progress(job_id)
if status == 'failed':
raise ProcessingFailedException(job_id, message)
if status == 'canceled':
print('Job has been canceled.')
break
if status == 'paused':
print('\nJob has been paused. Call `resume()` to resume.', file=sys.stderr)
break
if (not running_w_errors_logged and status == 'running_with_errors'):
print('\nJob is running with errors.', file=sys.stderr)
running_w_errors_logged = True
# This gets around an issue with progressbar. If we update() with 0, the
# output shows up as "N/A". If we update with, e.g. 0.1, it rounds down or
# truncates to 0 but, importantly, actually displays that.
if progress == 0:
progress = 0.1
for _ in range(intervals):
bar.update(progress) # causes spinner to rotate even when no data change
sys.stdout.flush() # ensures correct behavior in Jupyter notebooks
if progress >= 100:
break
else:
time.sleep(ui_update_interval)
else:
progress = 0
while progress < 100:
progress, status, message = self.progress(job_id)
if status == 'failed':
> raise ProcessingFailedException(job_id, message)
E harmony.harmony.ProcessingFailedException: WorkItem failed: podaac/concise:0.10.0rc2: Service request failed with an unknown error
../../../.cache/pypoetry/virtualenvs/concise-autotest-tfGktGnJ-py3.10/lib/python3.10/site-packages/harmony/harmony.py:1015: ProcessingFailedException
--------------------------------- Captured Log ---------------------------------
INFO root:verify_collection.py:254 Sending harmony request https://harmony.uat.earthdata.nasa.gov/C1256445396-POCLOUD/ogc-api-coverages/1.0.0/collections/all/coverage/rangeset?forceAsync=true&granuleId=G1260713308-POCLOUD&granuleId=G1260762185-POCLOUD&format=application%2Fx-netcdf4&maxResults=2&concatenate=true&skipPreview=true
INFO root:verify_collection.py:264
8d5c1d69-3945-4cbe-a2c0-33b75510fc39
INFO root:verify_collection.py:266 {'status': 'running', 'message': 'The job is being processed', 'progress': 9, 'created_at': datetime.datetime(2024, 10, 17, 8, 16, 56, 622000, tzinfo=tzlocal()), 'updated_at': datetime.datetime(2024, 10, 17, 8, 16, 57, 304000, tzinfo=tzlocal()), 'created_at_local': '2024-10-17T08:16:56+00:00', 'updated_at_local': '2024-10-17T08:16:57+00:00', 'request': 'https://harmony.uat.earthdata.nasa.gov/C1256445396-POCLOUD/ogc-api-coverages/1.0.0/collections/all/coverage/rangeset?forceAsync=true&granuleId=G1260713308-POCLOUD%2CG1260762185-POCLOUD&format=application%2Fx-netcdf4&maxResults=2&concatenate=true&skipPreview=true', 'num_input_granules': 2, 'data_expiration': datetime.datetime(2024, 11, 16, 8, 16, 56, 622000, tzinfo=tzlocal()), 'data_expiration_local': '2024-11-16T08:16:56+00:00'}
INFO root:verify_collection.py:268
Waiting for the job to finish
INFO root:verify_collection.py:272
Downloading results:
Loading