On Fri, 24 Dec 2010 01:04:12 +0100, Stefan Schulte wrote:
> 
> I talked about a resourcetype for /etc/services on the list and a
> resourcetype with name and protoco as a composite key seems be be the
> best way to implement it. This patch requires:
> 
> #5605
> #5661
> #5662
> 
> I have no idea if this works on Mac OS X because I just tested it with a
> standard linux /etc/services.
> 

Stefan,

I started taking a look at the patch series, but it doesn't look like
the tests run at all.  I get an error about trying to use
pupepttest/support/utils

  
/home/jhelwig/.rvm/rubies/ruby-1.8.7-p302/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in
 `gem_original_require': no such file to load -- puppettest/support/utils 
(LoadError)
    from 
/home/jhelwig/.rvm/rubies/ruby-1.8.7-p302/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in
 `require'
    from /home/jhelwig/work/puppet/spec/unit/provider/port/parsed_spec.rb:6
    from 
/home/jhelwig/.rvm/gems/ruby-1.8.7-p302@rspec2/gems/rspec-core-2.5.1/lib/rspec/core/configuration.rb:386:in
 `load'
    from 
/home/jhelwig/.rvm/gems/ruby-1.8.7-p302@rspec2/gems/rspec-core-2.5.1/lib/rspec/core/configuration.rb:386:in
 `load_spec_files'
    from 
/home/jhelwig/.rvm/gems/ruby-1.8.7-p302@rspec2/gems/rspec-core-2.5.1/lib/rspec/core/configuration.rb:386:in
 `map'
    from 
/home/jhelwig/.rvm/gems/ruby-1.8.7-p302@rspec2/gems/rspec-core-2.5.1/lib/rspec/core/configuration.rb:386:in
 `load_spec_files'
    from 
/home/jhelwig/.rvm/gems/ruby-1.8.7-p302@rspec2/gems/rspec-core-2.5.1/lib/rspec/core/command_line.rb:18:in
 `run'
    from 
/home/jhelwig/.rvm/gems/ruby-1.8.7-p302@rspec2/gems/rspec-core-2.5.1/lib/rspec/core/runner.rb:55:in
 `run_in_process'
    from 
/home/jhelwig/.rvm/gems/ruby-1.8.7-p302@rspec2/gems/rspec-core-2.5.1/lib/rspec/core/runner.rb:46:in
 `run'
    from 
/home/jhelwig/.rvm/gems/ruby-1.8.7-p302@rspec2/gems/rspec-core-2.5.1/lib/rspec/core/runner.rb:10:in
 `autorun'
    from /home/jhelwig/.rvm/gems/ruby-1.8.7-p302@rspec2/bin/rspec:19

It looks like the new test is the only one attempting to use puppettest
from within the spec test framework.  It looks like this will need to
get sorted out before we can merge it in.

I'm assuming that these tests are running fine for you.  Anything I
should be aware of to get them running on my end?

As an aside, I started cleaning up some of the grammar, and tweaking
some of the error messages (diff below).

diff --git i/lib/puppet/type/port.rb w/lib/puppet/type/port.rb
index e2a4afa..7e04ed5 100755
--- i/lib/puppet/type/port.rb
+++ w/lib/puppet/type/port.rb
@@ -1,16 +1,16 @@
 module Puppet
   newtype(:port) do
-    @doc = "Installs and manages port entries. For most systems, these
+    @doc = "Install and manage port entries. For most systems, these
       entries will just be in /etc/services, but some systems (notably OS X)
       will have different solutions."
 
     def self.title_patterns
       [
-        # we just have one titlepattern "name:protocol"
+        # we just have one title_pattern "name:protocol"
         [
           /^(.*?)(?::(tcp|udp))?$/, # Regex to parse title
           [
-            # We don't need a lot of postparsing
+            # We don't need a lot of post-parsing
             [ :name, lambda{|x| x} ],
             [ :protocol, lambda{ |x| x.intern unless x.nil? } ],
           ]
@@ -24,20 +24,20 @@ module Puppet
       desc "The port name."
 
       validate do |value|
-        raise Puppet::Error "Portname cannot have whitespaces in them" if 
value =~ /\s/
+        raise Puppet::Error "Port name cannot have whitespaces in it" if value 
=~ /\s/
       end
 
       isnamevar
     end
 
     newparam(:protocol) do
-      desc "The protocols the port uses. Valid values are *udp* and *tcp*.
+      desc "The protocol the port uses. Valid values are *udp* and *tcp*.
         Most services have both protocols, but not all. If you want both
         protocols you have to define two resources. Remeber that you cannot
         specify two resources with the same title but you can use a title
         to set both, name and protocol if you use ':' as a seperator. So
-        port { 'telnet:tcp': ... } sets both name and protocol and you dont
-        have to specify them explicitly then"
+        port { 'telnet:tcp': ... } sets both name and protocol and you don't
+        have to specify them explicitly."
 
       newvalues :tcp, :udp
 
@@ -46,18 +46,17 @@ module Puppet
       isnamevar
     end
 
-
     newproperty(:number) do
       desc "The port number."
 
       validate do |value|
         raise Puppet::Error, "number has to be numeric, not #{value}" unless 
value =~ /^[0-9]+$/
-        raise Puppet::Error, "number #{value} out of range" unless 
(0...2**16).include?(Integer(value))
+        raise Puppet::Error, "number #{value} out of range (0-65535)" unless 0 
<= Integer(value) && 2**16 > Integer(value)
       end
     end
 
     newproperty(:description) do
-      desc "The port description."
+      desc "The description for the port."
     end
 
     newproperty(:port_aliases, :parent => Puppet::Property::OrderedList) do
@@ -73,11 +72,10 @@ module Puppet
       end
 
       validate do |value|
-        raise Puppet::Error, "Aliases cannot have whitespaces in them" if 
value =~ /\s/
+        raise Puppet::Error, "Aliases must not contain whitespace: #{value}" 
if value =~ /\s/
       end
     end
 
-
     newproperty(:target) do
       desc "The file in which to store service information. Only used by
         those providers that write to disk."
@@ -90,6 +88,5 @@ module Puppet
         end
       end
     end
-
   end
 end

-- 
Jacob Helwig

Attachment: signature.asc
Description: Digital signature

Reply via email to