Class: Puppet::Plugins::DataProviders::Registry

Inherits:
Object
  • Object
show all
Defined in:
lib/puppet/plugins/data_providers/registry.rb

Overview

Since:

  • Puppet 4.0.0

Class Method Summary collapse

Class Method Details

.hash_of_environment_data_providers ⇒ Object

Since:

  • Puppet 4.0.0



19
20
21
22
# File 'lib/puppet/plugins/data_providers/registry.rb', line 19

def self.hash_of_environment_data_providers
  @@HASH_OF_ENV_DATA_PROVIDERS ||= Puppet::Pops::Types::TypeFactory.hash_of(
    Puppet::Pops::Types::TypeFactory.type_of(ENV_DATA_PROVIDERS_TYPE))
end

.hash_of_module_data_providers ⇒ Object

Since:

  • Puppet 4.0.0



14
15
16
17
# File 'lib/puppet/plugins/data_providers/registry.rb', line 14

def self.hash_of_module_data_providers
  @@HASH_OF_MODULE_DATA_PROVIDERS ||= Puppet::Pops::Types::TypeFactory.hash_of(
    Puppet::Pops::Types::TypeFactory.type_of(MODULE_DATA_PROVIDERS_TYPE))
end

.hash_of_path_based_data_provider_factories ⇒ Object

Since:

  • Puppet 4.0.0



24
25
26
27
# File 'lib/puppet/plugins/data_providers/registry.rb', line 24

def self.hash_of_path_based_data_provider_factories
  @@HASH_OF_PATH_BASED_DATA_PROVIDER_FACTORIES ||= Puppet::Pops::Types::TypeFactory.hash_of(
    Puppet::Pops::Types::TypeFactory.type_of(PATH_BASED_DATA_PROVIDER_FACTORIES_TYPE))
end

.hash_of_per_module_data_provider ⇒ Object

Since:

  • Puppet 4.0.0



10
11
12
# File 'lib/puppet/plugins/data_providers/registry.rb', line 10

def self.hash_of_per_module_data_provider
  @@HASH_OF_PER_MODULE_DATA_PROVIDERS ||= Puppet::Pops::Types::TypeFactory.hash_of(PER_MODULE_DATA_PROVIDER_TYPE)
end

.register_defaults(default_bindings) ⇒ Object

Registers a 'none' environment data provider, and a 'none' module data provider as the defaults. This is only done to allow that something binds to 'none' rather than removing the entire binding (which has the same effect).

Since:

  • Puppet 4.0.0



33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
# File 'lib/puppet/plugins/data_providers/registry.rb', line 33

def self.register_defaults(default_bindings)
  default_bindings.bind do
    name('none')
    in_multibind(ENV_DATA_PROVIDERS_KEY)
    to_instance(ENV_DATA_PROVIDERS_TYPE)
  end

  default_bindings.bind do
    name('function')
    in_multibind(ENV_DATA_PROVIDERS_KEY)
    to_instance('Puppet::DataProviders::FunctionEnvDataProvider')
  end

  default_bindings.bind do
    name('hiera')
    in_multibind(ENV_DATA_PROVIDERS_KEY)
    to_instance('Puppet::DataProviders::HieraEnvDataProvider')
  end

  default_bindings.bind do
    name('none')
    in_multibind(MODULE_DATA_PROVIDERS_KEY)
    to_instance(MODULE_DATA_PROVIDERS_TYPE)
  end

  default_bindings.bind do
    name('function')
    in_multibind(MODULE_DATA_PROVIDERS_KEY)
    to_instance('Puppet::DataProviders::FunctionModuleDataProvider')
  end

  default_bindings.bind do
    name('hiera')
    in_multibind(MODULE_DATA_PROVIDERS_KEY)
    to_instance('Puppet::DataProviders::HieraModuleDataProvider')
  end

  default_bindings.bind do
    name('json')
    in_multibind(PATH_BASED_DATA_PROVIDER_FACTORIES_KEY)
    to_instance('Puppet::DataProviders::JsonDataProviderFactory')
  end

  default_bindings.bind do
    name('yaml')
    in_multibind(PATH_BASED_DATA_PROVIDER_FACTORIES_KEY)
    to_instance('Puppet::DataProviders::YamlDataProviderFactory')
  end
end

.register_extensions(extensions) ⇒ Object

Since:

  • Puppet 4.0.0



3
4
5
6
7
8
# File 'lib/puppet/plugins/data_providers/registry.rb', line 3

def self.register_extensions(extensions)
  extensions.multibind(PER_MODULE_DATA_PROVIDER_KEY).name(PER_MODULE_DATA_PROVIDER_KEY).hash_of(PER_MODULE_DATA_PROVIDER_TYPE)
  extensions.multibind(ENV_DATA_PROVIDERS_KEY).name(ENV_DATA_PROVIDERS_KEY).hash_of(ENV_DATA_PROVIDERS_TYPE)
  extensions.multibind(MODULE_DATA_PROVIDERS_KEY).name(MODULE_DATA_PROVIDERS_KEY).hash_of(MODULE_DATA_PROVIDERS_TYPE)
  extensions.multibind(PATH_BASED_DATA_PROVIDER_FACTORIES_KEY).name(PATH_BASED_DATA_PROVIDER_FACTORIES_KEY).hash_of(PATH_BASED_DATA_PROVIDER_FACTORIES_TYPE)
end