Class: KPM::Installer
- Inherits:
-
BaseInstaller
- Object
- BaseInstaller
- KPM::Installer
- Defined in:
- lib/kpm/installer.rb
Constant Summary
Constants inherited from BaseInstaller
BaseInstaller::DEFAULT_BUNDLES_DIR, BaseInstaller::LATEST_VERSION, BaseInstaller::SHA1_FILENAME
Class Method Summary collapse
- .build_default_config(all_kb_versions = nil) ⇒ Object
- .from_file(config_path = nil, logger = nil) ⇒ Object
- .get_kb_latest_stable_version(all_kb_versions = nil) ⇒ Object
Instance Method Summary collapse
-
#initialize(raw_config, logger = nil) ⇒ Installer
constructor
A new instance of Installer.
- #install(force_download = false, verify_sha1 = true) ⇒ Object
Methods inherited from BaseInstaller
#install_default_bundles, #install_kaui, #install_killbill_server, #install_plugin, #install_plugin_from_fs, #uninstall_plugin
Constructor Details
#initialize(raw_config, logger = nil) ⇒ Installer
Returns a new instance of Installer.
57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 |
# File 'lib/kpm/installer.rb', line 57 def initialize(raw_config, logger = nil) @config = raw_config['killbill'] @kaui_config = raw_config['kaui'] @config['version'] = KPM::Installer.get_kb_latest_stable_version if !@config.nil? && (@config['version'].nil? || @config['version'] == 'LATEST') if logger.nil? logger = Logger.new(STDOUT) logger.level = Logger::INFO end nexus_config = if !@config.nil? @config['nexus'] elsif !@kaui_config.nil? @kaui_config['nexus'] else nil end nexus_ssl_verify = !nexus_config.nil? ? nexus_config['ssl_verify'] : true super(logger, nexus_config, nexus_ssl_verify) end |
Class Method Details
.build_default_config(all_kb_versions = nil) ⇒ Object
19 20 21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/kpm/installer.rb', line 19 def self.build_default_config(all_kb_versions = nil) latest_stable_version = get_kb_latest_stable_version(all_kb_versions) { 'killbill' => { 'version' => latest_stable_version.to_s }, 'kaui' => { # Note: we assume no unstable version of Kaui is published today 'version' => 'LATEST' } } end |
.from_file(config_path = nil, logger = nil) ⇒ Object
9 10 11 12 13 14 15 16 17 |
# File 'lib/kpm/installer.rb', line 9 def self.from_file(config_path = nil, logger = nil) config = if config_path.nil? # Install Kill Bill, Kaui and the KPM plugin by default build_default_config else YAML.load_file(config_path) end Installer.new(config, logger) end |
.get_kb_latest_stable_version(all_kb_versions = nil) ⇒ Object
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
# File 'lib/kpm/installer.rb', line 33 def self.get_kb_latest_stable_version(all_kb_versions = nil) all_kb_versions ||= KillbillServerArtifact.versions(KillbillServerArtifact::KILLBILL_ARTIFACT_ID, KillbillServerArtifact::KILLBILL_PACKAGING, KillbillServerArtifact::KILLBILL_CLASSIFIER, nil, true).to_a latest_stable_version = Gem::Version.new('0.0.0') all_kb_versions.each do |kb_version| version = begin Gem::Version.new(kb_version) rescue StandardError nil end next if version.nil? _major, minor, _patch, pre = version.segments next if !pre.nil? || minor.nil? || minor.to_i.odd? latest_stable_version = version if version > latest_stable_version end latest_stable_version.to_s end |
Instance Method Details
#install(force_download = false, verify_sha1 = true) ⇒ Object
80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 |
# File 'lib/kpm/installer.rb', line 80 def install(force_download = false, verify_sha1 = true) bundles_dir = if !@config.nil? @config['plugins_dir'] elsif !@kaui_config.nil? @kaui_config['plugins_dir'] else nil end bundles_dir ||= DEFAULT_BUNDLES_DIR help = nil unless @config.nil? help = install_tomcat if @config['webapp_path'].nil? install_killbill_server(@config['group_id'], @config['artifact_id'], @config['packaging'], @config['classifier'], @config['version'], @config['webapp_path'], bundles_dir, force_download, verify_sha1) install_plugins(bundles_dir, @config['version'], force_download, verify_sha1) install_default_bundles(bundles_dir, @config['default_bundles_version'], @config['version'], force_download, verify_sha1) unless @config['default_bundles'] == false clean_up_descriptors(bundles_dir) end unless @kaui_config.nil? if @kaui_config['webapp_path'].nil? @logger.warn('No webapp_path specified for Kaui, aborting installation') return end install_kaui(@kaui_config['group_id'], @kaui_config['artifact_id'], @kaui_config['packaging'], @kaui_config['classifier'], @kaui_config['version'], @kaui_config['webapp_path'], bundles_dir, force_download, verify_sha1) end @trace_logger.add('help', nil, help) @trace_logger.to_json end |