aspera-cli 4.26.1 → 4.26.2

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 (86) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data/CHANGELOG.md +19 -1
  4. data/CONTRIBUTING.md +2 -5
  5. data/bin/ascli +2 -2
  6. data/lib/aspera/agent/direct.rb +1 -1
  7. data/lib/aspera/agent/factory.rb +4 -0
  8. data/lib/aspera/agent/httpgw.rb +1 -1
  9. data/lib/aspera/agent/node.rb +2 -2
  10. data/lib/aspera/api/aoc.rb +43 -36
  11. data/lib/aspera/api/cos_node.rb +1 -1
  12. data/lib/aspera/api/faspex.rb +7 -6
  13. data/lib/aspera/api/node.rb +7 -7
  14. data/lib/aspera/ascmd.rb +4 -4
  15. data/lib/aspera/ascp/installation.rb +6 -2
  16. data/lib/aspera/cli/context.rb +58 -0
  17. data/lib/aspera/cli/extended_value.rb +3 -2
  18. data/lib/aspera/cli/formatter.rb +83 -184
  19. data/lib/aspera/cli/http.rb +167 -0
  20. data/lib/aspera/cli/manager.rb +3 -2
  21. data/lib/aspera/cli/plugins/alee.rb +2 -2
  22. data/lib/aspera/cli/plugins/aoc.rb +78 -67
  23. data/lib/aspera/cli/plugins/ats.rb +16 -16
  24. data/lib/aspera/cli/plugins/base.rb +18 -12
  25. data/lib/aspera/cli/plugins/config.rb +166 -438
  26. data/lib/aspera/cli/plugins/console.rb +7 -7
  27. data/lib/aspera/cli/plugins/cos.rb +2 -2
  28. data/lib/aspera/cli/plugins/factory.rb +3 -0
  29. data/lib/aspera/cli/plugins/faspex.rb +21 -21
  30. data/lib/aspera/cli/plugins/faspex5.rb +64 -44
  31. data/lib/aspera/cli/plugins/faspio.rb +1 -1
  32. data/lib/aspera/cli/plugins/httpgw.rb +2 -2
  33. data/lib/aspera/cli/plugins/node.rb +79 -79
  34. data/lib/aspera/cli/plugins/orchestrator.rb +21 -26
  35. data/lib/aspera/cli/plugins/preview.rb +9 -9
  36. data/lib/aspera/cli/plugins/server.rb +7 -7
  37. data/lib/aspera/cli/plugins/shares.rb +2 -2
  38. data/lib/aspera/cli/preset_manager.rb +235 -0
  39. data/lib/aspera/cli/result.rb +310 -0
  40. data/lib/aspera/cli/{main.rb → runner.rb} +14 -155
  41. data/lib/aspera/cli/sync_actions.rb +14 -10
  42. data/lib/aspera/cli/terminal_formatter.rb +65 -0
  43. data/lib/aspera/cli/transfer_progress.rb +6 -6
  44. data/lib/aspera/cli/version.rb +1 -1
  45. data/lib/aspera/cli/wizard.rb +5 -6
  46. data/lib/aspera/command_line_builder.rb +1 -1
  47. data/lib/aspera/data_repository.rb +4 -0
  48. data/lib/aspera/dot_container.rb +1 -1
  49. data/lib/aspera/environment.rb +22 -3
  50. data/lib/aspera/faspex_gw.rb +1 -1
  51. data/lib/aspera/json_rpc.rb +6 -5
  52. data/lib/aspera/keychain/base.rb +1 -1
  53. data/lib/aspera/keychain/encrypted_hash.rb +1 -1
  54. data/lib/aspera/keychain/factory.rb +1 -1
  55. data/lib/aspera/keychain/macos_security.rb +1 -1
  56. data/lib/aspera/log.rb +6 -2
  57. data/lib/aspera/nagios.rb +2 -2
  58. data/lib/aspera/oauth/base.rb +5 -5
  59. data/lib/aspera/oauth/boot.rb +43 -0
  60. data/lib/aspera/oauth/factory.rb +37 -13
  61. data/lib/aspera/oauth/web.rb +2 -2
  62. data/lib/aspera/oauth.rb +1 -0
  63. data/lib/aspera/persistency_action_once.rb +2 -2
  64. data/lib/aspera/preview/file_types.rb +4 -0
  65. data/lib/aspera/products/connect.rb +3 -0
  66. data/lib/aspera/products/transferd.rb +2 -2
  67. data/lib/aspera/proxy_auto_config.rb +3 -3
  68. data/lib/aspera/rest.rb +8 -4
  69. data/lib/aspera/rest_error_analyzer.rb +4 -0
  70. data/lib/aspera/rest_list.rb +10 -3
  71. data/lib/aspera/schema/IBM Aspera Faspex API-5.0-enhanced.yaml +14 -4
  72. data/lib/aspera/schema/IBM Aspera on Cloud API-0.2.6-enhanced.yaml +827 -88
  73. data/lib/aspera/schema/async_tables.yaml +361 -0
  74. data/lib/aspera/schema/reader.rb +1 -1
  75. data/lib/aspera/schema/registry.rb +13 -6
  76. data/lib/aspera/secret_hider.rb +4 -0
  77. data/lib/aspera/sync/database.rb +14 -10
  78. data/lib/aspera/sync/operations.rb +5 -5
  79. data/lib/aspera/temp_file_manager.rb +4 -0
  80. data/lib/aspera/transfer/parameters.rb +4 -4
  81. data/lib/aspera/transfer/resumer.rb +1 -1
  82. data/lib/aspera/transfer/spec.schema.yaml +17 -8
  83. data/lib/aspera/transfer/uri.rb +1 -1
  84. data.tar.gz.sig +0 -0
  85. metadata +21 -14
  86. metadata.gz.sig +0 -0
@@ -2,6 +2,7 @@
2
2
 
3
3
  require 'aspera/cli/extended_value'
4
4
  require 'aspera/assert'
5
+ require 'aspera/cli/result'
5
6
 
6
7
  module Aspera
7
8
  module Cli
@@ -47,6 +48,10 @@ module Aspera
47
48
  def formatter; @context.formatter; end
48
49
  # @return [Aspera::PersistencyFolder]
49
50
  def persistency; @context.persistency; end
51
+ # @return [Aspera::Cli::PresetManager]
52
+ def presets; @context.presets; end
53
+ # @return [Aspera::Cli::Http]
54
+ def http_config; @context.http_config; end
50
55
 
51
56
  def add_manual_header(has_options = true)
52
57
  # Manual header for all plugins
@@ -67,7 +72,7 @@ module Aspera
67
72
  # @yieldreturn [Hash, nil] Result hash for the operation (optional)
68
73
  # @return [Hash] Result suitable for CLI output
69
74
  def do_bulk_operation(command:, descr: nil, values: Hash, id_result: 'id', fields: :default, schema: nil, &block)
70
- Aspera.assert(block_given?){'missing block'}
75
+ Aspera.assert(block_given?, 'missing block')
71
76
  is_bulk = options.get_option(:bulk)
72
77
  case values
73
78
  when :identifier
@@ -100,10 +105,10 @@ module Aspera
100
105
  end
101
106
  display_fields = [id_result, 'status']
102
107
  if is_bulk
103
- return Main.result_object_list(result_list, fields: display_fields)
108
+ return Result::ObjectList.new(result_list, fields: display_fields)
104
109
  else
105
110
  display_fields = fields unless fields.eql?(:default)
106
- return Main.result_single_object(result_list.first, fields: display_fields)
111
+ return Result::SingleObject.new(result_list.first, fields: display_fields)
107
112
  end
108
113
  end
109
114
 
@@ -130,6 +135,7 @@ module Aspera
130
135
  id_as_arg: false,
131
136
  is_singleton: false,
132
137
  list_query: nil,
138
+ schema: nil,
133
139
  &block
134
140
  )
135
141
  command = options.get_next_command(Operations::ALL) if command.nil?
@@ -144,7 +150,7 @@ module Aspera
144
150
  case command
145
151
  when :create
146
152
  raise BadArgument, 'cannot create singleton' if is_singleton
147
- return do_bulk_operation(command: command, descr: 'data', fields: display_fields) do |params|
153
+ return do_bulk_operation(command: command, descr: 'data', fields: display_fields, schema: schema) do |params|
148
154
  api.create(entity, params)
149
155
  end
150
156
  when :delete
@@ -158,17 +164,17 @@ module Aspera
158
164
  content_type: Mime::JSON,
159
165
  body: {delete_style => one_res_id}
160
166
  )
161
- return Main.result_status('deleted')
167
+ return Result::Status.new('deleted')
162
168
  end
163
169
  return do_bulk_operation(command: command, values: one_res_id) do |one_id|
164
170
  api.delete("#{entity}/#{one_id}", query_read_delete)
165
171
  {'id' => one_id}
166
172
  end
167
173
  when :show
168
- return Main.result_single_object(api.read(one_res_path), fields: display_fields)
174
+ return Result::SingleObject.new(api.read(one_res_path), fields: display_fields)
169
175
  when :list
170
176
  data, http = api.read(entity, query_read_delete, ret: :both)
171
- return Main.result_empty if http.code == '204'
177
+ return Result::Empty.new if http.code == '204'
172
178
  # TODO: not generic : which application is this for ?
173
179
  if http['Content-Type'].start_with?('application/vnd.api+json')
174
180
  Log.log.debug('is vnd.api')
@@ -177,17 +183,17 @@ module Aspera
177
183
  data = data[items_key] if items_key
178
184
  case data
179
185
  when Hash
180
- return Main.result_single_object(data, fields: display_fields)
186
+ return Result::SingleObject.new(data, fields: display_fields)
181
187
  when Array
182
- return Main.result_object_list(data, fields: display_fields) if data.empty? || data.first.is_a?(Hash)
183
- return Main.result_value_list(data)
188
+ return Result::ObjectList.new(data, fields: display_fields) if data.empty? || data.first.is_a?(Hash)
189
+ return Result::ValueList.new(data)
184
190
  else
185
191
  Aspera.error_unexpected_value(data.class.name){'list type'}
186
192
  end
187
193
  when :modify
188
- parameters = value_create_modify(command: command)
194
+ parameters = value_create_modify(command: command, schema: schema)
189
195
  api.update(one_res_path, parameters)
190
- return Main.result_status('modified')
196
+ return Result::Status.new('modified')
191
197
  else
192
198
  Aspera.error_unexpected_value(command){'command'}
193
199
  end