1
1
# Require all of our types so the class names are resolvable for purging
2
- Dir [ File . dirname ( __FILE__ ) + '/*.rb' ] . each do |file |
3
- unless file == __FILE__
4
- require file
5
- end
2
+ Dir [ File . dirname ( __FILE__ ) + '/*.rb' ] . each do |file |
3
+ unless file == __FILE__
4
+ require file
5
+ end
6
6
end
7
7
8
8
Puppet ::Type . newtype ( :splunk_config ) do
9
- newparam ( :name , : namevar => true ) do
9
+ newparam ( :name , namevar : true ) do
10
10
desc 'splunk config'
11
11
end
12
12
23
23
end
24
24
25
25
## Generate purge parameters for the splunk_config type
26
- [
27
- :purge_inputs ,
28
- :purge_outputs ,
29
- :purge_authentication ,
30
- :purge_authorize ,
31
- :purge_distsearch ,
32
- :purge_indexes ,
33
- :purge_limits ,
34
- :purge_props ,
35
- :purge_server ,
36
- :purge_transforms ,
37
- :purge_web ,
38
- :purge_forwarder_inputs ,
39
- :purge_forwarder_outputs ,
40
- :purge_forwarder_props ,
41
- :purge_forwarder_transforms ,
42
- :purge_forwarder_web
26
+ [
27
+ :purge_inputs ,
28
+ :purge_outputs ,
29
+ :purge_authentication ,
30
+ :purge_authorize ,
31
+ :purge_distsearch ,
32
+ :purge_indexes ,
33
+ :purge_limits ,
34
+ :purge_props ,
35
+ :purge_server ,
36
+ :purge_transforms ,
37
+ :purge_web ,
38
+ :purge_forwarder_inputs ,
39
+ :purge_forwarder_outputs ,
40
+ :purge_forwarder_props ,
41
+ :purge_forwarder_transforms ,
42
+ :purge_forwarder_web
43
43
] . each do |p |
44
44
newparam ( p ) do
45
- newvalues ( :true , :false )
45
+ newvalues ( :true , :false )
46
46
defaultto :false
47
47
end
48
48
end
53
53
def generate
54
54
set_provider_paths
55
55
56
- resources = Array . new
56
+ resources = [ ]
57
57
58
58
{
59
59
Puppet ::Type ::Splunk_output => self [ :purge_outputs ] ,
@@ -71,14 +71,13 @@ def generate
71
71
Puppet ::Type ::Splunkforwarder_props => self [ :purge_forwarder_props ] ,
72
72
Puppet ::Type ::Splunkforwarder_transforms => self [ :purge_forwarder_transforms ] ,
73
73
Puppet ::Type ::Splunkforwarder_web => self [ :purge_forwarder_web ]
74
- } . each do |k , purge |
74
+ } . each do |k , purge |
75
75
resources . concat ( purge_splunk_resources ( k ) ) if purge == :true
76
76
end
77
77
78
78
return resources
79
79
end
80
80
81
-
82
81
def set_provider_paths
83
82
[
84
83
:splunk_authentication ,
@@ -104,37 +103,36 @@ def set_provider_paths
104
103
Puppet ::Type . type ( res_type ) . provider ( :ini_setting ) . set_file_path ( self [ :forwarder_confdir ] )
105
104
end
106
105
end
107
-
106
+
108
107
def purge_splunk_resources ( klass )
109
108
type_name = klass . name
110
- purge_resources = Array . new
111
- puppet_resources = Array . new
109
+ purge_resources = [ ]
110
+ puppet_resources = [ ]
112
111
113
112
# Search the catalog for resource types matching the provided class
114
113
# type and build an array of puppet resources matching the namevar
115
114
# as section/setting
116
115
#
117
116
catalog_resources = catalog . resources . select { |r | r . is_a? ( klass ) }
118
117
catalog_resources . each do |res |
119
- puppet_resources << res [ :section ] + "/" + res [ :setting ]
118
+ puppet_resources << res [ :section ] + '/' + res [ :setting ]
120
119
end
121
120
122
-
123
121
# Search the configured instances of the class type and purge them if
124
122
# the instance name (setion/setting) isn't found in puppet_resources
125
123
#
126
124
Puppet ::Type . type ( type_name ) . instances . each do |instance |
127
125
unless puppet_resources . include? ( instance . name )
128
126
purge_resources << Puppet ::Type . type ( type_name ) . new (
129
- : name => instance . name ,
130
- : section => instance [ :section ] ,
131
- : setting => instance [ :setting ] ,
132
- : ensure => :absent
127
+ name : instance . name ,
128
+ section : instance [ :section ] ,
129
+ setting : instance [ :setting ] ,
130
+ ensure : :absent
133
131
)
134
132
end
135
133
end
136
134
137
135
return purge_resources
138
136
end
139
-
137
+
140
138
end
0 commit comments