globus_client 0.10.1 → 0.11.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Gemfile.lock +18 -15
- data/lib/globus_client/endpoint.rb +31 -1
- data/lib/globus_client/version.rb +1 -1
- data/lib/globus_client.rb +8 -1
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 0412735516a2cde5c06f65eff24feeedbcdfa68fd845c4ddb02291c1c08e91bb
|
|
4
|
+
data.tar.gz: f58c3b2f559a1a99f64e8b426fc926085f96b82e0afd85876143fee6f1ac7a4d
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 65c26e4b278f537813ffcd4438ead6c44e08f735bd34e17e77f463aec1bbed3de85960788eab65c8635b41cc3466b95c033ef33e18970b888fa2dbdb85bd153f
|
|
7
|
+
data.tar.gz: 1077d87cb4b0a5314a91268213f9a9fa6c0a7015e8bacc580e9cfb3ef0940409abf8f086cbdf73db973f888d1950ff3db8199c87eeb974aeab6682a3c3840e31
|
data/Gemfile.lock
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
globus_client (0.
|
|
4
|
+
globus_client (0.11.1)
|
|
5
5
|
activesupport (>= 4.2, < 8)
|
|
6
6
|
faraday
|
|
7
7
|
faraday-retry
|
|
@@ -10,14 +10,15 @@ PATH
|
|
|
10
10
|
GEM
|
|
11
11
|
remote: https://rubygems.org/
|
|
12
12
|
specs:
|
|
13
|
-
activesupport (7.0.
|
|
13
|
+
activesupport (7.0.7)
|
|
14
14
|
concurrent-ruby (~> 1.0, >= 1.0.2)
|
|
15
15
|
i18n (>= 1.6, < 2)
|
|
16
16
|
minitest (>= 5.1)
|
|
17
17
|
tzinfo (~> 2.0)
|
|
18
|
-
addressable (2.8.
|
|
18
|
+
addressable (2.8.5)
|
|
19
19
|
public_suffix (>= 2.0.2, < 6.0)
|
|
20
20
|
ast (2.4.2)
|
|
21
|
+
base64 (0.1.1)
|
|
21
22
|
byebug (11.1.3)
|
|
22
23
|
concurrent-ruby (1.2.2)
|
|
23
24
|
crack (0.4.5)
|
|
@@ -36,7 +37,7 @@ GEM
|
|
|
36
37
|
json (2.6.3)
|
|
37
38
|
language_server-protocol (3.17.0.3)
|
|
38
39
|
lint_roller (1.1.0)
|
|
39
|
-
minitest (5.
|
|
40
|
+
minitest (5.19.0)
|
|
40
41
|
parallel (1.23.0)
|
|
41
42
|
parser (3.2.2.3)
|
|
42
43
|
ast (~> 2.4.1)
|
|
@@ -46,7 +47,7 @@ GEM
|
|
|
46
47
|
rainbow (3.1.1)
|
|
47
48
|
rake (13.0.6)
|
|
48
49
|
regexp_parser (2.8.1)
|
|
49
|
-
rexml (3.2.
|
|
50
|
+
rexml (3.2.6)
|
|
50
51
|
rspec (3.12.0)
|
|
51
52
|
rspec-core (~> 3.12.0)
|
|
52
53
|
rspec-expectations (~> 3.12.0)
|
|
@@ -60,14 +61,16 @@ GEM
|
|
|
60
61
|
diff-lcs (>= 1.2.0, < 2.0)
|
|
61
62
|
rspec-support (~> 3.12.0)
|
|
62
63
|
rspec-support (3.12.1)
|
|
63
|
-
rubocop (1.
|
|
64
|
+
rubocop (1.56.1)
|
|
65
|
+
base64 (~> 0.1.1)
|
|
64
66
|
json (~> 2.3)
|
|
67
|
+
language_server-protocol (>= 3.17.0)
|
|
65
68
|
parallel (~> 1.10)
|
|
66
69
|
parser (>= 3.2.2.3)
|
|
67
70
|
rainbow (>= 2.2.2, < 4.0)
|
|
68
71
|
regexp_parser (>= 1.8, < 3.0)
|
|
69
72
|
rexml (>= 3.2.5, < 4.0)
|
|
70
|
-
rubocop-ast (>= 1.28.
|
|
73
|
+
rubocop-ast (>= 1.28.1, < 2.0)
|
|
71
74
|
ruby-progressbar (~> 1.7)
|
|
72
75
|
unicode-display_width (>= 2.4.0, < 3.0)
|
|
73
76
|
rubocop-ast (1.29.0)
|
|
@@ -76,10 +79,10 @@ GEM
|
|
|
76
79
|
rubocop (~> 1.41)
|
|
77
80
|
rubocop-factory_bot (2.23.1)
|
|
78
81
|
rubocop (~> 1.33)
|
|
79
|
-
rubocop-performance (1.
|
|
82
|
+
rubocop-performance (1.19.0)
|
|
80
83
|
rubocop (>= 1.7.0, < 2.0)
|
|
81
84
|
rubocop-ast (>= 0.4.0)
|
|
82
|
-
rubocop-rspec (2.
|
|
85
|
+
rubocop-rspec (2.23.2)
|
|
83
86
|
rubocop (~> 1.33)
|
|
84
87
|
rubocop-capybara (~> 2.17)
|
|
85
88
|
rubocop-factory_bot (~> 2.22)
|
|
@@ -91,18 +94,18 @@ GEM
|
|
|
91
94
|
simplecov_json_formatter (~> 0.1)
|
|
92
95
|
simplecov-html (0.12.3)
|
|
93
96
|
simplecov_json_formatter (0.1.4)
|
|
94
|
-
standard (1.
|
|
97
|
+
standard (1.31.0)
|
|
95
98
|
language_server-protocol (~> 3.17.0.2)
|
|
96
99
|
lint_roller (~> 1.0)
|
|
97
|
-
rubocop (~> 1.
|
|
100
|
+
rubocop (~> 1.56.0)
|
|
98
101
|
standard-custom (~> 1.0.0)
|
|
99
|
-
standard-performance (~> 1.
|
|
102
|
+
standard-performance (~> 1.2)
|
|
100
103
|
standard-custom (1.0.2)
|
|
101
104
|
lint_roller (~> 1.0)
|
|
102
105
|
rubocop (~> 1.50)
|
|
103
|
-
standard-performance (1.
|
|
106
|
+
standard-performance (1.2.0)
|
|
104
107
|
lint_roller (~> 1.1)
|
|
105
|
-
rubocop-performance (~> 1.
|
|
108
|
+
rubocop-performance (~> 1.19.0)
|
|
106
109
|
tzinfo (2.0.6)
|
|
107
110
|
concurrent-ruby (~> 1.0)
|
|
108
111
|
unicode-display_width (2.4.2)
|
|
@@ -110,7 +113,7 @@ GEM
|
|
|
110
113
|
addressable (>= 2.8.0)
|
|
111
114
|
crack (>= 0.3.2)
|
|
112
115
|
hashdiff (>= 0.4.0, < 2.0.0)
|
|
113
|
-
zeitwerk (2.6.
|
|
116
|
+
zeitwerk (2.6.11)
|
|
114
117
|
|
|
115
118
|
PLATFORMS
|
|
116
119
|
x86_64-darwin-19
|
|
@@ -57,7 +57,17 @@ class GlobusClient
|
|
|
57
57
|
|
|
58
58
|
# Assign a user read-only permissions for a directory https://docs.globus.org/api/transfer/acl/#rest_access_create
|
|
59
59
|
def disallow_writes
|
|
60
|
-
|
|
60
|
+
update_access_request(permissions: "r")
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
# Delete the access rule https://docs.globus.org/api/transfer/acl/#delete_access_rule
|
|
64
|
+
def delete_access_rule
|
|
65
|
+
raise(StandardError, "Access rule not found for #{path}") if !access_rule_id
|
|
66
|
+
|
|
67
|
+
response = connection.delete("#{access_path}/#{access_rule_id}")
|
|
68
|
+
return true if response.success?
|
|
69
|
+
|
|
70
|
+
UnexpectedResponse.call(response)
|
|
61
71
|
end
|
|
62
72
|
|
|
63
73
|
private
|
|
@@ -166,11 +176,31 @@ class GlobusClient
|
|
|
166
176
|
UnexpectedResponse.call(response)
|
|
167
177
|
end
|
|
168
178
|
|
|
179
|
+
def update_access_request(permissions:)
|
|
180
|
+
raise(StandardError, "Access rule not found for #{path}") if !access_rule_id
|
|
181
|
+
|
|
182
|
+
response = connection.put("#{access_path}/#{access_rule_id}") do |req|
|
|
183
|
+
req.body = {
|
|
184
|
+
DATA_TYPE: "access",
|
|
185
|
+
permissions:
|
|
186
|
+
}.to_json
|
|
187
|
+
req.headers["Content-Type"] = "application/json"
|
|
188
|
+
end
|
|
189
|
+
|
|
190
|
+
return true if response.success?
|
|
191
|
+
|
|
192
|
+
UnexpectedResponse.call(response)
|
|
193
|
+
end
|
|
194
|
+
|
|
169
195
|
def access_rule
|
|
170
196
|
response = connection.get(access_list_path) do |req|
|
|
171
197
|
req.headers["Content-Type"] = "application/json"
|
|
172
198
|
end
|
|
173
199
|
|
|
200
|
+
# debugging of Globus responses
|
|
201
|
+
response_body = JSON.parse(response.body)
|
|
202
|
+
raise(StandardError, "Response is missing DATA in: #{response_body}") unless response_body.key?("DATA")
|
|
203
|
+
|
|
174
204
|
JSON
|
|
175
205
|
.parse(response.body)["DATA"]
|
|
176
206
|
.find { |acl| acl["path"] == full_path }
|
data/lib/globus_client.rb
CHANGED
|
@@ -35,7 +35,7 @@ class GlobusClient
|
|
|
35
35
|
self
|
|
36
36
|
end
|
|
37
37
|
|
|
38
|
-
delegate :config, :disallow_writes, :file_count, :list_files, :mkdir, :total_size,
|
|
38
|
+
delegate :config, :disallow_writes, :delete_access_rule, :file_count, :list_files, :mkdir, :total_size,
|
|
39
39
|
:user_valid?, :get_filenames, :has_files?, to: :instance
|
|
40
40
|
|
|
41
41
|
def default_transfer_url
|
|
@@ -64,6 +64,13 @@ class GlobusClient
|
|
|
64
64
|
end
|
|
65
65
|
end
|
|
66
66
|
|
|
67
|
+
def delete_access_rule(...)
|
|
68
|
+
TokenWrapper.refresh(config) do
|
|
69
|
+
endpoint = Endpoint.new(config, ...)
|
|
70
|
+
endpoint.delete_access_rule
|
|
71
|
+
end
|
|
72
|
+
end
|
|
73
|
+
|
|
67
74
|
# NOTE: Can't use the `...` (argument forwarding) operator here because we
|
|
68
75
|
# want to route the keyword args to `Endpoint#new` and the block arg to
|
|
69
76
|
# `Endpoint#list_files`
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: globus_client
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.11.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Aaron Collier
|
|
@@ -10,7 +10,7 @@ authors:
|
|
|
10
10
|
autorequire:
|
|
11
11
|
bindir: exe
|
|
12
12
|
cert_chain: []
|
|
13
|
-
date: 2023-
|
|
13
|
+
date: 2023-08-24 00:00:00.000000000 Z
|
|
14
14
|
dependencies:
|
|
15
15
|
- !ruby/object:Gem::Dependency
|
|
16
16
|
name: activesupport
|