choria-mcorpc-support 2.23.3 → 2.24.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (59) hide show
  1. checksums.yaml +5 -5
  2. data/lib/mcollective.rb +3 -3
  3. data/lib/mcollective/agent/choria_provision.ddl +214 -0
  4. data/lib/mcollective/agent/choria_provision.json +272 -0
  5. data/lib/mcollective/agent/choria_util.ddl +226 -107
  6. data/lib/mcollective/agent/choria_util.json +125 -25
  7. data/lib/mcollective/agent/rpcutil.ddl +242 -183
  8. data/lib/mcollective/agent/rpcutil.json +53 -57
  9. data/lib/mcollective/agent/scout.ddl +1 -1
  10. data/lib/mcollective/agent/scout.json +108 -136
  11. data/lib/mcollective/application/find.rb +1 -1
  12. data/lib/mcollective/application/plugin.rb +8 -173
  13. data/lib/mcollective/client.rb +1 -1
  14. data/lib/mcollective/config.rb +145 -103
  15. data/lib/mcollective/ddl.rb +0 -1
  16. data/lib/mcollective/discovery.rb +11 -63
  17. data/lib/mcollective/discovery/broadcast.ddl +11 -0
  18. data/lib/mcollective/discovery/choria.ddl +6 -4
  19. data/lib/mcollective/discovery/delegate.ddl +13 -0
  20. data/lib/mcollective/discovery/delegate.rb +72 -0
  21. data/lib/mcollective/discovery/external.ddl +13 -0
  22. data/lib/mcollective/discovery/file.ddl +13 -0
  23. data/lib/mcollective/discovery/flatfile.ddl +7 -5
  24. data/lib/mcollective/discovery/inventory.ddl +13 -0
  25. data/lib/mcollective/discovery/mc.ddl +3 -3
  26. data/lib/mcollective/log.rb +1 -2
  27. data/lib/mcollective/optionparser.rb +1 -1
  28. data/lib/mcollective/pluginpackager/forge_packager.rb +1 -1
  29. data/lib/mcollective/rpc/client.rb +4 -2
  30. data/lib/mcollective/util.rb +2 -4
  31. data/lib/mcollective/util/choria.rb +14 -8
  32. data/lib/mcollective/util/tasks_support.rb +15 -2
  33. metadata +11 -29
  34. data/lib/mcollective/data.rb +0 -96
  35. data/lib/mcollective/data/agent_data.ddl +0 -22
  36. data/lib/mcollective/data/agent_data.rb +0 -17
  37. data/lib/mcollective/data/base.rb +0 -68
  38. data/lib/mcollective/data/bolt_task_data.ddl +0 -90
  39. data/lib/mcollective/data/bolt_task_data.rb +0 -32
  40. data/lib/mcollective/data/collective_data.ddl +0 -20
  41. data/lib/mcollective/data/collective_data.rb +0 -9
  42. data/lib/mcollective/data/fact_data.ddl +0 -28
  43. data/lib/mcollective/data/fact_data.rb +0 -55
  44. data/lib/mcollective/data/fstat_data.ddl +0 -89
  45. data/lib/mcollective/data/fstat_data.rb +0 -54
  46. data/lib/mcollective/data/result.rb +0 -50
  47. data/lib/mcollective/ddl/dataddl.rb +0 -56
  48. data/lib/mcollective/discovery/choria.rb +0 -223
  49. data/lib/mcollective/discovery/flatfile.rb +0 -47
  50. data/lib/mcollective/discovery/stdin.ddl +0 -11
  51. data/lib/mcollective/discovery/stdin.rb +0 -67
  52. data/lib/mcollective/generators.rb +0 -7
  53. data/lib/mcollective/generators/agent_generator.rb +0 -50
  54. data/lib/mcollective/generators/base.rb +0 -45
  55. data/lib/mcollective/generators/data_generator.rb +0 -50
  56. data/lib/mcollective/generators/templates/action_snippet.erb +0 -13
  57. data/lib/mcollective/generators/templates/data_input_snippet.erb +0 -7
  58. data/lib/mcollective/generators/templates/ddl.erb +0 -8
  59. data/lib/mcollective/generators/templates/plugin.erb +0 -7
@@ -16,7 +16,7 @@ class MCollective::Application::Find < MCollective::Application # rubocop:disabl
16
16
 
17
17
  nodes.each {|c| puts c}
18
18
 
19
- warn "\nDiscovered %s nodes in %.2f seconds using the %s discovery plugin" % [nodes.size, discoverytime, mc.client.discoverer.discovery_method] if options[:verbose]
19
+ warn "\nDiscovered %s nodes in %.2f seconds using the %s discovery plugin" % [nodes.size, discoverytime, mc.client.options[:discovery_method]] if options[:verbose]
20
20
 
21
21
  !nodes.empty? ? exit(0) : exit(1)
22
22
  end
@@ -8,19 +8,14 @@ mco plugin package [options] <directory>
8
8
  mco plugin info <directory>
9
9
  mco plugin doc <plugin>
10
10
  mco plugin doc <type/plugin>
11
- mco plugin generate agent <pluginname> [actions=val,val]
12
- mco plugin generate data <pluginname> [outputs=val,val]
11
+ mco plugin generate client <ddl> <target>
12
+ mco plugin generate ddl <json_output> <ruby_output>
13
13
 
14
14
  info : Display plugin information including package details.
15
15
  package : Create all available plugin packages.
16
16
  doc : Display documentation for a specific plugin.
17
17
  END_OF_USAGE
18
18
 
19
- option :pluginname,
20
- :description => "Plugin name",
21
- :arguments => ["-n", "--name NAME"],
22
- :type => String
23
-
24
19
  option :postinstall,
25
20
  :description => "Post install script",
26
21
  :arguments => ["--postinstall POSTINSTALL"],
@@ -67,7 +62,7 @@ mco plugin package [options] <directory>
67
62
  :type => :array
68
63
 
69
64
  option :format,
70
- :description => "Package output format. Defaults to rpmpackage or debpackage",
65
+ :description => "Package output format. Defaults to forge",
71
66
  :arguments => ["--format OUTPUTFORMAT"],
72
67
  :type => String
73
68
 
@@ -81,46 +76,11 @@ mco plugin package [options] <directory>
81
76
  :arguments => ["--template HELPTEMPLATE"],
82
77
  :type => String
83
78
 
84
- option :description,
85
- :description => "Plugin description",
86
- :arguments => ["--description DESCRIPTION"],
87
- :type => String
88
-
89
- option :author,
90
- :description => "The author of the plugin",
91
- :arguments => ["--author AUTHOR"],
92
- :type => String
93
-
94
- option :license,
95
- :description => "The license under which the plugin is distributed",
96
- :arguments => ["--license LICENSE"],
97
- :type => String
98
-
99
79
  option :version,
100
80
  :description => "The version of the plugin",
101
81
  :arguments => ["--pluginversion VERSION"],
102
82
  :type => String
103
83
 
104
- option :url,
105
- :description => "Url at which information about the plugin can be found",
106
- :arguments => ["--url URL"],
107
- :type => String
108
-
109
- option :timeout,
110
- :description => "The plugin's timeout",
111
- :arguments => ["--timeout TIMEOUT"],
112
- :type => Integer
113
-
114
- option :actions,
115
- :description => "Actions to be generated for an Agent Plugin",
116
- :arguments => ["--actions [ACTIONS]"],
117
- :type => Array
118
-
119
- option :outputs,
120
- :description => "Outputs to be generated for an Data Plugin",
121
- :arguments => ["--outputs [OUTPUTS]"],
122
- :type => Array
123
-
124
84
  option :keep_artifacts,
125
85
  :description => "Don't remove artifacts after building packages",
126
86
  :arguments => ["--keep-artifacts"],
@@ -137,59 +97,12 @@ mco plugin package [options] <directory>
137
97
  configuration[:action] = ARGV.delete_at(0)
138
98
 
139
99
  configuration[:target] = ARGV.delete_at(0) || "."
140
-
141
- if configuration[:action] == "generate"
142
- unless ARGV[0] && ARGV[0].match(/(actions|outputs)=(.+)/i)
143
- if configuration[:pluginname] # rubocop:disable Metrics/BlockNesting
144
- ARGV.delete_at(0)
145
- else
146
- configuration[:pluginname] = ARGV.delete_at(0)
147
- end
148
- end
149
-
150
- ARGV.each do |argument|
151
- if argument.match(/(actions|outputs)=(.+)/i)
152
- configuration[$1.downcase.to_sym] = $2.split(",")
153
- else
154
- raise "Could not parse --arg '#{argument}'"
155
- end
156
- end
157
- end
158
100
  end
159
101
  end
160
102
 
161
- # Display info about plugin
162
- def info_command
163
- plugin = prepare_plugin
164
- packager = PluginPackager["#{configuration[:format].capitalize}Packager"]
165
- packager.new(plugin).package_information
166
- end
167
-
168
103
  # Generate a plugin skeleton
169
104
  def generate_command
170
- raise "undefined plugin type. cannot generate plugin. valid types are 'agent' and 'data'" if configuration["target"] == "."
171
-
172
- unless configuration[:pluginname]
173
- puts "No plugin name specified. Using 'new_plugin'"
174
- configuration[:pluginname] = "new_plugin"
175
- end
176
-
177
- load_plugin_config_values
178
-
179
- case configuration[:target].downcase
180
- when "agent"
181
- Generators::AgentGenerator.new(configuration[:pluginname], configuration[:actions], configuration[:pluginname],
182
- configuration[:description], configuration[:author], configuration[:license],
183
- configuration[:version], configuration[:url], configuration[:timeout])
184
- when "data"
185
- raise "data plugin must have at least one output" unless configuration[:outputs]
186
-
187
- Generators::DataGenerator.new(configuration[:pluginname], configuration[:outputs], configuration[:pluginname],
188
- configuration[:description], configuration[:author], configuration[:license],
189
- configuration[:version], configuration[:url], configuration[:timeout])
190
- else
191
- raise "invalid plugin type. cannot generate plugin '#{configuration[:target]}'"
192
- end
105
+ puts "CRITICAL: mco plugin generate is deprecated, please use 'choria plugin generate'"
193
106
  end
194
107
 
195
108
  # Package plugin
@@ -223,76 +136,10 @@ mco plugin package [options] <directory>
223
136
  end
224
137
 
225
138
  # Show application list and plugin help
226
- def doc_command # rubocop:disable Metrics/MethodLength
227
- known_plugin_types = [
228
- ["Agents", :agent],
229
- ["Aggregate", :aggregate],
230
- ["Connectors", :connector],
231
- ["Data Queries", :data],
232
- ["Discovery Methods", :discovery],
233
- ["Validator Plugins", :validator]
234
- ]
235
-
236
- if configuration.include?(:target) && configuration[:target] != "."
237
- if configuration[:target] =~ /^(.+?)\/(.+)$/
238
- ddl = load_plugin_ddl($2.to_sym, $1)
239
- else
240
- found_plugin_type = nil
241
-
242
- known_plugin_types.each do |plugin_type|
243
- PluginManager.find(plugin_type[1], "ddl").each do |ddlf|
244
- pluginname = ddlf.gsub(/_#{plugin_type[1]}$/, "")
245
-
246
- abort "Duplicate plugin name found, please specify a full path like agent/rpcutil" if pluginname == configuration[:target] && found_plugin_type
247
-
248
- found_plugin_type = plugin_type[1] if pluginname == configuration[:target]
249
- end
250
- end
251
-
252
- abort "Could not find a plugin named '%s' in any supported plugin type" % configuration[:target] unless found_plugin_type
253
- ddl = load_plugin_ddl(configuration[:target], found_plugin_type)
254
- end
255
-
256
- if ddl
257
- puts ddl.help(configuration[:rpctemplate])
258
- else
259
- abort "Could not find a '%s' plugin named '%s'" % configuration[:target].split("/")
260
- end
261
-
262
- else
263
- puts "Please specify a plugin. Available plugins are:"
264
- puts
265
-
266
- load_errors = []
267
-
268
- known_plugin_types.each do |plugin_type|
269
- puts "%s:" % plugin_type[0]
139
+ def doc_command
140
+ puts "WARNING: mco plugin doc is deprecated, please use choria plugin doc"
270
141
 
271
- PluginManager.find(plugin_type[1], "ddl").each do |ddlf|
272
- begin
273
- help = DDL.new(ddlf, plugin_type[1], false)
274
-
275
- next unless help.client_activated?
276
-
277
- help.loadddlfile
278
- pluginname = ddlf.gsub(/_#{plugin_type[1]}$/, "")
279
- puts " %-25s %s" % [pluginname, help.meta[:description]]
280
- rescue => e
281
- load_errors << [plugin_type[1], ddlf, e]
282
- end
283
- end
284
-
285
- puts
286
- end
287
-
288
- unless load_errors.empty?
289
- puts "Plugin Load Errors:"
290
-
291
- load_errors.each do |e|
292
- puts " %-25s %s" % ["#{e[0]}/#{e[1]}", Util.colorize(:yellow, e[2])]
293
- end
294
- end
295
- end
142
+ exec("choria plugin doc %s" % [configuration[:target]])
296
143
  end
297
144
 
298
145
  # Creates the correct package plugin object.
@@ -345,7 +192,7 @@ mco plugin package [options] <directory>
345
192
  # Return the name of the type of plugin as a string
346
193
  def identify_plugin
347
194
  plugintype = Dir.glob(File.join(configuration[:target], "*")).select do |file|
348
- File.directory?(file) && file.match(/(connector|facts|registration|security|audit|pluginpackager|data|discovery|validator)/)
195
+ File.directory?(file) && file.match(/(connector|facts|registration|security|audit|pluginpackager|discovery|validator)/)
349
196
  end
350
197
 
351
198
  raise "more than one plugin type detected in directory" if plugintype.size > 1
@@ -354,18 +201,6 @@ mco plugin package [options] <directory>
354
201
  File.basename(plugintype[0])
355
202
  end
356
203
 
357
- # Load preset metadata values from config if they are present
358
- # This makes it possible to override metadata values in a local
359
- # client config file.
360
- #
361
- # Example : plugin.metadata.license = Apache 2
362
- def load_plugin_config_values
363
- config = Config.instance
364
- [:pluginname, :description, :author, :license, :version, :url, :timeout].each do |confoption|
365
- configuration[confoption] = config.pluginconf["metadata.#{confoption}"] unless configuration[confoption]
366
- end
367
- end
368
-
369
204
  def main
370
205
  abort "No action specified, please run 'mco help plugin' for help" unless configuration.include?(:action)
371
206
 
@@ -150,7 +150,7 @@ module MCollective
150
150
  # of the discovery being cancelled soon as it reached the
151
151
  # requested limit of hosts
152
152
  def discover(filter, timeout, limit=0)
153
- @discoverer.discover(filter.merge("collective" => collective), timeout, limit)
153
+ @discoverer.discover(filter.merge("collective" => collective), timeout, limit, self)
154
154
  end
155
155
 
156
156
  # Send a request, performs the passed block for each response
@@ -17,123 +17,132 @@ module MCollective
17
17
  @configured = false
18
18
  end
19
19
 
20
- def loadconfig(configfile) # rubocop:disable Metrics/MethodLength
21
- set_config_defaults(configfile)
20
+ def parse_config_file(configfile, libdirs) # rubocop:disable Metrics/MethodLength
21
+ File.readlines(configfile).each do |line|
22
+ # strip blank spaces, tabs etc off the end of all lines
23
+ line.gsub!(/\s*$/, "")
22
24
 
23
- if File.exist?(configfile)
24
- libdirs = []
25
- File.readlines(configfile).each do |line|
26
- # strip blank spaces, tabs etc off the end of all lines
27
- line.gsub!(/\s*$/, "")
25
+ next if line =~ /^#|^$/
26
+ next unless line =~ /(.+?)\s*=\s*(.+)/
28
27
 
29
- next if line =~ /^#|^$/
30
- next unless line =~ /(.+?)\s*=\s*(.+)/
28
+ key = $1.strip
29
+ val = $2
31
30
 
32
- key = $1.strip
33
- val = $2
31
+ begin
32
+ case key
33
+ when "collectives"
34
+ @collectives = val.split(",").map(&:strip)
35
+ when "main_collective"
36
+ @main_collective = val
37
+ when "logfile"
38
+ @logfile = val
39
+ when "keeplogs"
40
+ @keeplogs = Integer(val)
41
+ when "max_log_size"
42
+ @max_log_size = Integer(val)
43
+ when "loglevel"
44
+ @loglevel = val
45
+ when "logfacility"
46
+ @logfacility = val
47
+ when "libdir"
48
+ paths = val.split(File::PATH_SEPARATOR)
49
+ paths.each do |path|
50
+ raise("libdir paths should be absolute paths but '%s' is relative" % path) unless Util.absolute_path?(path)
34
51
 
35
- begin
36
- case key
37
- when "collectives"
38
- @collectives = val.split(",").map(&:strip)
39
- when "main_collective"
40
- @main_collective = val
41
- when "logfile"
42
- @logfile = val
43
- when "keeplogs"
44
- @keeplogs = Integer(val)
45
- when "max_log_size"
46
- @max_log_size = Integer(val)
47
- when "loglevel"
48
- @loglevel = val
49
- when "logfacility"
50
- @logfacility = val
51
- when "libdir"
52
- paths = val.split(File::PATH_SEPARATOR)
53
- paths.each do |path|
54
- raise("libdir paths should be absolute paths but '%s' is relative" % path) unless Util.absolute_path?(path)
55
-
56
- libdirs << path
57
- end
58
- when "identity"
59
- @identity = val
60
- when "direct_addressing"
61
- @direct_addressing = Util.str_to_bool(val)
62
- when "direct_addressing_threshold"
63
- @direct_addressing_threshold = Integer(val)
64
- when "color"
65
- @color = Util.str_to_bool(val)
66
- when "daemonize"
67
- @daemonize = Util.str_to_bool(val)
68
- when "securityprovider"
69
- @securityprovider = val.capitalize
70
- when "factsource"
71
- @factsource = val.capitalize
72
- when "connector"
73
- @connector = val.capitalize
74
- when "classesfile"
75
- @classesfile = val
76
- when /^plugin.(.+)$/
77
- @pluginconf[$1] = val
78
- when "discovery_timeout"
79
- @discovery_timeout = Integer(val)
80
- when "publish_timeout"
81
- @publish_timeout = Integer(val)
82
- when "connection_timeout"
83
- @connection_timeout = Integer(val)
84
- when "rpcaudit"
85
- @rpcaudit = Util.str_to_bool(val)
86
- when "rpcauditprovider"
87
- @rpcauditprovider = val.capitalize
88
- when "rpcauthorization"
89
- @rpcauthorization = Util.str_to_bool(val)
90
- when "rpcauthprovider"
91
- @rpcauthprovider = val.capitalize
92
- when "rpclimitmethod"
93
- @rpclimitmethod = val.to_sym
94
- when "logger_type"
95
- @logger_type = val
96
- when "fact_cache_time"
97
- @fact_cache_time = Integer(val)
98
- when "ssl_cipher"
99
- @ssl_cipher = val
100
- when "threaded"
101
- @threaded = Util.str_to_bool(val)
102
- when "ttl"
103
- @ttl = Integer(val)
104
- when "default_discovery_options"
105
- @default_discovery_options << val
106
- when "default_discovery_method"
107
- @default_discovery_method = val
108
- when "soft_shutdown"
109
- @soft_shutdown = Util.str_to_bool(val)
110
- when "soft_shutdown_timeout"
111
- @soft_shutdown_timeout = Integer(val)
112
- when "activate_agents"
113
- @activate_agents = Util.str_to_bool(val)
114
- when "default_batch_size"
115
- @default_batch_size = Integer(val)
116
- when "default_batch_sleep_time"
117
- @default_batch_sleep_time = Float(val)
118
- else
119
- # server config might now be choria config which will divirge from mcollective
120
- # in time, so we only raise this error when it looks like we aren't loading
121
- # a server config else we try our best to load as much as we can
122
- raise("Unknown config parameter '#{key}'") unless configfile =~ /server/
52
+ libdirs << path
123
53
  end
124
- rescue ArgumentError
125
- raise("Could not parse value for configuration option '%s' with value '%s'" % [key, val])
54
+ when "identity"
55
+ @identity = val
56
+ when "direct_addressing"
57
+ @direct_addressing = Util.str_to_bool(val)
58
+ when "direct_addressing_threshold"
59
+ @direct_addressing_threshold = Integer(val)
60
+ when "color"
61
+ @color = Util.str_to_bool(val)
62
+ when "daemonize"
63
+ @daemonize = Util.str_to_bool(val)
64
+ when "securityprovider"
65
+ @securityprovider = val.capitalize
66
+ when "factsource"
67
+ @factsource = val.capitalize
68
+ when "connector"
69
+ @connector = val.capitalize
70
+ when "classesfile"
71
+ @classesfile = val
72
+ when /^plugin.(.+)$/
73
+ @pluginconf[$1] = val
74
+ when "discovery_timeout"
75
+ @discovery_timeout = Integer(val)
76
+ when "publish_timeout"
77
+ @publish_timeout = Integer(val)
78
+ when "connection_timeout"
79
+ @connection_timeout = Integer(val)
80
+ when "rpcaudit"
81
+ @rpcaudit = Util.str_to_bool(val)
82
+ when "rpcauditprovider"
83
+ @rpcauditprovider = val.capitalize
84
+ when "rpcauthorization"
85
+ @rpcauthorization = Util.str_to_bool(val)
86
+ when "rpcauthprovider"
87
+ @rpcauthprovider = val.capitalize
88
+ when "rpclimitmethod"
89
+ @rpclimitmethod = val.to_sym
90
+ when "logger_type"
91
+ @logger_type = val
92
+ when "fact_cache_time"
93
+ @fact_cache_time = Integer(val)
94
+ when "ssl_cipher"
95
+ @ssl_cipher = val
96
+ when "threaded"
97
+ @threaded = Util.str_to_bool(val)
98
+ when "ttl"
99
+ @ttl = Integer(val)
100
+ when "default_discovery_options"
101
+ @default_discovery_options << val
102
+ when "default_discovery_method"
103
+ @default_discovery_method = val
104
+ when "soft_shutdown"
105
+ @soft_shutdown = Util.str_to_bool(val)
106
+ when "soft_shutdown_timeout"
107
+ @soft_shutdown_timeout = Integer(val)
108
+ when "activate_agents"
109
+ @activate_agents = Util.str_to_bool(val)
110
+ when "default_batch_size"
111
+ @default_batch_size = Integer(val)
112
+ when "default_batch_sleep_time"
113
+ @default_batch_sleep_time = Float(val)
114
+ else
115
+ # server config might now be choria config which will divirge from mcollective
116
+ # in time, so we only raise this error when it looks like we aren't loading
117
+ # a server config else we try our best to load as much as we can
118
+ raise("Unknown config parameter '#{key}'") unless configfile =~ /server/
126
119
  end
120
+ rescue ArgumentError
121
+ raise("Could not parse value for configuration option '%s' with value '%s'" % [key, val])
127
122
  end
123
+ end
124
+ end
125
+
126
+ def loadconfig(configfile)
127
+ set_config_defaults(configfile)
128
+
129
+ if File.exist?(configfile)
130
+ libdirs = []
131
+
132
+ parse_config_file(configfile, libdirs)
128
133
 
129
134
  read_plugin_config_dir("#{@configdir}/plugin.d")
130
135
 
131
- raise 'Identities can only match /\w\.\-/' unless @identity =~ /^[\w.\-]+$/
136
+ parse_project_config(libdirs)
137
+
138
+ raise('Identities can only match /\w\.\-/') unless @identity =~ /^[\w.\-]+$/
139
+
140
+ check_deprecations
132
141
 
133
142
  @configured = true
134
143
 
135
144
  libdirs.each do |dir|
136
- Log.debug("Cannot find libdir: #{dir}") unless File.directory?(dir)
145
+ Log.debug("Cannot find libdir: %s" % dir) unless File.directory?(dir)
137
146
 
138
147
  # remove the old one if it exists, we're moving it to the front
139
148
  $LOAD_PATH.reject! { |elem| elem == dir }
@@ -154,6 +163,31 @@ module MCollective
154
163
  end
155
164
  end
156
165
 
166
+ def project_root
167
+ Dir.pwd
168
+ end
169
+
170
+ def parse_project_config(libdirs)
171
+ project_config_files(project_root).each do |pfile|
172
+ parse_config_file(pfile, libdirs)
173
+ end
174
+ end
175
+
176
+ def project_config_files(path)
177
+ paths = []
178
+
179
+ path = File.expand_path(path)
180
+ parent = File.expand_path("..", path)
181
+
182
+ paths << project_config_files(parent) if parent != path
183
+
184
+ config = File.join(path, "choria.conf")
185
+
186
+ paths << config if File.exist?(config)
187
+
188
+ paths.flatten
189
+ end
190
+
157
191
  def set_config_defaults(configfile) # rubocop:disable Naming/AccessorMethodName
158
192
  @subscribe = []
159
193
  @pluginconf = {}
@@ -222,5 +256,13 @@ module MCollective
222
256
  end
223
257
  end
224
258
  end
259
+
260
+ def check_deprecations
261
+ if @pluginconf["choria.use_srv_records"]
262
+ Log.warn("Configuration set 'choria.use_srv_records' which is deprecated in favor of 'choria.use_srv'.")
263
+ @pluginconf["choria.use_srv"] = @pluginconf["choria.use_srv_records"]
264
+ @pluginconf.delete("choria.use_srv_records")
265
+ end
266
+ end
225
267
  end
226
268
  end