Make Praefect work with Object Pools by rewriting storage locations on both repositories
Some RPCs have multiple repositories in the message, and we need to rewrite the storage for all of them.
Namely the object pool rpcs are this way--when we create an object pool, link it, etc the origin and the repo should reside on the same praefect gitaly node.
Right now we are only rewriting the target repository's storage, which results in errors like:
GRPC::InvalidArgument:
3:origin has different storage than object pool
# ./lib/gitlab/gitaly_client.rb:154:in `call'
# ./lib/gitlab/gitaly_client/object_pool_service.rb:45:in `fetch'
This issue does not cover making praefect replication work with object pools. #2080 (closed) is for that.
Edited by John Cai