diff --git a/lib/puppet-languageserver-sidecar/facter_helper.rb b/lib/puppet-languageserver-sidecar/facter_helper.rb index 0d1f869e..efa13574 100644 --- a/lib/puppet-languageserver-sidecar/facter_helper.rb +++ b/lib/puppet-languageserver-sidecar/facter_helper.rb @@ -21,7 +21,6 @@ def self.retrieve_facts(_cache, _options = {}) facts = PuppetLanguageServer::Sidecar::Protocol::FactList.new begin req = Puppet::Indirector::Request.new(:facts, :find, 'language_server', nil, environment: current_environment) - Facter.monkey_allow_reset # This is a monkey patched method onto Facter result = Puppet::Node::Facts::Facter.new.find(req) result.values.each do |key, value| # TODO: This isn't strictly correct e.g. fully qualified facts will look a bit odd. diff --git a/lib/puppet-languageserver-sidecar/puppet_monkey_patches.rb b/lib/puppet-languageserver-sidecar/puppet_monkey_patches.rb index 92ed5285..f082ff78 100644 --- a/lib/puppet-languageserver-sidecar/puppet_monkey_patches.rb +++ b/lib/puppet-languageserver-sidecar/puppet_monkey_patches.rb @@ -80,30 +80,6 @@ def newtype(name, options = {}, &block) end end -# Due to Facter 4.0.16 calling reset as part of to_hash, we need to monkey patch the reset -# method so it only gets called once during to_hash, not multiple times. Otherwise it drops the -# puppet cache dir for facts. We could monkey patch the Puppet Facts indirector, but as this was -# only introduced in Factor 4.0.16, that seems like the wrong place to patch. -# Reference - https://github.com/puppetlabs/facter-ng/commit/bc2aca66d6f69d5f958ba7685b6e143416617e2c#diff-0e966bb45d33ec9251cfcda152227f1bR189 -require 'facter' -module Facter - class << self - alias_method :original_reset, :reset - - @singleton_reset = false - - def reset - return nil if @singleton_reset - @singleton_reset = true - original_reset - end - - def monkey_allow_reset - @singleton_reset = false - end - end -end - # MUST BE LAST!!!!!! # Suppress any warning messages to STDOUT. It can pollute stdout when running in STDIO mode Puppet::Util::Log.newdesttype :null_logger do