kpm 0.7.2 → 0.10.0

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