Module: PuppetDebugger::Support::Environment

Included in:
PuppetDebugger::Support
Defined in:
lib/puppet-debugger/support/environment.rb

Instance Method Summary collapse

Instance Method Details

#bolt_modules ⇒ Object



25
26
27
28
# File 'lib/puppet-debugger/support/environment.rb', line 25

def bolt_modules
  spec = Gem::Specification.latest_specs.find { |s| s.name.eql?('bolt') }
  File.join(spec.full_gem_path, 'bolt-modules') if spec
end

#create_environment ⇒ Object

returns the environment



44
45
46
47
48
# File 'lib/puppet-debugger/support/environment.rb', line 44

def create_environment
  Puppet::Node::Environment.create(Puppet[:environment],
                                   default_modules_paths,
                                   default_manifests_dir)
end

#create_node_environment(manifest = nil) ⇒ Object



50
51
52
53
# File 'lib/puppet-debugger/support/environment.rb', line 50

def create_node_environment(manifest = nil)
  env = Puppet.lookup(:current_environment)
  manifest ? env.override_with(manifest: manifest) : env
end

#default_manifests_dir ⇒ Object



35
36
37
# File 'lib/puppet-debugger/support/environment.rb', line 35

def default_manifests_dir
  File.join(Puppet[:environmentpath], Puppet[:environment], 'manifests')
end

#default_modules_paths ⇒ Object

returns an array of module directories, generally this is the only place to look for puppet code by default. This is read from the puppet configuration



15
16
17
18
19
20
21
22
23
# File 'lib/puppet-debugger/support/environment.rb', line 15

def default_modules_paths
  dirs = []
  # add the puppet-debugger directory so we can load any defined functions
  dirs << File.join(Puppet[:environmentpath], default_puppet_env_name, 'modules') unless Puppet[:environmentpath].empty?
  dirs << Puppet.settings[:basemodulepath].split(File::PATH_SEPARATOR)
  dirs << Puppet.settings[:vendormoduledir].split(File::PATH_SEPARATOR) if Puppet.settings[:vendormoduledir]
  dirs << bolt_modules
  dirs.flatten.compact.uniq
end

#default_puppet_env_name ⇒ Object

the cached name of the environment



64
65
66
# File 'lib/puppet-debugger/support/environment.rb', line 64

def default_puppet_env_name
  ENV['PUPPET_ENV'] || Puppet[:environment]
end

#default_site_manifest ⇒ Object



39
40
41
# File 'lib/puppet-debugger/support/environment.rb', line 39

def default_site_manifest
  File.join(default_manifests_dir, 'site.pp')
end

#environment_loaders ⇒ Object

currently this is not being used



69
70
71
# File 'lib/puppet-debugger/support/environment.rb', line 69

def environment_loaders
  compiler.loaders.public_environment_loader.loader_name
end

#modules_paths ⇒ Object

returns all the modules paths defined in the environment



31
32
33
# File 'lib/puppet-debugger/support/environment.rb', line 31

def modules_paths
  puppet_environment.full_modulepath
end

#puppet_env_name ⇒ Object



59
60
61
# File 'lib/puppet-debugger/support/environment.rb', line 59

def puppet_env_name
  puppet_environment.name
end

#puppet_environment ⇒ Object Also known as: environment

creates a puppet environment given a module path and environment name this is cached



8
9
10
# File 'lib/puppet-debugger/support/environment.rb', line 8

def puppet_environment
  @puppet_environment ||= create_environment
end

#set_environment(value) ⇒ Object



55
56
57
# File 'lib/puppet-debugger/support/environment.rb', line 55

def set_environment(value)
  @puppet_environment = value
end