aspera-cli 4.16.0 → 4.17.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/CHANGELOG.md +50 -19
- data/CONTRIBUTING.md +3 -1
- data/README.md +965 -793
- data/bin/asession +29 -21
- data/lib/aspera/{fasp/agent_alpha.rb → agent/alpha.rb} +26 -25
- data/lib/aspera/{fasp/agent_base.rb → agent/base.rb} +15 -12
- data/lib/aspera/{fasp/agent_connect.rb → agent/connect.rb} +13 -11
- data/lib/aspera/{fasp/agent_direct.rb → agent/direct.rb} +49 -53
- data/lib/aspera/{fasp/agent_httpgw.rb → agent/httpgw.rb} +20 -19
- data/lib/aspera/{fasp/agent_node.rb → agent/node.rb} +20 -33
- data/lib/aspera/{fasp/agent_trsdk.rb → agent/trsdk.rb} +11 -11
- data/lib/aspera/api/aoc.rb +586 -0
- data/lib/aspera/api/ats.rb +46 -0
- data/lib/aspera/api/cos_node.rb +95 -0
- data/lib/aspera/api/node.rb +344 -0
- data/lib/aspera/ascmd.rb +46 -10
- data/lib/aspera/{fasp → ascp}/installation.rb +5 -5
- data/lib/aspera/{fasp → ascp}/management.rb +3 -8
- data/lib/aspera/{fasp → ascp}/products.rb +1 -1
- data/lib/aspera/assert.rb +30 -30
- data/lib/aspera/cli/basic_auth_plugin.rb +11 -10
- data/lib/aspera/cli/extended_value.rb +1 -1
- data/lib/aspera/cli/formatter.rb +13 -13
- data/lib/aspera/cli/hints.rb +5 -5
- data/lib/aspera/cli/main.rb +35 -28
- data/lib/aspera/cli/manager.rb +25 -24
- data/lib/aspera/cli/plugin.rb +22 -15
- data/lib/aspera/cli/plugin_factory.rb +61 -0
- data/lib/aspera/cli/plugins/alee.rb +7 -7
- data/lib/aspera/cli/plugins/aoc.rb +83 -77
- data/lib/aspera/cli/plugins/ats.rb +32 -33
- data/lib/aspera/cli/plugins/bss.rb +3 -4
- data/lib/aspera/cli/plugins/config.rb +169 -186
- data/lib/aspera/cli/plugins/console.rb +8 -6
- data/lib/aspera/cli/plugins/cos.rb +19 -18
- data/lib/aspera/cli/plugins/faspex.rb +61 -54
- data/lib/aspera/cli/plugins/faspex5.rb +150 -103
- data/lib/aspera/cli/plugins/node.rb +68 -73
- data/lib/aspera/cli/plugins/orchestrator.rb +34 -44
- data/lib/aspera/cli/plugins/preview.rb +31 -31
- data/lib/aspera/cli/plugins/server.rb +31 -33
- data/lib/aspera/cli/plugins/shares.rb +13 -11
- data/lib/aspera/cli/sync_actions.rb +8 -8
- data/lib/aspera/cli/transfer_agent.rb +32 -19
- data/lib/aspera/cli/transfer_progress.rb +1 -1
- data/lib/aspera/cli/version.rb +1 -1
- data/lib/aspera/colors.rb +5 -0
- data/lib/aspera/command_line_builder.rb +14 -14
- data/lib/aspera/coverage.rb +1 -2
- data/lib/aspera/data_repository.rb +1 -1
- data/lib/aspera/environment.rb +2 -3
- data/lib/aspera/faspex_gw.rb +5 -6
- data/lib/aspera/faspex_postproc.rb +1 -1
- data/lib/aspera/id_generator.rb +2 -2
- data/lib/aspera/json_rpc.rb +5 -5
- data/lib/aspera/keychain/encrypted_hash.rb +6 -6
- data/lib/aspera/keychain/macos_security.rb +27 -22
- data/lib/aspera/log.rb +2 -2
- data/lib/aspera/nagios.rb +3 -3
- data/lib/aspera/node_simulator.rb +5 -6
- data/lib/aspera/oauth/base.rb +143 -0
- data/lib/aspera/oauth/factory.rb +124 -0
- data/lib/aspera/oauth/generic.rb +34 -0
- data/lib/aspera/oauth/jwt.rb +51 -0
- data/lib/aspera/oauth/url_json.rb +31 -0
- data/lib/aspera/oauth/web.rb +50 -0
- data/lib/aspera/oauth.rb +5 -331
- data/lib/aspera/open_application.rb +7 -7
- data/lib/aspera/persistency_action_once.rb +4 -4
- data/lib/aspera/persistency_folder.rb +2 -2
- data/lib/aspera/preview/generator.rb +5 -5
- data/lib/aspera/preview/terminal.rb +3 -2
- data/lib/aspera/preview/utils.rb +3 -3
- data/lib/aspera/proxy_auto_config.rb +4 -4
- data/lib/aspera/rest.rb +175 -144
- data/lib/aspera/rest_errors_aspera.rb +3 -3
- data/lib/aspera/resumer.rb +77 -0
- data/lib/aspera/ssh.rb +6 -1
- data/lib/aspera/{fasp → transfer}/error.rb +3 -3
- data/lib/aspera/{fasp → transfer}/error_info.rb +1 -1
- data/lib/aspera/{fasp → transfer}/faux_file.rb +1 -1
- data/lib/aspera/{fasp → transfer}/parameters.rb +58 -89
- data/lib/aspera/{fasp/transfer_spec.rb → transfer/spec.rb} +18 -16
- data/lib/aspera/{fasp/parameters.yaml → transfer/spec.yaml} +4 -99
- data/lib/aspera/{fasp → transfer}/sync.rb +32 -32
- data/lib/aspera/{fasp → transfer}/uri.rb +9 -8
- data/lib/aspera/web_server_simple.rb +11 -3
- data.tar.gz.sig +0 -0
- metadata +36 -63
- metadata.gz.sig +0 -0
- data/lib/aspera/aoc.rb +0 -601
- data/lib/aspera/ats_api.rb +0 -47
- data/lib/aspera/cos_node.rb +0 -94
- data/lib/aspera/fasp/resume_policy.rb +0 -79
- data/lib/aspera/node.rb +0 -339
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
# cspell:words logdir bidi watchd cooloff asyncadmin
|
|
4
4
|
|
|
5
5
|
require 'aspera/command_line_builder'
|
|
6
|
-
require 'aspera/
|
|
6
|
+
require 'aspera/ascp/installation'
|
|
7
7
|
require 'aspera/log'
|
|
8
8
|
require 'aspera/assert'
|
|
9
9
|
require 'json'
|
|
@@ -12,7 +12,7 @@ require 'open3'
|
|
|
12
12
|
require 'English'
|
|
13
13
|
|
|
14
14
|
module Aspera
|
|
15
|
-
module
|
|
15
|
+
module Transfer
|
|
16
16
|
# builds command line arg for async
|
|
17
17
|
module Sync
|
|
18
18
|
# sync direction, default is push
|
|
@@ -40,7 +40,7 @@ module Aspera
|
|
|
40
40
|
'private_key_paths' => { cli: { type: :opt_with_arg, switch: '--private-key-path'}, accepted_types: :array},
|
|
41
41
|
'direction' => { cli: { type: :opt_with_arg}, accepted_types: :string},
|
|
42
42
|
'checksum' => { cli: { type: :opt_with_arg}, accepted_types: :string},
|
|
43
|
-
'tags' => { cli: { type: :opt_with_arg, switch: '--tags64', convert: 'Aspera::
|
|
43
|
+
'tags' => { cli: { type: :opt_with_arg, switch: '--tags64', convert: 'Aspera::Transfer::Parameters.convert_json64'},
|
|
44
44
|
accepted_types: :hash, ts: true},
|
|
45
45
|
'tcp_port' => { cli: { type: :opt_with_arg}, accepted_types: :int, ts: :ssh_port},
|
|
46
46
|
'rate_policy' => { cli: { type: :opt_with_arg}, accepted_types: :string},
|
|
@@ -48,7 +48,7 @@ module Aspera
|
|
|
48
48
|
'cooloff' => { cli: { type: :opt_with_arg}, accepted_types: :int},
|
|
49
49
|
'pending_max' => { cli: { type: :opt_with_arg}, accepted_types: :int},
|
|
50
50
|
'scan_intensity' => { cli: { type: :opt_with_arg}, accepted_types: :string},
|
|
51
|
-
'cipher' => { cli: { type: :opt_with_arg, convert: 'Aspera::
|
|
51
|
+
'cipher' => { cli: { type: :opt_with_arg, convert: 'Aspera::Transfer::Parameters.convert_remove_hyphen'}, accepted_types: :string, ts: true},
|
|
52
52
|
'transfer_threads' => { cli: { type: :opt_with_arg}, accepted_types: :int},
|
|
53
53
|
'preserve_time' => { cli: { type: :opt_without_arg}, ts: :preserve_times},
|
|
54
54
|
'preserve_access_time' => { cli: { type: :opt_without_arg}, ts: nil},
|
|
@@ -64,8 +64,8 @@ module Aspera
|
|
|
64
64
|
'license' => { cli: { type: :envvar, variable: 'ASPERA_SCP_LICENSE'}}
|
|
65
65
|
}.freeze
|
|
66
66
|
|
|
67
|
-
|
|
68
|
-
|
|
67
|
+
CommandLineBuilder.normalize_description(PARAMS_VX_INSTANCE)
|
|
68
|
+
CommandLineBuilder.normalize_description(PARAMS_VX_SESSION)
|
|
69
69
|
|
|
70
70
|
PARAMS_VX_KEYS = %w[instance sessions].freeze
|
|
71
71
|
|
|
@@ -112,12 +112,12 @@ module Aspera
|
|
|
112
112
|
remote.delete('port')
|
|
113
113
|
remote.delete('fingerprint')
|
|
114
114
|
# ignore cert for wss ?
|
|
115
|
-
if
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
end
|
|
115
|
+
# if @options[:check_ignore_cb]&.call(remote['host'], remote['ws_port'])
|
|
116
|
+
# wss_cert_file = TempFileManager.instance.new_file_path_global('wss_cert')
|
|
117
|
+
# wss_url = "https://#{remote['host']}:#{remote['ws_port']}"
|
|
118
|
+
# File.write(wss_cert_file, Rest.remote_certificate_chain(wss_url))
|
|
119
|
+
# certificates_to_use.push(wss_cert_file)
|
|
120
|
+
# end
|
|
121
121
|
# set location for CA bundle to be the one of Ruby, see env var SSL_CERT_FILE / SSL_CERT_DIR
|
|
122
122
|
# certificates_to_use.concat(@options[:trusted_certs]) if @options[:trusted_certs]
|
|
123
123
|
else
|
|
@@ -125,7 +125,7 @@ module Aspera
|
|
|
125
125
|
remote.delete('ws_port')
|
|
126
126
|
# add SSH bypass keys when authentication is token and no auth is provided
|
|
127
127
|
if remote.key?('token') && !remote.key?('pass')
|
|
128
|
-
certificates_to_use.concat(Installation.instance.aspera_token_ssh_key_paths)
|
|
128
|
+
certificates_to_use.concat(Ascp::Installation.instance.aspera_token_ssh_key_paths)
|
|
129
129
|
end
|
|
130
130
|
end
|
|
131
131
|
return certificates_to_use
|
|
@@ -134,7 +134,7 @@ module Aspera
|
|
|
134
134
|
# @param sync_params [Hash] sync parameters, old or new format
|
|
135
135
|
# @param block [nil, Proc] block to generate transfer spec, takes: direction (one of DIRECTIONS), local_dir, remote_dir
|
|
136
136
|
def start(sync_params, &block)
|
|
137
|
-
assert_type(sync_params, Hash)
|
|
137
|
+
Aspera.assert_type(sync_params, Hash)
|
|
138
138
|
env_args = {
|
|
139
139
|
args: [],
|
|
140
140
|
env: {}
|
|
@@ -142,12 +142,12 @@ module Aspera
|
|
|
142
142
|
if sync_params.key?('local')
|
|
143
143
|
remote = sync_params['remote']
|
|
144
144
|
# async native JSON format (v2)
|
|
145
|
-
assert_type(remote, Hash)
|
|
145
|
+
Aspera.assert_type(remote, Hash)
|
|
146
146
|
# get transfer spec if possible, and feed back to new structure
|
|
147
147
|
if block
|
|
148
148
|
transfer_spec = yield((sync_params['direction'] || 'push').to_sym, sync_params['local']['path'], remote['path'])
|
|
149
149
|
# async native JSON format
|
|
150
|
-
assert_type(sync_params['local'], Hash)
|
|
150
|
+
Aspera.assert_type(sync_params['local'], Hash)
|
|
151
151
|
# translate transfer spec to async parameters
|
|
152
152
|
TS_TO_PARAMS_V2.each do |ts_param, sy_path|
|
|
153
153
|
next unless transfer_spec.key?(ts_param)
|
|
@@ -165,7 +165,7 @@ module Aspera
|
|
|
165
165
|
remote['private_key_paths'] ||= []
|
|
166
166
|
remote['private_key_paths'].concat(add_certificates)
|
|
167
167
|
end
|
|
168
|
-
assert_type(sync_params, Hash)
|
|
168
|
+
Aspera.assert_type(sync_params, Hash)
|
|
169
169
|
env_args[:args] = ["--conf64=#{Base64.strict_encode64(JSON.generate(sync_params))}"]
|
|
170
170
|
elsif sync_params.key?('sessions')
|
|
171
171
|
# ascli JSON format (v1)
|
|
@@ -178,25 +178,25 @@ module Aspera
|
|
|
178
178
|
session[async_param] ||= transfer_spec[tspec_param] if transfer_spec.key?(tspec_param)
|
|
179
179
|
end
|
|
180
180
|
end
|
|
181
|
-
session['private_key_paths'] =
|
|
181
|
+
session['private_key_paths'] = Ascp::Installation.instance.aspera_token_ssh_key_paths if transfer_spec.key?('token')
|
|
182
182
|
update_remote_dir(session, 'remote_dir', transfer_spec)
|
|
183
183
|
end
|
|
184
184
|
end
|
|
185
185
|
raise StandardError, "Only 'sessions', and optionally 'instance' keys are allowed" unless
|
|
186
186
|
sync_params.keys.push('instance').uniq.sort.eql?(PARAMS_VX_KEYS)
|
|
187
|
-
assert_type(sync_params['sessions'], Array)
|
|
188
|
-
assert_type(sync_params['sessions'].first, Hash)
|
|
187
|
+
Aspera.assert_type(sync_params['sessions'], Array)
|
|
188
|
+
Aspera.assert_type(sync_params['sessions'].first, Hash)
|
|
189
189
|
if sync_params.key?('instance')
|
|
190
|
-
assert_type(sync_params['instance'], Hash)
|
|
191
|
-
instance_builder =
|
|
190
|
+
Aspera.assert_type(sync_params['instance'], Hash)
|
|
191
|
+
instance_builder = CommandLineBuilder.new(sync_params['instance'], PARAMS_VX_INSTANCE)
|
|
192
192
|
instance_builder.process_params
|
|
193
193
|
instance_builder.add_env_args(env_args)
|
|
194
194
|
end
|
|
195
195
|
|
|
196
196
|
sync_params['sessions'].each do |session_params|
|
|
197
|
-
assert_type(session_params, Hash)
|
|
198
|
-
assert(session_params.key?('name')){'session must contain at least name'}
|
|
199
|
-
session_builder =
|
|
197
|
+
Aspera.assert_type(session_params, Hash)
|
|
198
|
+
Aspera.assert(session_params.key?('name')){'session must contain at least name'}
|
|
199
|
+
session_builder = CommandLineBuilder.new(session_params, PARAMS_VX_SESSION)
|
|
200
200
|
session_builder.process_params
|
|
201
201
|
session_builder.add_env_args(env_args)
|
|
202
202
|
end
|
|
@@ -211,7 +211,7 @@ module Aspera
|
|
|
211
211
|
when true then return nil
|
|
212
212
|
when false then raise "failed: #{$CHILD_STATUS}"
|
|
213
213
|
when nil then raise "not started: #{$CHILD_STATUS}"
|
|
214
|
-
else error_unexpected_value(res)
|
|
214
|
+
else Aspera.error_unexpected_value(res)
|
|
215
215
|
end
|
|
216
216
|
end
|
|
217
217
|
|
|
@@ -235,8 +235,8 @@ module Aspera
|
|
|
235
235
|
def admin_status(sync_params, session_name)
|
|
236
236
|
command_line = [ASYNC_ADMIN_EXECUTABLE, '--quiet']
|
|
237
237
|
if sync_params.key?('local')
|
|
238
|
-
assert(!sync_params['name'].nil?){'Missing session name'}
|
|
239
|
-
assert(session_name.nil? || session_name.eql?(sync_params['name'])){'Session not found'}
|
|
238
|
+
Aspera.assert(!sync_params['name'].nil?){'Missing session name'}
|
|
239
|
+
Aspera.assert(session_name.nil? || session_name.eql?(sync_params['name'])){'Session not found'}
|
|
240
240
|
command_line.push("--name=#{sync_params['name']}")
|
|
241
241
|
if sync_params.key?('local_db_dir')
|
|
242
242
|
command_line.push("--local-db-dir=#{sync_params['local_db_dir']}")
|
|
@@ -267,7 +267,7 @@ module Aspera
|
|
|
267
267
|
raise "Sync failed: #{status.exitstatus} : #{stderr}" unless status.success?
|
|
268
268
|
return parse_status(stdout)
|
|
269
269
|
end
|
|
270
|
-
end
|
|
271
|
-
end
|
|
272
|
-
end
|
|
273
|
-
end
|
|
270
|
+
end
|
|
271
|
+
end
|
|
272
|
+
end
|
|
273
|
+
end
|
|
@@ -7,22 +7,23 @@ require 'aspera/rest'
|
|
|
7
7
|
require 'aspera/command_line_builder'
|
|
8
8
|
|
|
9
9
|
module Aspera
|
|
10
|
-
module
|
|
10
|
+
module Transfer
|
|
11
11
|
# translates a "faspe:" URI (used in Faspex 4) into transfer spec (Hash)
|
|
12
12
|
class Uri
|
|
13
13
|
SCHEME = 'faspe'
|
|
14
14
|
def initialize(fasp_link)
|
|
15
15
|
@fasp_uri = URI.parse(fasp_link.gsub(' ', '%20'))
|
|
16
|
-
|
|
16
|
+
Aspera.assert(@fasp_uri.scheme == SCHEME, "Invalid scheme: #{@fasp_uri.scheme}")
|
|
17
17
|
end
|
|
18
18
|
|
|
19
|
+
# Generate transfer spec from provided faspe: URL
|
|
19
20
|
def transfer_spec
|
|
20
21
|
result_ts = {}
|
|
21
22
|
result_ts['remote_host'] = @fasp_uri.host
|
|
22
23
|
result_ts['remote_user'] = @fasp_uri.user
|
|
23
24
|
result_ts['ssh_port'] = @fasp_uri.port
|
|
24
25
|
result_ts['paths'] = [{'source' => URI.decode_www_form_component(@fasp_uri.path)}]
|
|
25
|
-
# faspex does not encode trailing base64 padding, fix that to be able to decode properly
|
|
26
|
+
# faspex 4 does not encode trailing base64 padding, fix that to be able to decode properly
|
|
26
27
|
fixed_query = @fasp_uri.query.gsub(/(=+)$/){|x|'%3D' * x.length}
|
|
27
28
|
|
|
28
29
|
Rest.decode_query(fixed_query).each do |name, value|
|
|
@@ -36,20 +37,20 @@ module Aspera
|
|
|
36
37
|
when 'minrate' then result_ts['min_rate_kbps'] = value.to_i
|
|
37
38
|
when 'port' then result_ts['fasp_port'] = value.to_i
|
|
38
39
|
when 'bwcap' then result_ts['target_rate_cap_kbps'] = value.to_i
|
|
39
|
-
when 'enc' then result_ts['cipher'] = value.gsub(/^aes/, 'aes-').gsub(/cfb$/, '-cfb').gsub(/gcm$/, '-gcm').gsub(
|
|
40
|
+
when 'enc' then result_ts['cipher'] = value.gsub(/^aes/, 'aes-').gsub(/cfb$/, '-cfb').gsub(/gcm$/, '-gcm').gsub('--', '-')
|
|
40
41
|
when 'tags64' then result_ts['tags'] = JSON.parse(Base64.strict_decode64(value))
|
|
41
42
|
when 'createpath' then result_ts['create_dir'] = CommandLineBuilder.yes_to_true(value)
|
|
42
43
|
when 'fallback' then result_ts['http_fallback'] = CommandLineBuilder.yes_to_true(value)
|
|
43
44
|
when 'lockpolicy' then result_ts['lock_rate_policy'] = CommandLineBuilder.yes_to_true(value)
|
|
44
45
|
when 'lockminrate' then result_ts['lock_min_rate'] = CommandLineBuilder.yes_to_true(value)
|
|
45
46
|
when 'auth' then Log.log.debug{"ignoring #{name}=#{value}"} # Not used (yes/no)
|
|
46
|
-
when 'v' then Log.log.debug{"ignoring #{name}=#{value}"} # rubocop:disable Lint/DuplicateBranch Not used (2)
|
|
47
|
+
when 'v' then Log.log.debug{"ignoring #{name}=#{value}"} # rubocop:disable Lint/DuplicateBranch Not used (shall be 2)
|
|
47
48
|
when 'protect' then Log.log.debug{"ignoring #{name}=#{value}"} # rubocop:disable Lint/DuplicateBranch TODO: what is this ?
|
|
48
49
|
else Log.log.warn{"URI parameter ignored: #{name} = #{value}"}
|
|
49
50
|
end
|
|
50
51
|
end
|
|
51
52
|
return result_ts
|
|
52
53
|
end
|
|
53
|
-
end
|
|
54
|
-
end
|
|
55
|
-
end
|
|
54
|
+
end
|
|
55
|
+
end
|
|
56
|
+
end
|
|
@@ -38,6 +38,7 @@ module Aspera
|
|
|
38
38
|
|
|
39
39
|
# @param uri [URI]
|
|
40
40
|
def initialize(uri, certificate: nil)
|
|
41
|
+
@url = uri
|
|
41
42
|
# see https://www.rubydoc.info/stdlib/webrick/WEBrick/Config
|
|
42
43
|
webrick_options = {
|
|
43
44
|
BindAddress: uri.host,
|
|
@@ -53,7 +54,7 @@ module Aspera
|
|
|
53
54
|
if certificate.nil?
|
|
54
55
|
webrick_options[:SSLCertName] = [['CN', WEBrick::Utils.getservername]]
|
|
55
56
|
else
|
|
56
|
-
assert_type(certificate, Hash)
|
|
57
|
+
Aspera.assert_type(certificate, Hash)
|
|
57
58
|
certificate = certificate.symbolize_keys
|
|
58
59
|
raise "unexpected key in certificate config: only: #{CERT_PARAMETERS.join(', ')}" if certificate.keys.any?{|k|!CERT_PARAMETERS.include?(k)}
|
|
59
60
|
webrick_options[:SSLPrivateKey] = if certificate.key?(:key)
|
|
@@ -72,10 +73,17 @@ module Aspera
|
|
|
72
73
|
end
|
|
73
74
|
end
|
|
74
75
|
end
|
|
76
|
+
# call constructor of parent class, but capture STDERR
|
|
75
77
|
# self signed certificate generates characters on STDERR, see create_self_signed_cert in webrick/ssl.rb
|
|
76
78
|
Log.capture_stderr { super(webrick_options) }
|
|
77
|
-
|
|
78
|
-
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
# blocking
|
|
82
|
+
def start
|
|
83
|
+
Log.log.info{"Listening on #{@url}"}
|
|
84
|
+
# kill -HUP for graceful shutdown
|
|
85
|
+
Kernel.trap('HUP') { shutdown }
|
|
86
|
+
super
|
|
79
87
|
end
|
|
80
88
|
|
|
81
89
|
# log web server access ( option AccessLog )
|
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.17.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Laurent Martin
|
|
@@ -37,42 +37,8 @@ cert_chain:
|
|
|
37
37
|
eTf9kxhVM40wGQOECVNA8UsEEZHD48eF+csUYZtAJOF5oxTI8UyV9T/o6CgO0c9/
|
|
38
38
|
Gzz+Qm5ULOUcPiJLjSpaiTrkiIVYiDGnqNSr6R1Hb1c=
|
|
39
39
|
-----END CERTIFICATE-----
|
|
40
|
-
date: 2024-
|
|
40
|
+
date: 2024-05-13 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
|
|
76
42
|
- !ruby/object:Gem::Dependency
|
|
77
43
|
name: blankslate
|
|
78
44
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -219,14 +185,14 @@ dependencies:
|
|
|
219
185
|
requirements:
|
|
220
186
|
- - "~>"
|
|
221
187
|
- !ruby/object:Gem::Version
|
|
222
|
-
version:
|
|
188
|
+
version: 3.0.2
|
|
223
189
|
type: :runtime
|
|
224
190
|
prerelease: false
|
|
225
191
|
version_requirements: !ruby/object:Gem::Requirement
|
|
226
192
|
requirements:
|
|
227
193
|
- - "~>"
|
|
228
194
|
- !ruby/object:Gem::Version
|
|
229
|
-
version:
|
|
195
|
+
version: 3.0.2
|
|
230
196
|
- !ruby/object:Gem::Dependency
|
|
231
197
|
name: tty-spinner
|
|
232
198
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -401,14 +367,14 @@ dependencies:
|
|
|
401
367
|
requirements:
|
|
402
368
|
- - "~>"
|
|
403
369
|
- !ruby/object:Gem::Version
|
|
404
|
-
version: '0.
|
|
370
|
+
version: '0.48'
|
|
405
371
|
type: :development
|
|
406
372
|
prerelease: false
|
|
407
373
|
version_requirements: !ruby/object:Gem::Requirement
|
|
408
374
|
requirements:
|
|
409
375
|
- - "~>"
|
|
410
376
|
- !ruby/object:Gem::Version
|
|
411
|
-
version: '0.
|
|
377
|
+
version: '0.48'
|
|
412
378
|
description: Command line interface for IBM Aspera products
|
|
413
379
|
email:
|
|
414
380
|
- laurent.martin.aspera@fr.ibm.com
|
|
@@ -427,10 +393,22 @@ files:
|
|
|
427
393
|
- examples/dascli
|
|
428
394
|
- examples/proxy.pac
|
|
429
395
|
- examples/rubyc
|
|
430
|
-
- lib/aspera/
|
|
396
|
+
- lib/aspera/agent/alpha.rb
|
|
397
|
+
- lib/aspera/agent/base.rb
|
|
398
|
+
- lib/aspera/agent/connect.rb
|
|
399
|
+
- lib/aspera/agent/direct.rb
|
|
400
|
+
- lib/aspera/agent/httpgw.rb
|
|
401
|
+
- lib/aspera/agent/node.rb
|
|
402
|
+
- lib/aspera/agent/trsdk.rb
|
|
403
|
+
- lib/aspera/api/aoc.rb
|
|
404
|
+
- lib/aspera/api/ats.rb
|
|
405
|
+
- lib/aspera/api/cos_node.rb
|
|
406
|
+
- lib/aspera/api/node.rb
|
|
431
407
|
- lib/aspera/ascmd.rb
|
|
408
|
+
- lib/aspera/ascp/installation.rb
|
|
409
|
+
- lib/aspera/ascp/management.rb
|
|
410
|
+
- lib/aspera/ascp/products.rb
|
|
432
411
|
- lib/aspera/assert.rb
|
|
433
|
-
- lib/aspera/ats_api.rb
|
|
434
412
|
- lib/aspera/cli/basic_auth_plugin.rb
|
|
435
413
|
- lib/aspera/cli/error.rb
|
|
436
414
|
- lib/aspera/cli/extended_value.rb
|
|
@@ -440,6 +418,7 @@ files:
|
|
|
440
418
|
- lib/aspera/cli/main.rb
|
|
441
419
|
- lib/aspera/cli/manager.rb
|
|
442
420
|
- lib/aspera/cli/plugin.rb
|
|
421
|
+
- lib/aspera/cli/plugin_factory.rb
|
|
443
422
|
- lib/aspera/cli/plugins/alee.rb
|
|
444
423
|
- lib/aspera/cli/plugins/aoc.rb
|
|
445
424
|
- lib/aspera/cli/plugins/ats.rb
|
|
@@ -460,7 +439,6 @@ files:
|
|
|
460
439
|
- lib/aspera/cli/version.rb
|
|
461
440
|
- lib/aspera/colors.rb
|
|
462
441
|
- lib/aspera/command_line_builder.rb
|
|
463
|
-
- lib/aspera/cos_node.rb
|
|
464
442
|
- lib/aspera/coverage.rb
|
|
465
443
|
- lib/aspera/data/1
|
|
466
444
|
- lib/aspera/data/2
|
|
@@ -470,25 +448,6 @@ files:
|
|
|
470
448
|
- lib/aspera/data/6
|
|
471
449
|
- lib/aspera/data_repository.rb
|
|
472
450
|
- lib/aspera/environment.rb
|
|
473
|
-
- lib/aspera/fasp/agent_alpha.rb
|
|
474
|
-
- lib/aspera/fasp/agent_base.rb
|
|
475
|
-
- lib/aspera/fasp/agent_connect.rb
|
|
476
|
-
- lib/aspera/fasp/agent_direct.rb
|
|
477
|
-
- lib/aspera/fasp/agent_httpgw.rb
|
|
478
|
-
- lib/aspera/fasp/agent_node.rb
|
|
479
|
-
- lib/aspera/fasp/agent_trsdk.rb
|
|
480
|
-
- lib/aspera/fasp/error.rb
|
|
481
|
-
- lib/aspera/fasp/error_info.rb
|
|
482
|
-
- lib/aspera/fasp/faux_file.rb
|
|
483
|
-
- lib/aspera/fasp/installation.rb
|
|
484
|
-
- lib/aspera/fasp/management.rb
|
|
485
|
-
- lib/aspera/fasp/parameters.rb
|
|
486
|
-
- lib/aspera/fasp/parameters.yaml
|
|
487
|
-
- lib/aspera/fasp/products.rb
|
|
488
|
-
- lib/aspera/fasp/resume_policy.rb
|
|
489
|
-
- lib/aspera/fasp/sync.rb
|
|
490
|
-
- lib/aspera/fasp/transfer_spec.rb
|
|
491
|
-
- lib/aspera/fasp/uri.rb
|
|
492
451
|
- lib/aspera/faspex_gw.rb
|
|
493
452
|
- lib/aspera/faspex_postproc.rb
|
|
494
453
|
- lib/aspera/hash_ext.rb
|
|
@@ -499,9 +458,14 @@ files:
|
|
|
499
458
|
- lib/aspera/line_logger.rb
|
|
500
459
|
- lib/aspera/log.rb
|
|
501
460
|
- lib/aspera/nagios.rb
|
|
502
|
-
- lib/aspera/node.rb
|
|
503
461
|
- lib/aspera/node_simulator.rb
|
|
504
462
|
- lib/aspera/oauth.rb
|
|
463
|
+
- lib/aspera/oauth/base.rb
|
|
464
|
+
- lib/aspera/oauth/factory.rb
|
|
465
|
+
- lib/aspera/oauth/generic.rb
|
|
466
|
+
- lib/aspera/oauth/jwt.rb
|
|
467
|
+
- lib/aspera/oauth/url_json.rb
|
|
468
|
+
- lib/aspera/oauth/web.rb
|
|
505
469
|
- lib/aspera/open_application.rb
|
|
506
470
|
- lib/aspera/persistency_action_once.rb
|
|
507
471
|
- lib/aspera/persistency_folder.rb
|
|
@@ -518,10 +482,19 @@ files:
|
|
|
518
482
|
- lib/aspera/rest_call_error.rb
|
|
519
483
|
- lib/aspera/rest_error_analyzer.rb
|
|
520
484
|
- lib/aspera/rest_errors_aspera.rb
|
|
485
|
+
- lib/aspera/resumer.rb
|
|
521
486
|
- lib/aspera/secret_hider.rb
|
|
522
487
|
- lib/aspera/ssh.rb
|
|
523
488
|
- lib/aspera/temp_file_manager.rb
|
|
524
489
|
- lib/aspera/timer_limiter.rb
|
|
490
|
+
- lib/aspera/transfer/error.rb
|
|
491
|
+
- lib/aspera/transfer/error_info.rb
|
|
492
|
+
- lib/aspera/transfer/faux_file.rb
|
|
493
|
+
- lib/aspera/transfer/parameters.rb
|
|
494
|
+
- lib/aspera/transfer/spec.rb
|
|
495
|
+
- lib/aspera/transfer/spec.yaml
|
|
496
|
+
- lib/aspera/transfer/sync.rb
|
|
497
|
+
- lib/aspera/transfer/uri.rb
|
|
525
498
|
- lib/aspera/uri_reader.rb
|
|
526
499
|
- lib/aspera/web_auth.rb
|
|
527
500
|
- lib/aspera/web_server_simple.rb
|
metadata.gz.sig
CHANGED
|
Binary file
|