Class: KPM::PluginsController
- Inherits:
-
EngineController
- Object
- ApplicationController
- EngineController
- KPM::PluginsController
- Defined in:
- app/controllers/kpm/plugins_controller.rb
Instance Method Summary collapse
Methods inherited from EngineController
#current_tenant_user, #get_layout, #options_for_klient
Instance Method Details
#index ⇒ Object
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
# File 'app/controllers/kpm/plugins_controller.rb', line 7 def index nodes_by_kb_version, @kb_version, nodes_info = killbill_version @warning_message = '' @plugins = {} @installed_plugin_keys = Set.new # Map of installed plugin_key => highest installed version found across nodes @installed_plugins = {} (nodes_info || []).each do |node_info| (node_info.plugins_info || []).each do |plugin_info| next if plugin_info.plugin_key.nil? @installed_plugin_keys.add(plugin_info.plugin_key) next if plugin_info.version.nil? current = @installed_plugins[plugin_info.plugin_key] begin @installed_plugins[plugin_info.plugin_key] = plugin_info.version if current.nil? || Gem::Version.new(plugin_info.version) > Gem::Version.new(current) rescue ArgumentError @installed_plugins[plugin_info.plugin_key] ||= plugin_info.version end end end if !nodes_by_kb_version.nil? && nodes_by_kb_version.size > 1 @warning_message = (nodes_by_kb_version) else full_kb_version = nodes_by_kb_version.nil? ? 'LATEST' : nodes_by_kb_version.keys.first begin = ::Killbill::KPM::KPMClient.get_available_plugins(full_kb_version, true, ) rescue StandardError => e # No connectivity or version not in Nexus Rails.logger.warn("Unable to get latest plugins for version #{full_kb_version}: #{e.inspect}") = ::Killbill::KPM::KPMClient.get_available_plugins('LATEST', false, ) end @plugins = ['plugins'].sort.to_h end end |