kpm 0.7.2 → 0.8.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.
Files changed (74) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +66 -0
  3. data/Gemfile +2 -0
  4. data/README.adoc +111 -109
  5. data/Rakefile +2 -1
  6. data/bin/kpm +4 -2
  7. data/kpm.gemspec +8 -6
  8. data/lib/kpm.rb +3 -0
  9. data/lib/kpm/account.rb +267 -338
  10. data/lib/kpm/base_artifact.rb +33 -39
  11. data/lib/kpm/base_installer.rb +69 -83
  12. data/lib/kpm/blob.rb +29 -0
  13. data/lib/kpm/cli.rb +3 -1
  14. data/lib/kpm/coordinates.rb +6 -9
  15. data/lib/kpm/database.rb +90 -114
  16. data/lib/kpm/diagnostic_file.rb +126 -147
  17. data/lib/kpm/formatter.rb +74 -46
  18. data/lib/kpm/inspector.rb +22 -32
  19. data/lib/kpm/installer.rb +53 -46
  20. data/lib/kpm/kaui_artifact.rb +4 -3
  21. data/lib/kpm/killbill_plugin_artifact.rb +10 -7
  22. data/lib/kpm/killbill_server_artifact.rb +13 -12
  23. data/lib/kpm/migrations.rb +8 -7
  24. data/lib/kpm/nexus_helper/actions.rb +47 -8
  25. data/lib/kpm/nexus_helper/nexus_api_calls_v2.rb +87 -94
  26. data/lib/kpm/nexus_helper/nexus_facade.rb +5 -3
  27. data/lib/kpm/plugins_directory.rb +9 -8
  28. data/lib/kpm/plugins_directory.yml +8 -175
  29. data/lib/kpm/plugins_manager.rb +29 -24
  30. data/lib/kpm/sha1_checker.rb +31 -18
  31. data/lib/kpm/system.rb +105 -136
  32. data/lib/kpm/system_helpers/cpu_information.rb +56 -55
  33. data/lib/kpm/system_helpers/disk_space_information.rb +60 -63
  34. data/lib/kpm/system_helpers/entropy_available.rb +37 -39
  35. data/lib/kpm/system_helpers/memory_information.rb +52 -51
  36. data/lib/kpm/system_helpers/os_information.rb +45 -47
  37. data/lib/kpm/system_helpers/system_proxy.rb +10 -10
  38. data/lib/kpm/tasks.rb +364 -437
  39. data/lib/kpm/tenant_config.rb +68 -83
  40. data/lib/kpm/tomcat_manager.rb +9 -8
  41. data/lib/kpm/trace_logger.rb +18 -16
  42. data/lib/kpm/uninstaller.rb +81 -14
  43. data/lib/kpm/utils.rb +13 -14
  44. data/lib/kpm/version.rb +3 -1
  45. data/packaging/Gemfile +2 -0
  46. data/pom.xml +1 -1
  47. data/spec/kpm/remote/base_artifact_spec.rb +13 -15
  48. data/spec/kpm/remote/base_installer_spec.rb +30 -29
  49. data/spec/kpm/remote/installer_spec.rb +73 -73
  50. data/spec/kpm/remote/kaui_artifact_spec.rb +7 -6
  51. data/spec/kpm/remote/killbill_plugin_artifact_spec.rb +19 -24
  52. data/spec/kpm/remote/killbill_server_artifact_spec.rb +17 -16
  53. data/spec/kpm/remote/migrations_spec.rb +12 -11
  54. data/spec/kpm/remote/nexus_facade_spec.rb +30 -26
  55. data/spec/kpm/remote/tenant_config_spec.rb +27 -26
  56. data/spec/kpm/remote/tomcat_manager_spec.rb +2 -1
  57. data/spec/kpm/unit/actions_spec.rb +52 -0
  58. data/spec/kpm/unit/base_artifact_spec.rb +17 -16
  59. data/spec/kpm/unit/cpu_information_spec.rb +67 -0
  60. data/spec/kpm/unit/disk_space_information_spec.rb +47 -0
  61. data/spec/kpm/unit/entropy_information_spec.rb +36 -0
  62. data/spec/kpm/unit/formatter_spec.rb +163 -0
  63. data/spec/kpm/unit/inspector_spec.rb +34 -42
  64. data/spec/kpm/unit/installer_spec.rb +5 -4
  65. data/spec/kpm/unit/memory_information_spec.rb +102 -0
  66. data/spec/kpm/unit/os_information_spec.rb +38 -0
  67. data/spec/kpm/unit/plugins_directory_spec.rb +34 -18
  68. data/spec/kpm/unit/plugins_manager_spec.rb +61 -65
  69. data/spec/kpm/unit/sha1_checker_spec.rb +107 -60
  70. data/spec/kpm/unit/uninstaller_spec.rb +107 -61
  71. data/spec/kpm/unit_mysql/account_spec.rb +120 -135
  72. data/spec/spec_helper.rb +19 -17
  73. data/tasks/package.rake +18 -18
  74. metadata +17 -8
@@ -1,66 +1,64 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module KPM
2
4
  module SystemProxy
3
- module OsInformation
4
- class << self
5
+ class OsInformation
6
+ attr_reader :os_info, :labels
5
7
 
6
- def fetch
7
- os_information = nil
8
- if OS.windows?
9
- os_information = fetch_windows
10
- elsif OS.linux?
11
- os_information = fetch_linux
12
- elsif OS.mac?
13
- os_information = fetch_mac
14
- end
8
+ def initialize
9
+ @os_info = fetch
10
+ @labels = [{ label: :os_detail },
11
+ { label: :value }]
12
+ end
15
13
 
16
- os_information
17
- end
14
+ private
18
15
 
19
- def get_labels
20
- labels = [{:label => :os_detail},
21
- {:label => :value}]
22
- labels
16
+ def fetch
17
+ os_information = nil
18
+ if OS.windows?
19
+ os_information = fetch_windows
20
+ elsif OS.linux?
21
+ os_information = fetch_linux
22
+ elsif OS.mac?
23
+ os_information = fetch_mac
23
24
  end
24
25
 
25
- private
26
- def fetch_linux
27
- os_data = `lsb_release -a 2>&1`
26
+ os_information
27
+ end
28
28
 
29
- if os_data.nil? || os_data.include?('lsb_release: not found')
30
- os_data = `cat /etc/issue 2>&1`
31
- os_data = 'Description:'+os_data.gsub('\n \l','')
32
- end
29
+ def fetch_linux
30
+ os_data = `lsb_release -a 2>&1`
33
31
 
34
- os = get_hash(os_data)
35
- os
36
- end
32
+ if os_data.nil? || os_data.include?('lsb_release: not found')
33
+ os_data = `cat /etc/issue 2>&1`
34
+ os_data = 'Description:' + os_data.gsub('\n \l', '')
35
+ end
37
36
 
38
- def fetch_mac
39
- os_data = `sw_vers`
40
- os = get_hash(os_data)
41
- os
42
- end
37
+ build_hash(os_data)
38
+ end
43
39
 
44
- def fetch_windows
45
- os_data = `systeminfo | findstr /C:"OS"`
46
- os = get_hash(os_data)
47
- os
48
- end
40
+ def fetch_mac
41
+ os_data = `sw_vers`
42
+ build_hash(os_data)
43
+ end
49
44
 
50
- def get_hash(data)
51
- os = Hash.new
45
+ def fetch_windows
46
+ os_data = `systeminfo | findstr /C:"OS"`
47
+ build_hash(os_data)
48
+ end
52
49
 
53
- unless data.nil?
54
- data.split("\n").each do |info|
55
- infos = info.split(':')
56
- os[infos[0].to_s.strip] = {:os_detail => infos[0].to_s.strip, :value => infos[1].to_s.strip}
57
- end
58
- end
50
+ def build_hash(data)
51
+ os = {}
59
52
 
60
- os
53
+ unless data.nil?
54
+ data.split("\n").each do |info|
55
+ infos = info.split(':')
56
+ os[infos[0].to_s.strip] = { os_detail: infos[0].to_s.strip, value: infos[1].to_s.strip }
61
57
  end
58
+ end
62
59
 
60
+ os
63
61
  end
64
62
  end
65
63
  end
66
- end
64
+ end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require_relative 'cpu_information'
2
4
  require_relative 'memory_information'
3
5
  require_relative 'disk_space_information'
@@ -5,24 +7,22 @@ require_relative 'entropy_available'
5
7
  require_relative 'os_information'
6
8
  module KPM
7
9
  module SystemProxy
8
-
9
10
  module OS
10
- def OS.windows?
11
- (/cygwin|mswin|mingw|bccwin|wince|emx/ =~ RbConfig::CONFIG["host_os"]) != nil
11
+ def self.windows?
12
+ (/cygwin|mswin|mingw|bccwin|wince|emx/ =~ RbConfig::CONFIG['host_os']) != nil
12
13
  end
13
14
 
14
- def OS.mac?
15
- (/darwin/ =~ RbConfig::CONFIG["host_os"]) != nil
15
+ def self.mac?
16
+ (/darwin/ =~ RbConfig::CONFIG['host_os']) != nil
16
17
  end
17
18
 
18
- def OS.unix?
19
+ def self.unix?
19
20
  !OS.windows?
20
21
  end
21
22
 
22
- def OS.linux?
23
- OS.unix? and not OS.mac?
23
+ def self.linux?
24
+ OS.unix? && !OS.mac?
24
25
  end
25
26
  end
26
-
27
27
  end
28
- end
28
+ end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'highline'
2
4
  require 'logger'
3
5
  require 'thor'
@@ -10,81 +12,96 @@ module KPM
10
12
  def self.included(base)
11
13
  base.send :include, ::Thor::Actions
12
14
  base.class_eval do
13
-
14
-
15
- desc 'KPM version', 'Return current KPM version.'
15
+ desc 'version', 'Return current KPM version.'
16
16
  def version
17
17
  say "KPM version #{KPM::VERSION}"
18
18
  end
19
19
 
20
20
  class_option :overrides,
21
- :type => :hash,
22
- :default => nil,
23
- :desc => "A hashed list of overrides. Available options are 'url', 'repository', 'username', and 'password'."
21
+ type: :hash,
22
+ default: nil,
23
+ desc: "A hashed list of overrides. Available options are 'url', 'repository', 'username', and 'password'."
24
24
 
25
25
  class_option :ssl_verify,
26
- :type => :boolean,
27
- :default => true,
28
- :desc => 'Set to false to disable SSL Verification.'
26
+ type: :boolean,
27
+ default: true,
28
+ desc: 'Set to false to disable SSL Verification.'
29
29
 
30
30
  method_option :force_download,
31
- :type => :boolean,
32
- :default => false,
33
- :desc => 'Force download of the artifact even if it exists'
31
+ type: :boolean,
32
+ default: false,
33
+ desc: 'Force download of the artifact even if it exists'
34
34
  method_option :verify_sha1,
35
- :type => :boolean,
36
- :default => true,
37
- :desc => 'Validate sha1 sum'
35
+ type: :boolean,
36
+ default: true,
37
+ desc: 'Validate sha1 sum'
38
38
  desc 'install config_file', 'Install Kill Bill server and plugins according to the specified YAML configuration file.'
39
- def install(config_file=nil)
39
+ def install(config_file = nil)
40
40
  help = Installer.from_file(config_file).install(options[:force_download], options[:verify_sha1])
41
41
  help = JSON(help)
42
42
  say help['help'], :green unless help['help'].nil?
43
43
  end
44
44
 
45
45
  method_option :destination,
46
- :type => :string,
47
- :default => nil,
48
- :desc => 'A different folder other than the default bundles directory.'
46
+ type: :string,
47
+ default: nil,
48
+ desc: 'A different folder other than the default bundles directory.'
49
49
  method_option :force,
50
- :type => :boolean,
51
- :default => nil,
52
- :desc => 'Don\'t ask for confirmation while deleting multiple versions of a plugin.'
50
+ type: :boolean,
51
+ default: nil,
52
+ desc: 'Don\'t ask for confirmation while deleting multiple versions of a plugin.'
53
+ method_option :version,
54
+ type: :string,
55
+ default: nil,
56
+ desc: 'Specific plugin version to uninstall'
53
57
  desc 'uninstall plugin', 'Uninstall the specified plugin, identified by its name or key, from current deployment'
54
58
  def uninstall(plugin)
55
- say 'Done!' if Uninstaller.new(options[:destination]).uninstall_plugin(plugin, options[:force])
59
+ Uninstaller.new(options[:destination]).uninstall_plugin(plugin, options[:force], options[:version])
56
60
  end
57
61
 
58
62
  method_option :destination,
59
- :type => :string,
60
- :default => nil,
61
- :desc => 'A different folder other than the current working directory.'
63
+ type: :string,
64
+ default: nil,
65
+ desc: 'A different folder other than the default bundles directory.'
66
+ method_option :dry_run,
67
+ type: :boolean,
68
+ default: false,
69
+ desc: 'Print the plugins which would be deleted'
70
+ desc 'cleanup', 'Delete old plugins'
71
+ def cleanup
72
+ Uninstaller.new(options[:destination]).uninstall_non_default_plugins(options[:dry_run])
73
+ end
74
+
75
+ method_option :destination,
76
+ type: :string,
77
+ default: nil,
78
+ desc: 'A different folder other than the current working directory.'
62
79
  method_option :bundles_dir,
63
- :type => :string,
64
- :default => nil,
65
- :desc => 'The location where bundles will be installed (along with sha1 file)'
80
+ type: :string,
81
+ default: nil,
82
+ desc: 'The location where bundles will be installed (along with sha1 file)'
66
83
  method_option :force_download,
67
- :type => :boolean,
68
- :default => false,
69
- :desc => 'Force download of the artifact even if it exists'
84
+ type: :boolean,
85
+ default: false,
86
+ desc: 'Force download of the artifact even if it exists'
70
87
  method_option :verify_sha1,
71
- :type => :boolean,
72
- :default => true,
73
- :desc => 'Validate sha1 sum'
74
- desc 'pull_kb_server_war <version>', 'Pulls Kill Bill server war from Sonatype and places it on your machine. If version was not specified it uses the latest released version.'
75
- def pull_kb_server_war(version='LATEST')
88
+ type: :boolean,
89
+ default: true,
90
+ desc: 'Validate sha1 sum'
91
+ desc 'pull_kb_server_war <version>', 'Pulls Kill Bill server war and places it on your machine. If version was not specified it uses the latest released version.'
92
+ def pull_kb_server_war(version = 'LATEST')
76
93
  installer = BaseInstaller.new(logger,
77
94
  options[:overrides],
78
95
  options[:ssl_verify])
79
96
  response = installer.install_killbill_server(KillbillServerArtifact::KILLBILL_GROUP_ID,
80
- KillbillServerArtifact::KILLBILL_ARTIFACT_ID,
81
- KillbillServerArtifact::KILLBILL_PACKAGING,
82
- KillbillServerArtifact::KILLBILL_CLASSIFIER,
83
- version,
84
- options[:destination],
85
- options[:bundles_dir],
86
- options[:force_download],
87
- options[:verify_sha1])
97
+ KillbillServerArtifact::KILLBILL_ARTIFACT_ID,
98
+ KillbillServerArtifact::KILLBILL_PACKAGING,
99
+ KillbillServerArtifact::KILLBILL_CLASSIFIER,
100
+ version,
101
+ options[:destination],
102
+ options[:bundles_dir],
103
+ options[:force_download],
104
+ options[:verify_sha1])
88
105
  say "Artifact has been retrieved and can be found at path: #{response[:file_path]}", :green
89
106
  end
90
107
 
@@ -97,98 +114,54 @@ module KPM
97
114
  options[:ssl_verify]).to_a.join(', ')}", :green
98
115
  end
99
116
 
100
- method_option :destination,
101
- :type => :string,
102
- :default => nil,
103
- :desc => 'A different folder other than the current working directory.'
104
- method_option :bundles_dir,
105
- :type => :string,
106
- :default => nil,
107
- :desc => 'The location where bundles will be installed (along with sha1 file)'
108
- method_option :force_download,
109
- :type => :boolean,
110
- :default => false,
111
- :desc => 'Force download of the artifact even if it exists'
112
- method_option :verify_sha1,
113
- :type => :boolean,
114
- :default => true,
115
- :desc => 'Validates sha1 sum'
116
- desc 'pull_kp_server_war <version>', 'Pulls Kill Pay server war from Sonatype and places it on your machine. If version was not specified it uses the latest released version.'
117
- def pull_kp_server_war(version='LATEST')
118
- installer = BaseInstaller.new(logger,
119
- options[:overrides],
120
- options[:ssl_verify])
121
- response = installer.install_killbill_server(KillbillServerArtifact::KILLBILL_GROUP_ID,
122
- KillbillServerArtifact::KILLPAY_ARTIFACT_ID,
123
- KillbillServerArtifact::KILLPAY_PACKAGING,
124
- KillbillServerArtifact::KILLPAY_CLASSIFIER,
125
- version,
126
- options[:destination],
127
- options[:bundles_dir],
128
- options[:force_download],
129
- options[:verify_sha1])
130
- say "Artifact has been retrieved and can be found at path: #{response[:file_path]}", :green
131
- end
132
-
133
- desc 'search_for_kp_server', 'Searches for all versions of Kill Pay server and prints them to the screen.'
134
- def search_for_kp_server
135
- say "Available versions: #{KillbillServerArtifact.versions(KillbillServerArtifact::KILLPAY_ARTIFACT_ID,
136
- KillbillServerArtifact::KILLPAY_PACKAGING,
137
- KillbillServerArtifact::KILLPAY_CLASSIFIER,
138
- options[:overrides],
139
- options[:ssl_verify]).to_a.join(', ')}", :green
140
- end
141
-
142
117
  method_option :group_id,
143
- :type => :string,
144
- :default => KillbillPluginArtifact::KILLBILL_JAVA_PLUGIN_GROUP_ID,
145
- :desc => 'The plugin artifact group-id'
118
+ type: :string,
119
+ default: KillbillPluginArtifact::KILLBILL_JAVA_PLUGIN_GROUP_ID,
120
+ desc: 'The plugin artifact group-id'
146
121
  method_option :artifact_id,
147
- :type => :string,
148
- :default => nil,
149
- :desc => 'The plugin artifact id'
122
+ type: :string,
123
+ default: nil,
124
+ desc: 'The plugin artifact id'
150
125
  method_option :version,
151
- :type => :string,
152
- :default => nil,
153
- :desc => 'The plugin artifact version'
126
+ type: :string,
127
+ default: nil,
128
+ desc: 'The plugin artifact version'
154
129
  method_option :packaging,
155
- :type => :string,
156
- :default => KillbillPluginArtifact::KILLBILL_JAVA_PLUGIN_PACKAGING,
157
- :desc => 'The plugin artifact packaging'
130
+ type: :string,
131
+ default: KillbillPluginArtifact::KILLBILL_JAVA_PLUGIN_PACKAGING,
132
+ desc: 'The plugin artifact packaging'
158
133
  method_option :classifier,
159
- :type => :string,
160
- :default => KillbillPluginArtifact::KILLBILL_JAVA_PLUGIN_CLASSIFIER,
161
- :desc => 'The plugin artifact classifier'
134
+ type: :string,
135
+ default: KillbillPluginArtifact::KILLBILL_JAVA_PLUGIN_CLASSIFIER,
136
+ desc: 'The plugin artifact classifier'
162
137
  method_option :from_source_file,
163
- :type => :string,
164
- :default => nil,
165
- :desc => 'Specify the plugin jar that should be used for the installation.'
138
+ type: :string,
139
+ default: nil,
140
+ desc: 'Specify the plugin jar that should be used for the installation.'
166
141
  method_option :destination,
167
- :type => :string,
168
- :default => nil,
169
- :desc => 'A different folder other than the current working directory.'
142
+ type: :string,
143
+ default: nil,
144
+ desc: 'A different folder other than the current working directory.'
170
145
  method_option :force_download,
171
- :type => :boolean,
172
- :default => false,
173
- :desc => 'Force download of the artifact even if it exists'
146
+ type: :boolean,
147
+ default: false,
148
+ desc: 'Force download of the artifact even if it exists'
174
149
  method_option :sha1_file,
175
- :type => :string,
176
- :default => nil,
177
- :desc => 'Location of the sha1 file'
150
+ type: :string,
151
+ default: nil,
152
+ desc: 'Location of the sha1 file'
178
153
  method_option :verify_sha1,
179
- :type => :boolean,
180
- :default => true,
181
- :desc => 'Validates sha1 sum'
182
- desc 'install_java_plugin plugin-key <kb-version>', 'Pulls a java plugin from Sonatype and installs it under the specified destination. If the kb-version has been specified, it is used to download the matching plugin artifact version; if not, it uses the specified plugin version or if null, the LATEST one.'
183
- def install_java_plugin(plugin_key, kb_version='LATEST')
184
-
185
-
154
+ type: :boolean,
155
+ default: true,
156
+ desc: 'Validates sha1 sum'
157
+ desc 'install_java_plugin plugin-key <kb-version>', 'Pulls a java plugin and installs it under the specified destination. If the kb-version has been specified, it is used to download the matching plugin artifact version; if not, it uses the specified plugin version or if null, the LATEST one.'
158
+ def install_java_plugin(plugin_key, kb_version = 'LATEST')
186
159
  installer = BaseInstaller.new(logger,
187
160
  options[:overrides],
188
161
  options[:ssl_verify])
189
162
 
190
- if options[:from_source_file].nil?
191
- response = installer.install_plugin(plugin_key,
163
+ response = if options[:from_source_file].nil?
164
+ installer.install_plugin(plugin_key,
192
165
  kb_version,
193
166
  options[:group_id],
194
167
  options[:artifact_id],
@@ -200,64 +173,61 @@ module KPM
200
173
  options[:force_download],
201
174
  options[:verify_sha1],
202
175
  false)
203
- else
204
- response = installer.install_plugin_from_fs(plugin_key, options[:from_source_file], nil, options[:version], options[:destination], 'java')
205
- end
176
+ else
177
+ installer.install_plugin_from_fs(plugin_key, options[:from_source_file], nil, options[:version], options[:destination], 'java')
178
+ end
206
179
 
207
180
  say "Artifact has been retrieved and can be found at path: #{response[:file_path]}", :green
208
181
  end
209
182
 
210
-
211
-
212
-
213
183
  method_option :group_id,
214
- :type => :string,
215
- :default => KillbillPluginArtifact::KILLBILL_RUBY_PLUGIN_GROUP_ID,
216
- :desc => 'The plugin artifact group-id'
184
+ type: :string,
185
+ default: KillbillPluginArtifact::KILLBILL_RUBY_PLUGIN_GROUP_ID,
186
+ desc: 'The plugin artifact group-id'
217
187
  method_option :artifact_id,
218
- :type => :string,
219
- :default => nil,
220
- :desc => 'The plugin artifact id'
188
+ type: :string,
189
+ default: nil,
190
+ desc: 'The plugin artifact id'
221
191
  method_option :version,
222
- :type => :string,
223
- :default => nil,
224
- :desc => 'The plugin artifact version'
192
+ type: :string,
193
+ default: nil,
194
+ desc: 'The plugin artifact version'
225
195
  method_option :packaging,
226
- :type => :string,
227
- :default => KillbillPluginArtifact::KILLBILL_RUBY_PLUGIN_PACKAGING,
228
- :desc => 'The plugin artifact packaging'
196
+ type: :string,
197
+ default: KillbillPluginArtifact::KILLBILL_RUBY_PLUGIN_PACKAGING,
198
+ desc: 'The plugin artifact packaging'
229
199
  method_option :classifier,
230
- :type => :string,
231
- :default => KillbillPluginArtifact::KILLBILL_RUBY_PLUGIN_CLASSIFIER,
232
- :desc => 'The plugin artifact classifier'
200
+ type: :string,
201
+ default: KillbillPluginArtifact::KILLBILL_RUBY_PLUGIN_CLASSIFIER,
202
+ desc: 'The plugin artifact classifier'
233
203
  method_option :from_source_file,
234
- :type => :string,
235
- :default => nil,
236
- :desc => 'Specify the ruby plugin archive that should be used for the installation.'
204
+ type: :string,
205
+ default: nil,
206
+ desc: 'Specify the ruby plugin archive that should be used for the installation.'
237
207
  method_option :destination,
238
- :type => :string,
239
- :default => nil,
240
- :desc => 'A different folder other than the current working directory.'
208
+ type: :string,
209
+ default: nil,
210
+ desc: 'A different folder other than the current working directory.'
241
211
  method_option :force_download,
242
- :type => :boolean,
243
- :default => false,
244
- :desc => 'Force download of the artifact even if it exists'
212
+ type: :boolean,
213
+ default: false,
214
+ desc: 'Force download of the artifact even if it exists'
245
215
  method_option :sha1_file,
246
- :type => :string,
247
- :default => nil,
248
- :desc => 'Location of the sha1 file'
216
+ type: :string,
217
+ default: nil,
218
+ desc: 'Location of the sha1 file'
249
219
  method_option :verify_sha1,
250
- :type => :boolean,
251
- :default => true,
252
- :desc => 'Validates sha1 sum'
253
- desc 'install_ruby_plugin plugin-key <kb-version>', 'Pulls a ruby plugin from Sonatype and installs it under the specified destination. If the kb-version has been specified, it is used to download the matching plugin artifact version; if not, it uses the specified plugin version or if null, the LATEST one.'
254
- def install_ruby_plugin(plugin_key, kb_version='LATEST')
220
+ type: :boolean,
221
+ default: true,
222
+ desc: 'Validates sha1 sum'
223
+ desc 'install_ruby_plugin plugin-key <kb-version>', 'Pulls a ruby plugin and installs it under the specified destination. If the kb-version has been specified, it is used to download the matching plugin artifact version; if not, it uses the specified plugin version or if null, the LATEST one.'
224
+ def install_ruby_plugin(plugin_key, kb_version = 'LATEST')
255
225
  installer = BaseInstaller.new(logger,
256
- options[:overrides],
257
- options[:ssl_verify])
226
+ options[:overrides],
227
+ options[:ssl_verify])
258
228
 
259
- if options[:from_source_file].nil?
260
- response = installer.install_plugin(plugin_key,
229
+ response = if options[:from_source_file].nil?
230
+ installer.install_plugin(plugin_key,
261
231
  kb_version,
262
232
  options[:group_id],
263
233
  options[:artifact_id],
@@ -269,28 +239,27 @@ module KPM
269
239
  options[:force_download],
270
240
  options[:verify_sha1],
271
241
  true)
272
- else
273
- response = installer.install_plugin_from_fs(plugin_key, options[:from_source_file], nil, nil, options[:destination], 'ruby')
274
- end
242
+ else
243
+ installer.install_plugin_from_fs(plugin_key, options[:from_source_file], nil, nil, options[:destination], 'ruby')
244
+ end
275
245
 
276
246
  say "Artifact has been retrieved and can be found at path: #{response[:file_path]}", :green
277
-
278
247
  end
279
248
 
280
249
  method_option :destination,
281
- :type => :string,
282
- :default => nil,
283
- :desc => 'A different folder other than the default bundles directory.'
250
+ type: :string,
251
+ default: nil,
252
+ desc: 'A different folder other than the default bundles directory.'
284
253
  method_option :force_download,
285
- :type => :boolean,
286
- :default => false,
287
- :desc => 'Force download of the artifact even if it exists'
254
+ type: :boolean,
255
+ default: false,
256
+ desc: 'Force download of the artifact even if it exists'
288
257
  method_option :verify_sha1,
289
- :type => :boolean,
290
- :default => true,
291
- :desc => 'Validates sha1 sum'
292
- desc 'pull_defaultbundles <kb-version>', 'Pulls the default OSGI bundles from Sonatype and places it on your machine. If the kb-version has been specified, it is used to download the matching platform artifact; if not, it uses the latest released version.'
293
- def pull_defaultbundles(kb_version='LATEST')
258
+ type: :boolean,
259
+ default: true,
260
+ desc: 'Validates sha1 sum'
261
+ desc 'pull_defaultbundles <kb-version>', 'Pulls the default OSGI bundles and places it on your machine. If the kb-version has been specified, it is used to download the matching platform artifact; if not, it uses the latest released version.'
262
+ def pull_defaultbundles(kb_version = 'LATEST')
294
263
  response = BaseInstaller.new(logger,
295
264
  options[:overrides],
296
265
  options[:ssl_verify])
@@ -318,23 +287,23 @@ module KPM
318
287
  end
319
288
 
320
289
  method_option :destination,
321
- :type => :string,
322
- :default => nil,
323
- :desc => 'A different folder other than the current working directory.'
290
+ type: :string,
291
+ default: nil,
292
+ desc: 'A different folder other than the current working directory.'
324
293
  method_option :force_download,
325
- :type => :boolean,
326
- :default => false,
327
- :desc => 'Force download of the artifact even if it exists'
294
+ type: :boolean,
295
+ default: false,
296
+ desc: 'Force download of the artifact even if it exists'
328
297
  method_option :sha1_file,
329
- :type => :string,
330
- :default => nil,
331
- :desc => 'Location of the sha1 file'
298
+ type: :string,
299
+ default: nil,
300
+ desc: 'Location of the sha1 file'
332
301
  method_option :verify_sha1,
333
- :type => :boolean,
334
- :default => true,
335
- :desc => 'Validates sha1 sum'
336
- desc 'pull_kaui_war <version>', 'Pulls Kaui war from Sonatype and places it on your machine. If version was not specified it uses the latest released version.'
337
- def pull_kaui_war(version='LATEST')
302
+ type: :boolean,
303
+ default: true,
304
+ desc: 'Validates sha1 sum'
305
+ desc 'pull_kaui_war <version>', 'Pulls Kaui war and places it on your machine. If version was not specified it uses the latest released version.'
306
+ def pull_kaui_war(version = 'LATEST')
338
307
  response = KauiArtifact.pull(logger,
339
308
  KauiArtifact::KAUI_GROUP_ID,
340
309
  KauiArtifact::KAUI_ARTIFACT_ID,
@@ -356,39 +325,54 @@ module KPM
356
325
  end
357
326
 
358
327
  method_option :version,
359
- :type => :string,
360
- :default => 'LATEST',
361
- :desc => 'Kill Bill version'
328
+ type: :string,
329
+ default: 'LATEST',
330
+ desc: 'Kill Bill version'
331
+ method_option :force_download,
332
+ type: :boolean,
333
+ default: false,
334
+ desc: 'Ignore local cache'
335
+ method_option :sha1_file,
336
+ type: :string,
337
+ default: nil,
338
+ desc: 'Location of the sha1 file'
339
+ method_option :verify_sha1,
340
+ type: :boolean,
341
+ default: true,
342
+ desc: 'Validates sha1 sum'
343
+ method_option :as_json,
344
+ type: :boolean,
345
+ default: false,
346
+ desc: 'Set the output format as JSON when true'
362
347
  desc 'info', 'Describe information about a Kill Bill version'
363
348
  def info
364
-
365
- say "Fetching info for version #{options[:version]}...\n"
366
-
367
349
  versions_info = KillbillServerArtifact.info(options[:version],
368
350
  options[:sha1_file],
369
351
  options[:force_download],
370
352
  options[:verify_sha1],
371
353
  options[:overrides],
372
354
  options[:ssl_verify])
373
- say "Dependencies for version #{options[:version]}\n " + (versions_info.map {|k,v| "#{k} #{v}"}).join("\n "), :green
374
- say "\n\n"
375
-
376
355
  resolved_kb_version = versions_info['killbill']
377
- kb_version = resolved_kb_version.split('.').slice(0,2).join(".")
356
+ kb_version = resolved_kb_version.split('.').slice(0, 2).join('.')
378
357
 
379
358
  plugins_info = KPM::PluginsDirectory.list_plugins(true, kb_version)
380
359
 
381
- say "Known plugin for KB version #{options[:version]}\n " + (plugins_info.map {|k,v| "#{k} #{v}"}).join("\n "), :green
360
+ if options[:as_json]
361
+ puts({ 'killbill' => versions_info, 'plugins' => plugins_info }.to_json)
362
+ else
363
+ say "Dependencies for version #{options[:version]}\n " + (versions_info.map { |k, v| "#{k} #{v}" }).join("\n "), :green
364
+ say "Known plugins for KB version #{options[:version]}\n " + (plugins_info.map { |k, v| "#{k} #{v}" }).join("\n "), :green
365
+ end
382
366
  end
383
367
 
384
368
  method_option :destination,
385
- :type => :string,
386
- :default => nil,
387
- :desc => 'Folder where to download migration files.'
369
+ type: :string,
370
+ default: nil,
371
+ desc: 'Folder where to download migration files.'
388
372
  method_option :token,
389
- :type => :string,
390
- :default => nil,
391
- :desc => 'GitHub OAuth token.'
373
+ type: :string,
374
+ default: nil,
375
+ desc: 'GitHub OAuth token.'
392
376
  desc 'migrations repository from to', 'Download migration files for Kill Bill or a plugin'
393
377
  def migrations(repository, from, to = nil)
394
378
  full_repo = repository.include?('/') ? repository : "killbill/#{repository}"
@@ -397,315 +381,258 @@ module KPM
397
381
  end
398
382
 
399
383
  method_option :destination,
400
- :type => :string,
401
- :default => nil,
402
- :desc => 'A different folder other than the default bundles directory.'
384
+ type: :string,
385
+ default: nil,
386
+ desc: 'A different folder other than the default bundles directory.'
387
+ method_option :as_json,
388
+ type: :boolean,
389
+ default: false,
390
+ desc: 'Set the output format as JSON when true'
403
391
  desc 'inspect', 'Inspect current deployment'
404
392
  def inspect
405
393
  inspector = KPM::Inspector.new
406
- puts options[:destination]
407
394
  all_plugins = inspector.inspect(options[:destination])
408
- #puts all_plugins.to_json
409
- inspector.format(all_plugins)
395
+ options[:as_json] ? puts(all_plugins.to_json) : inspector.format(all_plugins)
410
396
  end
411
397
 
412
398
  method_option :bundles_dir,
413
- :type => :string,
414
- :default => nil,
415
- :desc => 'A different folder other than the default bundles directory.'
399
+ type: :string,
400
+ default: nil,
401
+ desc: 'A different folder other than the default bundles directory.'
416
402
  method_option :config_file,
417
- :type => :string,
418
- :default => nil,
419
- :desc => 'KPM configuration file (yml file)'
403
+ type: :string,
404
+ default: nil,
405
+ desc: 'KPM configuration file (yml file)'
420
406
  method_option :as_json,
421
- :type => :boolean,
422
- :default => false,
423
- :desc => 'Set the output format as JSON when true'
407
+ type: :boolean,
408
+ default: false,
409
+ desc: 'Set the output format as JSON when true'
424
410
  method_option :kaui_web_path,
425
- :type => :string,
426
- :default => nil,
427
- :desc => 'Path for the KAUI web app'
411
+ type: :string,
412
+ default: nil,
413
+ desc: 'Path for the KAUI web app'
428
414
  method_option :killbill_web_path,
429
- :type => :string,
430
- :default => nil,
431
- :desc => 'Path for the killbill web app'
415
+ type: :string,
416
+ default: nil,
417
+ desc: 'Path for the killbill web app'
432
418
  desc 'system', 'Gather information about the system'
433
419
  def system
434
- system = KPM::System.new
420
+ system = KPM::System.new(logger)
435
421
  information = system.information(options[:bundles_dir], options[:as_json], options[:config_file], options[:kaui_web_path],
436
- options[:killbill_web_path])
437
-
438
- if options[:as_json]
439
- puts information
440
- end
422
+ options[:killbill_web_path])
441
423
 
424
+ puts information if options[:as_json]
442
425
  end
443
426
 
444
427
  method_option :export,
445
- :type => :string,
446
- :default => nil,
447
- :desc => 'export account for a provided id.'
428
+ type: :string,
429
+ default: nil,
430
+ desc: 'export account for a provided id.'
448
431
  method_option :import,
449
- :type => :string,
450
- :default => nil,
451
- :desc => 'import account for a previously exported file.'
432
+ type: :string,
433
+ default: nil,
434
+ desc: 'import account for a previously exported file.'
452
435
  method_option :tenant_record_id,
453
- :type => :numeric,
454
- :default => nil,
455
- :desc => 'replace the tenant_record_id before importing data.'
436
+ type: :numeric,
437
+ default: nil,
438
+ desc: 'replace the tenant_record_id before importing data.'
456
439
  method_option :generate_record_id,
457
- :type => :boolean,
458
- :default => false,
459
- :desc => 'The generate_record_id will instruct to generate the tables record_ids that were exported'
440
+ type: :boolean,
441
+ default: false,
442
+ desc: 'The generate_record_id will instruct to generate the tables record_ids that were exported'
460
443
  method_option :skip_payment_methods,
461
- :type => :boolean,
462
- :default => false,
463
- :desc => 'Skip or swap payment types other than __EXTERNAL_PAYMENT__.'
444
+ type: :boolean,
445
+ default: false,
446
+ desc: 'Skip or swap payment types other than __EXTERNAL_PAYMENT__.'
464
447
  method_option :config_file,
465
- :type => :string,
466
- :default => nil,
467
- :desc => 'Yml that contains killbill api connection and DB connection'
448
+ type: :string,
449
+ default: nil,
450
+ desc: 'Yml that contains killbill api connection and DB connection'
468
451
  method_option :killbill_api_credentials,
469
- :type => :array,
470
- :default => nil,
471
- :desc => 'Killbill api credentials <api_key> <api_secrets>'
452
+ type: :array,
453
+ default: nil,
454
+ desc: 'Killbill api credentials <api_key> <api_secrets>'
472
455
  method_option :killbill_credentials,
473
- :type => :array,
474
- :default => nil,
475
- :desc => 'Killbill credentials <user> <password>'
456
+ type: :array,
457
+ default: nil,
458
+ desc: 'Killbill credentials <user> <password>'
476
459
  method_option :killbill_url,
477
- :type => :string,
478
- :default => nil,
479
- :desc => 'Killbill URL ex. http://127.0.0.1:8080'
460
+ type: :string,
461
+ default: nil,
462
+ desc: 'Killbill URL ex. http://127.0.0.1:8080'
480
463
  method_option :database_name,
481
- :type => :string,
482
- :default => nil,
483
- :desc => 'DB name to connect'
464
+ type: :string,
465
+ default: nil,
466
+ desc: 'DB name to connect'
484
467
  method_option :database_credentials,
485
- :type => :array,
486
- :default => nil,
487
- :desc => 'DB credentials <user> <password>'
468
+ type: :array,
469
+ default: nil,
470
+ desc: 'DB credentials <user> <password>'
488
471
  method_option :data_delimiter,
489
- :type => :string,
490
- :default => "|",
491
- :desc => 'Data delimiter'
472
+ type: :string,
473
+ default: '|',
474
+ desc: 'Data delimiter'
492
475
  method_option :database_host,
493
- :type => :string,
494
- :default => nil,
495
- :desc => 'Database Host name'
476
+ type: :string,
477
+ default: nil,
478
+ desc: 'Database Host name'
496
479
  method_option :database_port,
497
- :type => :string,
498
- :default => nil,
499
- :desc => 'Database port'
480
+ type: :string,
481
+ default: nil,
482
+ desc: 'Database port'
500
483
  desc 'account', 'export/import accounts'
501
484
  def account
502
- begin
503
- config_file = nil
504
- if options[:killbill_url] && /https?:\/\/[\S]+/.match(options[:killbill_url]).nil?
505
- raise Interrupt,'--killbill_url, required format -> http(s)://something'
506
- end
507
-
508
- if options[:killbill_api_credentials] && options[:killbill_api_credentials].size != 2
509
- raise Interrupt,'--killbill_api_credentials, required format -> <api_key> <api_secrets>'
510
- end
485
+ config_file = nil
486
+ raise Interrupt, '--killbill_url, required format -> http(s)://something' if options[:killbill_url] && %r{https?://[\S]+}.match(options[:killbill_url]).nil?
511
487
 
512
- if options[:killbill_credentials] && options[:killbill_credentials].size != 2
513
- raise Interrupt,'--killbill_credentials, required format -> <user> <password>'
514
- end
488
+ raise Interrupt, '--killbill_api_credentials, required format -> <api_key> <api_secrets>' if options[:killbill_api_credentials] && options[:killbill_api_credentials].size != 2
515
489
 
516
- if options[:database_credentials] && options[:database_credentials].size != 2
517
- raise Interrupt,'--database_credentials, required format -> <user> <password>'
518
- end
490
+ raise Interrupt, '--killbill_credentials, required format -> <user> <password>' if options[:killbill_credentials] && options[:killbill_credentials].size != 2
519
491
 
520
- if options[:database_name] && options[:database_name] == :database_name.to_s
521
- raise Interrupt,'--database_credentials, please provide a valid database name'
522
- end
523
-
524
- if options[:config_file] && options[:config_file] == :config_file.to_s
525
- config_file = File.join(File.expand_path(File.dirname(__FILE__)), 'account_export_import.yml')
526
- end
492
+ raise Interrupt, '--database_credentials, required format -> <user> <password>' if options[:database_credentials] && options[:database_credentials].size != 2
527
493
 
528
- if options[:export].nil? && options[:import].nil?
529
- raise Interrupt,'Need to specify an action'
530
- end
494
+ raise Interrupt, '--database_credentials, please provide a valid database name' if options[:database_name] && options[:database_name] == :database_name.to_s
531
495
 
496
+ config_file = File.join(__dir__, 'account_export_import.yml') if options[:config_file] && options[:config_file] == :config_file.to_s
532
497
 
533
- account = KPM::Account.new(config_file || options[:config_file],options[:killbill_api_credentials],options[:killbill_credentials],
534
- options[:killbill_url],options[:database_name],options[:database_credentials],options[:database_host], options[:database_port],options[:data_delimiter], logger)
535
- export_file = nil
536
- round_trip_export_import = false
498
+ raise Interrupt, 'Need to specify an action' if options[:export].nil? && options[:import].nil?
537
499
 
538
- if not options[:export].nil?
539
- export_file = account.export_data(options[:export])
540
- round_trip_export_import = true
541
- end
500
+ account = KPM::Account.new(config_file || options[:config_file], options[:killbill_api_credentials], options[:killbill_credentials],
501
+ options[:killbill_url], options[:database_name], options[:database_credentials], options[:database_host], options[:database_port], options[:data_delimiter], logger)
502
+ export_file = nil
503
+ round_trip_export_import = false
542
504
 
543
- if not options[:import].nil?
544
- account.import_data(export_file || options[:import],options[:tenant_record_id], options[:skip_payment_methods],
545
- round_trip_export_import, options[:generate_record_id])
546
- end
505
+ unless options[:export].nil?
506
+ export_file = account.export_data(options[:export])
507
+ round_trip_export_import = true
508
+ end
547
509
 
548
- rescue Exception => e
549
- logger.error "\e[91;1m#{e.message}\e[0m"
550
- if not e.is_a?(Interrupt)
551
- logger.error e.backtrace.join("\n")
552
- end
510
+ unless options[:import].nil?
511
+ account.import_data(export_file || options[:import], options[:tenant_record_id], options[:skip_payment_methods],
512
+ round_trip_export_import, options[:generate_record_id])
553
513
  end
514
+ rescue StandardError => e
515
+ logger.error "\e[91;1m#{e.message}\e[0m"
516
+ logger.error e.backtrace.join("\n") unless e.is_a?(Interrupt)
554
517
  end
555
518
 
556
519
  method_option :key_prefix,
557
- :type => :string,
558
- :default => nil,
559
- :enum => KPM::TenantConfig::KEY_PREFIXES,
560
- :desc => 'Retrieve a per tenant key value based on key prefix'
520
+ type: :string,
521
+ default: nil,
522
+ enum: KPM::TenantConfig::KEY_PREFIXES,
523
+ desc: 'Retrieve a per tenant key value based on key prefix'
561
524
  method_option :killbill_api_credentials,
562
- :type => :array,
563
- :default => nil,
564
- :desc => 'Killbill api credentials <api_key> <api_secrets>'
525
+ type: :array,
526
+ default: nil,
527
+ desc: 'Killbill api credentials <api_key> <api_secrets>'
565
528
  method_option :killbill_credentials,
566
- :type => :array,
567
- :default => nil,
568
- :desc => 'Killbill credentials <user> <password>'
529
+ type: :array,
530
+ default: nil,
531
+ desc: 'Killbill credentials <user> <password>'
569
532
  method_option :killbill_url,
570
- :type => :string,
571
- :default => nil,
572
- :desc => 'Killbill URL ex. http://127.0.0.1:8080'
533
+ type: :string,
534
+ default: nil,
535
+ desc: 'Killbill URL ex. http://127.0.0.1:8080'
573
536
  desc 'tenant_config', 'export all tenant-level configs.'
574
537
  def tenant_config
575
- begin
538
+ raise Interrupt, '--killbill_url, required format -> http(s)://something' if options[:killbill_url] && %r{https?://[\S]+}.match(options[:killbill_url]).nil?
576
539
 
577
- if options[:killbill_url] && /https?:\/\/[\S]+/.match(options[:killbill_url]).nil?
578
- raise Interrupt,'--killbill_url, required format -> http(s)://something'
579
- end
580
-
581
- if options[:killbill_api_credentials] && options[:killbill_api_credentials].size != 2
582
- raise Interrupt,'--killbill_api_credentials, required format -> <api_key> <api_secrets>'
583
- end
584
-
585
- if options[:killbill_credentials] && options[:killbill_credentials].size != 2
586
- raise Interrupt,'--killbill_credentials, required format -> <user> <password>'
587
- end
540
+ raise Interrupt, '--killbill_api_credentials, required format -> <api_key> <api_secrets>' if options[:killbill_api_credentials] && options[:killbill_api_credentials].size != 2
588
541
 
589
- if options[:key_prefix] === :key_prefix.to_s
590
- raise Interrupt, "--key_prefix, posible values #{KPM::TenantConfig::KEY_PREFIXES.join(', ')}"
591
- end
542
+ raise Interrupt, '--killbill_credentials, required format -> <user> <password>' if options[:killbill_credentials] && options[:killbill_credentials].size != 2
592
543
 
593
- tenantConfig = KPM::TenantConfig.new(options[:killbill_api_credentials],options[:killbill_credentials],
594
- options[:killbill_url], logger)
544
+ raise Interrupt, "--key_prefix, posible values #{KPM::TenantConfig::KEY_PREFIXES.join(', ')}" if options[:key_prefix] == :key_prefix.to_s
595
545
 
596
- tenantConfig.export(options[:key_prefix])
546
+ tenant_config = KPM::TenantConfig.new(options[:killbill_api_credentials], options[:killbill_credentials],
547
+ options[:killbill_url], logger)
597
548
 
598
- rescue Exception => e
599
- logger.error "\e[91;1m#{e.message}\e[0m"
600
- if not e.is_a?(Interrupt)
601
- logger.error e.backtrace.join("\n")
602
- end
603
- end
549
+ tenant_config.export(options[:key_prefix])
550
+ rescue StandardError => e
551
+ logger.error "\e[91;1m#{e.message}\e[0m"
552
+ logger.error e.backtrace.join("\n") unless e.is_a?(Interrupt)
604
553
  end
605
554
 
606
-
607
555
  method_option :account_export,
608
- :type => :string,
609
- :default => nil,
610
- :desc => 'export account for a provided id.'
556
+ type: :string,
557
+ default: nil,
558
+ desc: 'export account for a provided id.'
611
559
  method_option :log_dir,
612
- :type => :string,
613
- :default => nil,
614
- :desc => '(Optional) Log directory if the default tomcat location has changed'
560
+ type: :string,
561
+ default: nil,
562
+ desc: '(Optional) Log directory if the default tomcat location has changed'
615
563
  method_option :config_file,
616
- :type => :string,
617
- :default => nil,
618
- :desc => 'Yml that contains killbill api connection and DB connection'
564
+ type: :string,
565
+ default: nil,
566
+ desc: 'Yml that contains killbill api connection and DB connection'
619
567
  method_option :killbill_api_credentials,
620
- :type => :array,
621
- :default => nil,
622
- :desc => 'Killbill api credentials <api_key> <api_secrets>'
568
+ type: :array,
569
+ default: nil,
570
+ desc: 'Killbill api credentials <api_key> <api_secrets>'
623
571
  method_option :killbill_credentials,
624
- :type => :array,
625
- :default => nil,
626
- :desc => 'Killbill credentials <user> <password>'
572
+ type: :array,
573
+ default: nil,
574
+ desc: 'Killbill credentials <user> <password>'
627
575
  method_option :killbill_url,
628
- :type => :string,
629
- :default => nil,
630
- :desc => 'Killbill URL ex. http://127.0.0.1:8080'
576
+ type: :string,
577
+ default: nil,
578
+ desc: 'Killbill URL ex. http://127.0.0.1:8080'
631
579
  method_option :database_name,
632
- :type => :string,
633
- :default => nil,
634
- :desc => 'DB name to connect'
580
+ type: :string,
581
+ default: nil,
582
+ desc: 'DB name to connect'
635
583
  method_option :database_credentials,
636
- :type => :array,
637
- :default => nil,
638
- :desc => 'DB credentials <user> <password>'
584
+ type: :array,
585
+ default: nil,
586
+ desc: 'DB credentials <user> <password>'
639
587
  method_option :database_host,
640
- :type => :string,
641
- :default => nil,
642
- :desc => 'Database Host name'
588
+ type: :string,
589
+ default: nil,
590
+ desc: 'Database Host name'
643
591
  method_option :database_port,
644
- :type => :string,
645
- :default => nil,
646
- :desc => 'Database port'
592
+ type: :string,
593
+ default: nil,
594
+ desc: 'Database port'
647
595
  method_option :kaui_web_path,
648
- :type => :string,
649
- :default => nil,
650
- :desc => 'Path for the KAUI web app'
596
+ type: :string,
597
+ default: nil,
598
+ desc: 'Path for the KAUI web app'
651
599
  method_option :killbill_web_path,
652
- :type => :string,
653
- :default => nil,
654
- :desc => 'Path for the killbill web app'
600
+ type: :string,
601
+ default: nil,
602
+ desc: 'Path for the killbill web app'
655
603
  method_option :bundles_dir,
656
- :type => :string,
657
- :default => nil,
658
- :desc => 'A different folder other than the default bundles directory.'
604
+ type: :string,
605
+ default: nil,
606
+ desc: 'A different folder other than the default bundles directory.'
659
607
  desc 'diagnostic', 'exports and \'zips\' the account data, system, logs and tenant configurations'
660
608
  def diagnostic
661
- begin
662
- if options[:account_export] && options[:account_export] == 'account_export'
663
- raise Interrupt,'--account_export, please provide a valid account id'
664
- end
609
+ raise Interrupt, '--account_export, please provide a valid account id' if options[:account_export] && options[:account_export] == 'account_export'
665
610
 
666
- if options[:killbill_url] && /https?:\/\/[\S]+/.match(options[:killbill_url]).nil?
667
- raise Interrupt,'--killbill_url, required format -> http(s)://something'
668
- end
611
+ raise Interrupt, '--killbill_url, required format -> http(s)://something' if options[:killbill_url] && %r{https?://[\S]+}.match(options[:killbill_url]).nil?
669
612
 
670
- if options[:killbill_api_credentials] && options[:killbill_api_credentials].size != 2
671
- raise Interrupt,'--killbill_api_credentials, required format -> <api_key> <api_secrets>'
672
- end
613
+ raise Interrupt, '--killbill_api_credentials, required format -> <api_key> <api_secrets>' if options[:killbill_api_credentials] && options[:killbill_api_credentials].size != 2
673
614
 
674
- if options[:killbill_credentials] && options[:killbill_credentials].size != 2
675
- raise Interrupt,'--killbill_credentials, required format -> <user> <password>'
676
- end
677
-
678
- if options[:database_credentials] && options[:database_credentials].size != 2
679
- raise Interrupt,'--database_credentials, required format -> <user> <password>'
680
- end
615
+ raise Interrupt, '--killbill_credentials, required format -> <user> <password>' if options[:killbill_credentials] && options[:killbill_credentials].size != 2
681
616
 
682
- if options[:database_name] && options[:database_name] == :database_name.to_s
683
- raise Interrupt,'--database_credentials, please provide a valid database name'
684
- end
617
+ raise Interrupt, '--database_credentials, required format -> <user> <password>' if options[:database_credentials] && options[:database_credentials].size != 2
685
618
 
686
- if options[:kaui_web_path] && options[:kaui_web_path] == :kaui_web_path.to_s
687
- raise Interrupt,'--kaui_web_path, please provide a valid kaui web path '
688
- end
619
+ raise Interrupt, '--database_credentials, please provide a valid database name' if options[:database_name] && options[:database_name] == :database_name.to_s
689
620
 
690
- if options[:killbill_web_path] && options[:killbill_web_path] == :killbill_web_path.to_s
691
- raise Interrupt,'--killbill_web_path, please provide a valid killbill web path'
692
- end
621
+ raise Interrupt, '--kaui_web_path, please provide a valid kaui web path ' if options[:kaui_web_path] && options[:kaui_web_path] == :kaui_web_path.to_s
693
622
 
694
- diagnostic = KPM::DiagnosticFile.new(options[:config_file],options[:killbill_api_credentials],options[:killbill_credentials],
695
- options[:killbill_url],options[:database_name],options[:database_credentials],
696
- options[:database_host], options[:database_port], options[:kaui_web_path], options[:killbill_web_path], options[:bundles_dir],logger)
697
- diagnostic.export_data(options[:account_export], options[:log_dir])
623
+ raise Interrupt, '--killbill_web_path, please provide a valid killbill web path' if options[:killbill_web_path] && options[:killbill_web_path] == :killbill_web_path.to_s
698
624
 
699
- rescue Exception => e
700
- logger.error "\e[91;1m#{e.message}\e[0m"
701
- if not e.is_a?(Interrupt)
702
- logger.error e.backtrace.join("\n")
703
- end
704
- end
625
+ diagnostic = KPM::DiagnosticFile.new(options[:config_file], options[:killbill_api_credentials], options[:killbill_credentials],
626
+ options[:killbill_url], options[:database_name], options[:database_credentials],
627
+ options[:database_host], options[:database_port], options[:kaui_web_path], options[:killbill_web_path], options[:bundles_dir], logger)
628
+ diagnostic.export_data(options[:account_export], options[:log_dir])
629
+ rescue StandardError => e
630
+ logger.error "\e[91;1m#{e.message}\e[0m"
631
+ logger.error e.backtrace.join("\n") unless e.is_a?(Interrupt)
705
632
  end
706
633
 
707
- map :pull_ruby_plugin => :install_ruby_plugin,
708
- :pull_java_plugin => :install_java_plugin
634
+ map pull_ruby_plugin: :install_ruby_plugin,
635
+ pull_java_plugin: :install_java_plugin
709
636
 
710
637
  private
711
638