Bug 2044776

Summary: RHOSP17 Standalone deployment failing with Error: Evaluation Error: Error while evaluating a Function Call, undefined method `escape' for URI:Module (file: /etc/puppet/modules/nova/manifests/migration/libvirt.pp, line: 201, column: 49) on node standalone.
Product: Red Hat OpenStack Reporter: Sandeep Yadav <sandyada>
Component: puppet-stdlibAssignee: Jon Schlueter <jschluet>
Status: CLOSED ERRATA QA Contact: nlevinki <nlevinki>
Severity: urgent Docs Contact:
Priority: urgent    
Version: 17.0 (Wallaby)CC: jjoyce, jschluet, slinaber, tvignaud
Target Milestone: AlphaKeywords: Triaged
Target Release: 17.0   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: puppet-stdlib-6.3.1-0.20220125140955.7c1ae25.el9ost Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2022-09-21 12:18:51 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Sandeep Yadav 2022-01-25 07:49:47 UTC
Description of problem:

We are trying RHOSP17 Standalone deployment on rhel9, Deployment is failing with below error:-

~~~
stderr: + /usr/bin/puppet apply --summarize --detailed-exitcodes --color=false --modulepath=/etc/puppet/modules:/usr/share/openstack-puppet/modules --tags '"file,file_line,concat,augeas,cron,nova_config,libvirtd_config,virtlogd_config,nova_config,file,libvirt_tls_password"' /etc/config.pp
+ logger -s -t puppet-user
<13>Jan 25 07:34:40 puppet-user: Warning: /etc/puppet/hiera.yaml: Use of 'hiera.yaml' version 3 is deprecated. It should be converted to version 5
<13>Jan 25 07:34:43 puppet-user:    (file: /etc/puppet/hiera.yaml)
<13>Jan 25 07:34:43 puppet-user: Warning: Undefined variable '::deploy_config_name'; 
<13>Jan 25 07:34:43 puppet-user:    (file & line not available)
<13>Jan 25 07:34:43 puppet-user: Warning: The function 'hiera' is deprecated in favor of using 'lookup'. See https://puppet.com/docs/puppet/7.10/deprecated_language.html
<13>Jan 25 07:34:43 puppet-user:    (file & line not available)
<13>Jan 25 07:34:44 puppet-user: Warning: Scope(Class[Nova]): The os_region_name parameter is deprecated and will be removed \
<13>Jan 25 07:34:44 puppet-user: in a future release. Use nova::cinder::os_region_name instead
<13>Jan 25 07:34:44 puppet-user: Warning: Scope(Class[Nova]): The catalog_info parameter is deprecated and will be removed \
<13>Jan 25 07:34:44 puppet-user: in a future release. Use nova::cinder::catalog_info instead
<13>Jan 25 07:34:44 puppet-user: Warning: Scope(Class[Nova]): The database_connection parameter is deprecated and will be \
<13>Jan 25 07:34:44 puppet-user: removed in a future realse. Use nova::db::database_connection instead
<13>Jan 25 07:34:44 puppet-user: Warning: Scope(Class[Nova]): The api_database_connection parameter is deprecated and will be \
<13>Jan 25 07:34:44 puppet-user: removed in a future realse. Use nova::db::api_database_connection instead
<13>Jan 25 07:34:44 puppet-user: Warning: Unknown variable: '::nova::compute::verify_glance_signatures'. (file: /etc/puppet/modules/nova/manifests/glance.pp, line: 62, column: 41)
<13>Jan 25 07:34:44 puppet-user: Warning: Unknown variable: '::nova::compute::libvirt::remove_unused_base_images'. (file: /etc/puppet/modules/nova/manifests/compute/image_cache.pp, line: 44, column: 5)
<13>Jan 25 07:34:44 puppet-user: Warning: Unknown variable: '::nova::compute::libvirt::remove_unused_original_minimum_age_seconds'. (file: /etc/puppet/modules/nova/manifests/compute/image_cache.pp, line: 48, column: 5)
<13>Jan 25 07:34:44 puppet-user: Warning: Unknown variable: '::nova::compute::libvirt::remove_unused_resized_minimum_age_seconds'. (file: /etc/puppet/modules/nova/manifests/compute/image_cache.pp, line: 52, column: 5)
<13>Jan 25 07:34:44 puppet-user: Warning: Scope(Class[Tripleo::Profile::Base::Nova::Compute]): The keymgr_backend parameter has been deprecated
<13>Jan 25 07:34:44 puppet-user: Warning: Unknown variable: '::nova::compute::ironic::max_concurrent_builds'. (file: /etc/puppet/modules/nova/manifests/compute.pp, line: 391, column: 5)
<13>Jan 25 07:34:44 puppet-user: Warning: Scope(Class[Nova::Compute]): vcpu_pin_set is deprecated, instead use cpu_dedicated_set or cpu_shared_set.
<13>Jan 25 07:34:44 puppet-user: Warning: Scope(Class[Nova::Compute]): verify_glance_signatures is deprecated. Use the same parameter in nova::glance
<13>Jan 25 07:34:45 puppet-user: Error: Evaluation Error: Error while evaluating a Function Call, undefined method `escape' for URI:Module (file: /etc/puppet/modules/nova/manifests/migration/libvirt.pp, line: 201, column: 49) on node standalone.localdomain
+ rc=1
+ '[' false = false ']'
+ set +x
2022-01-25 02:35:03.039579 | fa163e48-a94e-e72d-10bc-000000001563 |      FATAL | Create containers managed by Podman for /var/lib/tripleo-config/container-puppet-config/step_1 | standalone | error={"changed": false, "msg": "Failed containers: container-puppet-nova_libvirt"}
~~~



Version-Release number of selected component (if applicable):

RHOSP17(On Rhel9)


How reproducible:

Everytime


Steps to Reproduce:
1. Deploy Standalone


Actual results:

Deployment failing, Seems like puppet-stdlib is missing fix: https://github.com/puppetlabs/puppetlabs-stdlib/pull/1195


Expected results:

Deployment should pass.


Additional info:


This looks similiar to https://bugs.launchpad.net/tripleo/+bug/1937166, Looks like fix https://github.com/puppetlabs/puppetlabs-stdlib/pull/1195 is not present in puppet-stdlib package.


$ rpm -ql puppet-stdlib | grep -i /usr/share/openstack-puppet/modules/stdlib/lib/puppet/parser/functions/uriescape.rb
/usr/share/openstack-puppet/modules/stdlib/lib/puppet/parser/functions/uriescape.rb


vi /usr/share/openstack-puppet/modules/stdlib/lib/puppet/parser/functions/uriescape.rb
~~~
     26     result = if value.is_a?(Array)
     27                # Numbers in Puppet are often string-encoded which is troublesome ...
     28                value.map { |i| i.is_a?(String) ? URI.escape(i) : i }
     29              else
     30                URI.escape(value)
     31              end
~~~


~~~
$ yum whatprovides /usr/share/openstack-puppet/modules/stdlib/lib/puppet/parser/functions/uriescape.rb
Last metadata expiration check: 0:02:36 ago on Tue 25 Jan 2022 02:22:52 AM EST.
puppet-stdlib-6.3.1-0.20220103230401.7c1ae25.el9osttrunk.noarch : Standard library of resources for Puppet modules.
Repo        : @System
Matched from:
Filename    : /usr/share/openstack-puppet/modules/stdlib/lib/puppet/parser/functions/uriescape.rb

puppet-stdlib-6.3.1-0.20220103230401.7c1ae25.el9osttrunk.noarch : Standard library of resources for Puppet modules.
Repo        : delorean-component-tripleo
Matched from:
Filename    : /usr/share/openstack-puppet/modules/stdlib/lib/puppet/parser/functions/uriescape.rb

puppet-stdlib-6.3.1-0.20220103230401.7c1ae25.el9osttrunk.noarch : Standard library of resources for Puppet modules.
Repo        : rhelosp-17.0-nightly
Matched from:
Filename    : /usr/share/openstack-puppet/modules/stdlib/lib/puppet/parser/functions/uriescape.rb
~~~

Comment 10 errata-xmlrpc 2022-09-21 12:18:51 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory (Release of components for Red Hat OpenStack Platform 17.0 (Wallaby)), and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHEA-2022:6543