aspera-cli 4.24.1 → 4.25.0.pre

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 (99) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data/CHANGELOG.md +1064 -745
  4. data/CONTRIBUTING.md +43 -100
  5. data/README.md +1281 -720
  6. data/bin/ascli +20 -1
  7. data/bin/asession +23 -27
  8. data/lib/aspera/agent/base.rb +10 -21
  9. data/lib/aspera/agent/connect.rb +2 -3
  10. data/lib/aspera/agent/desktop.rb +2 -2
  11. data/lib/aspera/agent/direct.rb +49 -32
  12. data/lib/aspera/agent/factory.rb +31 -0
  13. data/lib/aspera/api/aoc.rb +134 -76
  14. data/lib/aspera/api/cos_node.rb +3 -2
  15. data/lib/aspera/api/faspex.rb +213 -0
  16. data/lib/aspera/api/node.rb +107 -94
  17. data/lib/aspera/ascmd.rb +1 -2
  18. data/lib/aspera/ascp/installation.rb +73 -58
  19. data/lib/aspera/ascp/management.rb +119 -23
  20. data/lib/aspera/assert.rb +39 -11
  21. data/lib/aspera/cli/error.rb +4 -2
  22. data/lib/aspera/cli/extended_value.rb +91 -67
  23. data/lib/aspera/cli/formatter.rb +62 -27
  24. data/lib/aspera/cli/hints.rb +8 -0
  25. data/lib/aspera/cli/info.rb +4 -4
  26. data/lib/aspera/cli/main.rb +76 -84
  27. data/lib/aspera/cli/manager.rb +352 -248
  28. data/lib/aspera/cli/plugins/alee.rb +5 -4
  29. data/lib/aspera/cli/plugins/aoc.rb +175 -195
  30. data/lib/aspera/cli/plugins/ats.rb +4 -4
  31. data/lib/aspera/cli/plugins/base.rb +343 -0
  32. data/lib/aspera/cli/plugins/basic_auth.rb +45 -0
  33. data/lib/aspera/cli/plugins/config.rb +283 -269
  34. data/lib/aspera/cli/plugins/console.rb +27 -22
  35. data/lib/aspera/cli/plugins/cos.rb +3 -3
  36. data/lib/aspera/cli/plugins/factory.rb +78 -0
  37. data/lib/aspera/cli/plugins/faspex.rb +49 -46
  38. data/lib/aspera/cli/plugins/faspex5.rb +113 -225
  39. data/lib/aspera/cli/plugins/faspio.rb +19 -18
  40. data/lib/aspera/cli/plugins/httpgw.rb +14 -13
  41. data/lib/aspera/cli/plugins/node.rb +162 -149
  42. data/lib/aspera/cli/plugins/oauth.rb +48 -0
  43. data/lib/aspera/cli/plugins/orchestrator.rb +129 -45
  44. data/lib/aspera/cli/plugins/preview.rb +30 -50
  45. data/lib/aspera/cli/plugins/server.rb +21 -21
  46. data/lib/aspera/cli/plugins/shares.rb +45 -47
  47. data/lib/aspera/cli/sync_actions.rb +50 -39
  48. data/lib/aspera/cli/transfer_agent.rb +35 -49
  49. data/lib/aspera/cli/transfer_progress.rb +6 -6
  50. data/lib/aspera/cli/version.rb +3 -3
  51. data/lib/aspera/cli/wizard.rb +70 -55
  52. data/lib/aspera/colors.rb +6 -0
  53. data/lib/aspera/command_line_builder.rb +59 -61
  54. data/lib/aspera/command_line_converter.rb +2 -1
  55. data/lib/aspera/coverage.rb +2 -2
  56. data/lib/aspera/data_repository.rb +1 -1
  57. data/lib/aspera/environment.rb +51 -41
  58. data/lib/aspera/faspex_gw.rb +7 -5
  59. data/lib/aspera/faspex_postproc.rb +1 -1
  60. data/lib/aspera/keychain/factory.rb +1 -2
  61. data/lib/aspera/keychain/macos_security.rb +1 -1
  62. data/lib/aspera/log.rb +37 -9
  63. data/lib/aspera/markdown.rb +31 -0
  64. data/lib/aspera/nagios.rb +7 -6
  65. data/lib/aspera/oauth/base.rb +25 -28
  66. data/lib/aspera/oauth/factory.rb +9 -9
  67. data/lib/aspera/oauth/url_json.rb +2 -1
  68. data/lib/aspera/oauth/web.rb +2 -2
  69. data/lib/aspera/preview/file_types.rb +23 -37
  70. data/lib/aspera/products/connect.rb +7 -6
  71. data/lib/aspera/products/desktop.rb +1 -4
  72. data/lib/aspera/products/other.rb +9 -1
  73. data/lib/aspera/products/transferd.rb +0 -1
  74. data/lib/aspera/rest.rb +168 -113
  75. data/lib/aspera/rest_error_analyzer.rb +4 -4
  76. data/lib/aspera/ssh.rb +7 -4
  77. data/lib/aspera/ssl.rb +41 -0
  78. data/lib/aspera/sync/args.schema.yaml +46 -3
  79. data/lib/aspera/sync/conf.schema.yaml +307 -123
  80. data/lib/aspera/sync/database.rb +2 -1
  81. data/lib/aspera/sync/operations.rb +135 -79
  82. data/lib/aspera/temp_file_manager.rb +17 -5
  83. data/lib/aspera/transfer/error.rb +16 -7
  84. data/lib/aspera/transfer/parameters.rb +35 -22
  85. data/lib/aspera/transfer/resumer.rb +74 -0
  86. data/lib/aspera/transfer/spec.rb +5 -5
  87. data/lib/aspera/transfer/spec.schema.yaml +170 -59
  88. data/lib/aspera/transfer/spec_doc.rb +49 -43
  89. data/lib/aspera/uri_reader.rb +2 -2
  90. data/lib/aspera/web_auth.rb +6 -6
  91. data/lib/transferd_pb.rb +2 -2
  92. data.tar.gz.sig +0 -0
  93. metadata +26 -11
  94. metadata.gz.sig +0 -0
  95. data/lib/aspera/cli/basic_auth_plugin.rb +0 -43
  96. data/lib/aspera/cli/plugin.rb +0 -333
  97. data/lib/aspera/cli/plugin_factory.rb +0 -81
  98. data/lib/aspera/resumer.rb +0 -77
  99. data/lib/aspera/transfer/error_info.rb +0 -91
@@ -2,12 +2,12 @@
2
2
 
3
3
  require 'aspera/rest'
4
4
  require 'aspera/nagios'
5
- require 'aspera/cli/basic_auth_plugin'
5
+ require 'aspera/cli/plugins/basic_auth'
6
6
 
7
7
  module Aspera
8
8
  module Cli
9
9
  module Plugins
10
- class Faspio < BasicAuthPlugin
10
+ class Faspio < BasicAuth
11
11
  class << self
12
12
  def application_name
13
13
  'faspio Gateway'
@@ -15,33 +15,34 @@ module Aspera
15
15
 
16
16
  def detect(base_url)
17
17
  api = Rest.new(base_url: base_url)
18
- ping_result = api.call(operation: 'GET', subpath: 'ping', headers: {'Accept' => Rest::MIME_JSON})
19
- server_type = ping_result[:http]['Server']
20
- return unless ping_result[:data].is_a?(Hash) && ping_result[:data].empty?
18
+ data, http = api.read('ping', ret: :both)
19
+ server_type = http['Server']
20
+ return unless data.is_a?(Hash) && data.empty?
21
21
  return unless server_type.is_a?(String) && server_type.include?('faspio')
22
22
  return {
23
23
  version: server_type.gsub(%r{^.*/}, ''),
24
24
  url: base_url
25
25
  }
26
26
  end
27
+ end
27
28
 
28
- # @param object [Plugin] An instance of this class
29
- # @return [Hash] :preset_value, :test_args
30
- def wizard(object:)
31
- options = object.options
32
- return {
33
- preset_value: {
34
- url: options.get_option(:url, mandatory: true)
35
- },
36
- test_args: 'info'
37
- }
38
- end
29
+ # @param wizard [Wizard] The wizard object
30
+ # @param app_url [Wizard] The wizard object
31
+ # @return [Hash] :preset_value, :test_args
32
+ def wizard(wizard, app_url)
33
+ return {
34
+ preset_value: {
35
+ url: app_url
36
+ },
37
+ test_args: 'info'
38
+ }
39
39
  end
40
+
40
41
  ACTIONS = %i[health bridges].freeze
41
42
 
42
43
  def initialize(**_)
43
44
  super
44
- options.declare(:auth, 'OAuth type of authentication', values: %i[jwt basic])
45
+ options.declare(:auth, 'OAuth type of authentication', allowed: %i[jwt basic])
45
46
  options.declare(:client_id, 'OAuth client identifier')
46
47
  options.declare(:private_key, 'OAuth JWT RSA private key PEM value (prefix file path with @file:)')
47
48
  options.declare(:passphrase, 'OAuth JWT RSA private key passphrase')
@@ -87,7 +88,7 @@ module Aspera
87
88
  rescue StandardError => e
88
89
  nagios.add_critical('api', e.to_s)
89
90
  end
90
- return nagios.result
91
+ Main.result_object_list(nagios.status_list)
91
92
  when :bridges
92
93
  return entity_execute(api: api, entity: 'bridges')
93
94
  end
@@ -1,5 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'aspera/cli/plugins/base'
3
4
  require 'aspera/rest'
4
5
  require 'aspera/api/httpgw'
5
6
  require 'aspera/nagios'
@@ -7,7 +8,7 @@ require 'aspera/nagios'
7
8
  module Aspera
8
9
  module Cli
9
10
  module Plugins
10
- class Httpgw < Plugin
11
+ class Httpgw < Base
11
12
  class << self
12
13
  def application_name
13
14
  'HTTP Gateway'
@@ -22,18 +23,18 @@ module Aspera
22
23
  } if api_info.is_a?(Hash) && api_info.key?('download_endpoint')
23
24
  return
24
25
  end
26
+ end
25
27
 
26
- # @param object [Plugin] An instance of this class
27
- # @return [Hash] :preset_value, :test_args
28
- def wizard(object:)
29
- options = object.options
30
- return {
31
- preset_value: {
32
- url: options.get_option(:url, mandatory: true)
33
- },
34
- test_args: 'info'
35
- }
36
- end
28
+ # @param wizard [Wizard] The wizard object
29
+ # @param app_url [Wizard] The wizard object
30
+ # @return [Hash] :preset_value, :test_args
31
+ def wizard(wizard, app_url)
32
+ return {
33
+ preset_value: {
34
+ url: app_url
35
+ },
36
+ test_args: 'info'
37
+ }
37
38
  end
38
39
  ACTIONS = %i[health info].freeze
39
40
 
@@ -55,7 +56,7 @@ module Aspera
55
56
  rescue StandardError => e
56
57
  nagios.add_critical('api', e.to_s)
57
58
  end
58
- return nagios.result
59
+ Main.result_object_list(nagios.status_list)
59
60
  when :info
60
61
  api_v1 = Api::Httpgw.new(url: base_url)
61
62
  return Main.result_single_object(api_v1.info)