-
-
Notifications
You must be signed in to change notification settings - Fork 52
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Towards VOResource 1.1 #269
Conversation
Codecov Report
@@ Coverage Diff @@
## master #269 +/- ##
==========================================
+ Coverage 74.96% 75.05% +0.08%
==========================================
Files 44 44
Lines 5065 5083 +18
==========================================
+ Hits 3797 3815 +18
Misses 1268 1268
Continue to review full report at Codecov.
|
@msdemlei - is this a draft or it's ready for review? |
On Thu, Aug 19, 2021 at 11:25:35AM -0700, andamian wrote:
@msdemlei - is this a draft or it's ready for review?
I'd say it should be ok.
|
@msdemlei - finally finished this. It looks good to me. Had to change the PR number in the change log (it needs the PR# and not the issue#) and pull I assume there's follow up work on this to add support for mirror URLs and example query string:
Anyways, we could close this and track follow-ups with new issues. |
On Thu, Oct 28, 2021 at 03:06:35PM -0700, Adrian wrote:
@msdemlei - finally finished this. It looks good to me. Can I merge it now?
From my perspective, sure. Thanks!
I assume there's follow up work on this to add support for mirror
URLs and example query string:
1. Should we add `examples` properties to all `dal` services?
I don't think so; this element is mainly geared towards validating
services, and I'm not sure it's actually useful for "end users".
Advanced users can still pull it out if they really have some funky
reason to do so.
Of course, that assessment may be wrong; I'm simply reflecting why I
put that thing in.
2. How are clients supposed to use the mirror URLs? I assume they
can do an availability check when the class (`SIAService`,
`TAPService`, etc.) is first instantiated and if it doesn't work
try mirrors. Problem with this is the overhead of the call and the
fact that mirror URLs are not linked between capabilities (how can
the client tell that a mirror URL of the availability capability
corresponds to a mirror URL of a different capability. Are they
supposed to have the same `title`?). A second approach would be to
No, availability is broken and at least at this point cannot be used
for this purpose (see https://ivoa.net/documents/caproles/, and I'll
give a talk on this next week:
https://wiki.ivoa.net/twiki/bin/view/IVOA/InterOpNov2021DAL).
What one *could* do is when a non-200 response comes back from a
service we look for a mirror, possibly based on a RegTAP query using
the original access URL. This *would* actually likely help for
VizieR tables, for which there are mirrors all over the place. But
on the other hand, the Strasbourg VizieR is rather stable, so it'd be
quite a bit of complexity for little benefit.
An alternative use of that metadata that's in use by Aladin (albeit
not based on RegTAP data yet) is choosing mirrors based on network
proximity – but that's even harder to do automatically and in a
library.
There's a third kind of mirrorURLs around, I think exclusively from
HTTPS-enabled DaCHSes: Those give http/https URLs as mirrors; I
suspect this kind of thing would better be handled by supporting the
upgrade-insecure-requests request header, though.
try mirror URLs only on some HTTP Errors. The trick here is to
identify which errors (there's no point in trying a malformed query
on different mirror URLs - the result will be the same).
That's true; except of course if we do fix availability, you could go
there and only try a mirror fallback if the original service is known
dead. But...
Anyways, we could close this and track follow-ups with new issues.
...frankly, I think mirrorURLs at this point is something for complete
UIs that can reasonably pop up a dialog box: "Service is down, but I
happen to know a mirror that may work. Should I re-try there?".
|
Merged. Thank you! mirrorURL: I've made a comment to the GMS RFC that the GMS is probably a prime candidate of this feature. GMS plays a critical role in the authentication and its high availability is critical. Service providers should probably try to deploy alternative mirrors to ensure the service is always reachable on at least one of the sites. |
This PR adds a few items to the VOResource Interface parser in pyvo.io.vosi. It would fix bug #268.