puppetlabs / puppetlabs-firewall

Puppet Firewall Module
http://forge.puppetlabs.com/puppetlabs/firewall
Apache License 2.0
271 stars 455 forks source link

puppet generate types fail on versions >= 7.0.0 #1216

Closed h-haaks closed 5 months ago

h-haaks commented 5 months ago

Describe the Bug

I'm using puppet generate types to get environment isolation for resource types. When puppetlabs-firewall >= 7.0.0 is installed generate types fail.

Expected Behavior

puppet generate types should not fail.

Steps to Reproduce

Steps to reproduce the behavior: Starting with a fresh primary server

  1. List installed modules
    
    puppet module list
    /etc/puppetlabs/code/environments/production/modules (no modules installed)
    /etc/puppetlabs/code/modules (no modules installed)
    /opt/puppetlabs/puppet/modules (no modules installed)
    /usr/share/puppet/modules (no modules installed)
2. install firewall module

puppet module install --version 7.0.0 puppetlabs-firewall Notice: Preparing to install into /etc/puppetlabs/code/environments/production/modules ... Notice: Downloading from https://forgeapi.puppet.com ... Notice: Installing -- do not interrupt ... /etc/puppetlabs/code/environments/production/modules └─┬ puppetlabs-firewall (v7.0.0) └── puppetlabs-stdlib (v9.6.0)

3. generate types

puppet generate types Notice: Generating Puppet resource types. Error: Could not autoload puppet/provider/firewall/iptables: Firewall is not a class /opt/puppetlabs/puppet/lib/ruby/vendor_gems/gems/puppet-resource_api-1.9.0/lib/puppet/resource_api.rb:36: previous definition of Firewall was here Error: Could not autoload puppet/provider/firewall/ip6tables: Could not autoload puppet/provider/firewall/iptables: Firewall is not a class /opt/puppetlabs/puppet/lib/ruby/vendor_gems/gems/puppet-resource_api-1.9.0/lib/puppet/resource_api.rb:36: previous definition of Firewall was here Error: Failed to load custom type 'firewall' from '/etc/puppetlabs/code/environments/production/modules/firewall/lib/puppet/type/firewall.rb': Could not autoload puppet/provider/firewall/ip6tables: Could not autoload puppet/provider/firewall/iptables: Firewall is not a class /opt/puppetlabs/puppet/lib/ruby/vendor_gems/gems/puppet-resource_api-1.9.0/lib/puppet/resource_api.rb:36: previous definition of Firewall was here Error: Could not autoload puppet/provider/firewallchain/iptables_chain: uninitialized constant Puppet::Util::Firewall Error: Failed to load custom type 'firewallchain' from '/etc/puppetlabs/code/environments/production/modules/firewall/lib/puppet/type/firewallchain.rb': Could not autoload puppet/provider/firewallchain/iptables_chain: uninitialized constant Puppet::Util::Firewall



## Environment
 - Puppet 7.30.0
 - Platform Rocky 8
h-haaks commented 5 months ago

same result with 8.0.1

puppet module list
/etc/puppetlabs/code/environments/production/modules
├── puppetlabs-firewall (v8.0.1)
└── puppetlabs-stdlib (v9.6.0)
/etc/puppetlabs/code/modules (no modules installed)
/opt/puppetlabs/puppet/modules (no modules installed)
/usr/share/puppet/modules (no modules installed)

puppet generate types
Notice: Generating Puppet resource types.
Error: Could not autoload puppet/provider/firewall/iptables: Firewall is not a class
/opt/puppetlabs/puppet/lib/ruby/vendor_gems/gems/puppet-resource_api-1.9.0/lib/puppet/resource_api.rb:36: previous definition of Firewall was here
Error: Could not autoload puppet/provider/firewall/ip6tables: Could not autoload puppet/provider/firewall/iptables: Firewall is not a class
/opt/puppetlabs/puppet/lib/ruby/vendor_gems/gems/puppet-resource_api-1.9.0/lib/puppet/resource_api.rb:36: previous definition of Firewall was here
Error: Failed to load custom type 'firewall' from '/etc/puppetlabs/code/environments/production/modules/firewall/lib/puppet/type/firewall.rb': Could not autoload puppet/provider/firewall/ip6tables: Could not autoload puppet/provider/firewall/iptables: Firewall is not a class
/opt/puppetlabs/puppet/lib/ruby/vendor_gems/gems/puppet-resource_api-1.9.0/lib/puppet/resource_api.rb:36: previous definition of Firewall was here
Error: Could not autoload puppet/provider/firewallchain/iptables_chain: uninitialized constant Puppet::Util::Firewall
Error: Failed to load custom type 'firewallchain' from '/etc/puppetlabs/code/environments/production/modules/firewall/lib/puppet/type/firewallchain.rb': Could not autoload puppet/provider/firewallchain/iptables_chain: uninitialized constant Puppet::Util::Firewall
h-haaks commented 5 months ago

Figured it out My server was not as clean as I thought. I had the puppet service running against another environment with puppetlabs-firewall 4.1.0.

A restart of the puppet service followed by puppet generate types solved it.