aspera-cli 4.14.0 → 4.15.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data/CHANGELOG.md +54 -3
- data/CONTRIBUTING.md +7 -7
- data/README.md +1457 -880
- data/bin/ascli +18 -9
- data/bin/asession +12 -14
- data/examples/proxy.pac +1 -1
- data/lib/aspera/aoc.rb +198 -127
- data/lib/aspera/ascmd.rb +24 -14
- data/lib/aspera/cli/basic_auth_plugin.rb +9 -6
- data/lib/aspera/cli/error.rb +17 -0
- data/lib/aspera/cli/extended_value.rb +47 -12
- data/lib/aspera/cli/formatter.rb +260 -171
- data/lib/aspera/cli/hints.rb +80 -0
- data/lib/aspera/cli/main.rb +101 -147
- data/lib/aspera/cli/manager.rb +160 -124
- data/lib/aspera/cli/plugin.rb +70 -59
- data/lib/aspera/cli/plugins/alee.rb +0 -1
- data/lib/aspera/cli/plugins/aoc.rb +239 -273
- data/lib/aspera/cli/plugins/ats.rb +8 -5
- data/lib/aspera/cli/plugins/bss.rb +2 -2
- data/lib/aspera/cli/plugins/config.rb +516 -375
- data/lib/aspera/cli/plugins/console.rb +40 -0
- data/lib/aspera/cli/plugins/cos.rb +4 -5
- data/lib/aspera/cli/plugins/faspex.rb +99 -84
- data/lib/aspera/cli/plugins/faspex5.rb +179 -148
- data/lib/aspera/cli/plugins/node.rb +219 -153
- data/lib/aspera/cli/plugins/orchestrator.rb +52 -17
- data/lib/aspera/cli/plugins/preview.rb +46 -32
- data/lib/aspera/cli/plugins/server.rb +57 -17
- data/lib/aspera/cli/plugins/shares.rb +34 -12
- data/lib/aspera/cli/sync_actions.rb +68 -0
- data/lib/aspera/cli/transfer_agent.rb +45 -55
- data/lib/aspera/cli/transfer_progress.rb +74 -0
- data/lib/aspera/cli/version.rb +1 -1
- data/lib/aspera/colors.rb +3 -1
- data/lib/aspera/command_line_builder.rb +14 -11
- data/lib/aspera/cos_node.rb +3 -2
- data/lib/aspera/environment.rb +17 -6
- data/lib/aspera/fasp/agent_aspera.rb +126 -0
- data/lib/aspera/fasp/agent_base.rb +31 -77
- data/lib/aspera/fasp/agent_connect.rb +21 -22
- data/lib/aspera/fasp/agent_direct.rb +88 -102
- data/lib/aspera/fasp/agent_httpgw.rb +196 -192
- data/lib/aspera/fasp/agent_node.rb +41 -34
- data/lib/aspera/fasp/agent_trsdk.rb +75 -34
- data/lib/aspera/fasp/error_info.rb +2 -2
- data/lib/aspera/fasp/faux_file.rb +52 -0
- data/lib/aspera/fasp/installation.rb +43 -184
- data/lib/aspera/fasp/management.rb +244 -0
- data/lib/aspera/fasp/parameters.rb +59 -26
- data/lib/aspera/fasp/parameters.yaml +75 -8
- data/lib/aspera/fasp/products.rb +162 -0
- data/lib/aspera/fasp/transfer_spec.rb +1 -1
- data/lib/aspera/fasp/uri.rb +4 -4
- data/lib/aspera/faspex_gw.rb +2 -2
- data/lib/aspera/faspex_postproc.rb +2 -2
- data/lib/aspera/hash_ext.rb +2 -2
- data/lib/aspera/json_rpc.rb +49 -0
- data/lib/aspera/line_logger.rb +23 -0
- data/lib/aspera/log.rb +57 -16
- data/lib/aspera/node.rb +97 -14
- data/lib/aspera/oauth.rb +36 -18
- data/lib/aspera/open_application.rb +4 -4
- data/lib/aspera/persistency_folder.rb +2 -2
- data/lib/aspera/preview/file_types.rb +4 -2
- data/lib/aspera/preview/generator.rb +22 -35
- data/lib/aspera/preview/options.rb +2 -0
- data/lib/aspera/preview/terminal.rb +24 -13
- data/lib/aspera/preview/utils.rb +19 -26
- data/lib/aspera/rest.rb +103 -72
- data/lib/aspera/rest_call_error.rb +1 -1
- data/lib/aspera/rest_error_analyzer.rb +15 -14
- data/lib/aspera/rest_errors_aspera.rb +37 -34
- data/lib/aspera/secret_hider.rb +14 -16
- data/lib/aspera/ssh.rb +4 -1
- data/lib/aspera/sync.rb +128 -122
- data/lib/aspera/temp_file_manager.rb +10 -3
- data/lib/aspera/web_auth.rb +10 -7
- data/lib/aspera/web_server_simple.rb +9 -4
- data.tar.gz.sig +0 -0
- metadata +33 -15
- metadata.gz.sig +0 -0
- data/lib/aspera/cli/listener/line_dump.rb +0 -19
- data/lib/aspera/cli/listener/logger.rb +0 -22
- data/lib/aspera/cli/listener/progress.rb +0 -50
- data/lib/aspera/cli/listener/progress_multi.rb +0 -84
- data/lib/aspera/cli/plugins/sync.rb +0 -44
- data/lib/aspera/fasp/listener.rb +0 -13
@@ -1,5 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
# cspell:ignore trustpolicy
|
4
|
+
|
3
5
|
require 'aspera/cli/plugins/node'
|
4
6
|
require 'aspera/ats_api'
|
5
7
|
|
@@ -9,6 +11,7 @@ module Aspera
|
|
9
11
|
# Access Aspera Transfer Service
|
10
12
|
# https://developer.ibm.com/aspera/docs/ats-api-reference/creating-ats-api-keys/
|
11
13
|
class Ats < Aspera::Cli::Plugin
|
14
|
+
CLOUD_TABLE = %w[id name].freeze
|
12
15
|
def initialize(env)
|
13
16
|
super(env)
|
14
17
|
options.declare(:ibm_api_key, 'IBM API key, see https://cloud.ibm.com/iam/apikeys')
|
@@ -89,7 +92,7 @@ module Aspera
|
|
89
92
|
res = ats_api_pub_v1.read("access_keys/#{access_key_id}")
|
90
93
|
return {type: :single_object, data: res[:data]}
|
91
94
|
when :modify
|
92
|
-
params = value_create_modify(command: command
|
95
|
+
params = value_create_modify(command: command)
|
93
96
|
params['id'] = access_key_id
|
94
97
|
ats_api_pub_v1.update("access_keys/#{access_key_id}", params)
|
95
98
|
return Main.result_status('modified')
|
@@ -103,7 +106,7 @@ module Aspera
|
|
103
106
|
when :node
|
104
107
|
ak_data = ats_api_pub_v1.read("access_keys/#{access_key_id}")[:data]
|
105
108
|
server_data = @ats_api_pub.all_servers.find {|i| i['id'].start_with?(ak_data['transfer_server_id'])}
|
106
|
-
raise
|
109
|
+
raise Cli::Error, 'no such server found' if server_data.nil?
|
107
110
|
node_url = server_data['transfer_setup_url']
|
108
111
|
api_node = Aspera::Node.new(params: {
|
109
112
|
base_url: node_url,
|
@@ -113,7 +116,7 @@ module Aspera
|
|
113
116
|
password: @agents[:config].lookup_secret(url: node_url, username: access_key_id)
|
114
117
|
}})
|
115
118
|
command = options.get_next_command(Node::COMMANDS_GEN4)
|
116
|
-
return Node.new(@agents
|
119
|
+
return Node.new(@agents, api: api_node).execute_command_gen4(command, ak_data['root_file_id'])
|
117
120
|
when :cluster
|
118
121
|
ats_url = ats_api_pub_v1.params[:base_url]
|
119
122
|
rest_params = {
|
@@ -133,7 +136,7 @@ module Aspera
|
|
133
136
|
command = options.get_next_command(%i[clouds list show])
|
134
137
|
case command
|
135
138
|
when :clouds
|
136
|
-
return {type: :
|
139
|
+
return {type: :object_list, data: @ats_api_pub.cloud_names.map { |k, v| CLOUD_TABLE.zip([k, v]).to_h }}
|
137
140
|
when :list
|
138
141
|
return {type: :object_list, data: @ats_api_pub.all_servers, fields: %w[id cloud region]}
|
139
142
|
when :show
|
@@ -186,7 +189,7 @@ module Aspera
|
|
186
189
|
Log.log.warn{"more instances remaining: #{instances['remaining']}"} unless instances['remaining'].to_i.eql?(0)
|
187
190
|
return {type: :value_list, data: instances['data'], name: 'instance'}
|
188
191
|
when :create
|
189
|
-
created_key = ats_ibm_api.create('api_keys', value_create_modify(command: command, default: {}
|
192
|
+
created_key = ats_ibm_api.create('api_keys', value_create_modify(command: command, default: {}))[:data]
|
190
193
|
return {type: :single_object, data: created_key}
|
191
194
|
when :list # list known api keys in ATS (this require an api_key ...)
|
192
195
|
res = ats_ibm_api.read('api_keys', {'offset' => 0, 'max_results' => 1000})
|
@@ -48,8 +48,8 @@ module Aspera
|
|
48
48
|
id = instance_identifier
|
49
49
|
request = {
|
50
50
|
'variables' => {'id' => id},
|
51
|
-
'query' => "query($id: ID!) {#{object}(id: $id) { #{all_fields('bssSubscriptions')} roleAssignments(uniqueSubjectId: true) { id subjectId } "\
|
52
|
-
'instances { id state planId serviceId ssmSubscriptionId entitlement { id } aocOrganization { id subdomainName name status tier urlId trialExpiresAt '\
|
51
|
+
'query' => "query($id: ID!) {#{object}(id: $id) { #{all_fields('bssSubscriptions')} roleAssignments(uniqueSubjectId: true) { id subjectId } " \
|
52
|
+
'instances { id state planId serviceId ssmSubscriptionId entitlement { id } aocOrganization { id subdomainName name status tier urlId trialExpiresAt ' \
|
53
53
|
'users(organizationAdmin: true) { id name email atsAdmin subscriptionAdmin } } } } }'
|
54
54
|
}
|
55
55
|
result = @api_bss.create('graphql', request)[:data]['data'][object].first
|