aspera-cli 4.15.0 → 4.16.0
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
- checksums.yaml.gz.sig +0 -0
- data/BUGS.md +29 -3
- data/CHANGELOG.md +292 -228
- data/CONTRIBUTING.md +69 -18
- data/README.md +1102 -952
- data/bin/ascli +13 -31
- data/bin/asession +3 -1
- data/examples/dascli +2 -2
- data/lib/aspera/aoc.rb +28 -33
- data/lib/aspera/ascmd.rb +3 -6
- data/lib/aspera/assert.rb +45 -0
- data/lib/aspera/cli/extended_value.rb +5 -5
- data/lib/aspera/cli/formatter.rb +26 -13
- data/lib/aspera/cli/hints.rb +4 -3
- data/lib/aspera/cli/main.rb +16 -3
- data/lib/aspera/cli/manager.rb +45 -36
- data/lib/aspera/cli/plugin.rb +20 -13
- data/lib/aspera/cli/plugins/aoc.rb +103 -73
- data/lib/aspera/cli/plugins/ats.rb +4 -3
- data/lib/aspera/cli/plugins/config.rb +114 -119
- data/lib/aspera/cli/plugins/cos.rb +2 -2
- data/lib/aspera/cli/plugins/faspex.rb +23 -19
- data/lib/aspera/cli/plugins/faspex5.rb +75 -43
- data/lib/aspera/cli/plugins/node.rb +28 -15
- data/lib/aspera/cli/plugins/orchestrator.rb +4 -2
- data/lib/aspera/cli/plugins/preview.rb +9 -7
- data/lib/aspera/cli/plugins/server.rb +6 -3
- data/lib/aspera/cli/plugins/shares.rb +30 -26
- data/lib/aspera/cli/sync_actions.rb +9 -9
- data/lib/aspera/cli/transfer_agent.rb +21 -14
- data/lib/aspera/cli/transfer_progress.rb +2 -3
- data/lib/aspera/cli/version.rb +1 -1
- data/lib/aspera/command_line_builder.rb +13 -11
- data/lib/aspera/cos_node.rb +3 -2
- data/lib/aspera/coverage.rb +22 -0
- data/lib/aspera/data_repository.rb +33 -2
- data/lib/aspera/environment.rb +4 -2
- data/lib/aspera/fasp/{agent_aspera.rb → agent_alpha.rb} +29 -39
- data/lib/aspera/fasp/agent_base.rb +17 -7
- data/lib/aspera/fasp/agent_direct.rb +88 -84
- data/lib/aspera/fasp/agent_httpgw.rb +4 -3
- data/lib/aspera/fasp/agent_node.rb +3 -2
- data/lib/aspera/fasp/agent_trsdk.rb +79 -37
- data/lib/aspera/fasp/installation.rb +51 -12
- data/lib/aspera/fasp/management.rb +11 -6
- data/lib/aspera/fasp/parameters.rb +53 -47
- data/lib/aspera/fasp/resume_policy.rb +7 -5
- data/lib/aspera/fasp/sync.rb +273 -0
- data/lib/aspera/fasp/transfer_spec.rb +10 -8
- data/lib/aspera/fasp/uri.rb +2 -2
- data/lib/aspera/faspex_gw.rb +11 -8
- data/lib/aspera/faspex_postproc.rb +6 -5
- data/lib/aspera/id_generator.rb +3 -1
- data/lib/aspera/json_rpc.rb +10 -8
- data/lib/aspera/keychain/encrypted_hash.rb +46 -11
- data/lib/aspera/keychain/macos_security.rb +15 -13
- data/lib/aspera/log.rb +4 -3
- data/lib/aspera/nagios.rb +7 -2
- data/lib/aspera/node.rb +17 -16
- data/lib/aspera/node_simulator.rb +214 -0
- data/lib/aspera/oauth.rb +22 -19
- data/lib/aspera/persistency_action_once.rb +13 -14
- data/lib/aspera/persistency_folder.rb +3 -2
- data/lib/aspera/preview/file_types.rb +53 -267
- data/lib/aspera/preview/generator.rb +7 -5
- data/lib/aspera/preview/terminal.rb +14 -5
- data/lib/aspera/preview/utils.rb +8 -7
- data/lib/aspera/proxy_auto_config.rb +6 -3
- data/lib/aspera/rest.rb +29 -13
- data/lib/aspera/rest_error_analyzer.rb +1 -0
- data/lib/aspera/rest_errors_aspera.rb +2 -0
- data/lib/aspera/secret_hider.rb +5 -2
- data/lib/aspera/ssh.rb +10 -8
- data/lib/aspera/temp_file_manager.rb +1 -1
- data/lib/aspera/web_server_simple.rb +2 -1
- data.tar.gz.sig +0 -0
- metadata +96 -45
- metadata.gz.sig +0 -0
- data/lib/aspera/sync.rb +0 -219
data/lib/aspera/rest.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require 'aspera/log'
|
4
|
+
require 'aspera/assert'
|
4
5
|
require 'aspera/oauth'
|
5
6
|
require 'aspera/rest_error_analyzer'
|
6
7
|
require 'aspera/hash_ext'
|
@@ -58,10 +59,11 @@ module Aspera
|
|
58
59
|
# build URI from URL and parameters and check it is http or https
|
59
60
|
def build_uri(url, params=nil)
|
60
61
|
uri = URI.parse(url)
|
61
|
-
|
62
|
+
assert(%w[http https].include?(uri.scheme)){"REST endpoint shall be http/s not #{uri.scheme}"}
|
62
63
|
return uri if params.nil?
|
63
64
|
Log.log.debug{Log.dump('params', params)}
|
64
|
-
|
65
|
+
assert_type(params, Hash)
|
66
|
+
return uri if params.empty?
|
65
67
|
query = []
|
66
68
|
params.each do |k, v|
|
67
69
|
case v
|
@@ -103,17 +105,31 @@ module Aspera
|
|
103
105
|
# little hack, handy because HTTP debug, proxy, etc... will be available
|
104
106
|
# used implement web sockets after `start_http_session`
|
105
107
|
def io_http_session(http_session)
|
106
|
-
|
108
|
+
assert_type(http_session, Net::HTTP)
|
107
109
|
# Net::BufferedIO in net/protocol.rb
|
108
110
|
result = http_session.instance_variable_get(:@socket)
|
109
|
-
|
111
|
+
assert(!result.nil?){"no socket for #{http_session}"}
|
110
112
|
return result
|
111
113
|
end
|
112
114
|
|
115
|
+
# @return [String] PEM certificates of remote server
|
116
|
+
def remote_certificates(url)
|
117
|
+
# initiate a session to retrieve remote certificate
|
118
|
+
http_session = Rest.start_http_session(url)
|
119
|
+
begin
|
120
|
+
# retrieve underlying openssl socket
|
121
|
+
return Rest.io_http_session(http_session).io.peer_cert_chain.reverse.map(&:to_pem).join("\n")
|
122
|
+
rescue
|
123
|
+
return http_session.peer_cert.to_pem
|
124
|
+
ensure
|
125
|
+
http_session.finish
|
126
|
+
end
|
127
|
+
end
|
128
|
+
|
113
129
|
# set global parameters
|
114
130
|
def set_parameters(**options)
|
115
131
|
options.each do |key, value|
|
116
|
-
|
132
|
+
assert(@@global.key?(key)){"unknown Rest option #{key}"}
|
117
133
|
@@global[key] = value
|
118
134
|
end
|
119
135
|
end
|
@@ -140,7 +156,7 @@ module Aspera
|
|
140
156
|
|
141
157
|
def oauth
|
142
158
|
if @oauth.nil?
|
143
|
-
|
159
|
+
assert(@params[:auth][:type].eql?(:oauth2)){'no OAuth defined'}
|
144
160
|
@oauth = Oauth.new(@params[:auth])
|
145
161
|
end
|
146
162
|
return @oauth
|
@@ -148,8 +164,8 @@ module Aspera
|
|
148
164
|
|
149
165
|
# @param a_rest_params [Hash] default call parameters (merged at call)
|
150
166
|
def initialize(a_rest_params)
|
151
|
-
|
152
|
-
|
167
|
+
assert_type(a_rest_params, Hash)
|
168
|
+
assert_type(a_rest_params[:base_url], String)
|
153
169
|
@params = a_rest_params.clone
|
154
170
|
Log.log.debug{Log.dump('REST params', @params)}
|
155
171
|
# base url without trailing slashes (note: string may be frozen)
|
@@ -163,7 +179,7 @@ module Aspera
|
|
163
179
|
end
|
164
180
|
|
165
181
|
def oauth_token(force_refresh: false)
|
166
|
-
|
182
|
+
assert_values(force_refresh, [true, false])
|
167
183
|
return oauth.get_authorization(use_refresh_token: force_refresh)
|
168
184
|
end
|
169
185
|
|
@@ -227,7 +243,7 @@ module Aspera
|
|
227
243
|
# :url_query [:url] a hash
|
228
244
|
# :* [:oauth2] see Oauth class
|
229
245
|
def call(call_data)
|
230
|
-
|
246
|
+
assert_type(call_data, Hash)
|
231
247
|
call_data[:subpath] = '' if call_data[:subpath].nil?
|
232
248
|
Log.log.debug{"accessing #{call_data[:subpath]}".red.bold.bg_green}
|
233
249
|
call_data[:headers] ||= {}
|
@@ -247,7 +263,7 @@ module Aspera
|
|
247
263
|
call_data[:auth][:url_query].each do |key, value|
|
248
264
|
call_data[:url_params][key] = value
|
249
265
|
end
|
250
|
-
else
|
266
|
+
else error_unexpected_value(call_data[:auth][:type])
|
251
267
|
end
|
252
268
|
req = build_request(call_data)
|
253
269
|
Log.log.debug{"call_data = #{call_data}"}
|
@@ -332,7 +348,7 @@ module Aspera
|
|
332
348
|
# special case: relative redirect
|
333
349
|
if URI.parse(new_url).host.nil?
|
334
350
|
# we don't manage relative redirects with non-absolute path
|
335
|
-
|
351
|
+
assert(new_url.start_with?('/')){"redirect location is relative: #{new_url}, but does not start with /."}
|
336
352
|
new_url = current_uri.scheme + '://' + current_uri.host + new_url
|
337
353
|
end
|
338
354
|
Log.log.info{"URL is moved: #{new_url}"}
|
@@ -390,7 +406,7 @@ module Aspera
|
|
390
406
|
# API style: {totalcount:, ...} cspell: disable-line
|
391
407
|
# TODO: not generic enough ? move somewhere ? inheritance ?
|
392
408
|
matching_items = matching_items[subpath] if matching_items.is_a?(Hash)
|
393
|
-
|
409
|
+
assert_type(matching_items, Array)
|
394
410
|
case matching_items.length
|
395
411
|
when 1 then return matching_items.first
|
396
412
|
when 0 then raise %Q{#{ENTITY_NOT_FOUND} #{subpath}: "#{search_name}"}
|
@@ -90,6 +90,7 @@ module Aspera
|
|
90
90
|
# @param msg one error message to add to list
|
91
91
|
def add_error(call_context, type, msg)
|
92
92
|
call_context[:messages].push(msg)
|
93
|
+
Log.log.trace1{"Found error: #{type}: #{msg}"}
|
93
94
|
log_file = instance.log_file
|
94
95
|
# log error for further analysis (file must exist to activate)
|
95
96
|
return if log_file.nil? || !File.exist?(log_file)
|
@@ -21,6 +21,8 @@ module Aspera
|
|
21
21
|
RestErrorAnalyzer.instance.add_simple_handler(name: 'Type 6', path: ['message'])
|
22
22
|
RestErrorAnalyzer.instance.add_handler('Type 7: errors[]') do |type, call_context|
|
23
23
|
next unless call_context[:data].is_a?(Hash) && call_context[:data]['errors'].is_a?(Hash)
|
24
|
+
# special for Shares: false positive ? (update global transfer_settings)
|
25
|
+
next if call_context[:data].key?('min_connect_version')
|
24
26
|
call_context[:data]['errors'].each do |k, v|
|
25
27
|
RestErrorAnalyzer.add_error(call_context, type, "#{k}: #{v}")
|
26
28
|
end
|
data/lib/aspera/secret_hider.rb
CHANGED
@@ -6,6 +6,8 @@ require 'logger'
|
|
6
6
|
module Aspera
|
7
7
|
# remove secret from logs and output
|
8
8
|
class SecretHider
|
9
|
+
# configurable:
|
10
|
+
ADDITIONAL_KEYS_TO_HIDE = []
|
9
11
|
# display string for hidden secrets
|
10
12
|
HIDDEN_PASSWORD = '🔑'
|
11
13
|
# env vars for ascp with secrets
|
@@ -14,7 +16,7 @@ module Aspera
|
|
14
16
|
KEY_SECRETS = %w[password secret passphrase _key apikey crn token].freeze
|
15
17
|
HTTP_SECRETS = %w[Authorization].freeze
|
16
18
|
ALL_SECRETS = [ASCP_ENV_SECRETS, KEY_SECRETS, HTTP_SECRETS].flatten.freeze
|
17
|
-
KEY_FALSE_POSITIVES = [/^access_key$/].freeze
|
19
|
+
KEY_FALSE_POSITIVES = [/^access_key$/, /^fallback_private_key$/].freeze
|
18
20
|
# regex that define named captures :begin and :end
|
19
21
|
REGEX_LOG_REPLACES = [
|
20
22
|
# CLI manager get/set options
|
@@ -32,7 +34,7 @@ module Aspera
|
|
32
34
|
# cred in http dump
|
33
35
|
/(?<begin>(?:#{HTTP_SECRETS.join('|')}): )[^\\]+(?<end>\\)/i
|
34
36
|
].freeze
|
35
|
-
private_constant :HIDDEN_PASSWORD, :ASCP_ENV_SECRETS, :KEY_SECRETS, :ALL_SECRETS, :REGEX_LOG_REPLACES
|
37
|
+
private_constant :HIDDEN_PASSWORD, :ASCP_ENV_SECRETS, :KEY_SECRETS, :HTTP_SECRETS, :ALL_SECRETS, :KEY_FALSE_POSITIVES, :REGEX_LOG_REPLACES
|
36
38
|
@log_secrets = false
|
37
39
|
class << self
|
38
40
|
attr_accessor :log_secrets
|
@@ -56,6 +58,7 @@ module Aspera
|
|
56
58
|
return false unless keyword.is_a?(String) && value.is_a?(String)
|
57
59
|
# those are not secrets
|
58
60
|
return false if KEY_FALSE_POSITIVES.any?{|f|f.match?(keyword)}
|
61
|
+
return true if ADDITIONAL_KEYS_TO_HIDE.include?(keyword)
|
59
62
|
# check if keyword (name) contains an element that designate it as a secret
|
60
63
|
ALL_SECRETS.any?{|kw|keyword.include?(kw)}
|
61
64
|
end
|
data/lib/aspera/ssh.rb
CHANGED
@@ -2,15 +2,17 @@
|
|
2
2
|
|
3
3
|
require 'net/ssh'
|
4
4
|
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
5
|
+
if ENV.fetch('ASCLI_ENABLE_ED25519', 'false').eql?('false')
|
6
|
+
# HACK: deactivate ed25519 and ecdsa private keys from ssh identities, as it usually cause problems
|
7
|
+
old_verbose = $VERBOSE
|
8
|
+
$VERBOSE = nil
|
9
|
+
begin
|
10
|
+
module Net; module SSH; module Authentication; class Session; private; def default_keys; %w[~/.ssh/id_dsa ~/.ssh/id_rsa ~/.ssh2/id_dsa ~/.ssh2/id_rsa]; end; end; end; end; end # rubocop:disable Layout/AccessModifierIndentation, Layout/EmptyLinesAroundAccessModifier, Layout/LineLength, Style/Semicolon
|
11
|
+
rescue StandardError
|
12
|
+
# ignore errors
|
13
|
+
end
|
14
|
+
$VERBOSE = old_verbose
|
12
15
|
end
|
13
|
-
$VERBOSE = old_verbose
|
14
16
|
|
15
17
|
module Aspera
|
16
18
|
# A simple wrapper around Net::SSH
|
@@ -3,6 +3,7 @@
|
|
3
3
|
require 'webrick'
|
4
4
|
require 'webrick/https'
|
5
5
|
require 'aspera/log'
|
6
|
+
require 'aspera/assert'
|
6
7
|
require 'openssl'
|
7
8
|
|
8
9
|
module Aspera
|
@@ -52,7 +53,7 @@ module Aspera
|
|
52
53
|
if certificate.nil?
|
53
54
|
webrick_options[:SSLCertName] = [['CN', WEBrick::Utils.getservername]]
|
54
55
|
else
|
55
|
-
|
56
|
+
assert_type(certificate, Hash)
|
56
57
|
certificate = certificate.symbolize_keys
|
57
58
|
raise "unexpected key in certificate config: only: #{CERT_PARAMETERS.join(', ')}" if certificate.keys.any?{|k|!CERT_PARAMETERS.include?(k)}
|
58
59
|
webrick_options[:SSLPrivateKey] = if certificate.key?(:key)
|
data.tar.gz.sig
CHANGED
Binary file
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: aspera-cli
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.
|
4
|
+
version: 4.16.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Laurent Martin
|
@@ -37,8 +37,42 @@ cert_chain:
|
|
37
37
|
eTf9kxhVM40wGQOECVNA8UsEEZHD48eF+csUYZtAJOF5oxTI8UyV9T/o6CgO0c9/
|
38
38
|
Gzz+Qm5ULOUcPiJLjSpaiTrkiIVYiDGnqNSr6R1Hb1c=
|
39
39
|
-----END CERTIFICATE-----
|
40
|
-
date:
|
40
|
+
date: 2024-02-14 00:00:00.000000000 Z
|
41
41
|
dependencies:
|
42
|
+
- !ruby/object:Gem::Dependency
|
43
|
+
name: base64
|
44
|
+
requirement: !ruby/object:Gem::Requirement
|
45
|
+
requirements:
|
46
|
+
- - "~>"
|
47
|
+
- !ruby/object:Gem::Version
|
48
|
+
version: 0.2.0
|
49
|
+
type: :runtime
|
50
|
+
prerelease: false
|
51
|
+
version_requirements: !ruby/object:Gem::Requirement
|
52
|
+
requirements:
|
53
|
+
- - "~>"
|
54
|
+
- !ruby/object:Gem::Version
|
55
|
+
version: 0.2.0
|
56
|
+
- !ruby/object:Gem::Dependency
|
57
|
+
name: bigdecimal
|
58
|
+
requirement: !ruby/object:Gem::Requirement
|
59
|
+
requirements:
|
60
|
+
- - "~>"
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
version: '3.1'
|
63
|
+
- - ">="
|
64
|
+
- !ruby/object:Gem::Version
|
65
|
+
version: 3.1.6
|
66
|
+
type: :runtime
|
67
|
+
prerelease: false
|
68
|
+
version_requirements: !ruby/object:Gem::Requirement
|
69
|
+
requirements:
|
70
|
+
- - "~>"
|
71
|
+
- !ruby/object:Gem::Version
|
72
|
+
version: '3.1'
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: 3.1.6
|
42
76
|
- !ruby/object:Gem::Dependency
|
43
77
|
name: blankslate
|
44
78
|
requirement: !ruby/object:Gem::Requirement
|
@@ -53,6 +87,20 @@ dependencies:
|
|
53
87
|
- - "~>"
|
54
88
|
- !ruby/object:Gem::Version
|
55
89
|
version: '3.1'
|
90
|
+
- !ruby/object:Gem::Dependency
|
91
|
+
name: csv
|
92
|
+
requirement: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - "~>"
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '3.0'
|
97
|
+
type: :runtime
|
98
|
+
prerelease: false
|
99
|
+
version_requirements: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - "~>"
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '3.0'
|
56
104
|
- !ruby/object:Gem::Dependency
|
57
105
|
name: execjs
|
58
106
|
requirement: !ruby/object:Gem::Requirement
|
@@ -81,6 +129,20 @@ dependencies:
|
|
81
129
|
- - "~>"
|
82
130
|
- !ruby/object:Gem::Version
|
83
131
|
version: '2.0'
|
132
|
+
- !ruby/object:Gem::Dependency
|
133
|
+
name: mime-types
|
134
|
+
requirement: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - "~>"
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: '3.5'
|
139
|
+
type: :runtime
|
140
|
+
prerelease: false
|
141
|
+
version_requirements: !ruby/object:Gem::Requirement
|
142
|
+
requirements:
|
143
|
+
- - "~>"
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
version: '3.5'
|
84
146
|
- !ruby/object:Gem::Dependency
|
85
147
|
name: net-ssh
|
86
148
|
requirement: !ruby/object:Gem::Requirement
|
@@ -95,6 +157,20 @@ dependencies:
|
|
95
157
|
- - "~>"
|
96
158
|
- !ruby/object:Gem::Version
|
97
159
|
version: '7.0'
|
160
|
+
- !ruby/object:Gem::Dependency
|
161
|
+
name: rainbow
|
162
|
+
requirement: !ruby/object:Gem::Requirement
|
163
|
+
requirements:
|
164
|
+
- - "~>"
|
165
|
+
- !ruby/object:Gem::Version
|
166
|
+
version: '3.0'
|
167
|
+
type: :runtime
|
168
|
+
prerelease: false
|
169
|
+
version_requirements: !ruby/object:Gem::Requirement
|
170
|
+
requirements:
|
171
|
+
- - "~>"
|
172
|
+
- !ruby/object:Gem::Version
|
173
|
+
version: '3.0'
|
98
174
|
- !ruby/object:Gem::Dependency
|
99
175
|
name: ruby-progressbar
|
100
176
|
requirement: !ruby/object:Gem::Requirement
|
@@ -208,61 +284,33 @@ dependencies:
|
|
208
284
|
- !ruby/object:Gem::Version
|
209
285
|
version: '1.0'
|
210
286
|
- !ruby/object:Gem::Dependency
|
211
|
-
name:
|
212
|
-
requirement: !ruby/object:Gem::Requirement
|
213
|
-
requirements:
|
214
|
-
- - "~>"
|
215
|
-
- !ruby/object:Gem::Version
|
216
|
-
version: '0.3'
|
217
|
-
type: :development
|
218
|
-
prerelease: false
|
219
|
-
version_requirements: !ruby/object:Gem::Requirement
|
220
|
-
requirements:
|
221
|
-
- - "~>"
|
222
|
-
- !ruby/object:Gem::Version
|
223
|
-
version: '0.3'
|
224
|
-
- !ruby/object:Gem::Dependency
|
225
|
-
name: rmagick
|
226
|
-
requirement: !ruby/object:Gem::Requirement
|
227
|
-
requirements:
|
228
|
-
- - "~>"
|
229
|
-
- !ruby/object:Gem::Version
|
230
|
-
version: '5.3'
|
231
|
-
type: :development
|
232
|
-
prerelease: false
|
233
|
-
version_requirements: !ruby/object:Gem::Requirement
|
234
|
-
requirements:
|
235
|
-
- - "~>"
|
236
|
-
- !ruby/object:Gem::Version
|
237
|
-
version: '5.3'
|
238
|
-
- !ruby/object:Gem::Dependency
|
239
|
-
name: bundler
|
287
|
+
name: rake
|
240
288
|
requirement: !ruby/object:Gem::Requirement
|
241
289
|
requirements:
|
242
290
|
- - "~>"
|
243
291
|
- !ruby/object:Gem::Version
|
244
|
-
version: '
|
292
|
+
version: '13.0'
|
245
293
|
type: :development
|
246
294
|
prerelease: false
|
247
295
|
version_requirements: !ruby/object:Gem::Requirement
|
248
296
|
requirements:
|
249
297
|
- - "~>"
|
250
298
|
- !ruby/object:Gem::Version
|
251
|
-
version: '
|
299
|
+
version: '13.0'
|
252
300
|
- !ruby/object:Gem::Dependency
|
253
|
-
name:
|
301
|
+
name: reek
|
254
302
|
requirement: !ruby/object:Gem::Requirement
|
255
303
|
requirements:
|
256
304
|
- - "~>"
|
257
305
|
- !ruby/object:Gem::Version
|
258
|
-
version:
|
306
|
+
version: 6.1.0
|
259
307
|
type: :development
|
260
308
|
prerelease: false
|
261
309
|
version_requirements: !ruby/object:Gem::Requirement
|
262
310
|
requirements:
|
263
311
|
- - "~>"
|
264
312
|
- !ruby/object:Gem::Version
|
265
|
-
version:
|
313
|
+
version: 6.1.0
|
266
314
|
- !ruby/object:Gem::Dependency
|
267
315
|
name: rspec
|
268
316
|
requirement: !ruby/object:Gem::Requirement
|
@@ -339,28 +387,28 @@ dependencies:
|
|
339
387
|
requirements:
|
340
388
|
- - "~>"
|
341
389
|
- !ruby/object:Gem::Version
|
342
|
-
version: '0.
|
390
|
+
version: '0.22'
|
343
391
|
type: :development
|
344
392
|
prerelease: false
|
345
393
|
version_requirements: !ruby/object:Gem::Requirement
|
346
394
|
requirements:
|
347
395
|
- - "~>"
|
348
396
|
- !ruby/object:Gem::Version
|
349
|
-
version: '0.
|
397
|
+
version: '0.22'
|
350
398
|
- !ruby/object:Gem::Dependency
|
351
399
|
name: solargraph
|
352
400
|
requirement: !ruby/object:Gem::Requirement
|
353
401
|
requirements:
|
354
402
|
- - "~>"
|
355
403
|
- !ruby/object:Gem::Version
|
356
|
-
version: '0.
|
404
|
+
version: '0.50'
|
357
405
|
type: :development
|
358
406
|
prerelease: false
|
359
407
|
version_requirements: !ruby/object:Gem::Requirement
|
360
408
|
requirements:
|
361
409
|
- - "~>"
|
362
410
|
- !ruby/object:Gem::Version
|
363
|
-
version: '0.
|
411
|
+
version: '0.50'
|
364
412
|
description: Command line interface for IBM Aspera products
|
365
413
|
email:
|
366
414
|
- laurent.martin.aspera@fr.ibm.com
|
@@ -381,6 +429,7 @@ files:
|
|
381
429
|
- examples/rubyc
|
382
430
|
- lib/aspera/aoc.rb
|
383
431
|
- lib/aspera/ascmd.rb
|
432
|
+
- lib/aspera/assert.rb
|
384
433
|
- lib/aspera/ats_api.rb
|
385
434
|
- lib/aspera/cli/basic_auth_plugin.rb
|
386
435
|
- lib/aspera/cli/error.rb
|
@@ -412,6 +461,7 @@ files:
|
|
412
461
|
- lib/aspera/colors.rb
|
413
462
|
- lib/aspera/command_line_builder.rb
|
414
463
|
- lib/aspera/cos_node.rb
|
464
|
+
- lib/aspera/coverage.rb
|
415
465
|
- lib/aspera/data/1
|
416
466
|
- lib/aspera/data/2
|
417
467
|
- lib/aspera/data/3
|
@@ -420,7 +470,7 @@ files:
|
|
420
470
|
- lib/aspera/data/6
|
421
471
|
- lib/aspera/data_repository.rb
|
422
472
|
- lib/aspera/environment.rb
|
423
|
-
- lib/aspera/fasp/
|
473
|
+
- lib/aspera/fasp/agent_alpha.rb
|
424
474
|
- lib/aspera/fasp/agent_base.rb
|
425
475
|
- lib/aspera/fasp/agent_connect.rb
|
426
476
|
- lib/aspera/fasp/agent_direct.rb
|
@@ -436,6 +486,7 @@ files:
|
|
436
486
|
- lib/aspera/fasp/parameters.yaml
|
437
487
|
- lib/aspera/fasp/products.rb
|
438
488
|
- lib/aspera/fasp/resume_policy.rb
|
489
|
+
- lib/aspera/fasp/sync.rb
|
439
490
|
- lib/aspera/fasp/transfer_spec.rb
|
440
491
|
- lib/aspera/fasp/uri.rb
|
441
492
|
- lib/aspera/faspex_gw.rb
|
@@ -449,6 +500,7 @@ files:
|
|
449
500
|
- lib/aspera/log.rb
|
450
501
|
- lib/aspera/nagios.rb
|
451
502
|
- lib/aspera/node.rb
|
503
|
+
- lib/aspera/node_simulator.rb
|
452
504
|
- lib/aspera/oauth.rb
|
453
505
|
- lib/aspera/open_application.rb
|
454
506
|
- lib/aspera/persistency_action_once.rb
|
@@ -468,7 +520,6 @@ files:
|
|
468
520
|
- lib/aspera/rest_errors_aspera.rb
|
469
521
|
- lib/aspera/secret_hider.rb
|
470
522
|
- lib/aspera/ssh.rb
|
471
|
-
- lib/aspera/sync.rb
|
472
523
|
- lib/aspera/temp_file_manager.rb
|
473
524
|
- lib/aspera/timer_limiter.rb
|
474
525
|
- lib/aspera/uri_reader.rb
|
@@ -480,8 +531,8 @@ licenses:
|
|
480
531
|
metadata:
|
481
532
|
allowed_push_host: https://rubygems.org
|
482
533
|
homepage_uri: https://github.com/IBM/aspera-cli
|
483
|
-
source_code_uri: https://github.com/IBM/aspera-cli
|
484
|
-
changelog_uri: https://github.com/IBM/aspera-cli
|
534
|
+
source_code_uri: https://github.com/IBM/aspera-cli/tree/main/lib/aspera
|
535
|
+
changelog_uri: https://github.com/IBM/aspera-cli/CHANGELOG.md
|
485
536
|
rubygems_uri: https://rubygems.org/gems/aspera-cli
|
486
537
|
documentation_uri: https://www.rubydoc.info/gems/aspera-cli
|
487
538
|
post_install_message:
|
@@ -500,7 +551,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
500
551
|
version: '0'
|
501
552
|
requirements:
|
502
553
|
- Read the manual for any requirement
|
503
|
-
rubygems_version: 3.4.
|
554
|
+
rubygems_version: 3.4.19
|
504
555
|
signing_key:
|
505
556
|
specification_version: 4
|
506
557
|
summary: 'Execute actions using command line on IBM Aspera Server products: Aspera
|
metadata.gz.sig
CHANGED
Binary file
|