1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
|
Description: Fix list_users provider
Author: Thomas Goirand <zigo@debian.org>
Forwarded: https://github.com/voxpupuli/puppet-rabbitmq/pull/1060
Last-Update: 2025-05-29
Index: puppet-module-puppetlabs-rabbitmq/lib/puppet/provider/rabbitmq_user/rabbitmqctl.rb
===================================================================
--- puppet-module-puppetlabs-rabbitmq.orig/lib/puppet/provider/rabbitmq_user/rabbitmqctl.rb
+++ puppet-module-puppetlabs-rabbitmq/lib/puppet/provider/rabbitmq_user/rabbitmqctl.rb
@@ -15,7 +15,16 @@ Puppet::Type.type(:rabbitmq_user).provid
rabbitmqctl_list('users')
end
- user_list.split(%r{\n}).map do |line|
+ lines = user_list.split(%r{\n})
+
+ # Skip the header lines in RabbitMQ 4.x
+ # Skip "Listing users ..." and "user tags" lines
+ while lines.any? && (lines.first =~ %r{^Listing users} || lines.first =~ %r{^user\s+tags} || lines.first.strip.empty?)
+ lines.shift
+ end
+
+ # Process remaining lines (should be user data)
+ lines.map do |line|
raise Puppet::Error, "Cannot parse invalid user line: #{line}" unless line =~ %r{^(\S+)\s+\[(.*?)\]$}
user = Regexp.last_match(1)
tags = Regexp.last_match(2).split(%r{,\s*})
|