aspera-cli 4.0.0.pre1

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.
Files changed (88) hide show
  1. checksums.yaml +7 -0
  2. data/README.md +3592 -0
  3. data/bin/ascli +7 -0
  4. data/bin/asession +89 -0
  5. data/docs/Makefile +59 -0
  6. data/docs/README.erb.md +3012 -0
  7. data/docs/README.md +13 -0
  8. data/docs/diagrams.txt +49 -0
  9. data/docs/secrets.make +38 -0
  10. data/docs/test_env.conf +117 -0
  11. data/docs/transfer_spec.html +99 -0
  12. data/examples/aoc.rb +17 -0
  13. data/examples/proxy.pac +60 -0
  14. data/examples/transfer.rb +115 -0
  15. data/lib/aspera/api_detector.rb +60 -0
  16. data/lib/aspera/ascmd.rb +151 -0
  17. data/lib/aspera/ats_api.rb +43 -0
  18. data/lib/aspera/cli/basic_auth_plugin.rb +38 -0
  19. data/lib/aspera/cli/extended_value.rb +88 -0
  20. data/lib/aspera/cli/formater.rb +238 -0
  21. data/lib/aspera/cli/listener/line_dump.rb +17 -0
  22. data/lib/aspera/cli/listener/logger.rb +20 -0
  23. data/lib/aspera/cli/listener/progress.rb +52 -0
  24. data/lib/aspera/cli/listener/progress_multi.rb +91 -0
  25. data/lib/aspera/cli/main.rb +304 -0
  26. data/lib/aspera/cli/manager.rb +440 -0
  27. data/lib/aspera/cli/plugin.rb +90 -0
  28. data/lib/aspera/cli/plugins/alee.rb +24 -0
  29. data/lib/aspera/cli/plugins/ats.rb +231 -0
  30. data/lib/aspera/cli/plugins/bss.rb +71 -0
  31. data/lib/aspera/cli/plugins/config.rb +806 -0
  32. data/lib/aspera/cli/plugins/console.rb +62 -0
  33. data/lib/aspera/cli/plugins/cos.rb +106 -0
  34. data/lib/aspera/cli/plugins/faspex.rb +377 -0
  35. data/lib/aspera/cli/plugins/faspex5.rb +93 -0
  36. data/lib/aspera/cli/plugins/node.rb +438 -0
  37. data/lib/aspera/cli/plugins/oncloud.rb +937 -0
  38. data/lib/aspera/cli/plugins/orchestrator.rb +169 -0
  39. data/lib/aspera/cli/plugins/preview.rb +464 -0
  40. data/lib/aspera/cli/plugins/server.rb +216 -0
  41. data/lib/aspera/cli/plugins/shares.rb +63 -0
  42. data/lib/aspera/cli/plugins/shares2.rb +114 -0
  43. data/lib/aspera/cli/plugins/sync.rb +65 -0
  44. data/lib/aspera/cli/plugins/xnode.rb +115 -0
  45. data/lib/aspera/cli/transfer_agent.rb +251 -0
  46. data/lib/aspera/cli/version.rb +5 -0
  47. data/lib/aspera/colors.rb +39 -0
  48. data/lib/aspera/command_line_builder.rb +137 -0
  49. data/lib/aspera/fasp/aoc.rb +24 -0
  50. data/lib/aspera/fasp/connect.rb +99 -0
  51. data/lib/aspera/fasp/error.rb +21 -0
  52. data/lib/aspera/fasp/error_info.rb +60 -0
  53. data/lib/aspera/fasp/http_gw.rb +81 -0
  54. data/lib/aspera/fasp/installation.rb +240 -0
  55. data/lib/aspera/fasp/listener.rb +11 -0
  56. data/lib/aspera/fasp/local.rb +377 -0
  57. data/lib/aspera/fasp/manager.rb +69 -0
  58. data/lib/aspera/fasp/node.rb +88 -0
  59. data/lib/aspera/fasp/parameters.rb +235 -0
  60. data/lib/aspera/fasp/resume_policy.rb +76 -0
  61. data/lib/aspera/fasp/uri.rb +51 -0
  62. data/lib/aspera/faspex_gw.rb +196 -0
  63. data/lib/aspera/hash_ext.rb +28 -0
  64. data/lib/aspera/log.rb +80 -0
  65. data/lib/aspera/nagios.rb +71 -0
  66. data/lib/aspera/node.rb +14 -0
  67. data/lib/aspera/oauth.rb +319 -0
  68. data/lib/aspera/on_cloud.rb +421 -0
  69. data/lib/aspera/open_application.rb +72 -0
  70. data/lib/aspera/persistency_action_once.rb +42 -0
  71. data/lib/aspera/persistency_folder.rb +91 -0
  72. data/lib/aspera/preview/file_types.rb +300 -0
  73. data/lib/aspera/preview/generator.rb +258 -0
  74. data/lib/aspera/preview/image_error.png +0 -0
  75. data/lib/aspera/preview/options.rb +35 -0
  76. data/lib/aspera/preview/utils.rb +131 -0
  77. data/lib/aspera/preview/video_error.png +0 -0
  78. data/lib/aspera/proxy_auto_config.erb.js +287 -0
  79. data/lib/aspera/proxy_auto_config.rb +34 -0
  80. data/lib/aspera/rest.rb +296 -0
  81. data/lib/aspera/rest_call_error.rb +13 -0
  82. data/lib/aspera/rest_error_analyzer.rb +98 -0
  83. data/lib/aspera/rest_errors_aspera.rb +58 -0
  84. data/lib/aspera/ssh.rb +53 -0
  85. data/lib/aspera/sync.rb +82 -0
  86. data/lib/aspera/temp_file_manager.rb +37 -0
  87. data/lib/aspera/uri_reader.rb +25 -0
  88. metadata +288 -0
@@ -0,0 +1,53 @@
1
+ require 'net/ssh'
2
+
3
+ # Hack: deactivate ed25519 and ecdsa private keys from ssh identities, as it usually hurts
4
+ begin
5
+ 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
6
+ rescue
7
+ end
8
+
9
+ module Aspera
10
+ # A simple wrapper around Net::SSH
11
+ # executes one command and get its result from stdout
12
+ class Ssh
13
+ # ssh_options: same as Net::SSH.start
14
+ # see: https://net-ssh.github.io/net-ssh/classes/Net/SSH.html#method-c-start
15
+ def initialize(host,username,ssh_options)
16
+ Log.log.debug("ssh:#{username}@#{host}")
17
+ @host=host
18
+ @username=username
19
+ @ssh_options=ssh_options
20
+ @ssh_options[:logger]=Log.log
21
+ end
22
+
23
+ def execute(cmd,input=nil)
24
+ if cmd.is_a?(Array)
25
+ # concatenate arguments, enclose in double quotes
26
+ cmd=cmd.map{|v|'"'+v+'"'}.join(" ")
27
+ end
28
+ Log.log.debug("cmd=#{cmd}")
29
+ response = ''
30
+ Net::SSH.start(@host, @username, @ssh_options) do |session|
31
+ ssh_channel=session.open_channel do |channel|
32
+ # prepare stdout processing
33
+ channel.on_data{|chan,data|response << data}
34
+ # prepare stderr processing, stderr if type = 1
35
+ channel.on_extended_data do |chan, type, data|
36
+ errormsg="#{cmd}: [#{data.chomp}]"
37
+ # Happens when windows user hasn't logged in and created home account.
38
+ if data.include?("Could not chdir to home directory")
39
+ errormsg=errormsg+"\nHint: home not created in Windows?"
40
+ end
41
+ raise errormsg
42
+ end
43
+ channel.exec(cmd){|ch,success|channel.send_data(input) unless input.nil?}
44
+ end
45
+ # wait for channel to finish (command exit)
46
+ ssh_channel.wait
47
+ # main ssh session loop
48
+ session.loop
49
+ end # session
50
+ return response
51
+ end
52
+ end
53
+ end
@@ -0,0 +1,82 @@
1
+ module Aspera
2
+ # builds command line arg for async
3
+ class Sync
4
+ private
5
+ INSTANCE_PARAMS=
6
+ {
7
+ 'alt_logdir' => { :type => :opt_with_arg, :accepted_types=>String},
8
+ 'watchd' => { :type => :opt_with_arg, :accepted_types=>String},
9
+ 'apply_local_docroot' => { :type => :opt_without_arg},
10
+ 'quiet' => { :type => :opt_without_arg},
11
+ }
12
+ SESSION_PARAMS=
13
+ {
14
+ 'name' => { :type => :opt_with_arg, :accepted_types=>String},
15
+ 'local_dir' => { :type => :opt_with_arg, :accepted_types=>String},
16
+ 'remote_dir' => { :type => :opt_with_arg, :accepted_types=>String},
17
+ 'local_db_dir' => { :type => :opt_with_arg, :accepted_types=>String},
18
+ 'remote_db_dir' => { :type => :opt_with_arg, :accepted_types=>String},
19
+ 'host' => { :type => :opt_with_arg, :accepted_types=>String},
20
+ 'user' => { :type => :opt_with_arg, :accepted_types=>String},
21
+ 'private_key_path' => { :type => :opt_with_arg, :accepted_types=>String},
22
+ 'direction' => { :type => :opt_with_arg, :accepted_types=>String},
23
+ 'checksum' => { :type => :opt_with_arg, :accepted_types=>String},
24
+ 'tcp_port' => { :type => :opt_with_arg, :accepted_types=>Integer},
25
+ 'rate_policy' => { :type => :opt_with_arg, :accepted_types=>String},
26
+ 'target_rate' => { :type => :opt_with_arg, :accepted_types=>String},
27
+ 'cooloff' => { :type => :opt_with_arg, :accepted_types=>Integer},
28
+ 'pending_max' => { :type => :opt_with_arg, :accepted_types=>Integer},
29
+ 'scan_intensity' => { :type => :opt_with_arg, :accepted_types=>String},
30
+ 'cipher' => { :type => :opt_with_arg, :accepted_types=>String},
31
+ 'transfer_threads' => { :type => :opt_with_arg, :accepted_types=>Integer},
32
+ 'preserve_time' => { :type => :opt_without_arg},
33
+ 'preserve_access_time' => { :type => :opt_without_arg},
34
+ 'preserve_modification_time' => { :type => :opt_without_arg},
35
+ 'preserve_uid' => { :type => :opt_without_arg},
36
+ 'preserve_gid' => { :type => :opt_without_arg},
37
+ 'create_dir' => { :type => :opt_without_arg},
38
+ 'reset' => { :type => :opt_without_arg},
39
+ # note: only one env var, but multiple sessions... may be a problem
40
+ 'remote_password' => { :type => :envvar, :variable=>'ASPERA_SCP_PASS'},
41
+ 'cookie' => { :type => :envvar, :variable=>'ASPERA_SCP_COOKIE'},
42
+ 'token' => { :type => :envvar, :variable=>'ASPERA_SCP_TOKEN'},
43
+ 'license' => { :type => :envvar, :variable=>'ASPERA_SCP_LICENSE'},
44
+ }
45
+ public
46
+
47
+ def initialize(sync_params)
48
+ @sync_params=sync_params
49
+ end
50
+
51
+ MANDATORY_KEYS=['instance','sessions']
52
+
53
+ def compute_args
54
+ raise StandardError,"parameter must be Hash" unless @sync_params.is_a?(Hash)
55
+ raise StandardError,"parameter hash must have at least 'sessions', and optionally 'instance' keys." unless @sync_params.keys.push('instance').uniq.sort.eql?(MANDATORY_KEYS)
56
+ raise StandardError,"sessions key must be Array" unless @sync_params['sessions'].is_a?(Array)
57
+ raise StandardError,"sessions key must has at least one element (hash)" unless @sync_params['sessions'].first.is_a?(Hash)
58
+
59
+ env_args={
60
+ :args=>[],
61
+ :env=>{}
62
+ }
63
+
64
+ if @sync_params.has_key?('instance')
65
+ raise StandardError,"instance key must be hash" unless @sync_params['instance'].is_a?(Hash)
66
+ instance_builder=CommandLineBuilder.new(@sync_params['instance'],INSTANCE_PARAMS)
67
+ instance_builder.process_params
68
+ instance_builder.add_env_args(env_args[:env],env_args[:args])
69
+ end
70
+
71
+ @sync_params['sessions'].each do |session_params|
72
+ raise StandardError,"sessions must contain hashes" unless session_params.is_a?(Hash)
73
+ raise StandardError,"session must contain at leat name" unless session_params.has_key?('name')
74
+ session_builder=CommandLineBuilder.new(session_params,SESSION_PARAMS)
75
+ session_builder.process_params
76
+ session_builder.add_env_args(env_args[:env],env_args[:args])
77
+ end
78
+
79
+ return env_args
80
+ end
81
+ end
82
+ end
@@ -0,0 +1,37 @@
1
+ require 'singleton'
2
+ require 'fileutils'
3
+ require 'etc'
4
+
5
+ module Aspera
6
+ # create a temp file name for a given folder
7
+ # files can be deleted on process exit by calling cleanup
8
+ class TempFileManager
9
+ include Singleton
10
+ def initialize
11
+ @created_files=[]
12
+ end
13
+
14
+ # call this on process exit
15
+ def cleanup
16
+ @created_files.each do |filepath|
17
+ File.delete(filepath) if File.file?(filepath)
18
+ end
19
+ @created_files=[]
20
+ end
21
+
22
+ # ensure that provided folder exists, or create it, generate a unique filename
23
+ # @return path to that unique file
24
+ def new_file_path_in_folder(temp_folder,add_base='')
25
+ FileUtils::mkdir_p(temp_folder) unless Dir.exist?(temp_folder)
26
+ new_file=File.join(temp_folder,add_base+SecureRandom.uuid)
27
+ @created_files.push(new_file)
28
+ return new_file
29
+ end
30
+
31
+ # same as above but in global temp folder
32
+ def new_file_path_global(base_name)
33
+ username = Etc.getlogin || Etc.getpwuid(Process.uid).name || 'unknown_user' rescue 'unknown_user'
34
+ return new_file_path_in_folder(Etc.systmpdir,base_name+'_'+username+'_')
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,25 @@
1
+ require 'uri'
2
+ require 'net/http'
3
+ require 'net/https'
4
+
5
+ module Aspera
6
+ module UriReader
7
+ # read some content from some URI, support file: , http: and https: schemes
8
+ def self.read(proxy_pac_uri)
9
+ proxy_uri=URI.parse(proxy_pac_uri)
10
+ if proxy_uri.scheme.eql?('http')
11
+ return Net::HTTP.start(proxy_uri.host, proxy_uri.port){|http|http.get(proxy_uri.path)}.body
12
+ elsif proxy_uri.scheme.eql?('https')
13
+ return Net::HTTPS.start(proxy_uri.host, proxy_uri.port){|http|http.get(proxy_uri.path)}.body
14
+ elsif proxy_uri.scheme.eql?('file')
15
+ local_file_path=proxy_uri.path
16
+ raise "URL shall have a path, check syntax" if local_file_path.nil?
17
+ local_file_path=File.expand_path(local_file_path.gsub(/^\//,'')) if local_file_path.match(/^\/(~|.|..)\//)
18
+ return File.read(local_file_path)
19
+ elsif proxy_uri.scheme.eql?('')
20
+ return File.read(proxy_uri)
21
+ end
22
+ raise "no scheme: [#{proxy_uri.scheme}] for [#{proxy_pac_uri}]"
23
+ end
24
+ end
25
+ end
metadata ADDED
@@ -0,0 +1,288 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: aspera-cli
3
+ version: !ruby/object:Gem::Version
4
+ version: 4.0.0.pre1
5
+ platform: ruby
6
+ authors:
7
+ - Laurent Martin
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2020-12-16 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: xml-simple
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: jwt
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: 1.5.6
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: 1.5.6
41
+ - !ruby/object:Gem::Dependency
42
+ name: ruby-progressbar
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '1.0'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '1.0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: net-ssh
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '4.0'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '4.0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: mimemagic
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '0.3'
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '0.3'
83
+ - !ruby/object:Gem::Dependency
84
+ name: execjs
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '2.0'
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '2.0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: terminal-table
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: '1.8'
104
+ type: :runtime
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: '1.8'
111
+ - !ruby/object:Gem::Dependency
112
+ name: tty-spinner
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - "~>"
116
+ - !ruby/object:Gem::Version
117
+ version: '0.9'
118
+ type: :runtime
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - "~>"
123
+ - !ruby/object:Gem::Version
124
+ version: '0.9'
125
+ - !ruby/object:Gem::Dependency
126
+ name: bundler
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - ">="
130
+ - !ruby/object:Gem::Version
131
+ version: '1.14'
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - ">="
137
+ - !ruby/object:Gem::Version
138
+ version: '1.14'
139
+ - !ruby/object:Gem::Dependency
140
+ name: rake
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - ">="
144
+ - !ruby/object:Gem::Version
145
+ version: '10.0'
146
+ type: :development
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - ">="
151
+ - !ruby/object:Gem::Version
152
+ version: '10.0'
153
+ - !ruby/object:Gem::Dependency
154
+ name: rspec
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - ">="
158
+ - !ruby/object:Gem::Version
159
+ version: '3.0'
160
+ type: :development
161
+ prerelease: false
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - ">="
165
+ - !ruby/object:Gem::Version
166
+ version: '3.0'
167
+ description: A powerful CLI for IBM Aspera products
168
+ email:
169
+ - laurent.martin.aspera@fr.ibm.com
170
+ executables:
171
+ - ascli
172
+ - asession
173
+ extensions: []
174
+ extra_rdoc_files: []
175
+ files:
176
+ - README.md
177
+ - bin/ascli
178
+ - bin/asession
179
+ - docs/Makefile
180
+ - docs/README.erb.md
181
+ - docs/README.md
182
+ - docs/diagrams.txt
183
+ - docs/secrets.make
184
+ - docs/test_env.conf
185
+ - docs/transfer_spec.html
186
+ - examples/aoc.rb
187
+ - examples/proxy.pac
188
+ - examples/transfer.rb
189
+ - lib/aspera/api_detector.rb
190
+ - lib/aspera/ascmd.rb
191
+ - lib/aspera/ats_api.rb
192
+ - lib/aspera/cli/basic_auth_plugin.rb
193
+ - lib/aspera/cli/extended_value.rb
194
+ - lib/aspera/cli/formater.rb
195
+ - lib/aspera/cli/listener/line_dump.rb
196
+ - lib/aspera/cli/listener/logger.rb
197
+ - lib/aspera/cli/listener/progress.rb
198
+ - lib/aspera/cli/listener/progress_multi.rb
199
+ - lib/aspera/cli/main.rb
200
+ - lib/aspera/cli/manager.rb
201
+ - lib/aspera/cli/plugin.rb
202
+ - lib/aspera/cli/plugins/alee.rb
203
+ - lib/aspera/cli/plugins/ats.rb
204
+ - lib/aspera/cli/plugins/bss.rb
205
+ - lib/aspera/cli/plugins/config.rb
206
+ - lib/aspera/cli/plugins/console.rb
207
+ - lib/aspera/cli/plugins/cos.rb
208
+ - lib/aspera/cli/plugins/faspex.rb
209
+ - lib/aspera/cli/plugins/faspex5.rb
210
+ - lib/aspera/cli/plugins/node.rb
211
+ - lib/aspera/cli/plugins/oncloud.rb
212
+ - lib/aspera/cli/plugins/orchestrator.rb
213
+ - lib/aspera/cli/plugins/preview.rb
214
+ - lib/aspera/cli/plugins/server.rb
215
+ - lib/aspera/cli/plugins/shares.rb
216
+ - lib/aspera/cli/plugins/shares2.rb
217
+ - lib/aspera/cli/plugins/sync.rb
218
+ - lib/aspera/cli/plugins/xnode.rb
219
+ - lib/aspera/cli/transfer_agent.rb
220
+ - lib/aspera/cli/version.rb
221
+ - lib/aspera/colors.rb
222
+ - lib/aspera/command_line_builder.rb
223
+ - lib/aspera/fasp/aoc.rb
224
+ - lib/aspera/fasp/connect.rb
225
+ - lib/aspera/fasp/error.rb
226
+ - lib/aspera/fasp/error_info.rb
227
+ - lib/aspera/fasp/http_gw.rb
228
+ - lib/aspera/fasp/installation.rb
229
+ - lib/aspera/fasp/listener.rb
230
+ - lib/aspera/fasp/local.rb
231
+ - lib/aspera/fasp/manager.rb
232
+ - lib/aspera/fasp/node.rb
233
+ - lib/aspera/fasp/parameters.rb
234
+ - lib/aspera/fasp/resume_policy.rb
235
+ - lib/aspera/fasp/uri.rb
236
+ - lib/aspera/faspex_gw.rb
237
+ - lib/aspera/hash_ext.rb
238
+ - lib/aspera/log.rb
239
+ - lib/aspera/nagios.rb
240
+ - lib/aspera/node.rb
241
+ - lib/aspera/oauth.rb
242
+ - lib/aspera/on_cloud.rb
243
+ - lib/aspera/open_application.rb
244
+ - lib/aspera/persistency_action_once.rb
245
+ - lib/aspera/persistency_folder.rb
246
+ - lib/aspera/preview/file_types.rb
247
+ - lib/aspera/preview/generator.rb
248
+ - lib/aspera/preview/image_error.png
249
+ - lib/aspera/preview/options.rb
250
+ - lib/aspera/preview/utils.rb
251
+ - lib/aspera/preview/video_error.png
252
+ - lib/aspera/proxy_auto_config.erb.js
253
+ - lib/aspera/proxy_auto_config.rb
254
+ - lib/aspera/rest.rb
255
+ - lib/aspera/rest_call_error.rb
256
+ - lib/aspera/rest_error_analyzer.rb
257
+ - lib/aspera/rest_errors_aspera.rb
258
+ - lib/aspera/ssh.rb
259
+ - lib/aspera/sync.rb
260
+ - lib/aspera/temp_file_manager.rb
261
+ - lib/aspera/uri_reader.rb
262
+ homepage: https://github.com/IBM/aspera-cli
263
+ licenses:
264
+ - Apache-2.0
265
+ metadata:
266
+ allowed_push_host: https://rubygems.org
267
+ post_install_message:
268
+ rdoc_options: []
269
+ require_paths:
270
+ - lib
271
+ required_ruby_version: !ruby/object:Gem::Requirement
272
+ requirements:
273
+ - - ">"
274
+ - !ruby/object:Gem::Version
275
+ version: '2.0'
276
+ required_rubygems_version: !ruby/object:Gem::Requirement
277
+ requirements:
278
+ - - ">"
279
+ - !ruby/object:Gem::Version
280
+ version: 1.3.1
281
+ requirements:
282
+ - IBM Aspera ascp installed for the user
283
+ rubygems_version: 3.0.3
284
+ signing_key:
285
+ specification_version: 4
286
+ summary: 'Command line tool for Aspera Server products: Aspera on Cloud, Faspex, Shares,
287
+ Node, Console, Orchestrator, Transfer Server'
288
+ test_files: []