From 377b5b4f18c64d547bb3d6e137a7639f7ccdbf64 Mon Sep 17 00:00:00 2001 From: "vkuklin@mirantis.com" <vkuklin@mirantis.com> Date: Tue, 2 Oct 2012 19:37:04 +0400 Subject: [PATCH] fix ipv4 cidr range regexp --- lib/puppet/type/nova_network.rb | 2 +- spec/unit/type/nova_network_spec.rb | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) create mode 100644 spec/unit/type/nova_network_spec.rb diff --git a/lib/puppet/type/nova_network.rb b/lib/puppet/type/nova_network.rb index 48a8ca75c..3a750e02e 100644 --- a/lib/puppet/type/nova_network.rb +++ b/lib/puppet/type/nova_network.rb @@ -10,7 +10,7 @@ Puppet::Type.newtype(:nova_network) do # that determine uniqueness newparam(:network, :namevar => true) do desc "IPv4 Network (ie, 192.168.1.0/24)" - newvalues(/^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.0\/[0-9]{1,2}$/) + newvalues(/^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\/(\d|[1-2]\d|3[0-2]))$/) end newparam(:label) do diff --git a/spec/unit/type/nova_network_spec.rb b/spec/unit/type/nova_network_spec.rb new file mode 100644 index 000000000..943716d0d --- /dev/null +++ b/spec/unit/type/nova_network_spec.rb @@ -0,0 +1,11 @@ +require 'puppet' +require 'puppet/type/nova_network' +describe 'Puppet::Type.type(:nova_network)' do + it 'should reject an invalid ipv4 CIDR value' do + expect { Puppet::Type.type(:nova_network).new(:network => '192.168.1.0') }.to raise_error(Puppet::Error, /Invalid value/) + expect { Puppet::Type.type(:nova_network).new(:network => '::1/24') }.to raise_error(Puppet::Error, /Invalid value/) + end + it 'should accept a valid ipv4 CIDR value' do + Puppet::Type.type(:nova_network).new(:network => '192.168.1.0/24') + end +end