PecanProject / bety

Web-interface to the Biofuel Ecophysiological Traits and Yields Database (used by PEcAn and TERRA REF)
https://www.betydb.org
BSD 3-Clause "New" or "Revised" License
16 stars 38 forks source link

Issue with reloading workflows through web BETYdb #332

Closed serbinsh closed 9 years ago

serbinsh commented 9 years ago

Through the PEcAn web interface a workflow result/history page is located at: http://test.esh.bnl.gov/pecan/08-finished.php?workflowid=2000000002

However, if I log on to the BETY interface on our server the link on the http://test.esh.bnl.gov/bety/workflows page takes me to: http://test.esh.bnl.gov/pecan/finished.php?workflowid=2000000002

This results in a failed recall of the run history. Note the missing "08-" prefix. Is this a bug? Or do I have a config problem?

@robkooper @dlebauer @gsrohde

gsrohde commented 9 years ago

Yes, I would say this is a bug. PEcAn and BETYdb are not on the same page, it would seem, in how they refer to these workflow URLs. BETYdb always links to /pecan/finished.php?workflowid=..., and not only does this not have the 08- prefix to finished.php, it can fail if there isn't the right relationship between BETYdb URLs and PEcAn URLs. (www.betydb.org, for example, can't resolve the relative location /pecan/..., but the beta deployment at ebi-forecast.igb.illinois.edu/beta can resolve /pecan/... to ebi-forecast.igb.illinois.edu/pecan/..., which exists.)

The link to PEcAn on the workflows page of BETYdb hasn't been updated since it was created in February 2013, so I suspect something in PEcAn has changed since then and that BETYdb hasn't tracked that change.

I can at least insert the 08- into the link. A more comprehensive fix would probably involve putting the relative location of PEcAN in a per-deployment configuration file.

@robkooper Do you want to weigh in on this?

gsrohde commented 8 years ago

This isn't really fixed for the ebi site, even after I deploy pull request #351, so re-opening.

robkooper commented 8 years ago

I think the cleanest way to do this is to add to the machine time a pointer to the bety instance and pecan instance for that particular machine. That way we can use a simple lookup based on the id of a record to see what bety and what pecan server they belong to.