aspera-cli 4.4.0 → 4.7.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. data/README.md +2095 -1503
  3. data/bin/ascli +2 -1
  4. data/bin/asession +4 -5
  5. data/docs/test_env.conf +3 -0
  6. data/examples/aoc.rb +4 -3
  7. data/examples/faspex4.rb +25 -25
  8. data/examples/proxy.pac +1 -1
  9. data/examples/transfer.rb +17 -17
  10. data/lib/aspera/aoc.rb +238 -185
  11. data/lib/aspera/ascmd.rb +93 -83
  12. data/lib/aspera/ats_api.rb +11 -10
  13. data/lib/aspera/cli/basic_auth_plugin.rb +13 -14
  14. data/lib/aspera/cli/extended_value.rb +42 -33
  15. data/lib/aspera/cli/formater.rb +142 -108
  16. data/lib/aspera/cli/info.rb +17 -0
  17. data/lib/aspera/cli/listener/line_dump.rb +3 -2
  18. data/lib/aspera/cli/listener/logger.rb +2 -1
  19. data/lib/aspera/cli/listener/progress.rb +16 -18
  20. data/lib/aspera/cli/listener/progress_multi.rb +18 -21
  21. data/lib/aspera/cli/main.rb +173 -149
  22. data/lib/aspera/cli/manager.rb +163 -168
  23. data/lib/aspera/cli/plugin.rb +43 -31
  24. data/lib/aspera/cli/plugins/alee.rb +6 -6
  25. data/lib/aspera/cli/plugins/aoc.rb +405 -370
  26. data/lib/aspera/cli/plugins/ats.rb +86 -79
  27. data/lib/aspera/cli/plugins/bss.rb +14 -16
  28. data/lib/aspera/cli/plugins/config.rb +580 -362
  29. data/lib/aspera/cli/plugins/console.rb +23 -19
  30. data/lib/aspera/cli/plugins/cos.rb +18 -18
  31. data/lib/aspera/cli/plugins/faspex.rb +201 -158
  32. data/lib/aspera/cli/plugins/faspex5.rb +80 -57
  33. data/lib/aspera/cli/plugins/node.rb +183 -166
  34. data/lib/aspera/cli/plugins/orchestrator.rb +71 -67
  35. data/lib/aspera/cli/plugins/preview.rb +92 -96
  36. data/lib/aspera/cli/plugins/server.rb +79 -75
  37. data/lib/aspera/cli/plugins/shares.rb +35 -19
  38. data/lib/aspera/cli/plugins/sync.rb +20 -22
  39. data/lib/aspera/cli/transfer_agent.rb +76 -113
  40. data/lib/aspera/cli/version.rb +2 -1
  41. data/lib/aspera/colors.rb +35 -27
  42. data/lib/aspera/command_line_builder.rb +48 -34
  43. data/lib/aspera/cos_node.rb +29 -21
  44. data/lib/aspera/data_repository.rb +3 -2
  45. data/lib/aspera/environment.rb +50 -45
  46. data/lib/aspera/fasp/{manager.rb → agent_base.rb} +28 -25
  47. data/lib/aspera/fasp/{connect.rb → agent_connect.rb} +52 -43
  48. data/lib/aspera/fasp/{local.rb → agent_direct.rb} +58 -72
  49. data/lib/aspera/fasp/{http_gw.rb → agent_httpgw.rb} +37 -43
  50. data/lib/aspera/fasp/{node.rb → agent_node.rb} +35 -16
  51. data/lib/aspera/fasp/agent_trsdk.rb +104 -0
  52. data/lib/aspera/fasp/error.rb +2 -1
  53. data/lib/aspera/fasp/error_info.rb +68 -52
  54. data/lib/aspera/fasp/installation.rb +152 -124
  55. data/lib/aspera/fasp/listener.rb +1 -0
  56. data/lib/aspera/fasp/parameters.rb +87 -92
  57. data/lib/aspera/fasp/parameters.yaml +305 -249
  58. data/lib/aspera/fasp/resume_policy.rb +11 -14
  59. data/lib/aspera/fasp/transfer_spec.rb +26 -0
  60. data/lib/aspera/fasp/uri.rb +22 -21
  61. data/lib/aspera/faspex_gw.rb +55 -89
  62. data/lib/aspera/hash_ext.rb +4 -3
  63. data/lib/aspera/id_generator.rb +8 -7
  64. data/lib/aspera/keychain/encrypted_hash.rb +121 -0
  65. data/lib/aspera/keychain/macos_security.rb +90 -0
  66. data/lib/aspera/log.rb +55 -37
  67. data/lib/aspera/nagios.rb +13 -12
  68. data/lib/aspera/node.rb +30 -25
  69. data/lib/aspera/oauth.rb +175 -226
  70. data/lib/aspera/open_application.rb +4 -3
  71. data/lib/aspera/persistency_action_once.rb +6 -6
  72. data/lib/aspera/persistency_folder.rb +5 -9
  73. data/lib/aspera/preview/file_types.rb +6 -5
  74. data/lib/aspera/preview/generator.rb +25 -24
  75. data/lib/aspera/preview/options.rb +16 -14
  76. data/lib/aspera/preview/utils.rb +98 -98
  77. data/lib/aspera/{proxy_auto_config.erb.js → proxy_auto_config.js} +23 -31
  78. data/lib/aspera/proxy_auto_config.rb +111 -20
  79. data/lib/aspera/rest.rb +154 -135
  80. data/lib/aspera/rest_call_error.rb +2 -2
  81. data/lib/aspera/rest_error_analyzer.rb +23 -25
  82. data/lib/aspera/rest_errors_aspera.rb +15 -14
  83. data/lib/aspera/ssh.rb +12 -10
  84. data/lib/aspera/sync.rb +42 -41
  85. data/lib/aspera/temp_file_manager.rb +18 -14
  86. data/lib/aspera/timer_limiter.rb +2 -1
  87. data/lib/aspera/uri_reader.rb +7 -5
  88. data/lib/aspera/web_auth.rb +79 -76
  89. metadata +116 -29
  90. data/docs/Makefile +0 -66
  91. data/docs/README.erb.md +0 -3973
  92. data/docs/README.md +0 -13
  93. data/docs/diagrams.txt +0 -49
  94. data/docs/doc_tools.rb +0 -58
  95. data/lib/aspera/api_detector.rb +0 -60
  96. data/lib/aspera/cli/plugins/shares2.rb +0 -114
  97. data/lib/aspera/secrets.rb +0 -20
@@ -1,105 +1,108 @@
1
+ # frozen_string_literal: true
1
2
  require 'webrick'
2
3
  require 'webrick/https'
3
- require 'thread'
4
4
 
5
5
  module Aspera
6
- class WebAuth
7
- # server for auth page
8
- class FxGwServlet < WEBrick::HTTPServlet::AbstractServlet
9
- def initialize(server,info) # additional args get here
10
- @shared=info
11
- end
6
+ # servlet called on callback: it records the callback request
7
+ class WebAuthServlet < WEBrick::HTTPServlet::AbstractServlet
8
+ def initialize(server,application) # additional args get here
9
+ Log.log.debug('WebAuthServlet initialize')
10
+ super(server)
11
+ @app=application
12
+ end
12
13
 
13
- def do_GET (request, response)
14
- if ! request.path.eql?(@shared[:expected_path])
15
- response.status=400
16
- return
17
- end
18
- @shared[:mutex].synchronize do
19
- @shared[:query]=request.query
20
- @shared[:cond].signal
21
- end
22
- response.status=200
23
- response.content_type = 'text/html'
24
- response.body='<html><head><title>Ok</title></head><body><h1>Thank you !</h1><p>You can close this window.</p></body></html>'
14
+ def service(request, response)
15
+ Log.log.debug("received request from browser #{request.request_method} #{request.path}")
16
+ raise WEBrick::HTTPStatus::MethodNotAllowed,"unexpected method: #{request.request_method}" unless request.request_method.eql?('GET')
17
+ raise WEBrick::HTTPStatus::NotFound,"unexpected path: #{request.path}" unless request.path.eql?(@app.expected_path)
18
+ # acquire lock and signal change
19
+ @app.mutex.synchronize do
20
+ @app.query=request.query
21
+ @app.cond.signal
25
22
  end
26
- end # FxGwServlet
27
-
28
- # generates and adds self signed cert to provided webrick options
29
- def fill_self_signed_cert(options)
30
- key = OpenSSL::PKey::RSA.new(4096)
31
- cert = OpenSSL::X509::Certificate.new
32
- cert.subject = cert.issuer = OpenSSL::X509::Name.parse('/C=FR/O=Test/OU=Test/CN=Test')
33
- cert.not_before = Time.now
34
- cert.not_after = Time.now + 365 * 24 * 60 * 60
35
- cert.public_key = key.public_key
36
- cert.serial = 0x0
37
- cert.version = 2
38
- ef = OpenSSL::X509::ExtensionFactory.new
39
- ef.issuer_certificate = cert
40
- ef.subject_certificate = cert
41
- cert.extensions = [
42
- ef.create_extension('basicConstraints','CA:TRUE', true),
43
- ef.create_extension('subjectKeyIdentifier', 'hash'),
44
- # ef.create_extension('keyUsage', 'cRLSign,keyCertSign', true),
45
- ]
46
- cert.add_extension(ef.create_extension('authorityKeyIdentifier','keyid:always,issuer:always'))
47
- cert.sign(key, OpenSSL::Digest::SHA256.new)
48
- options[:SSLPrivateKey] = key
49
- options[:SSLCertificate] = cert
23
+ response.status=200
24
+ response.content_type = 'text/html'
25
+ response.body='<html><head><title>Ok</title></head><body><h1>Thank you !</h1><p>You can close this window.</p></body></html>'
26
+ return nil
50
27
  end
28
+ end # WebAuthServlet
29
+
30
+ # generates and adds self signed cert to provided webrick options
31
+ #def fill_self_signed_cert(cert,key)
32
+ # cert.subject = cert.issuer = OpenSSL::X509::Name.parse('/C=FR/O=Test/OU=Test/CN=Test')
33
+ # cert.not_before = Time.now
34
+ # cert.not_after = Time.now + 365 * 24 * 60 * 60
35
+ # cert.public_key = key.public_key
36
+ # cert.serial = 0x0
37
+ # cert.version = 2
38
+ # ef = OpenSSL::X509::ExtensionFactory.new
39
+ # ef.issuer_certificate = cert
40
+ # ef.subject_certificate = cert
41
+ # cert.extensions = [
42
+ # ef.create_extension('basicConstraints','CA:TRUE', true),
43
+ # ef.create_extension('subjectKeyIdentifier', 'hash'),
44
+ # # ef.create_extension('keyUsage', 'cRLSign,keyCertSign', true),
45
+ # ]
46
+ # cert.add_extension(ef.create_extension('authorityKeyIdentifier','keyid:always,issuer:always'))
47
+ # cert.sign(key, OpenSSL::Digest::SHA256.new)
48
+ #end
51
49
 
50
+ # start a local web server, then start a browser that will callback the local server upon authentication
51
+ class WebAuth
52
+ attr_reader :expected_path,:mutex,:cond
53
+ attr_writer :query
54
+ # @param endpoint_url [String] e.g. 'https://127.0.0.1:12345'
52
55
  def initialize(endpoint_url)
53
56
  uri=URI.parse(endpoint_url)
57
+ # parameters for servlet
58
+ @query=nil
59
+ @mutex=Mutex.new
60
+ @cond=ConditionVariable.new
61
+ @expected_path=uri.path.empty? ? '/' : uri.path
62
+ # see https://www.rubydoc.info/stdlib/webrick/WEBrick/Config
54
63
  webrick_options = {
55
- :app => WebAuth,
56
- :Port => uri.port,
57
- :Logger => Log.log
64
+ BindAddress: uri.host,
65
+ Port: uri.port,
66
+ Logger: Log.log,
67
+ AccessLog: [[self, WEBrick::AccessLog::COMMON_LOG_FORMAT]] # see "<<" below
58
68
  }
59
- uri_path=uri.path.empty? ? '/' : uri.path
60
69
  case uri.scheme
61
70
  when 'http'
62
71
  Log.log.debug('HTTP mode')
63
72
  when 'https'
64
73
  webrick_options[:SSLEnable]=true
65
- webrick_options[:SSLVerifyClient]=OpenSSL::SSL::VERIFY_NONE
66
- case 0
67
- when 0
68
- # generate self signed cert
69
- fill_self_signed_cert(webrick_options)
70
- when 1
71
- # short
72
- webrick_options[:SSLCertName] = [ [ 'CN',WEBrick::Utils::getservername ] ]
73
- Log.log.error(">>>#{webrick_options[:SSLCertName]}")
74
- when 2
75
- # good cert
76
- webrick_options[:SSLPrivateKey] =OpenSSL::PKey::RSA.new(File.read('/Users/laurent/workspace/Tools/certificate/myserver.key'))
77
- webrick_options[:SSLCertificate] = OpenSSL::X509::Certificate.new(File.read('/Users/laurent/workspace/Tools/certificate/myserver.crt'))
78
- end
74
+ webrick_options[:SSLVerifyClient] = OpenSSL::SSL::VERIFY_NONE
75
+ # a- automatic certificate generation
76
+ webrick_options[:SSLCertName] = [['CN',WEBrick::Utils.getservername]]
77
+ # b- generate self signed cert
78
+ #webrick_options[:SSLPrivateKey] = OpenSSL::PKey::RSA.new(4096)
79
+ #webrick_options[:SSLCertificate] = OpenSSL::X509::Certificate.new
80
+ #self.class.fill_self_signed_cert(webrick_options[:SSLCertificate],webrick_options[:SSLPrivateKey])
81
+ ## c- good cert
82
+ #webrick_options[:SSLPrivateKey] = OpenSSL::PKey::RSA.new(File.read('.../myserver.key'))
83
+ #webrick_options[:SSLCertificate] = OpenSSL::X509::Certificate.new(File.read('.../myserver.crt'))
79
84
  end
80
- # parameters for servlet
81
- @shared_info={
82
- expected_path: uri_path,
83
- mutex: Mutex.new,
84
- cond: ConditionVariable.new
85
- }
86
85
  @server = WEBrick::HTTPServer.new(webrick_options)
87
- @server.mount(uri_path, FxGwServlet, @shared_info) # additional args provided to constructor
86
+ @server.mount(@expected_path, WebAuthServlet, self) # additional args provided to constructor
88
87
  Thread.new { @server.start }
89
88
  end
90
89
 
90
+ # log web server access
91
+ def <<(access_log)
92
+ Log.log.debug{"webrick log #{access_log.chomp}"}
93
+ end
94
+
91
95
  # wait for request on web server
92
96
  # @return Hash the query
93
- def get_request
94
- Log.log.debug('get_request')
95
- # called only once
96
- raise "error, called twice ?" if @server.nil?
97
- @shared_info[:mutex].synchronize do
98
- @shared_info[:cond].wait(@shared_info[:mutex])
99
- end
97
+ def received_request
98
+ # shall be called only once
99
+ raise 'error, received_request called twice ?' if @server.nil?
100
+ # wait for signal from thread
101
+ @mutex.synchronize{@cond.wait(@mutex)}
102
+ # tell server thread to stop
100
103
  @server.shutdown
101
104
  @server=nil
102
- return @shared_info[:query]
105
+ return @query
103
106
  end
104
107
  end
105
108
  end
metadata CHANGED
@@ -1,17 +1,31 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aspera-cli
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.4.0
4
+ version: 4.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Laurent Martin
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-11-13 00:00:00.000000000 Z
11
+ date: 2022-03-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: xml-simple
14
+ name: execjs
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '2.0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '2.0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: grpc
15
29
  requirement: !ruby/object:Gem::Requirement
16
30
  requirements:
17
31
  - - "~>"
@@ -39,19 +53,39 @@ dependencies:
39
53
  - !ruby/object:Gem::Version
40
54
  version: '2.0'
41
55
  - !ruby/object:Gem::Dependency
42
- name: ruby-progressbar
56
+ name: mimemagic
43
57
  requirement: !ruby/object:Gem::Requirement
44
58
  requirements:
45
59
  - - "~>"
46
60
  - !ruby/object:Gem::Version
47
- version: '1.0'
61
+ version: '0.3'
48
62
  type: :runtime
49
63
  prerelease: false
50
64
  version_requirements: !ruby/object:Gem::Requirement
51
65
  requirements:
52
66
  - - "~>"
53
67
  - !ruby/object:Gem::Version
54
- version: '1.0'
68
+ version: '0.3'
69
+ - !ruby/object:Gem::Dependency
70
+ name: net-smtp
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0.1'
76
+ - - "<"
77
+ - !ruby/object:Gem::Version
78
+ version: '0.4'
79
+ type: :runtime
80
+ prerelease: false
81
+ version_requirements: !ruby/object:Gem::Requirement
82
+ requirements:
83
+ - - ">="
84
+ - !ruby/object:Gem::Version
85
+ version: '0.1'
86
+ - - "<"
87
+ - !ruby/object:Gem::Version
88
+ version: '0.4'
55
89
  - !ruby/object:Gem::Dependency
56
90
  name: net-ssh
57
91
  requirement: !ruby/object:Gem::Requirement
@@ -67,7 +101,21 @@ dependencies:
67
101
  - !ruby/object:Gem::Version
68
102
  version: '6.0'
69
103
  - !ruby/object:Gem::Dependency
70
- name: execjs
104
+ name: ruby-progressbar
105
+ requirement: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - "~>"
108
+ - !ruby/object:Gem::Version
109
+ version: '1.0'
110
+ type: :runtime
111
+ prerelease: false
112
+ version_requirements: !ruby/object:Gem::Requirement
113
+ requirements:
114
+ - - "~>"
115
+ - !ruby/object:Gem::Version
116
+ version: '1.0'
117
+ - !ruby/object:Gem::Dependency
118
+ name: rubyzip
71
119
  requirement: !ruby/object:Gem::Requirement
72
120
  requirements:
73
121
  - - "~>"
@@ -80,6 +128,20 @@ dependencies:
80
128
  - - "~>"
81
129
  - !ruby/object:Gem::Version
82
130
  version: '2.0'
131
+ - !ruby/object:Gem::Dependency
132
+ name: security
133
+ requirement: !ruby/object:Gem::Requirement
134
+ requirements:
135
+ - - "~>"
136
+ - !ruby/object:Gem::Version
137
+ version: '0.0'
138
+ type: :runtime
139
+ prerelease: false
140
+ version_requirements: !ruby/object:Gem::Requirement
141
+ requirements:
142
+ - - "~>"
143
+ - !ruby/object:Gem::Version
144
+ version: '0.0'
83
145
  - !ruby/object:Gem::Dependency
84
146
  name: terminal-table
85
147
  requirement: !ruby/object:Gem::Requirement
@@ -109,19 +171,19 @@ dependencies:
109
171
  - !ruby/object:Gem::Version
110
172
  version: '0.9'
111
173
  - !ruby/object:Gem::Dependency
112
- name: rubyzip
174
+ name: webrick
113
175
  requirement: !ruby/object:Gem::Requirement
114
176
  requirements:
115
177
  - - "~>"
116
178
  - !ruby/object:Gem::Version
117
- version: '2.0'
179
+ version: '1.7'
118
180
  type: :runtime
119
181
  prerelease: false
120
182
  version_requirements: !ruby/object:Gem::Requirement
121
183
  requirements:
122
184
  - - "~>"
123
185
  - !ruby/object:Gem::Version
124
- version: '2.0'
186
+ version: '1.7'
125
187
  - !ruby/object:Gem::Dependency
126
188
  name: websocket
127
189
  requirement: !ruby/object:Gem::Requirement
@@ -151,19 +213,19 @@ dependencies:
151
213
  - !ruby/object:Gem::Version
152
214
  version: '0.3'
153
215
  - !ruby/object:Gem::Dependency
154
- name: webrick
216
+ name: xml-simple
155
217
  requirement: !ruby/object:Gem::Requirement
156
218
  requirements:
157
219
  - - "~>"
158
220
  - !ruby/object:Gem::Version
159
- version: '1.7'
221
+ version: '1.0'
160
222
  type: :runtime
161
223
  prerelease: false
162
224
  version_requirements: !ruby/object:Gem::Requirement
163
225
  requirements:
164
226
  - - "~>"
165
227
  - !ruby/object:Gem::Version
166
- version: '1.7'
228
+ version: '1.0'
167
229
  - !ruby/object:Gem::Dependency
168
230
  name: bundler
169
231
  requirement: !ruby/object:Gem::Requirement
@@ -206,6 +268,34 @@ dependencies:
206
268
  - - "~>"
207
269
  - !ruby/object:Gem::Version
208
270
  version: '3.0'
271
+ - !ruby/object:Gem::Dependency
272
+ name: rubocop
273
+ requirement: !ruby/object:Gem::Requirement
274
+ requirements:
275
+ - - "~>"
276
+ - !ruby/object:Gem::Version
277
+ version: '1.12'
278
+ type: :development
279
+ prerelease: false
280
+ version_requirements: !ruby/object:Gem::Requirement
281
+ requirements:
282
+ - - "~>"
283
+ - !ruby/object:Gem::Version
284
+ version: '1.12'
285
+ - !ruby/object:Gem::Dependency
286
+ name: rubocop-ast
287
+ requirement: !ruby/object:Gem::Requirement
288
+ requirements:
289
+ - - "~>"
290
+ - !ruby/object:Gem::Version
291
+ version: '1.4'
292
+ type: :development
293
+ prerelease: false
294
+ version_requirements: !ruby/object:Gem::Requirement
295
+ requirements:
296
+ - - "~>"
297
+ - !ruby/object:Gem::Version
298
+ version: '1.4'
209
299
  description: Command line interface for IBM Aspera products
210
300
  email:
211
301
  - laurent.martin.aspera@fr.ibm.com
@@ -220,23 +310,18 @@ files:
220
310
  - bin/ascli
221
311
  - bin/asession
222
312
  - bin/dascli
223
- - docs/Makefile
224
- - docs/README.erb.md
225
- - docs/README.md
226
- - docs/diagrams.txt
227
- - docs/doc_tools.rb
228
313
  - docs/test_env.conf
229
314
  - examples/aoc.rb
230
315
  - examples/faspex4.rb
231
316
  - examples/proxy.pac
232
317
  - examples/transfer.rb
233
318
  - lib/aspera/aoc.rb
234
- - lib/aspera/api_detector.rb
235
319
  - lib/aspera/ascmd.rb
236
320
  - lib/aspera/ats_api.rb
237
321
  - lib/aspera/cli/basic_auth_plugin.rb
238
322
  - lib/aspera/cli/extended_value.rb
239
323
  - lib/aspera/cli/formater.rb
324
+ - lib/aspera/cli/info.rb
240
325
  - lib/aspera/cli/listener/line_dump.rb
241
326
  - lib/aspera/cli/listener/logger.rb
242
327
  - lib/aspera/cli/listener/progress.rb
@@ -258,7 +343,6 @@ files:
258
343
  - lib/aspera/cli/plugins/preview.rb
259
344
  - lib/aspera/cli/plugins/server.rb
260
345
  - lib/aspera/cli/plugins/shares.rb
261
- - lib/aspera/cli/plugins/shares2.rb
262
346
  - lib/aspera/cli/plugins/sync.rb
263
347
  - lib/aspera/cli/transfer_agent.rb
264
348
  - lib/aspera/cli/version.rb
@@ -274,22 +358,26 @@ files:
274
358
  - lib/aspera/data/7
275
359
  - lib/aspera/data_repository.rb
276
360
  - lib/aspera/environment.rb
277
- - lib/aspera/fasp/connect.rb
361
+ - lib/aspera/fasp/agent_base.rb
362
+ - lib/aspera/fasp/agent_connect.rb
363
+ - lib/aspera/fasp/agent_direct.rb
364
+ - lib/aspera/fasp/agent_httpgw.rb
365
+ - lib/aspera/fasp/agent_node.rb
366
+ - lib/aspera/fasp/agent_trsdk.rb
278
367
  - lib/aspera/fasp/error.rb
279
368
  - lib/aspera/fasp/error_info.rb
280
- - lib/aspera/fasp/http_gw.rb
281
369
  - lib/aspera/fasp/installation.rb
282
370
  - lib/aspera/fasp/listener.rb
283
- - lib/aspera/fasp/local.rb
284
- - lib/aspera/fasp/manager.rb
285
- - lib/aspera/fasp/node.rb
286
371
  - lib/aspera/fasp/parameters.rb
287
372
  - lib/aspera/fasp/parameters.yaml
288
373
  - lib/aspera/fasp/resume_policy.rb
374
+ - lib/aspera/fasp/transfer_spec.rb
289
375
  - lib/aspera/fasp/uri.rb
290
376
  - lib/aspera/faspex_gw.rb
291
377
  - lib/aspera/hash_ext.rb
292
378
  - lib/aspera/id_generator.rb
379
+ - lib/aspera/keychain/encrypted_hash.rb
380
+ - lib/aspera/keychain/macos_security.rb
293
381
  - lib/aspera/log.rb
294
382
  - lib/aspera/nagios.rb
295
383
  - lib/aspera/node.rb
@@ -303,13 +391,12 @@ files:
303
391
  - lib/aspera/preview/options.rb
304
392
  - lib/aspera/preview/utils.rb
305
393
  - lib/aspera/preview/video_error.png
306
- - lib/aspera/proxy_auto_config.erb.js
394
+ - lib/aspera/proxy_auto_config.js
307
395
  - lib/aspera/proxy_auto_config.rb
308
396
  - lib/aspera/rest.rb
309
397
  - lib/aspera/rest_call_error.rb
310
398
  - lib/aspera/rest_error_analyzer.rb
311
399
  - lib/aspera/rest_errors_aspera.rb
312
- - lib/aspera/secrets.rb
313
400
  - lib/aspera/ssh.rb
314
401
  - lib/aspera/sync.rb
315
402
  - lib/aspera/temp_file_manager.rb
@@ -332,7 +419,7 @@ require_paths:
332
419
  - lib
333
420
  required_ruby_version: !ruby/object:Gem::Requirement
334
421
  requirements:
335
- - - ">"
422
+ - - ">="
336
423
  - !ruby/object:Gem::Version
337
424
  version: '2.4'
338
425
  required_rubygems_version: !ruby/object:Gem::Requirement
@@ -346,5 +433,5 @@ rubygems_version: 3.0.3.1
346
433
  signing_key:
347
434
  specification_version: 4
348
435
  summary: 'Execute actions using command line on IBM Aspera Server products: Aspera
349
- on Cloud, Faspex, Shares, Node, Console, Orchestrator, Transfer Server'
436
+ on Cloud, Faspex, Shares, Node, Console, Orchestrator, High Speed Transfer Server'
350
437
  test_files: []
data/docs/Makefile DELETED
@@ -1,66 +0,0 @@
1
- ##################################
2
- # Documentation
3
-
4
- DIR_TOP=../
5
- include $(DIR_TOP)common.make
6
- # "make" shall be executed inside the folder containing this makefile
7
- DIR_DOC=
8
-
9
- # files generated to be included in README.md
10
- INCL_USAGE=$(DIR_TMP)$(EXENAME)_usage.txt
11
- INCL_COMMANDS=$(DIR_TMP)$(EXENAME)_commands.txt
12
- INCL_ASESSION=$(DIR_TMP)asession_usage.txt
13
-
14
- # env var used in README.erb.md
15
- export EXENAME GEMSPEC INCL_USAGE INCL_COMMANDS INCL_ASESSION
16
-
17
- TMPL_TEST_CONF=$(DIR_DOC)$(TEST_CONF_FILE_BASE)
18
-
19
- MANUAL_BASE=$(DIR_DOC)Manual_$(EXENAME)_$(GEMVERSION)
20
- MANUAL_PDF=$(MANUAL_BASE).pdf
21
- MANUAL_HTML=$(MANUAL_BASE).html
22
-
23
- # main target to build doc
24
- all:: $(MANUAL_PDF) $(TMPL_TEST_CONF)
25
-
26
- doc: all
27
-
28
- # generate template configuration file for tests, remove own secrets
29
- $(TMPL_TEST_CONF): $(TEST_CONF_FILE_PATH)
30
- ruby -e 'require "yaml";n={};c=YAML.load_file("$(TEST_CONF_FILE_PATH)").each{|k,v| n[k]=["config","default"].include?(k)?v:v.keys.inject({}){|m,i|m[i]="your value here";m}};File.write("$(TMPL_TEST_CONF)",n.to_yaml)'
31
-
32
- $(MANUAL_PDF): $(DIR_TOP)README.md
33
- pandoc --number-sections --resource-path=. --toc -o $(MANUAL_HTML) $(DIR_TOP)README.md
34
- wkhtmltopdf toc $(MANUAL_HTML) $(MANUAL_PDF)
35
-
36
- $(DIR_TOP)README.md: $(DIR_DOC)README.erb.md $(INCL_COMMANDS) $(INCL_USAGE) $(INCL_ASESSION)
37
- INCL_DIR_GEM=$(DIR_TOP)lib erb -T - --encoding UTF-8:UTF-8 $(DIR_DOC)README.erb.md > $(DIR_TOP)README.md
38
-
39
- $(INCL_COMMANDS): $(DIR_TMP).exists $(TEST_MAKEFILE)
40
- sed -nEe 's/.*\$$\(EXE_MAN.?\)/$(EXENAME)/p' $(TEST_MAKEFILE) > $(DIR_TMP)usg1.txt
41
- sed -i.bak -Ee 's/\$$\$$\{([a-z_]+)\}/my_\1/g' $(DIR_TMP)usg1.txt
42
- sed -i.bak -Ee 's/\$$\(([^)]+)\)/\1/g' $(DIR_TMP)usg1.txt
43
- sed -i.bak -Ee 's/\$$(\$$)/\1/g' $(DIR_TMP)usg1.txt
44
- sed -i.bak -Ee 's/\$$@/test/g' $(DIR_TMP)usg1.txt
45
- sed -i.bak -Ee 's/"'"'"'/"/g' $(DIR_TMP)usg1.txt
46
- sed -i.bak -Ee 's/'"'"'"/"/g' $(DIR_TMP)usg1.txt
47
- sed -i.bak -Ee 's/""/"/g' $(DIR_TMP)usg1.txt
48
- sed -i.bak -Ee 's/CF_//g' $(DIR_TMP)usg1.txt
49
- sed -i.bak -Ee 's/DIR_[A-Z]+//g' $(DIR_TMP)usg1.txt
50
- sed -i.bak -Ee 's/LOCAL_SAMPLE_FILE(NAME|PATH)/testfile.bin/g' $(DIR_TMP)usg1.txt
51
- sed -i.bak -Ee 's/HSTS_FOLDER_UPLOAD/folder_1/g' $(DIR_TMP)usg1.txt
52
- sed -i.bak -Ee 's/PKG_TEST_TITLE/Important files delivery/g' $(DIR_TMP)usg1.txt
53
- sed -i.bak -Ee 's/AOC_EXTERNAL_EMAIL/external.user@example.com/g' $(DIR_TMP)usg1.txt
54
- sed -i.bak -Ee 's/EMAIL_ADDR/internal.user@example.com/g' $(DIR_TMP)usg1.txt
55
- sort -u < $(DIR_TMP)usg1.txt > $(INCL_COMMANDS)
56
- # generated help of tools depends on all sources, so regenerate always
57
- .PHONY: $(INCL_USAGE)
58
- $(INCL_USAGE): $(DIR_TMP).exists
59
- -$(EXETESTB) -Cnone -h 2> $(INCL_USAGE)
60
- sed -i -e 's/\/Users\/[^\/]*/\/Users\/FooBar/g' $(INCL_USAGE)
61
- .PHONY: $(INCL_ASESSION)
62
- $(INCL_ASESSION): $(DIR_TMP).exists
63
- $(DIR_BIN)/asession -h 2> $(INCL_ASESSION) || true
64
- clean::
65
- rm -f $(MANUAL_PDF) $(MANUAL_HTML) $(INCL_COMMANDS) $(INCL_USAGE) $(INCL_ASESSION)
66
-