Skip to content

Commit 9a85ba6

Browse files
committed
PR comments
1 parent 8367c5e commit 9a85ba6

2 files changed

Lines changed: 18 additions & 9 deletions

File tree

  • lib/remote_persistent_term/fetcher
  • test/remote_persistent_term/fetcher

lib/remote_persistent_term/fetcher/s3.ex

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ defmodule RemotePersistentTerm.Fetcher.S3 do
1010
bucket: String.t(),
1111
key: String.t(),
1212
region: String.t(),
13-
failover_buckets: [{String.t(), String.t()}] | nil
13+
failover_buckets: [[bucket: String.t(), region: String.t()]] | nil
1414
}
1515
defstruct [:bucket, :key, :region, :failover_buckets]
1616

@@ -31,10 +31,11 @@ defmodule RemotePersistentTerm.Fetcher.S3 do
3131
doc: "The AWS region of the s3 bucket."
3232
],
3333
failover_buckets: [
34-
type: {:list, {:tuple, [:string, :string]}},
34+
type: {:list, :keyword_list},
3535
required: false,
3636
doc:
37-
"A list of tuples containing {bucket_name, region} to use as failover if the primary bucket fails."
37+
"A list of keyword lists containing [bucket: bucket_name, region: region] to use as failover if the primary bucket fails. \n
38+
The directory structure in failover buckets must match the primary bucket."
3839
]
3940
]
4041

@@ -176,7 +177,12 @@ defmodule RemotePersistentTerm.Fetcher.S3 do
176177

177178
defp try_failover_buckets(_op, [], _opts, _state), do: {:error, "All buckets failed"}
178179

179-
defp try_failover_buckets(op, [{bucket, region} | remaining_buckets], opts, state) do
180+
defp try_failover_buckets(
181+
op,
182+
[[bucket: bucket, region: region] | remaining_buckets],
183+
opts,
184+
state
185+
) do
180186
Logger.info(%{
181187
bucket: bucket,
182188
key: state.key,
@@ -202,8 +208,7 @@ defmodule RemotePersistentTerm.Fetcher.S3 do
202208
end
203209

204210
defp perform_request(op, bucket, region, opts) do
205-
op
206-
|> apply([bucket, opts])
211+
op.(bucket, opts)
207212
|> client().request(region: region)
208213
end
209214

test/remote_persistent_term/fetcher/s3_test.exs

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@ defmodule RemotePersistentTerm.Fetcher.S3Test do
99
@key "test-key"
1010
@region "test-region"
1111
@failover_buckets [
12-
{"failover-bucket-1", "failover-region-1"},
13-
{"failover-bucket-2", "failover-region-2"}
12+
[bucket: "failover-bucket-1", region: "failover-region-1"],
13+
[bucket: "failover-bucket-2", region: "failover-region-2"]
1414
]
1515
@version "F76V.weh4uOlU15f7a2OLHPgCLXkDpm4"
1616

@@ -45,7 +45,11 @@ defmodule RemotePersistentTerm.Fetcher.S3Test do
4545
bucket = "my-bucket"
4646
key = "my-key"
4747
region = "my-region"
48-
failover_buckets = [{"backup-bucket", "backup-region"}, {"dr-bucket", "dr-region"}]
48+
49+
failover_buckets = [
50+
[bucket: "backup-bucket", region: "backup-region"],
51+
[bucket: "dr-bucket", region: "dr-region"]
52+
]
4953

5054
assert {:ok,
5155
%S3{bucket: bucket, key: key, region: region, failover_buckets: failover_buckets}} ==

0 commit comments

Comments
 (0)