aspera-cli 4.16.0 → 4.17.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (97) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data/CHANGELOG.md +50 -19
  4. data/CONTRIBUTING.md +3 -1
  5. data/README.md +965 -793
  6. data/bin/asession +29 -21
  7. data/lib/aspera/{fasp/agent_alpha.rb → agent/alpha.rb} +26 -25
  8. data/lib/aspera/{fasp/agent_base.rb → agent/base.rb} +15 -12
  9. data/lib/aspera/{fasp/agent_connect.rb → agent/connect.rb} +13 -11
  10. data/lib/aspera/{fasp/agent_direct.rb → agent/direct.rb} +49 -53
  11. data/lib/aspera/{fasp/agent_httpgw.rb → agent/httpgw.rb} +20 -19
  12. data/lib/aspera/{fasp/agent_node.rb → agent/node.rb} +20 -33
  13. data/lib/aspera/{fasp/agent_trsdk.rb → agent/trsdk.rb} +11 -11
  14. data/lib/aspera/api/aoc.rb +586 -0
  15. data/lib/aspera/api/ats.rb +46 -0
  16. data/lib/aspera/api/cos_node.rb +95 -0
  17. data/lib/aspera/api/node.rb +344 -0
  18. data/lib/aspera/ascmd.rb +46 -10
  19. data/lib/aspera/{fasp → ascp}/installation.rb +5 -5
  20. data/lib/aspera/{fasp → ascp}/management.rb +3 -8
  21. data/lib/aspera/{fasp → ascp}/products.rb +1 -1
  22. data/lib/aspera/assert.rb +30 -30
  23. data/lib/aspera/cli/basic_auth_plugin.rb +11 -10
  24. data/lib/aspera/cli/extended_value.rb +1 -1
  25. data/lib/aspera/cli/formatter.rb +13 -13
  26. data/lib/aspera/cli/hints.rb +5 -5
  27. data/lib/aspera/cli/main.rb +35 -28
  28. data/lib/aspera/cli/manager.rb +25 -24
  29. data/lib/aspera/cli/plugin.rb +22 -15
  30. data/lib/aspera/cli/plugin_factory.rb +61 -0
  31. data/lib/aspera/cli/plugins/alee.rb +7 -7
  32. data/lib/aspera/cli/plugins/aoc.rb +83 -77
  33. data/lib/aspera/cli/plugins/ats.rb +32 -33
  34. data/lib/aspera/cli/plugins/bss.rb +3 -4
  35. data/lib/aspera/cli/plugins/config.rb +169 -186
  36. data/lib/aspera/cli/plugins/console.rb +8 -6
  37. data/lib/aspera/cli/plugins/cos.rb +19 -18
  38. data/lib/aspera/cli/plugins/faspex.rb +61 -54
  39. data/lib/aspera/cli/plugins/faspex5.rb +150 -103
  40. data/lib/aspera/cli/plugins/node.rb +68 -73
  41. data/lib/aspera/cli/plugins/orchestrator.rb +34 -44
  42. data/lib/aspera/cli/plugins/preview.rb +31 -31
  43. data/lib/aspera/cli/plugins/server.rb +31 -33
  44. data/lib/aspera/cli/plugins/shares.rb +13 -11
  45. data/lib/aspera/cli/sync_actions.rb +8 -8
  46. data/lib/aspera/cli/transfer_agent.rb +32 -19
  47. data/lib/aspera/cli/transfer_progress.rb +1 -1
  48. data/lib/aspera/cli/version.rb +1 -1
  49. data/lib/aspera/colors.rb +5 -0
  50. data/lib/aspera/command_line_builder.rb +14 -14
  51. data/lib/aspera/coverage.rb +1 -2
  52. data/lib/aspera/data_repository.rb +1 -1
  53. data/lib/aspera/environment.rb +2 -3
  54. data/lib/aspera/faspex_gw.rb +5 -6
  55. data/lib/aspera/faspex_postproc.rb +1 -1
  56. data/lib/aspera/id_generator.rb +2 -2
  57. data/lib/aspera/json_rpc.rb +5 -5
  58. data/lib/aspera/keychain/encrypted_hash.rb +6 -6
  59. data/lib/aspera/keychain/macos_security.rb +27 -22
  60. data/lib/aspera/log.rb +2 -2
  61. data/lib/aspera/nagios.rb +3 -3
  62. data/lib/aspera/node_simulator.rb +5 -6
  63. data/lib/aspera/oauth/base.rb +143 -0
  64. data/lib/aspera/oauth/factory.rb +124 -0
  65. data/lib/aspera/oauth/generic.rb +34 -0
  66. data/lib/aspera/oauth/jwt.rb +51 -0
  67. data/lib/aspera/oauth/url_json.rb +31 -0
  68. data/lib/aspera/oauth/web.rb +50 -0
  69. data/lib/aspera/oauth.rb +5 -331
  70. data/lib/aspera/open_application.rb +7 -7
  71. data/lib/aspera/persistency_action_once.rb +4 -4
  72. data/lib/aspera/persistency_folder.rb +2 -2
  73. data/lib/aspera/preview/generator.rb +5 -5
  74. data/lib/aspera/preview/terminal.rb +3 -2
  75. data/lib/aspera/preview/utils.rb +3 -3
  76. data/lib/aspera/proxy_auto_config.rb +4 -4
  77. data/lib/aspera/rest.rb +175 -144
  78. data/lib/aspera/rest_errors_aspera.rb +3 -3
  79. data/lib/aspera/resumer.rb +77 -0
  80. data/lib/aspera/ssh.rb +6 -1
  81. data/lib/aspera/{fasp → transfer}/error.rb +3 -3
  82. data/lib/aspera/{fasp → transfer}/error_info.rb +1 -1
  83. data/lib/aspera/{fasp → transfer}/faux_file.rb +1 -1
  84. data/lib/aspera/{fasp → transfer}/parameters.rb +58 -89
  85. data/lib/aspera/{fasp/transfer_spec.rb → transfer/spec.rb} +18 -16
  86. data/lib/aspera/{fasp/parameters.yaml → transfer/spec.yaml} +4 -99
  87. data/lib/aspera/{fasp → transfer}/sync.rb +32 -32
  88. data/lib/aspera/{fasp → transfer}/uri.rb +9 -8
  89. data/lib/aspera/web_server_simple.rb +11 -3
  90. data.tar.gz.sig +0 -0
  91. metadata +36 -63
  92. metadata.gz.sig +0 -0
  93. data/lib/aspera/aoc.rb +0 -601
  94. data/lib/aspera/ats_api.rb +0 -47
  95. data/lib/aspera/cos_node.rb +0 -94
  96. data/lib/aspera/fasp/resume_policy.rb +0 -79
  97. 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/fasp/installation'
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 Fasp
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::Fasp::Parameters.convert_json64'},
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::Fasp::Parameters.convert_remove_hyphen'}, accepted_types: :string, ts: true},
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
- Aspera::CommandLineBuilder.normalize_description(PARAMS_VX_INSTANCE)
68
- Aspera::CommandLineBuilder.normalize_description(PARAMS_VX_SESSION)
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 false # @options[:check_ignore]&.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_certificates(wss_url))
119
- certificates_to_use.push(wss_cert_file)
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'] = Fasp::Installation.instance.aspera_token_ssh_key_paths if transfer_spec.key?('token')
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 = Aspera::CommandLineBuilder.new(sync_params['instance'], PARAMS_VX_INSTANCE)
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 = Aspera::CommandLineBuilder.new(session_params, PARAMS_VX_SESSION)
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 # end self
271
- end # end Sync
272
- end # end Fasp
273
- end # end Aspera
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 Fasp
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
- # TODO: check scheme is 'faspe'
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 # Uri
54
- end # Fasp
55
- end # Aspera
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
- # kill -USR1 for graceful shutdown
78
- Kernel.trap('USR1') { shutdown }
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.16.0
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-02-14 00:00:00.000000000 Z
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: '1.8'
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: '1.8'
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.50'
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.50'
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/aoc.rb
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