choria-mcorpc-support 2.20.6 → 2.20.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 29d095eecde9726e77979a330ff4ed2a27ac7912
4
- data.tar.gz: a6aa7aa304f84aa576e711e40184d492c245295e
3
+ metadata.gz: '069a8ceae281b1be5fc39b924c2b95c3fddb8242'
4
+ data.tar.gz: 97d52bf4968e7acc2c3534c74bc84e2ff75c0f27
5
5
  SHA512:
6
- metadata.gz: da30c83fef47986f8acb747d284ace2ecc736cfd9f7045b938c51684c801837080b346dbcdde7ca27a692e00181bb4b616af1d172457312217d26bd0d113bc92
7
- data.tar.gz: ad9ca3e3fc6e99bad8eafd7a97764519d0e490644d9b80c39933b020d26c1f307ba4891e34d63bf8d79ac207533981dfa6a2a1bc201a99bb9ce9c4798747758c
6
+ metadata.gz: 2d5810c5b35911eba73e85086caa5764efbfb0d9b77aa504bf64ad538a35da7a0f40552d6dc3a6e43e6f41420684f83f27922b1f8d33018b8b439ac0ecaee670
7
+ data.tar.gz: a69247825c9d2cc0c598f01ac46832ef02508522ca69a6fc886bed37866ad8652562b683a3f25901c5a8ea6feadf38a3af93d7a948ae018e96050a03c93541a4
@@ -54,7 +54,7 @@ module MCollective
54
54
  require "mcollective/util"
55
55
  require "mcollective/validator"
56
56
 
57
- VERSION = "2.20.6".freeze
57
+ VERSION = "2.20.7".freeze
58
58
 
59
59
  def self.version
60
60
  VERSION
@@ -37,7 +37,7 @@ module MCollective
37
37
  # aggregate summary(:value)
38
38
  # end
39
39
  # end
40
- class AgentDDL<Base
40
+ class AgentDDL < Base
41
41
  def initialize(plugin, plugintype=:agent, loadddl=true)
42
42
  @process_aggregate_functions = nil
43
43
 
@@ -65,18 +65,18 @@ module MCollective
65
65
  def summarize(&block)
66
66
  unless @config.mode == :server
67
67
  @process_aggregate_functions = true
68
- block.call
68
+ yield
69
69
  @process_aggregate_functions = nil
70
70
  end
71
71
  end
72
72
 
73
73
  # Sets the aggregate array for the given action
74
- def aggregate(function, format = {:format => nil})
74
+ def aggregate(function, format={:format => nil})
75
75
  raise(DDLValidationError, "Formats supplied to aggregation functions should be a hash") unless format.is_a?(Hash)
76
76
  raise(DDLValidationError, "Formats supplied to aggregation functions must have a :format key") unless format.keys.include?(:format)
77
77
  raise(DDLValidationError, "Functions supplied to aggregate should be a hash") unless function.is_a?(Hash)
78
78
 
79
- unless (function.keys.include?(:args)) && function[:args]
79
+ unless function.keys.include?(:args) && function[:args]
80
80
  raise DDLValidationError, "aggregate method for action '%s' missing a function parameter" % entities[@current_entity][:action]
81
81
  end
82
82
 
@@ -133,7 +133,7 @@ module MCollective
133
133
  # we set @current_entity so the input block can know what its talking
134
134
  # to, this is probably an epic hack, need to improve.
135
135
  @current_entity = name
136
- block.call if block_given?
136
+ yield if block_given?
137
137
  @current_entity = nil
138
138
  end
139
139
 
@@ -141,11 +141,13 @@ module MCollective
141
141
  # with args as a hash. This will only be active if the @process_aggregate_functions
142
142
  # is set to true which only happens in the #summarize block
143
143
  def method_missing(name, *args, &block)
144
- unless @process_aggregate_functions || is_function?(name)
145
- raise NoMethodError, "undefined local variable or method `#{name}'", caller
146
- end
144
+ super unless @process_aggregate_functions || is_function?(name)
145
+
146
+ {:function => name, :args => args}
147
+ end
147
148
 
148
- return {:function => name, :args => args}
149
+ def respond_to_missing?(method, *)
150
+ @process_aggregate_functions || is_function?(name) || super
149
151
  end
150
152
 
151
153
  # Checks if a method name matches a aggregate plugin.
@@ -169,7 +171,7 @@ module MCollective
169
171
 
170
172
  return unless input
171
173
 
172
- input.keys.each do |key|
174
+ input.each_key do |key|
173
175
  if key.is_a?(Symbol) && arguments.include?(key.to_s) && !input.include?(key.to_s)
174
176
  compat_arg = key.to_s
175
177
  else
@@ -228,7 +230,7 @@ module MCollective
228
230
  input = action_interface(action)[:input] || {}
229
231
  compatible_args = symbolize_basic_input_arguments(input, arguments)
230
232
 
231
- input.keys.each do |key|
233
+ input.each_key do |key|
232
234
  unless input[key][:optional]
233
235
  unless compatible_args.include?(key)
234
236
  raise DDLValidationError, "Action #{action} needs a #{key} argument"
@@ -42,7 +42,7 @@ module MCollective
42
42
  # the config dir and if that does not exist, default to
43
43
  # /etc/mcollective
44
44
  def help(template=nil)
45
- template = template_for_plugintype unless template
45
+ template ||= template_for_plugintype
46
46
  template = Util.templatepath(template) unless Util.absolute_path?(template)
47
47
 
48
48
  template = File.read(template)
@@ -52,14 +52,15 @@ module MCollective
52
52
  unless template == "metadata-help.erb"
53
53
  metadata_template = Util.templatepath("metadata-help.erb")
54
54
  metadata_template = File.read(metadata_template)
55
- metastring = ERB.new(metadata_template, 0, '%')
55
+ metastring = ERB.new(metadata_template, 0, "%")
56
56
  metastring = metastring.result(binding)
57
57
  end
58
58
 
59
- erb = ERB.new(template, 0, '%')
59
+ erb = ERB.new(template, 0, "%")
60
60
  erb.result(binding)
61
61
  end
62
62
 
63
+ # rubocop:disable Lint/DuplicateMethods, Style/TrivialAccessors
63
64
  def usage(usage_text)
64
65
  @usage = usage_text
65
66
  end
@@ -67,13 +68,13 @@ module MCollective
67
68
  def template_for_plugintype
68
69
  case @plugintype
69
70
  when :agent
70
- return "rpc-help.erb"
71
+ "rpc-help.erb"
71
72
  else
72
- if File.exists?(Util.templatepath("#{@plugintype}-help.erb"))
73
- return "#{@plugintype}-help.erb"
73
+ if File.exist?(Util.templatepath("#{@plugintype}-help.erb"))
74
+ "#{@plugintype}-help.erb"
74
75
  else
75
76
  # Default help template gets loaded if plugintype-help does not exist.
76
- return "metadata-help.erb"
77
+ "metadata-help.erb"
77
78
  end
78
79
  end
79
80
  end
@@ -91,8 +92,8 @@ module MCollective
91
92
  end
92
93
 
93
94
  def findddlfile(ddlname=nil, ddltype=nil)
94
- ddlname = @pluginname unless ddlname
95
- ddltype = @plugintype unless ddltype
95
+ ddlname ||= @pluginname
96
+ ddltype ||= @plugintype
96
97
 
97
98
  @config.libdir.each do |libdir|
98
99
  ddlfile = File.join([libdir, "mcollective", ddltype.to_s, "#{ddlname}.ddl"])
@@ -170,17 +171,17 @@ module MCollective
170
171
  :optional => properties[:optional]}
171
172
 
172
173
  case properties[:type]
173
- when :string
174
- raise "Input type :string needs a :validation argument" unless properties.include?(:validation)
175
- raise "Input type :string needs a :maxlength argument" unless properties.include?(:maxlength)
174
+ when :string
175
+ raise "Input type :string needs a :validation argument" unless properties.include?(:validation)
176
+ raise "Input type :string needs a :maxlength argument" unless properties.include?(:maxlength)
176
177
 
177
- @entities[entity][:input][argument][:validation] = properties[:validation]
178
- @entities[entity][:input][argument][:maxlength] = properties[:maxlength]
178
+ @entities[entity][:input][argument][:validation] = properties[:validation]
179
+ @entities[entity][:input][argument][:maxlength] = properties[:maxlength]
179
180
 
180
- when :list
181
- raise "Input type :list needs a :list argument" unless properties.include?(:list)
181
+ when :list
182
+ raise "Input type :list needs a :list argument" unless properties.include?(:list)
182
183
 
183
- @entities[entity][:input][argument][:list] = properties[:list]
184
+ @entities[entity][:input][argument][:list] = properties[:list]
184
185
  end
185
186
  end
186
187
 
@@ -206,7 +207,7 @@ module MCollective
206
207
 
207
208
  valid_requirements = [:mcollective]
208
209
 
209
- requirement.keys.each do |key|
210
+ requirement.each_key do |key|
210
211
  unless valid_requirements.include?(key)
211
212
  raise "Requirement %s is not a valid requirement, only %s is supported" % [key, valid_requirements.join(", ")]
212
213
  end
@@ -27,17 +27,17 @@ module MCollective
27
27
  # :display_as => item.to_s.capitalize
28
28
  # end
29
29
  # end
30
- class DataDDL<Base
30
+ class DataDDL < Base
31
31
  def dataquery(input, &block)
32
32
  raise "Data queries need a :description" unless input.include?(:description)
33
33
  raise "Data queries can only have one definition" if @entities[:data]
34
34
 
35
- @entities[:data] = {:description => input[:description],
36
- :input => {},
37
- :output => {}}
35
+ @entities[:data] = {:description => input[:description],
36
+ :input => {},
37
+ :output => {}}
38
38
 
39
39
  @current_entity = :data
40
- block.call if block_given?
40
+ yield if block_given?
41
41
  @current_entity = nil
42
42
  end
43
43
 
@@ -13,7 +13,7 @@ module MCollective
13
13
  # discovery do
14
14
  # capabilities [:classes, :facts, :identity, :agents, :compound]
15
15
  # end
16
- class DiscoveryDDL<Base
16
+ class DiscoveryDDL < Base
17
17
  def discovery_interface
18
18
  @entities[:discovery]
19
19
  end
@@ -44,7 +44,7 @@ module MCollective
44
44
  @entities[:discovery] = {:capabilities => []}
45
45
 
46
46
  @current_entity = :discovery
47
- block.call if block_given?
47
+ yield if block_given?
48
48
  @current_entity = nil
49
49
  end
50
50
  end
@@ -1,6 +1,6 @@
1
1
  module MCollective
2
2
  module DDL
3
- class ValidatorDDL<Base
3
+ class ValidatorDDL < Base
4
4
  end
5
5
  end
6
6
  end
@@ -16,7 +16,7 @@ module MCollective
16
16
  @dependencies = configuration[:dependency] || []
17
17
  @target_path = File.expand_path(@path)
18
18
  @metadata, mcversion = PluginPackager.get_metadata(@path, "agent")
19
- @mcname = mcdependency[:mcname] || "mcollective"
19
+ @mcname = mcdependency[:mcname] || "mcollective"
20
20
  @mcversion = mcdependency[:mcversion] || mcversion
21
21
  @metadata[:version] = (configuration[:version] || @metadata[:version])
22
22
  @dependencies << {:name => "#{@mcname}-common", :version => @mcversion}
@@ -38,19 +38,23 @@ module MCollective
38
38
  def agent
39
39
  agent = {
40
40
  :files => [],
41
+ :executable_files => [],
41
42
  :dependencies => @dependencies.clone,
42
43
  :description => "Agent plugin for #{@metadata[:name]}"
43
44
  }
44
45
 
45
46
  agentdir = File.join(@path, "agent")
46
47
 
47
- if (PluginPackager.check_dir_present(agentdir))
48
- ddls = Dir.glob(File.join(agentdir, "*.ddl"))
49
- agent[:files] = (Dir.glob(File.join(agentdir, "**", "**")) - ddls)
50
- else
51
- return nil
52
- end
48
+ return nil unless PluginPackager.check_dir_present(agentdir)
49
+
50
+ ddls = Dir.glob(File.join(agentdir, "*.{ddl,json}"))
51
+ agent[:files] = (Dir.glob(File.join(agentdir, "**", "**")) - ddls)
53
52
  agent[:plugindependency] = {:name => "#{@mcname}-#{@metadata[:name]}-common", :version => @metadata[:version], :revision => @revision}
53
+
54
+ if @metadata[:provider] == "external"
55
+ agent[:executable_files] << File.join(agentdir, @metadata[:name])
56
+ end
57
+
54
58
  agent
55
59
  end
56
60
 
@@ -72,14 +76,14 @@ module MCollective
72
76
  # Obtain common package files and dependencies.
73
77
  def common
74
78
  common = {
75
- :files =>[],
79
+ :files => [],
76
80
  :dependencies => @dependencies.clone,
77
81
  :description => "Common libraries for #{@metadata[:name]}"
78
82
  }
79
83
 
80
84
  datadir = File.join(@path, "data", "**")
81
85
  utildir = File.join(@path, "util", "**", "**")
82
- ddldir = File.join(@path, "agent", "*.ddl")
86
+ ddldir = File.join(@path, "agent", "*.{ddl,json}")
83
87
  validatordir = File.join(@path, "validator", "**")
84
88
 
85
89
  [datadir, utildir, validatordir, ddldir].each do |directory|
@@ -88,9 +92,11 @@ module MCollective
88
92
 
89
93
  # We fail if there is no ddl file present
90
94
  if common[:files].grep(/^.*\.ddl$/).empty?
91
- raise "cannot create package - No ddl file found in #{File.join(@path, "agent")}"
95
+ raise "cannot create package - No ddl file found in #{File.join(@path, 'agent')}"
92
96
  end
93
97
 
98
+ common[:files].uniq!
99
+
94
100
  common[:files].empty? ? nil : common
95
101
  end
96
102
  end
@@ -3,11 +3,11 @@ require "yaml"
3
3
  module MCollective
4
4
  module PluginPackager
5
5
  class ForgePackager
6
- def initialize(plugin, pluginpath = nil, signature = nil, verbose = false, keep_artifacts = nil, module_template = nil)
6
+ def initialize(plugin, pluginpath=nil, signature=nil, verbose=false, keep_artifacts=nil, module_template=nil)
7
7
  @plugin = plugin
8
8
  @verbose = verbose
9
9
  @keep_artifacts = keep_artifacts
10
- @module_template = module_template || File.join(File.dirname(__FILE__), 'templates', 'forge')
10
+ @module_template = module_template || File.join(File.dirname(__FILE__), "templates", "forge")
11
11
  end
12
12
 
13
13
  def which(cmd)
@@ -18,11 +18,11 @@ module MCollective
18
18
  return exe if File.executable?(exe) && !File.directory?(exe)
19
19
  end
20
20
  end
21
- return nil
21
+ nil
22
22
  end
23
23
 
24
24
  def create_packages
25
- assert_new_enough_puppet
25
+ assert_new_enough_pdk
26
26
  validate_environment
27
27
 
28
28
  begin
@@ -44,7 +44,7 @@ module MCollective
44
44
  ensure
45
45
  if @keep_artifacts
46
46
  puts("Keeping build artifacts")
47
- puts("Build artifacts saved in %s" % @tmpdir)
47
+ puts("Build artifacts saved in %s" % @tmpdir)
48
48
  else
49
49
  cleanup_tmpdirs
50
50
  end
@@ -81,7 +81,15 @@ module MCollective
81
81
  def filelist(type)
82
82
  @plugin.packagedata[type][:files].map do |file|
83
83
  file.gsub(/^\.\//, "") unless File.directory?(file)
84
- end.compact
84
+ end.compact.uniq
85
+ rescue
86
+ []
87
+ end
88
+
89
+ def executablelist(type)
90
+ @plugin.packagedata[type][:executable_files].map do |file|
91
+ file.gsub(/^\.\//, "") unless File.directory?(file)
92
+ end.compact.uniq
85
93
  rescue
86
94
  []
87
95
  end
@@ -100,11 +108,12 @@ module MCollective
100
108
  {
101
109
  hierakey(:config_name) => @plugin.metadata[:name].downcase,
102
110
  hierakey(:common_files) => filelist(:common),
111
+ hierakey(:executable_files) => executablelist(:agent),
103
112
  hierakey(:common_directories) => dirlist(:common),
104
113
  hierakey(:server_files) => filelist(:agent),
105
114
  hierakey(:server_directories) => dirlist(:agent),
106
115
  hierakey(:client_files) => filelist(:client),
107
- hierakey(:client_directories) => dirlist(:client),
116
+ hierakey(:client_directories) => dirlist(:client)
108
117
  }.merge(module_override_data)
109
118
  end
110
119
 
@@ -123,7 +132,7 @@ module MCollective
123
132
  end
124
133
 
125
134
  def copy_module_files
126
- @plugin.packagedata.each do |klass, data|
135
+ @plugin.packagedata.each_value do |data|
127
136
  data[:files].each do |file|
128
137
  clean_dest_file = file.gsub("./lib/mcollective", "")
129
138
  dest_dir = File.expand_path(File.join(@tmpdir, "files", "mcollective", File.dirname(clean_dest_file)))
@@ -142,13 +151,18 @@ module MCollective
142
151
  agent_name = File.basename(file, ".ddl")
143
152
  json_file = File.join(agent_dir, "%s.json" % agent_name)
144
153
 
154
+ if File.exist?(json_file)
155
+ Log.warn("JSON DDL %s already exist, not regenerating from the %s" % [json_file, agent_name])
156
+ next
157
+ end
158
+
145
159
  ddl = DDL.new(agent_name, :agent, false)
146
160
  ddl.instance_eval(File.read(file))
147
161
 
148
162
  data = {
149
163
  "$schema" => "https://choria.io/schemas/mcorpc/ddl/v1/agent.json",
150
164
  "metadata" => ddl.meta,
151
- "actions" => [],
165
+ "actions" => []
152
166
  }
153
167
 
154
168
  ddl.actions.sort.each do |action|
@@ -165,7 +179,7 @@ module MCollective
165
179
  end
166
180
 
167
181
  def render_templates
168
- templates = Dir.chdir(@module_template) do |path|
182
+ templates = Dir.chdir(@module_template) do |_path|
169
183
  Dir.glob("**/*.erb")
170
184
  end
171
185
 
@@ -177,69 +191,62 @@ module MCollective
177
191
  end
178
192
 
179
193
  def render_template(infile, outfile)
180
- begin
181
- erb = ERB.new(File.read(infile), nil, "-")
182
- File.open(outfile, "w") do |f|
183
- f.puts erb.result(binding)
184
- end
185
- rescue
186
- STDERR.puts("Could not render template %s to %s" % [infile, outfile])
187
- raise
194
+ erb = ERB.new(File.read(infile), nil, "-")
195
+ File.open(outfile, "w") do |f|
196
+ f.puts erb.result(binding)
188
197
  end
198
+ rescue
199
+ STDERR.puts("Could not render template %s to %s" % [infile, outfile])
200
+ raise
189
201
  end
190
202
 
191
203
  def validate_environment
192
204
  raise("Supplying a vendor is required, please use --vendor") if @plugin.vendor == "Puppet Labs"
193
- raise("Vendor names may not have a space in them, please specify a valid vendor using --vendor") if @plugin.vendor.match(" ")
205
+ raise("Vendor names may not have a space in them, please specify a valid vendor using --vendor") if @plugin.vendor.include?(" ")
194
206
  end
195
207
 
196
- def assert_new_enough_puppet
197
- puppet_bin = which("puppet")
198
- puppet_bin = "/opt/puppetlabs/bin/puppet" if !puppet_bin
199
- if !puppet_bin
200
- raise("Cannot build package. 'puppet' not found on path, and '/opt/puppetlabs/bin/puppet' is not present on the system.")
201
- end
208
+ def pdk_path
209
+ pdk_bin = which("pdk")
210
+ pdk_bin ||= "/opt/puppetlabs/pdk/bin/pdk"
202
211
 
203
- s = Shell.new("#{puppet_bin} --version")
212
+ pdk_bin
213
+ end
214
+
215
+ def assert_new_enough_pdk
216
+ s = Shell.new("#{pdk_path} --version")
204
217
  s.runcommand
205
218
  actual_version = s.stdout.chomp
206
- required_version = '4.5.1'
219
+ required_version = "1.12.0"
207
220
 
208
221
  if Util.versioncmp(actual_version, required_version) < 0
209
- raise("Cannot build package. puppet #{required_version} or greater required. We have #{actual_version}.")
222
+ raise("Cannot build package. pdk #{required_version} or greater required. We have #{actual_version}.")
210
223
  end
211
224
  end
212
225
 
213
226
  def run_build
214
- begin
215
- PluginPackager.execute_verbosely(@verbose) do
216
- Dir.chdir(@tmpdir) do
217
- PluginPackager.safe_system('pdk build --force')
218
- end
227
+ PluginPackager.execute_verbosely(@verbose) do
228
+ Dir.chdir(@tmpdir) do
229
+ PluginPackager.safe_system("#{pdk_path} build --force")
219
230
  end
220
- rescue
221
- STDERR.puts("Build process has failed")
222
- raise
223
231
  end
232
+ rescue
233
+ STDERR.puts("Build process has failed")
234
+ raise
224
235
  end
225
236
 
226
237
  def move_package
227
- begin
228
- package_file = File.join(@tmpdir, "pkg", module_file_name)
229
- FileUtils.cp(package_file, ".")
230
- rescue
231
- STDERR.puts("Could not copy package to working directory")
232
- raise
233
- end
238
+ package_file = File.join(@tmpdir, "pkg", module_file_name)
239
+ FileUtils.cp(package_file, ".")
240
+ rescue
241
+ STDERR.puts("Could not copy package to working directory")
242
+ raise
234
243
  end
235
244
 
236
245
  def cleanup_tmpdirs
237
- begin
238
- FileUtils.rm_r(@tmpdir) if File.directory?(@tmpdir)
239
- rescue
240
- STDERR.puts("Could not remove temporary build directory %s" % [@tmpdir])
241
- raise
242
- end
246
+ FileUtils.rm_r(@tmpdir) if File.directory?(@tmpdir)
247
+ rescue
248
+ STDERR.puts("Could not remove temporary build directory %s" % [@tmpdir])
249
+ raise
243
250
  end
244
251
  end
245
252
  end
@@ -6,6 +6,7 @@ class <%= module_name %> (
6
6
  Array[String] $server_directories = [],
7
7
  Array[String] $common_files = [],
8
8
  Array[String] $common_directories = [],
9
+ Array[String] $executable_files = [],
9
10
  Boolean $manage_gem_dependencies = true,
10
11
  Hash $gem_dependencies = {},
11
12
  Boolean $manage_package_dependencies = true,
@@ -26,6 +27,7 @@ class <%= module_name %> (
26
27
  client_files => $client_files,
27
28
  server_files => $server_files,
28
29
  common_files => $common_files,
30
+ executable_files => $executable_files,
29
31
  client_directories => $client_directories,
30
32
  server_directories => $server_directories,
31
33
  common_directories => $common_directories,
@@ -2,7 +2,7 @@ module MCollective
2
2
  module Validator
3
3
  class ArrayValidator
4
4
  def self.validate(validator, array)
5
- raise ValidatorError, "value should be one of %s" % [ array.join(", ") ] unless array.include?(validator)
5
+ raise ValidatorError, "value should be one of %s" % [array.join(", ")] unless array.include?(validator)
6
6
  end
7
7
  end
8
8
  end
@@ -1,15 +1,13 @@
1
1
  module MCollective
2
2
  module Validator
3
3
  class Ipv4addressValidator
4
- require 'ipaddr'
4
+ require "ipaddr"
5
5
 
6
6
  def self.validate(validator)
7
- begin
8
- ip = IPAddr.new(validator)
9
- raise ValidatorError, "value should be an ipv4 adddress" unless ip.ipv4?
10
- rescue
11
- raise ValidatorError, "value should be an ipv4 address"
12
- end
7
+ ip = IPAddr.new(validator)
8
+ raise ValidatorError, "value should be an ipv4 adddress" unless ip.ipv4?
9
+ rescue
10
+ raise ValidatorError, "value should be an ipv4 address"
13
11
  end
14
12
  end
15
13
  end
@@ -1,15 +1,13 @@
1
1
  module MCollective
2
2
  module Validator
3
3
  class Ipv6addressValidator
4
- require 'ipaddr'
4
+ require "ipaddr"
5
5
 
6
6
  def self.validate(validator)
7
- begin
8
- ip = IPAddr.new(validator)
9
- raise ValidatorError, "value should be an ipv6 adddress" unless ip.ipv6?
10
- rescue
11
- raise ValidatorError, "value should be an ipv6 address"
12
- end
7
+ ip = IPAddr.new(validator)
8
+ raise ValidatorError, "value should be an ipv6 adddress" unless ip.ipv6?
9
+ rescue
10
+ raise ValidatorError, "value should be an ipv6 address"
13
11
  end
14
12
  end
15
13
  end
@@ -4,7 +4,7 @@ module MCollective
4
4
  def self.validate(validator)
5
5
  raise ValidatorError, "value should be a String" unless validator.is_a?(String)
6
6
 
7
- ['`', '$', ';', '|', '&&', '>', '<'].each do |chr|
7
+ ["`", "$", ";", "|", "&&", ">", "<"].each do |chr|
8
8
  raise ValidatorError, "value should not have #{chr} in it" if validator.match(Regexp.escape(chr))
9
9
  end
10
10
  end
@@ -2,25 +2,25 @@ module MCollective
2
2
  module Validator
3
3
  class TypecheckValidator
4
4
  def self.validate(validator, validation_type)
5
- raise ValidatorError, "value should be a #{validation_type.to_s}" unless check_type(validator, validation_type)
5
+ raise ValidatorError, "value should be a #{validation_type}" unless check_type(validator, validation_type)
6
6
  end
7
7
 
8
8
  def self.check_type(validator, validation_type)
9
9
  case validation_type
10
- when Class
11
- validator.is_a?(validation_type)
12
- when :integer
13
- validator.is_a?(Integer)
14
- when :float
15
- validator.is_a?(Float)
16
- when :number
17
- validator.is_a?(Numeric)
18
- when :string
19
- validator.is_a?(String)
20
- when :boolean
21
- [TrueClass, FalseClass].include?(validator.class)
22
- else
23
- false
10
+ when Class
11
+ validator.is_a?(validation_type)
12
+ when :integer
13
+ validator.is_a?(Integer)
14
+ when :float
15
+ validator.is_a?(Float)
16
+ when :number
17
+ validator.is_a?(Numeric)
18
+ when :string
19
+ validator.is_a?(String)
20
+ when :boolean
21
+ [TrueClass, FalseClass].include?(validator.class)
22
+ else
23
+ false
24
24
  end
25
25
  end
26
26
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: choria-mcorpc-support
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.20.6
4
+ version: 2.20.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - R.I.Pienaar
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-09-19 00:00:00.000000000 Z
11
+ date: 2019-09-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: systemu