Sha256: 1379c7bae91cb0a92250647265a3cba1f2fc2229bb8ec1c5fd84aa46e739e688

Contents?: true

Size: 1.47 KB

Versions: 21

Compression:

Stored size: 1.47 KB

Contents

module ForemanOpenscap
  class OpenscapProxyVersionCheck

    def initialize
      @versions = {}
      @message = ''
      @down = []
    end

    def run
      @versions = openscap_proxy_versions.select do |key, value|
        Gem::Version.new(value) < Gem::Version.new("0.6.1")
      end
      self
    end

    def pass?
      !any_outdated? && !any_unreachable?
    end

    def any_outdated?
      !@versions.empty?
    end

    def any_unreachable?
      !@down.empty?
    end

    def message
      if pass?
        @message
      else
        build_message
      end
    end

    private

    def build_message
      @message = _('This feature is temporarily disabled. ')
      @message << _('The following Smart Proxies need to be updated to unlock the feature: %s. ') % @versions.keys.to_sentence if any_outdated?
      @message << _('The following proxies could not be reached: %s. Please make sure they are available so Foreman can check their versions.') % @down.to_sentence if any_unreachable?
      @message
    end

    def get_openscap_proxies
      SmartProxy.with_features "Openscap"
    end

    def openscap_proxy_versions
      get_openscap_proxies.inject({}) do |memo, proxy|
        begin
          status = ProxyStatus::Version.new(proxy).version
          openscap_version = status["modules"]["openscap"]
          memo[proxy.name] = openscap_version
        rescue Foreman::WrappedException
          @down << proxy.name
        end
        memo
      end
    end
  end
end

Version data entries

21 entries across 21 versions & 1 rubygems

Version Path
foreman_openscap-0.7.13 app/services/foreman_openscap/openscap_proxy_version_check.rb
foreman_openscap-0.7.12 app/services/foreman_openscap/openscap_proxy_version_check.rb
foreman_openscap-0.7.11 app/services/foreman_openscap/openscap_proxy_version_check.rb
foreman_openscap-0.7.10 app/services/foreman_openscap/openscap_proxy_version_check.rb
foreman_openscap-0.8.3 app/services/foreman_openscap/openscap_proxy_version_check.rb
foreman_openscap-0.7.9 app/services/foreman_openscap/openscap_proxy_version_check.rb
foreman_openscap-0.7.8 app/services/foreman_openscap/openscap_proxy_version_check.rb
foreman_openscap-0.7.7 app/services/foreman_openscap/openscap_proxy_version_check.rb
foreman_openscap-0.8.2 app/services/foreman_openscap/openscap_proxy_version_check.rb
foreman_openscap-0.7.6 app/services/foreman_openscap/openscap_proxy_version_check.rb
foreman_openscap-0.8.1 app/services/foreman_openscap/openscap_proxy_version_check.rb
foreman_openscap-0.7.5 app/services/foreman_openscap/openscap_proxy_version_check.rb
foreman_openscap-0.8.0 app/services/foreman_openscap/openscap_proxy_version_check.rb
foreman_openscap-0.7.4 app/services/foreman_openscap/openscap_proxy_version_check.rb
foreman_openscap-0.7.3 app/services/foreman_openscap/openscap_proxy_version_check.rb
foreman_openscap-0.7.2 app/services/foreman_openscap/openscap_proxy_version_check.rb
foreman_openscap-0.7.1 app/services/foreman_openscap/openscap_proxy_version_check.rb
foreman_openscap-0.6.7 app/services/foreman_openscap/openscap_proxy_version_check.rb
foreman_openscap-0.7.0 app/services/foreman_openscap/openscap_proxy_version_check.rb
foreman_openscap-0.6.6 app/services/foreman_openscap/openscap_proxy_version_check.rb