@@ -9,21 +9,19 @@ def register(schema)
9
9
raise Puppet ::DevError , 'requires `:connection_info`' unless schema . key? :connection_info
10
10
raise Puppet ::DevError , '`:connection_info` must be a hash, not `%{other_type}`' % { other_type : schema [ :connection_info ] . class } unless schema [ :connection_info ] . is_a? ( Hash )
11
11
12
- init_transports
13
- unless @transports [ @environment ] [ schema [ :name ] ] . nil?
12
+ unless transports [ schema [ :name ] ] . nil?
14
13
raise Puppet ::DevError , 'Transport `%{name}` is already registered for `%{environment}`' % {
15
14
name : schema [ :name ] ,
16
- environment : @environment ,
15
+ environment : current_environment ,
17
16
}
18
17
end
19
- @ transports[ @environment ] [ schema [ :name ] ] = Puppet ::ResourceApi ::TransportSchemaDef . new ( schema )
18
+ transports [ schema [ :name ] ] = Puppet ::ResourceApi ::TransportSchemaDef . new ( schema )
20
19
end
21
20
module_function :register # rubocop:disable Style/AccessModifierDeclarations
22
21
23
22
# retrieve a Hash of transport schemas, keyed by their name.
24
23
def list
25
- init_transports
26
- Marshal . load ( Marshal . dump ( @transports [ @environment ] ) )
24
+ Marshal . load ( Marshal . dump ( transports ) )
27
25
end
28
26
module_function :list # rubocop:disable Style/AccessModifierDeclarations
29
27
@@ -47,13 +45,12 @@ def inject_device(name, transport)
47
45
module_function :inject_device # rubocop:disable Style/AccessModifierDeclarations
48
46
49
47
def self . validate ( name , connection_info )
50
- init_transports
51
- require "puppet/transport/schema/#{ name } " unless @transports [ @environment ] . key? name
52
- transport_schema = @transports [ @environment ] [ name ]
48
+ require "puppet/transport/schema/#{ name } " unless transports . key? name
49
+ transport_schema = transports [ name ]
53
50
if transport_schema . nil?
54
51
raise Puppet ::DevError , 'Transport for `%{target}` not registered with `%{environment}`' % {
55
52
target : name ,
56
- environment : @environment ,
53
+ environment : current_environment ,
57
54
}
58
55
end
59
56
message_prefix = 'The connection info provided does not match the Transport Schema'
@@ -64,24 +61,12 @@ def self.validate(name, connection_info)
64
61
65
62
def self . get_context ( name )
66
63
require 'puppet/resource_api/puppet_context'
67
- Puppet ::ResourceApi ::PuppetContext . new ( @ transports[ @environment ] [ name ] )
64
+ Puppet ::ResourceApi ::PuppetContext . new ( transports [ name ] )
68
65
end
69
66
private_class_method :get_context
70
67
71
- def self . init_transports
72
- lookup = Puppet . lookup ( :current_environment ) if Puppet . respond_to? :lookup
73
- @environment = if lookup . nil?
74
- :transports_default
75
- else
76
- lookup . name
77
- end
78
- @transports ||= { }
79
- @transports [ @environment ] ||= { }
80
- end
81
- private_class_method :init_transports
82
-
83
68
def self . wrap_sensitive ( name , connection_info )
84
- transport_schema = @ transports[ @environment ] [ name ]
69
+ transport_schema = transports [ name ]
85
70
if transport_schema
86
71
transport_schema . definition [ :connection_info ] . each do |attr_name , options |
87
72
if options . key? ( :sensitive ) && ( options [ :sensitive ] == true ) && connection_info . key? ( attr_name )
@@ -92,4 +77,20 @@ def self.wrap_sensitive(name, connection_info)
92
77
connection_info
93
78
end
94
79
private_class_method :wrap_sensitive
80
+
81
+ def self . transports
82
+ @transports ||= { }
83
+ @transports [ current_environment ] ||= { }
84
+ end
85
+ private_class_method :transports
86
+
87
+ def self . current_environment
88
+ if Puppet . respond_to? :lookup
89
+ env = Puppet . lookup ( :current_environment )
90
+ env . nil? ? :transports_default : env . name
91
+ else
92
+ :transports_default
93
+ end
94
+ end
95
+ private_class_method :current_environment
95
96
end
0 commit comments