Project

General

Profile

Actions

Feature #13993

closed

[API] Fetch remote-hosted collection by UUID

Added by Peter Amstutz over 5 years ago. Updated over 5 years ago.

Status:
Resolved
Priority:
Normal
Assigned To:
Category:
-
Target version:
Story points:
2.0
Release:
Release relationship:
Auto

Description

Enable a client to retrieve a collection record (with a given UUID) from its home cluster, even if the collection is hosted on a different cluster in a federation.

This issue covers the arvados-controller changes required for basic functionality.
  • proxy "get collection" requests with foreign UUIDs to the appropriate remote cluster (similar to #13493)
  • alter the signature hints in the returned record so keepstore will be able to get the data from the remote cluster (see Federated collections wiki)
This issue does not include
  • cache optimizations
  • changes to keepstore (#13994)

Subtasks 1 (0 open1 closed)

Task #14053: Review 13993-federated-collectionResolvedPeter Amstutz09/07/2018Actions

Related issues

Related to Arvados - Feature #13493: Federated record retrievalResolvedPeter Amstutz06/28/2018Actions
Related to Arvados - Feature #13994: [Keepstore] Fetch blocks from federated clustersResolvedTom Clegg09/12/2018Actions
Related to Arvados - Feature #14087: [controller] Fetch remote-hosted collections by PDHResolvedPeter Amstutz09/10/2018Actions
Actions #1

Updated by Peter Amstutz over 5 years ago

  • Subject changed from [API] Fetch remote-hosted container by UUID to [API] Fetch remote-hosted collection by UUID
  • Description updated (diff)
Actions #2

Updated by Peter Amstutz over 5 years ago

Actions #3

Updated by Peter Amstutz over 5 years ago

  • Related to Feature #13994: [Keepstore] Fetch blocks from federated clusters added
Actions #4

Updated by Peter Amstutz over 5 years ago

  • Description updated (diff)
Actions #5

Updated by Peter Amstutz over 5 years ago

  • Description updated (diff)
Actions #6

Updated by Peter Amstutz over 5 years ago

  • Description updated (diff)
Actions #7

Updated by Tom Morris over 5 years ago

  • Target version changed from To Be Groomed to Arvados Future Sprints
  • Story points set to 2.0
Actions #8

Updated by Tom Clegg over 5 years ago

  • Description updated (diff)
Actions #9

Updated by Tom Morris over 5 years ago

  • Target version changed from Arvados Future Sprints to 2018-09-05 Sprint
Actions #10

Updated by Tom Morris over 5 years ago

  • Assigned To set to Fuad Muhic
Actions #11

Updated by Peter Amstutz over 5 years ago

  • Assigned To deleted (Fuad Muhic)
Actions #13

Updated by Peter Amstutz over 5 years ago

  • Related to Feature #14087: [controller] Fetch remote-hosted collections by PDH added
Actions #14

Updated by Peter Amstutz over 5 years ago

  • Target version changed from 2018-09-05 Sprint to 2018-09-19 Sprint
Actions #15

Updated by Peter Amstutz over 5 years ago

  • Subject changed from [API] Fetch remote-hosted collection by UUID to [API] Fetch remote-hosted collection by UUID
  • Assigned To set to Peter Amstutz
Actions #17

Updated by Lucas Di Pentima over 5 years ago

Some comments:

  • On file lib/controller/federation.go
  • I think it would be convenient to update the locator format documentation to describe a +R hint
  • We have a previous signed locator Regex on sdk/go/keepclient/perms.go:68 that looks more correct (because I believe the current one doesn’t allow +A hints that aren’t signature hints), should we export it so it can be reused here?
  • Tests are failing
Actions #18

Updated by Peter Amstutz over 5 years ago

Lucas Di Pentima wrote:

Some comments:

  • On file lib/controller/federation.go
    • Line 96 - Small detail: I think just multiplying by 1.1 would more readable

I was trying to avoid converting to double precision and back but I agree that's a silly micro-optimization in this case at the expense of readability

See below

  • I think it would be convenient to update the locator format documentation to describe a +R hint

I have a documentation story to write up federation features (the task on #13493 assigned to me), maybe I can do it there?

  • We have a previous signed locator Regex on sdk/go/keepclient/perms.go:68 that looks more correct (because I believe the current one doesn’t allow +A hints that aren’t signature hints), should we export it so it can be reused here?

I consolidated the regex so the one in keepclient can be used by federation.go

  • Tests are failing

Works for me... Kicked off a run here: https://ci.curoverse.com/view/Developer/job/developer-run-tests/881/

Actions #20

Updated by Lucas Di Pentima over 5 years ago

Just one question: Would it be convenient to also add a test for a local collection request, so we test both sides?
Apart from that, it LGTM.

Actions #21

Updated by Peter Amstutz over 5 years ago

Lucas Di Pentima wrote:

Just one question: Would it be convenient to also add a test for a local collection request, so we test both sides?
Apart from that, it LGTM.

Added TestGetLocalCollection @ 9d2e1158e961801db714236c6942bd3596b867e7

Actions #22

Updated by Lucas Di Pentima over 5 years ago

Thanks! This lgtm.

Actions #23

Updated by Peter Amstutz over 5 years ago

  • Status changed from New to Resolved
Actions #24

Updated by Tom Morris over 5 years ago

  • Release set to 14
Actions

Also available in: Atom PDF