aspera-cli 4.4.0 → 4.5.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
- data/README.md +1042 -787
- data/bin/ascli +1 -1
- data/bin/asession +3 -5
- data/docs/Makefile +4 -7
- data/docs/README.erb.md +988 -740
- data/examples/faspex4.rb +4 -6
- data/examples/transfer.rb +2 -2
- data/lib/aspera/aoc.rb +139 -118
- data/lib/aspera/cli/listener/progress_multi.rb +5 -5
- data/lib/aspera/cli/main.rb +64 -34
- data/lib/aspera/cli/manager.rb +19 -20
- data/lib/aspera/cli/plugin.rb +9 -1
- data/lib/aspera/cli/plugins/aoc.rb +156 -143
- data/lib/aspera/cli/plugins/ats.rb +11 -10
- data/lib/aspera/cli/plugins/bss.rb +2 -2
- data/lib/aspera/cli/plugins/config.rb +236 -112
- data/lib/aspera/cli/plugins/faspex.rb +29 -7
- data/lib/aspera/cli/plugins/faspex5.rb +21 -8
- data/lib/aspera/cli/plugins/node.rb +21 -9
- data/lib/aspera/cli/plugins/orchestrator.rb +5 -3
- data/lib/aspera/cli/plugins/preview.rb +2 -2
- data/lib/aspera/cli/plugins/server.rb +3 -3
- data/lib/aspera/cli/plugins/shares.rb +17 -0
- data/lib/aspera/cli/transfer_agent.rb +47 -85
- data/lib/aspera/cli/version.rb +1 -1
- data/lib/aspera/environment.rb +4 -4
- data/lib/aspera/fasp/{manager.rb → agent_base.rb} +7 -6
- data/lib/aspera/fasp/{connect.rb → agent_connect.rb} +46 -39
- data/lib/aspera/fasp/{local.rb → agent_direct.rb} +14 -17
- data/lib/aspera/fasp/{http_gw.rb → agent_httpgw.rb} +4 -4
- data/lib/aspera/fasp/{node.rb → agent_node.rb} +25 -8
- data/lib/aspera/fasp/agent_trsdk.rb +106 -0
- data/lib/aspera/fasp/default.rb +17 -0
- data/lib/aspera/fasp/installation.rb +64 -48
- data/lib/aspera/fasp/parameters.rb +7 -3
- data/lib/aspera/faspex_gw.rb +6 -6
- data/lib/aspera/keychain/encrypted_hash.rb +120 -0
- data/lib/aspera/keychain/macos_security.rb +94 -0
- data/lib/aspera/log.rb +45 -32
- data/lib/aspera/node.rb +3 -6
- data/lib/aspera/rest.rb +65 -49
- metadata +68 -27
- data/lib/aspera/api_detector.rb +0 -60
- data/lib/aspera/secrets.rb +0 -20
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
|
+
version: 4.5.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
|
+
date: 2021-12-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
-
name:
|
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,19 @@ dependencies:
|
|
39
53
|
- !ruby/object:Gem::Version
|
40
54
|
version: '2.0'
|
41
55
|
- !ruby/object:Gem::Dependency
|
42
|
-
name:
|
56
|
+
name: mimemagic
|
43
57
|
requirement: !ruby/object:Gem::Requirement
|
44
58
|
requirements:
|
45
59
|
- - "~>"
|
46
60
|
- !ruby/object:Gem::Version
|
47
|
-
version: '
|
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: '
|
68
|
+
version: '0.3'
|
55
69
|
- !ruby/object:Gem::Dependency
|
56
70
|
name: net-ssh
|
57
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -67,7 +81,21 @@ dependencies:
|
|
67
81
|
- !ruby/object:Gem::Version
|
68
82
|
version: '6.0'
|
69
83
|
- !ruby/object:Gem::Dependency
|
70
|
-
name:
|
84
|
+
name: ruby-progressbar
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - "~>"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '1.0'
|
90
|
+
type: :runtime
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - "~>"
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '1.0'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: rubyzip
|
71
99
|
requirement: !ruby/object:Gem::Requirement
|
72
100
|
requirements:
|
73
101
|
- - "~>"
|
@@ -81,47 +109,47 @@ dependencies:
|
|
81
109
|
- !ruby/object:Gem::Version
|
82
110
|
version: '2.0'
|
83
111
|
- !ruby/object:Gem::Dependency
|
84
|
-
name:
|
112
|
+
name: security
|
85
113
|
requirement: !ruby/object:Gem::Requirement
|
86
114
|
requirements:
|
87
115
|
- - "~>"
|
88
116
|
- !ruby/object:Gem::Version
|
89
|
-
version: '
|
117
|
+
version: '0.0'
|
90
118
|
type: :runtime
|
91
119
|
prerelease: false
|
92
120
|
version_requirements: !ruby/object:Gem::Requirement
|
93
121
|
requirements:
|
94
122
|
- - "~>"
|
95
123
|
- !ruby/object:Gem::Version
|
96
|
-
version: '
|
124
|
+
version: '0.0'
|
97
125
|
- !ruby/object:Gem::Dependency
|
98
|
-
name:
|
126
|
+
name: terminal-table
|
99
127
|
requirement: !ruby/object:Gem::Requirement
|
100
128
|
requirements:
|
101
129
|
- - "~>"
|
102
130
|
- !ruby/object:Gem::Version
|
103
|
-
version: '
|
131
|
+
version: '1.8'
|
104
132
|
type: :runtime
|
105
133
|
prerelease: false
|
106
134
|
version_requirements: !ruby/object:Gem::Requirement
|
107
135
|
requirements:
|
108
136
|
- - "~>"
|
109
137
|
- !ruby/object:Gem::Version
|
110
|
-
version: '
|
138
|
+
version: '1.8'
|
111
139
|
- !ruby/object:Gem::Dependency
|
112
|
-
name:
|
140
|
+
name: tty-spinner
|
113
141
|
requirement: !ruby/object:Gem::Requirement
|
114
142
|
requirements:
|
115
143
|
- - "~>"
|
116
144
|
- !ruby/object:Gem::Version
|
117
|
-
version: '
|
145
|
+
version: '0.9'
|
118
146
|
type: :runtime
|
119
147
|
prerelease: false
|
120
148
|
version_requirements: !ruby/object:Gem::Requirement
|
121
149
|
requirements:
|
122
150
|
- - "~>"
|
123
151
|
- !ruby/object:Gem::Version
|
124
|
-
version: '
|
152
|
+
version: '0.9'
|
125
153
|
- !ruby/object:Gem::Dependency
|
126
154
|
name: websocket
|
127
155
|
requirement: !ruby/object:Gem::Requirement
|
@@ -164,6 +192,20 @@ dependencies:
|
|
164
192
|
- - "~>"
|
165
193
|
- !ruby/object:Gem::Version
|
166
194
|
version: '1.7'
|
195
|
+
- !ruby/object:Gem::Dependency
|
196
|
+
name: xml-simple
|
197
|
+
requirement: !ruby/object:Gem::Requirement
|
198
|
+
requirements:
|
199
|
+
- - "~>"
|
200
|
+
- !ruby/object:Gem::Version
|
201
|
+
version: '1.0'
|
202
|
+
type: :runtime
|
203
|
+
prerelease: false
|
204
|
+
version_requirements: !ruby/object:Gem::Requirement
|
205
|
+
requirements:
|
206
|
+
- - "~>"
|
207
|
+
- !ruby/object:Gem::Version
|
208
|
+
version: '1.0'
|
167
209
|
- !ruby/object:Gem::Dependency
|
168
210
|
name: bundler
|
169
211
|
requirement: !ruby/object:Gem::Requirement
|
@@ -209,10 +251,7 @@ dependencies:
|
|
209
251
|
description: Command line interface for IBM Aspera products
|
210
252
|
email:
|
211
253
|
- laurent.martin.aspera@fr.ibm.com
|
212
|
-
executables:
|
213
|
-
- ascli
|
214
|
-
- asession
|
215
|
-
- dascli
|
254
|
+
executables: []
|
216
255
|
extensions: []
|
217
256
|
extra_rdoc_files: []
|
218
257
|
files:
|
@@ -231,7 +270,6 @@ files:
|
|
231
270
|
- examples/proxy.pac
|
232
271
|
- examples/transfer.rb
|
233
272
|
- lib/aspera/aoc.rb
|
234
|
-
- lib/aspera/api_detector.rb
|
235
273
|
- lib/aspera/ascmd.rb
|
236
274
|
- lib/aspera/ats_api.rb
|
237
275
|
- lib/aspera/cli/basic_auth_plugin.rb
|
@@ -274,15 +312,17 @@ files:
|
|
274
312
|
- lib/aspera/data/7
|
275
313
|
- lib/aspera/data_repository.rb
|
276
314
|
- lib/aspera/environment.rb
|
277
|
-
- lib/aspera/fasp/
|
315
|
+
- lib/aspera/fasp/agent_base.rb
|
316
|
+
- lib/aspera/fasp/agent_connect.rb
|
317
|
+
- lib/aspera/fasp/agent_direct.rb
|
318
|
+
- lib/aspera/fasp/agent_httpgw.rb
|
319
|
+
- lib/aspera/fasp/agent_node.rb
|
320
|
+
- lib/aspera/fasp/agent_trsdk.rb
|
321
|
+
- lib/aspera/fasp/default.rb
|
278
322
|
- lib/aspera/fasp/error.rb
|
279
323
|
- lib/aspera/fasp/error_info.rb
|
280
|
-
- lib/aspera/fasp/http_gw.rb
|
281
324
|
- lib/aspera/fasp/installation.rb
|
282
325
|
- lib/aspera/fasp/listener.rb
|
283
|
-
- lib/aspera/fasp/local.rb
|
284
|
-
- lib/aspera/fasp/manager.rb
|
285
|
-
- lib/aspera/fasp/node.rb
|
286
326
|
- lib/aspera/fasp/parameters.rb
|
287
327
|
- lib/aspera/fasp/parameters.yaml
|
288
328
|
- lib/aspera/fasp/resume_policy.rb
|
@@ -290,6 +330,8 @@ files:
|
|
290
330
|
- lib/aspera/faspex_gw.rb
|
291
331
|
- lib/aspera/hash_ext.rb
|
292
332
|
- lib/aspera/id_generator.rb
|
333
|
+
- lib/aspera/keychain/encrypted_hash.rb
|
334
|
+
- lib/aspera/keychain/macos_security.rb
|
293
335
|
- lib/aspera/log.rb
|
294
336
|
- lib/aspera/nagios.rb
|
295
337
|
- lib/aspera/node.rb
|
@@ -309,7 +351,6 @@ files:
|
|
309
351
|
- lib/aspera/rest_call_error.rb
|
310
352
|
- lib/aspera/rest_error_analyzer.rb
|
311
353
|
- lib/aspera/rest_errors_aspera.rb
|
312
|
-
- lib/aspera/secrets.rb
|
313
354
|
- lib/aspera/ssh.rb
|
314
355
|
- lib/aspera/sync.rb
|
315
356
|
- lib/aspera/temp_file_manager.rb
|
data/lib/aspera/api_detector.rb
DELETED
@@ -1,60 +0,0 @@
|
|
1
|
-
require 'aspera/log'
|
2
|
-
require 'aspera/rest'
|
3
|
-
|
4
|
-
module Aspera
|
5
|
-
# detect Aspera product by calling API
|
6
|
-
class ApiDetector
|
7
|
-
# @return a hash: {:product=>:node,:version=>'unknown'}
|
8
|
-
# if not found: {:product=>:unknown,:version=>'unknown'}
|
9
|
-
def self.discover_product(url)
|
10
|
-
#uri=URI.parse(url)
|
11
|
-
api=Rest.new({:base_url=>url})
|
12
|
-
# Node
|
13
|
-
begin
|
14
|
-
result=api.call({:operation=>'GET',:subpath=>'ping'})
|
15
|
-
if result[:http].body.eql?('')
|
16
|
-
return {:product=>:node,:version=>'unknown'}
|
17
|
-
end
|
18
|
-
rescue SocketError => e
|
19
|
-
raise e
|
20
|
-
rescue => e
|
21
|
-
Log.log.debug("not node (#{e.class}: #{e})")
|
22
|
-
end
|
23
|
-
# AoC
|
24
|
-
begin
|
25
|
-
result=api.call({:operation=>'GET',:subpath=>'',:headers=>{'Accept'=>'text/html'}})
|
26
|
-
if result[:http].body.include?('content="AoC"')
|
27
|
-
return {:product=>:aoc,:version=>'unknown'}
|
28
|
-
end
|
29
|
-
rescue SocketError => e
|
30
|
-
raise e
|
31
|
-
rescue => e
|
32
|
-
Log.log.debug("not aoc (#{e.class}: #{e})")
|
33
|
-
end
|
34
|
-
# Faspex
|
35
|
-
begin
|
36
|
-
result=api.call({:operation=>'POST',:subpath=>'aspera/faspex',:headers=>{'Accept'=>'application/xrds+xml'},:text_body_params=>''})
|
37
|
-
if result[:http].body.start_with?('<?xml')
|
38
|
-
res_s=XmlSimple.xml_in(result[:http].body, {"ForceArray" => false})
|
39
|
-
version=res_s['XRD']['application']['version']
|
40
|
-
#return JSON.pretty_generate(res_s)
|
41
|
-
end
|
42
|
-
return {:product=>:faspex,:version=>version}
|
43
|
-
rescue
|
44
|
-
Log.log.debug("not faspex")
|
45
|
-
end
|
46
|
-
# Shares
|
47
|
-
begin
|
48
|
-
result=api.read('node_api/app')
|
49
|
-
Log.log.warn("not supposed to work")
|
50
|
-
rescue RestCallError => e
|
51
|
-
if e.response.code.to_s.eql?('401') and e.response.body.eql?('{"error":{"user_message":"API user authentication failed"}}')
|
52
|
-
return {:product=>:shares,:version=>'unknown'}
|
53
|
-
end
|
54
|
-
Log.log.warn("not shares: #{e.response.code} #{e.response.body}")
|
55
|
-
rescue
|
56
|
-
end
|
57
|
-
return {:product=>:unknown,:version=>'unknown'}
|
58
|
-
end
|
59
|
-
end
|
60
|
-
end
|
data/lib/aspera/secrets.rb
DELETED
@@ -1,20 +0,0 @@
|
|
1
|
-
module Aspera
|
2
|
-
# Manage secrets in CLI using secure way (encryption, wallet, etc...)
|
3
|
-
class Secrets
|
4
|
-
attr_accessor :default_secret,:all_secrets
|
5
|
-
def initialize()
|
6
|
-
@default_secret=nil
|
7
|
-
@all_secrets={}
|
8
|
-
end
|
9
|
-
|
10
|
-
def get_secret(id=nil,mandatory=true)
|
11
|
-
secret=@default_secret || @all_secrets[id]
|
12
|
-
raise "please provide secret for #{id}" if secret.nil? and mandatory
|
13
|
-
return secret
|
14
|
-
end
|
15
|
-
|
16
|
-
def get_secrets
|
17
|
-
return @all_secrets
|
18
|
-
end
|
19
|
-
end
|
20
|
-
end
|