From b1d97284d0fea1cbcc52bc55117a4b1ad3cf385b Mon Sep 17 00:00:00 2001 From: Devon Peters Date: Tue, 14 Dec 2010 14:05:55 -0800 Subject: (#5496) zpool provider supports new 'zpool status' format The "Solaris 10 9/10 release (Update 9)" update changed the output from the "zpool status" command, which breaks the zpool provider. The format basically changed from "vdev" to "vdev-n" (ex: "mirror" to "mirror-0"), which the current provider doesn't recognize. This fix changes the way vdev's are checked by the zpool provider, to support either format. Reviewed-By: Nick Lewis --- lib/puppet/provider/zpool/solaris.rb | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) (limited to 'lib/puppet') diff --git a/lib/puppet/provider/zpool/solaris.rb b/lib/puppet/provider/zpool/solaris.rb index e597c2ae1..758ea618a 100644 --- a/lib/puppet/provider/zpool/solaris.rb +++ b/lib/puppet/provider/zpool/solaris.rb @@ -19,11 +19,13 @@ Puppet::Type.type(:zpool).provide(:solaris) do pool_array.reverse.each do |value| sym = nil case value - when "spares"; sym = :spare - when "logs"; sym = :log - when "mirror", "raidz1", "raidz2" - sym = value == "mirror" ? :mirror : :raidz - pool[:raid_parity] = "raidz2" if value == "raidz2" + when "spares"; + sym = :spare + when "logs"; + sym = :log + when /^mirror|^raidz1|^raidz2/; + sym = value =~ /^mirror/ ? :mirror : :raidz + pool[:raid_parity] = "raidz2" if value =~ /^raidz2/ else tmp << value sym = :disk if value == pool_array.first -- cgit