Sha256: a43db83ca927e400fa327f8dc1b32ae109cc69ac86407f99c93e3749fc623a93
Contents?: true
Size: 1.68 KB
Versions: 1
Compression:
Stored size: 1.68 KB
Contents
require 'kpm/client' module KPM class PluginsController < EngineController def index nodes_by_kb_version, @kb_version = killbill_version @warning_message = '' plugins = [] if nodes_by_kb_version.size > 1 @warning_message = different_versions_warning_message(nodes_by_kb_version) else begin plugins = ::Killbill::KPM::KPMClient.get_available_plugins(true, options_for_klient) rescue => e # No connectivity, GitHub down, ... Rails.logger.warn("Unable to get latest plugins, trying built-in directory: #{e.inspect}") plugins = ::Killbill::KPM::KPMClient.get_available_plugins(false, options_for_klient) end plugins.select! { |plugin_key, info| info['versions'].keys.include?(@kb_version) } end @plugins = Hash[plugins.sort] end private def different_versions_warning_message(nodes_by_kb_version) message = '<b>Warning!</b> Unable to find plugins to install, different versions of Kill Bill were found:<ul>' nodes_by_kb_version.each do |version, node_name| message = "#{message} <li><b>#{version}:</b> #{node_name}</li>" end "#{message}</ul>" end def killbill_version nodes_info = ::KillBillClient::Model::NodesInfo.nodes_info(options_for_klient) return nil if nodes_info.blank? first_node_version = nodes_info.first.kb_version nodes_by_kb_version = {} nodes_info.each do |node| nodes_by_kb_version[node.kb_version] = "#{(nodes_by_kb_version[node.kb_version] || '')} #{node.node_name}" end [nodes_by_kb_version, first_node_version.scan(/(\d+\.\d+)(\.\d)?/).flatten[0]] end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
killbill-kpm-ui-1.0.2 | app/controllers/kpm/plugins_controller.rb |