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 |
# 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 = !@config.nil? ? @config['nexus'] : (!@kaui_config.nil? ? @kaui_config['nexus'] : nil) 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
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/kpm/installer.rb', line 18 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, 'plugins' => { 'ruby' => [ {'name' => 'kpm'} ] } }, 'kaui' => { # Note: we assume no unstable version of Kaui is published today 'version' => 'LATEST' } } end |
.from_file(config_path = nil, logger = nil) ⇒ Object
8 9 10 11 12 13 14 15 16 |
# File 'lib/kpm/installer.rb', line 8 def self.from_file(config_path=nil, logger=nil) if config_path.nil? # Install Kill Bill, Kaui and the KPM plugin by default config = build_default_config else config = YAML::load_file(config_path) end Installer.new(config, logger) end |
.get_kb_latest_stable_version(all_kb_versions = nil) ⇒ Object
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 37 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 = Gem::Version.new(kb_version) rescue nil 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
74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 |
# File 'lib/kpm/installer.rb', line 74 def install(force_download=false, verify_sha1=true) bundles_dir = !@config.nil? ? @config['plugins_dir'] : (!@kaui_config.nil? ? @kaui_config['plugins_dir'] : nil) 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) unless @config['default_bundles'] == false install_default_bundles(bundles_dir, @config['default_bundles_version'], @config['version'], force_download, verify_sha1) end 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',help) @trace_logger.to_json end |