From 710bcb855cf1b39659e4f232f8fd39d6809c027c Mon Sep 17 00:00:00 2001 From: ramishra Date: Thu, 20 May 2021 09:02:15 +0530 Subject: [PATCH] Replace URI.escape() with ERB::Util.url_encode() URI.escape() method has been removed in ruby 3 and the newly added Puppet::Util.rfc2396_escape()[1] has not been released yet. [1] https://github.com/puppetlabs/puppet/pull/8588/commits/41dcae71c7d10b9cc3c190897d02c5082ddd2076 Closes-Bug: #1928685 Change-Id: I001d579a1b126fc8254f071ddbecda5cc6de7231 (cherry picked from commit 0699227b3cd02d8eec7f022f97a945313de46ed5) --- lib/puppet/functions/os_database_connection.rb | 6 +++--- lib/puppet/functions/os_transport_url.rb | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/lib/puppet/functions/os_database_connection.rb b/lib/puppet/functions/os_database_connection.rb index b0b6fe53..4a3fc6a9 100644 --- a/lib/puppet/functions/os_database_connection.rb +++ b/lib/puppet/functions/os_database_connection.rb @@ -1,6 +1,6 @@ Puppet::Functions.create_function(:os_database_connection) do def os_database_connection(*args) - require 'uri' + require 'erb' if (args.size != 1) then raise(Puppet::ParseError, "os_database_connection(): Wrong number of arguments " + @@ -44,9 +44,9 @@ Puppet::Functions.create_function(:os_database_connection) do end if v.include?('username') and (v['username'] != :undef) and (v['username'].to_s != '') - parts[:userinfo] = URI.escape(v['username']) + parts[:userinfo] = ERB::Util.url_encode(v['username']) if v.include?('password') and (v['password'] != :undef) and (v['password'].to_s != '') - parts[:userinfo] += ":#{URI.escape(v['password'])}" + parts[:userinfo] += ":#{ERB::Util.url_encode(v['password'])}" end end diff --git a/lib/puppet/functions/os_transport_url.rb b/lib/puppet/functions/os_transport_url.rb index 4defda1a..0dcd0df8 100644 --- a/lib/puppet/functions/os_transport_url.rb +++ b/lib/puppet/functions/os_transport_url.rb @@ -80,7 +80,7 @@ Puppet::Functions.create_function(:os_transport_url) do end def os_transport_url(*args) - require 'uri' + require 'erb' unless args.size == 1 raise(ArgumentError, 'os_transport_url(): Wrong number of arguments') @@ -130,9 +130,9 @@ Puppet::Functions.create_function(:os_transport_url) do parts[:transport] = v['transport'] if v.include?('username') and (v['username'] != :undef) and (v['username'].to_s != '') - parts[:userinfo] = URI.escape(v['username']) + parts[:userinfo] = ERB::Util.url_encode(v['username']) if v.include?('password') and (v['password'] != :undef) and (v['password'].to_s != '') - parts[:userinfo] += ":#{URI.escape(v['password'])}" + parts[:userinfo] += ":#{ERB::Util.url_encode(v['password'])}" end end