aspera-cli 4.2.1 → 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 +1580 -946
- data/bin/ascli +1 -1
- data/bin/asession +3 -5
- data/docs/Makefile +8 -11
- data/docs/README.erb.md +1521 -829
- data/docs/doc_tools.rb +58 -0
- data/docs/test_env.conf +3 -1
- data/examples/faspex4.rb +28 -19
- data/examples/transfer.rb +2 -2
- data/lib/aspera/aoc.rb +157 -134
- data/lib/aspera/cli/listener/progress_multi.rb +5 -5
- data/lib/aspera/cli/main.rb +106 -48
- data/lib/aspera/cli/manager.rb +19 -20
- data/lib/aspera/cli/plugin.rb +22 -7
- data/lib/aspera/cli/plugins/aoc.rb +260 -208
- 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 +360 -189
- data/lib/aspera/cli/plugins/faspex.rb +119 -56
- data/lib/aspera/cli/plugins/faspex5.rb +32 -17
- data/lib/aspera/cli/plugins/node.rb +72 -31
- data/lib/aspera/cli/plugins/orchestrator.rb +5 -3
- data/lib/aspera/cli/plugins/preview.rb +94 -68
- data/lib/aspera/cli/plugins/server.rb +16 -5
- data/lib/aspera/cli/plugins/shares.rb +17 -0
- data/lib/aspera/cli/transfer_agent.rb +64 -82
- data/lib/aspera/cli/version.rb +1 -1
- data/lib/aspera/command_line_builder.rb +48 -31
- data/lib/aspera/cos_node.rb +4 -3
- 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} +42 -38
- data/lib/aspera/fasp/{http_gw.rb → agent_httpgw.rb} +50 -29
- data/lib/aspera/fasp/{node.rb → agent_node.rb} +43 -4
- 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 +78 -91
- data/lib/aspera/fasp/parameters.yaml +531 -0
- data/lib/aspera/fasp/uri.rb +1 -1
- data/lib/aspera/faspex_gw.rb +12 -11
- data/lib/aspera/id_generator.rb +22 -0
- 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 +9 -4
- data/lib/aspera/oauth.rb +116 -100
- data/lib/aspera/persistency_action_once.rb +11 -7
- data/lib/aspera/persistency_folder.rb +6 -26
- data/lib/aspera/rest.rb +66 -50
- data/lib/aspera/sync.rb +40 -35
- data/lib/aspera/timer_limiter.rb +22 -0
- metadata +86 -29
- data/docs/transfer_spec.html +0 -99
- data/lib/aspera/api_detector.rb +0 -60
- data/lib/aspera/fasp/aoc.rb +0 -24
- data/lib/aspera/secrets.rb +0 -20
@@ -44,9 +44,7 @@ module Aspera
|
|
44
44
|
commands=[:create,:list,:show,:modify,:delete,:node,:cluster,:entitlement]
|
45
45
|
command=self.options.get_next_command(commands)
|
46
46
|
# those dont require access key id
|
47
|
-
unless [:create,:list].include?(command)
|
48
|
-
access_key_id=self.options.get_option(:id,:mandatory)
|
49
|
-
end
|
47
|
+
access_key_id=self.instance_identifier() unless [:create,:list].include?(command)
|
50
48
|
case command
|
51
49
|
when :create
|
52
50
|
params=self.options.get_option(:params,:optional) || {}
|
@@ -102,21 +100,24 @@ module Aspera
|
|
102
100
|
ak_data=ats_api_pub_v1.read("access_keys/#{access_key_id}")[:data]
|
103
101
|
server_data=@ats_api_pub.all_servers.select {|i| i['id'].start_with?(ak_data['transfer_server_id'])}.first
|
104
102
|
raise CliError,"no such server found" if server_data.nil?
|
103
|
+
base_url=server_data['transfer_setup_url']
|
105
104
|
api_node=Rest.new({
|
106
|
-
:base_url =>
|
105
|
+
:base_url => base_url,
|
107
106
|
:auth => {
|
108
107
|
:type => :basic,
|
109
108
|
:username => access_key_id,
|
110
|
-
:password => @agents[:
|
109
|
+
:password => @agents[:config].get_secret(url: base_url,username: access_key_id)
|
110
|
+
}})
|
111
111
|
command=self.options.get_next_command(Node::COMMON_ACTIONS)
|
112
112
|
return Node.new(@agents.merge(skip_basic_auth_options: true, node_api: api_node)).execute_action(command)
|
113
113
|
when :cluster
|
114
|
+
base_url=ats_api_pub_v1.params[:base_url]
|
114
115
|
rest_params={
|
115
|
-
:base_url =>
|
116
|
+
:base_url => base_url,
|
116
117
|
:auth => {
|
117
118
|
:type => :basic,
|
118
119
|
:username => access_key_id,
|
119
|
-
:password => @agents[:
|
120
|
+
:password => @agents[:config].get_secret(url: base_url, username: access_key_id)
|
120
121
|
}}
|
121
122
|
api_ak_auth=Rest.new(rest_params)
|
122
123
|
return {:type=>:single_object, :data=>api_ak_auth.read("servers")[:data]}
|
@@ -132,10 +133,10 @@ module Aspera
|
|
132
133
|
when :list
|
133
134
|
return {:type=>:object_list, :data=>@ats_api_pub.all_servers, :fields=>['id','cloud','region']}
|
134
135
|
when :show
|
135
|
-
|
136
|
-
if server_id.nil?
|
136
|
+
if self.options.get_option(:cloud,:optional) or self.options.get_option(:region,:optional)
|
137
137
|
server_data=server_by_cloud_region
|
138
138
|
else
|
139
|
+
server_id=instance_identifier()
|
139
140
|
server_data=@ats_api_pub.all_servers.select {|i| i['id'].eql?(server_id)}.first
|
140
141
|
raise "no such server id" if server_data.nil?
|
141
142
|
end
|
@@ -160,7 +161,7 @@ module Aspera
|
|
160
161
|
def execute_action_api_key
|
161
162
|
command=self.options.get_next_command([:instances, :create, :list, :show, :delete])
|
162
163
|
if [:show,:delete].include?(command)
|
163
|
-
concerned_id=self.
|
164
|
+
concerned_id=self.instance_identifier()
|
164
165
|
end
|
165
166
|
rest_add_header={}
|
166
167
|
if !command.eql?(:instances)
|
@@ -46,7 +46,7 @@ module Aspera
|
|
46
46
|
# give fields to keep order
|
47
47
|
return {:type=>:object_list, :data=>result['data'][object],:fields=> FIELDS['bssSubscriptions']}
|
48
48
|
when :show
|
49
|
-
id = self.
|
49
|
+
id = self.instance_identifier()
|
50
50
|
request={
|
51
51
|
'variables'=>{'id'=>id},
|
52
52
|
'query'=>"query($id: ID!) {#{object}(id: $id) { #{all_fields('bssSubscriptions')} roleAssignments(uniqueSubjectId: true) { id subjectId } instances { id state planId serviceId ssmSubscriptionId entitlement { id } aocOrganization { id subdomainName name status tier urlId trialExpiresAt users(organizationAdmin: true) { id name email atsAdmin subscriptionAdmin } } } } }"
|
@@ -55,7 +55,7 @@ module Aspera
|
|
55
55
|
result.delete('instances')
|
56
56
|
return {:type=>:single_object, :data=>result}
|
57
57
|
when :instances
|
58
|
-
id = self.
|
58
|
+
id = self.instance_identifier()
|
59
59
|
request={
|
60
60
|
'variables'=>{'id'=>id},
|
61
61
|
'query'=>"query($id: ID!) {#{object}(id: $id) { aocOrganization { id subdomainName name status tier urlId trialExpiresAt } } } }"
|