diff --git a/lib/puppet/provider/nova_service/openstack.rb b/lib/puppet/provider/nova_service/openstack.rb index fd0b159d4..b0eee89eb 100644 --- a/lib/puppet/provider/nova_service/openstack.rb +++ b/lib/puppet/provider/nova_service/openstack.rb @@ -51,8 +51,8 @@ Puppet::Type.type(:nova_service).provide( return unless @property_hash[:ids].kind_of?(Array) svcname_id_map = @property_hash[:service_name].zip(@property_hash[:ids]) || {} svcname_id_map.each do |service_name, id| - if (@resource[:service_name] == '' || - (@resource[:service_name] == service_name)) + if (@resource[:service_name].empty? || + (@resource[:service_name].include? service_name)) self.class.request('compute service', 'delete', id) end end diff --git a/lib/puppet/type/nova_service.rb b/lib/puppet/type/nova_service.rb index ecb9d5457..a420f3df8 100644 --- a/lib/puppet/type/nova_service.rb +++ b/lib/puppet/type/nova_service.rb @@ -62,11 +62,12 @@ Puppet::Type.newtype(:nova_service) do newproperty(:service_name, :array_matching => :all) do desc "String or Array of services on a host to modify" validate do |value| - if not value.is_a? String and not value.is_a? Array - raise ArgumentError, "service_name parameter must be String or Array" - end + raise( + ArgumentError, + 'service_name parameter must be String or Array' + ) unless [String, Array].any? { |type| value.is_a? type } end - defaultto '' + defaultto [] end end