NOAA-PMEL / LAS

Live Access Server
https://ferret.pmel.noaa.gov/LAS/
The Unlicense
13 stars 5 forks source link

Improve the LAS error when ERDDAP returns an error during a request. #1744

Closed karlmsmith closed 6 years ago

karlmsmith commented 6 years ago

Reported by @noaaroland on 15 Aug 2016 23:01 UTC [http://ferret.pmel.noaa.gov/erddap/tabledap/socatV3_c6c1_d431_8194.ncCF?socat_doi,%20qc_flag,%20year,%20month,%20day,%20hour,%20minute,%20second,%20sal,%20temp,%20Temperature_equi,%20Pressure_atm,%20Pressure_equi,%20woa_sss,%20pressure_ncep_slp,%20etopo2,%20dist_to_land,%20gvCO2,%20fCO2_recommended,%20fCO2_source,%20WOCE_CO2_water&fCO2_recommended!=NaN&WOCE_CO2_water=~%222%22&latitude%3E=-73.366431495514&latitude%3C=-41.861809492432&time%3E=1957-01-01T00:00:00.000Z&time%3C=2014-12-31T00:00:00.000Z&orderBy(%22expocode,time%22)&longitude%3E=-79.784560448154&longitude%3C=-38.346636531256 This ERDDAP request] ends in an error message that says I've asked for too much data. However, if I make [http://ferret.pmel.noaa.gov/SOCAT_Data_Viewer/ProductServer.do?xml=%3C%3Fxml%20version%3D%221.0%22%3F%3E%3ClasRequest%20href%3D%22file%3Alas.xml%22%3E%3Cargs%3E%3Clink%20match%3D%22/lasdata/datasets/socatV3_c6c1_d431_8194/variables/fCO2_recommended-socatV3_c6c1_d431_8194%22%3E%3C/link%3E%3Cregion%3E%3Crange%20type%3D%22x%22%20low%3D%22-79.784560448154%22%20high%3D%22-38.346636531256%22%3E%3C/range%3E%3Crange%20type%3D%22y%22%20low%3D%22-73.366431495514%22%20high%3D%22-41.861809492432%22%3E%3C/range%3E%3Crange%20type%3D%22t%22%20low%3D%2201-Jan-1957%2000%3A00%22%20high%3D%2231-Dec-2014%2000%3A00%22%3E%3C/range%3E%3C/region%3E%3Cconstraint%20type%3D%22variable%22%20id%3D%22socatV3_c6c1_d431_8194_fCO2_recommended-socatV3_c6c1_d431_8194%22%20op%3D%22ne%22%3E%3Clink%20match%3D%22/lasdata/datasets/socatV3_c6c1_d431_8194/variables/fCO2_recommended-socatV3_c6c1_d431_8194%22%3E%3C/link%3E%3Cv%3ENaN%3C/v%3E%3C/constraint%3E%3Cconstraint%20type%3D%22text%22%3E%3Cv%3EWOCE_CO2_water%3C/v%3E%3Cv%3Eis%3C/v%3E%3Cv%3E2%3C/v%3E%3Clabel%3E2%3C/label%3E%3C/constraint%3E%3C/args%3E%3Clink%20match%3D%22/lasdata/operations/operation%5B@ID%3D%27Trajectory_Data_Extract_netCDF%27%5D%22%3E%3C/link%3E%3Cproperties%3E%3Cdownload%3E%3Call_data%3Etrue%3C/all_data%3E%3C/download%3E%3Cferret%3E%3Cview%3Exyt%3C/view%3E%3Csize%3E.8333%3C/size%3E%3Cimage_format%3Egif%3C/image_format%3E%3Cannotations%3Efile%3C/annotations%3E%3C/ferret%3E%3Clas%3E%3Coutput_type%3Ehtml%3C/output_type%3E%3Cdebug%3Efalse%3C/debug%3E%3C/las%3E%3Cproduct_server%3E%3Cversion%3E8.4%3C/version%3E%3C/product_server%3E%3C/properties%3E%3C/lasRequest%3E this request] in the context of LAS, I just get an HTTP 500 error message that says contact the system admin.

The issues:

  1. ERDDAP always returns a 500 error so it's impossible to know if the error is actionable by the user or if it's internal goobledy gook from a "real" ERDDAP error.
  2. ERDDAP returns HTML in all cases regardless of the format (XHTML, JSON or netCDF) requested.
  3. The HTML contains a bunch of styles that mess with our page so we may need to massage it (maybe extract the .

Start by just putting the entire HTML blob into the Exception.

Migrated-From: http://dunkel.pmel.noaa.gov/trac/las/ticket/1735

karlmsmith commented 6 years ago

Comment by @noaaroland on 2 Sep 2016 22:38 UTC r22393 and r22394

Attempted to get a better message. The tool code that gets stuff from ERDDAP with the httpclient proxy only uses one method. Made a similar method that does special error handling. It will take the contents of the

tag in the error page and stuff it into the exception message.