diff --git a/lib/puppet/provider/firewalld_service/firewall_cmd.rb b/lib/puppet/provider/firewalld_service/firewall_cmd.rb index 8e98aa97..ec2f525e 100644 --- a/lib/puppet/provider/firewalld_service/firewall_cmd.rb +++ b/lib/puppet/provider/firewalld_service/firewall_cmd.rb @@ -7,6 +7,26 @@ ) do desc 'Interact with firewall-cmd' + def self.instances + services = execute_firewall_cmd(['--get-services'], nil).split(' ') + services.map do |service| + new( + { + ensure: :present, + name: service, + } + ) + end + end + + def self.prefetch(resources) + instances.each do |prov| + if (resource = resources[prov.name]) + resource.provider = prov + end + end + end + def exists? execute_firewall_cmd(['--list-services']).split(' ').include?(@resource[:service]) end diff --git a/metadata.json b/metadata.json index 3e54c222..c3d31a08 100644 --- a/metadata.json +++ b/metadata.json @@ -39,6 +39,12 @@ "7", "8" ] + }, + { + "operatingsystem": "SLES", + "operatingsystemrelease": [ + "15" + ] } ], "source": "https://github.com/voxpupuli/puppet-firewalld",