Sha256: 8866f515d5bdd6ad601334f313d2f4d4efd2ad0646b0ffed34ce591fb1037941

Contents?: true

Size: 1.42 KB

Versions: 15

Compression:

Stored size: 1.42 KB

Contents

class LinuxAdmin
  class RegistrationSystem < LinuxAdmin
    def self.registration_type(reload = false)
      return @registration_type if @registration_type && !reload
      @registration_type = registration_type_uncached
    end

    def self.method_missing(meth, *args, &block)
      if white_list_methods.include?(meth)
        r = self.registration_type.new
        raise NotImplementedError, "#{meth} not implemented for #{self.name}" unless r.respond_to?(meth)
        r.send(meth, *args, &block)
      else
        super
      end
    end

    def registered?
      false
    end

    private

    def self.registration_type_uncached
      if Rhn.new.registered?
        Rhn
      elsif SubscriptionManager.new.registered?
        SubscriptionManager
      else
        self
      end
    end
    private_class_method :registration_type_uncached

    def self.white_list_methods
      @white_list_methods ||= begin
        all_methods = RegistrationSystem.instance_methods(false) + Rhn.instance_methods(false) + SubscriptionManager.instance_methods(false)
        all_methods.uniq
      end
    end
    private_class_method :white_list_methods

    def install_server_certificate(server, cert_path)
      host = server.start_with?("http") ? URI.parse(server).host : server

      LinuxAdmin::Rpm.upgrade("http://#{host}/#{cert_path}")
    end
  end
end

Dir.glob(File.join(File.dirname(__FILE__), "registration_system", "*.rb")).each { |f| require f }

Version data entries

15 entries across 15 versions & 1 rubygems

Version Path
linux_admin-0.9.4 lib/linux_admin/registration_system.rb
linux_admin-0.9.3 lib/linux_admin/registration_system.rb
linux_admin-0.9.2 lib/linux_admin/registration_system.rb
linux_admin-0.9.1 lib/linux_admin/registration_system.rb
linux_admin-0.9.0 lib/linux_admin/registration_system.rb
linux_admin-0.8.1 lib/linux_admin/registration_system.rb
linux_admin-0.8.0 lib/linux_admin/registration_system.rb
linux_admin-0.7.0 lib/linux_admin/registration_system.rb
linux_admin-0.6.0 lib/linux_admin/registration_system.rb
linux_admin-0.5.7 lib/linux_admin/registration_system.rb
linux_admin-0.5.6 lib/linux_admin/registration_system.rb
linux_admin-0.5.5 lib/linux_admin/registration_system.rb
linux_admin-0.5.4 lib/linux_admin/registration_system.rb
linux_admin-0.5.3 lib/linux_admin/registration_system.rb
linux_admin-0.5.2 lib/linux_admin/registration_system.rb