Skip to content

Commit d40aea7

Browse files
author
James Pogran
authored
Merge pull request #47 from glennsarti/gh-46-under-non-root
(GH-46) Detect Puppet Environment correctly
2 parents e768efc + 6eb083b commit d40aea7

File tree

1 file changed

+15
-2
lines changed

1 file changed

+15
-2
lines changed

lib/puppet-languageserver/puppet_helper.rb

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -135,6 +135,19 @@ def self.prune_resource_parameters(resources)
135135
end
136136
private_class_method :prune_resource_parameters
137137

138+
def self.current_environment
139+
begin
140+
env = Puppet.lookup(:environments).get!(Puppet.settings[:environment])
141+
return env unless env.nil?
142+
rescue Puppet::Environments::EnvironmentNotFound
143+
PuppetLanguageServer.log_message(:warning, "[PuppetHelper::current_environment] Unable to load environment #{Puppet.settings[:environment]}")
144+
rescue StandardError => ex
145+
PuppetLanguageServer.log_message(:warning, "[PuppetHelper::current_environment] Error loading environment #{Puppet.settings[:environment]}: #{ex}")
146+
end
147+
Puppet.lookup(:current_environment)
148+
end
149+
private_class_method :current_environment
150+
138151
# Class and Defined Type loading
139152
def self._load_default_classes
140153
@default_classes_loaded = false
@@ -325,7 +338,7 @@ def self._load_default_types
325338

326339
# From https://github.com/puppetlabs/puppet/blob/ebd96213cab43bb2a8071b7ac0206c3ed0be8e58/lib/puppet/metatype/manager.rb#L182-L189
327340
autoloader = Puppet::Util::Autoload.new(self, 'puppet/type')
328-
current_env = Puppet.lookup(:current_environment)
341+
current_env = current_environment
329342
type_count = 0
330343

331344
# This is an expensive call
@@ -389,7 +402,7 @@ def self._load_default_functions
389402
PuppetLanguageServer.log_message(:debug, '[PuppetHelper::_load_default_functions] Starting')
390403

391404
autoloader = Puppet::Parser::Functions.autoloader
392-
current_env = Puppet.lookup(:current_environment)
405+
current_env = current_environment
393406
function_count = 0
394407

395408
# Functions that are already loaded (e.g. system default functions like alert)

0 commit comments

Comments
 (0)