aspera-cli 4.4.0 → 4.7.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 +2095 -1503
- data/bin/ascli +2 -1
- data/bin/asession +4 -5
- data/docs/test_env.conf +3 -0
- data/examples/aoc.rb +4 -3
- data/examples/faspex4.rb +25 -25
- data/examples/proxy.pac +1 -1
- data/examples/transfer.rb +17 -17
- data/lib/aspera/aoc.rb +238 -185
- data/lib/aspera/ascmd.rb +93 -83
- data/lib/aspera/ats_api.rb +11 -10
- data/lib/aspera/cli/basic_auth_plugin.rb +13 -14
- data/lib/aspera/cli/extended_value.rb +42 -33
- data/lib/aspera/cli/formater.rb +142 -108
- data/lib/aspera/cli/info.rb +17 -0
- data/lib/aspera/cli/listener/line_dump.rb +3 -2
- data/lib/aspera/cli/listener/logger.rb +2 -1
- data/lib/aspera/cli/listener/progress.rb +16 -18
- data/lib/aspera/cli/listener/progress_multi.rb +18 -21
- data/lib/aspera/cli/main.rb +173 -149
- data/lib/aspera/cli/manager.rb +163 -168
- data/lib/aspera/cli/plugin.rb +43 -31
- data/lib/aspera/cli/plugins/alee.rb +6 -6
- data/lib/aspera/cli/plugins/aoc.rb +405 -370
- data/lib/aspera/cli/plugins/ats.rb +86 -79
- data/lib/aspera/cli/plugins/bss.rb +14 -16
- data/lib/aspera/cli/plugins/config.rb +580 -362
- data/lib/aspera/cli/plugins/console.rb +23 -19
- data/lib/aspera/cli/plugins/cos.rb +18 -18
- data/lib/aspera/cli/plugins/faspex.rb +201 -158
- data/lib/aspera/cli/plugins/faspex5.rb +80 -57
- data/lib/aspera/cli/plugins/node.rb +183 -166
- data/lib/aspera/cli/plugins/orchestrator.rb +71 -67
- data/lib/aspera/cli/plugins/preview.rb +92 -96
- data/lib/aspera/cli/plugins/server.rb +79 -75
- data/lib/aspera/cli/plugins/shares.rb +35 -19
- data/lib/aspera/cli/plugins/sync.rb +20 -22
- data/lib/aspera/cli/transfer_agent.rb +76 -113
- data/lib/aspera/cli/version.rb +2 -1
- data/lib/aspera/colors.rb +35 -27
- data/lib/aspera/command_line_builder.rb +48 -34
- data/lib/aspera/cos_node.rb +29 -21
- data/lib/aspera/data_repository.rb +3 -2
- data/lib/aspera/environment.rb +50 -45
- data/lib/aspera/fasp/{manager.rb → agent_base.rb} +28 -25
- data/lib/aspera/fasp/{connect.rb → agent_connect.rb} +52 -43
- data/lib/aspera/fasp/{local.rb → agent_direct.rb} +58 -72
- data/lib/aspera/fasp/{http_gw.rb → agent_httpgw.rb} +37 -43
- data/lib/aspera/fasp/{node.rb → agent_node.rb} +35 -16
- data/lib/aspera/fasp/agent_trsdk.rb +104 -0
- data/lib/aspera/fasp/error.rb +2 -1
- data/lib/aspera/fasp/error_info.rb +68 -52
- data/lib/aspera/fasp/installation.rb +152 -124
- data/lib/aspera/fasp/listener.rb +1 -0
- data/lib/aspera/fasp/parameters.rb +87 -92
- data/lib/aspera/fasp/parameters.yaml +305 -249
- data/lib/aspera/fasp/resume_policy.rb +11 -14
- data/lib/aspera/fasp/transfer_spec.rb +26 -0
- data/lib/aspera/fasp/uri.rb +22 -21
- data/lib/aspera/faspex_gw.rb +55 -89
- data/lib/aspera/hash_ext.rb +4 -3
- data/lib/aspera/id_generator.rb +8 -7
- data/lib/aspera/keychain/encrypted_hash.rb +121 -0
- data/lib/aspera/keychain/macos_security.rb +90 -0
- data/lib/aspera/log.rb +55 -37
- data/lib/aspera/nagios.rb +13 -12
- data/lib/aspera/node.rb +30 -25
- data/lib/aspera/oauth.rb +175 -226
- data/lib/aspera/open_application.rb +4 -3
- data/lib/aspera/persistency_action_once.rb +6 -6
- data/lib/aspera/persistency_folder.rb +5 -9
- data/lib/aspera/preview/file_types.rb +6 -5
- data/lib/aspera/preview/generator.rb +25 -24
- data/lib/aspera/preview/options.rb +16 -14
- data/lib/aspera/preview/utils.rb +98 -98
- data/lib/aspera/{proxy_auto_config.erb.js → proxy_auto_config.js} +23 -31
- data/lib/aspera/proxy_auto_config.rb +111 -20
- data/lib/aspera/rest.rb +154 -135
- data/lib/aspera/rest_call_error.rb +2 -2
- data/lib/aspera/rest_error_analyzer.rb +23 -25
- data/lib/aspera/rest_errors_aspera.rb +15 -14
- data/lib/aspera/ssh.rb +12 -10
- data/lib/aspera/sync.rb +42 -41
- data/lib/aspera/temp_file_manager.rb +18 -14
- data/lib/aspera/timer_limiter.rb +2 -1
- data/lib/aspera/uri_reader.rb +7 -5
- data/lib/aspera/web_auth.rb +79 -76
- metadata +116 -29
- data/docs/Makefile +0 -66
- data/docs/README.erb.md +0 -3973
- data/docs/README.md +0 -13
- data/docs/diagrams.txt +0 -49
- data/docs/doc_tools.rb +0 -58
- data/lib/aspera/api_detector.rb +0 -60
- data/lib/aspera/cli/plugins/shares2.rb +0 -114
- data/lib/aspera/secrets.rb +0 -20
data/lib/aspera/web_auth.rb
CHANGED
|
@@ -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
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
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
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
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
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
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
|
-
:
|
|
56
|
-
:
|
|
57
|
-
:
|
|
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
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
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(
|
|
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
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
@
|
|
98
|
-
|
|
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 @
|
|
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
|
+
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:
|
|
11
|
+
date: 2022-03-23 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,39 @@ 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'
|
|
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:
|
|
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:
|
|
174
|
+
name: webrick
|
|
113
175
|
requirement: !ruby/object:Gem::Requirement
|
|
114
176
|
requirements:
|
|
115
177
|
- - "~>"
|
|
116
178
|
- !ruby/object:Gem::Version
|
|
117
|
-
version: '
|
|
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: '
|
|
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:
|
|
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.
|
|
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.
|
|
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/
|
|
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.
|
|
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
|
-
|