File: fix-list_users-provider.patch

package info (click to toggle)
puppet-module-puppetlabs-rabbitmq 8.5.0-11
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 1,196 kB
  • sloc: ruby: 5,227; sh: 10; makefile: 4
file content (27 lines) | stat: -rw-r--r-- 1,221 bytes parent folder | download
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*})