Hello community, here is the log from the commit of package yast2-firewall for openSUSE:Factory checked in at 2020-07-27 17:36:27 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/yast2-firewall (Old) and /work/SRC/openSUSE:Factory/.yast2-firewall.new.3592 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "yast2-firewall" Mon Jul 27 17:36:27 2020 rev:83 rq:822625 version:4.3.2 Changes: -------- --- /work/SRC/openSUSE:Factory/yast2-firewall/yast2-firewall.changes 2020-06-10 00:36:55.205157441 +0200 +++ /work/SRC/openSUSE:Factory/.yast2-firewall.new.3592/yast2-firewall.changes 2020-07-27 17:36:43.146787394 +0200 @@ -1,0 +2,7 @@ +Thu Jul 23 15:55:52 UTC 2020 - Knut Anderssen <[email protected]> + +- AutoYaST: Only export modified zones when it is asked to export a + reduced profile. (bsc#1171356) +- 4.3.2 + +------------------------------------------------------------------- Old: ---- yast2-firewall-4.3.1.tar.bz2 New: ---- yast2-firewall-4.3.2.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ yast2-firewall.spec ++++++ --- /var/tmp/diff_new_pack.mwZleF/_old 2020-07-27 17:36:46.642790796 +0200 +++ /var/tmp/diff_new_pack.mwZleF/_new 2020-07-27 17:36:46.646790800 +0200 @@ -17,7 +17,7 @@ Name: yast2-firewall -Version: 4.3.1 +Version: 4.3.2 Release: 0 Summary: YaST2 - Firewall Configuration License: GPL-2.0-only @@ -30,13 +30,13 @@ BuildRequires: update-desktop-files BuildRequires: yast2-devtools >= 4.2.2 BuildRequires: yast2-testsuite -# AutoYaST issue report -BuildRequires: yast2 >= 4.3.2 +# Y2Firewall::Firewalld#modified_from_default +BuildRequires: yast2 >= 4.3.17 BuildRequires: rubygem(%rb_default_ruby_abi:rspec) BuildRequires: rubygem(%rb_default_ruby_abi:yast-rake) -# AutoYaST issue report -Requires: yast2 >= 4.3.2 +# Y2Firewall::Firewalld#modified_from_default +Requires: yast2 >= 4.3.17 Requires: yast2-ruby-bindings >= 1.0.0 # ButtonBox widget ++++++ yast2-firewall-4.3.1.tar.bz2 -> yast2-firewall-4.3.2.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-firewall-4.3.1/package/yast2-firewall.changes new/yast2-firewall-4.3.2/package/yast2-firewall.changes --- old/yast2-firewall-4.3.1/package/yast2-firewall.changes 2020-05-29 15:06:39.000000000 +0200 +++ new/yast2-firewall-4.3.2/package/yast2-firewall.changes 2020-07-24 13:36:38.000000000 +0200 @@ -1,4 +1,11 @@ ------------------------------------------------------------------- +Thu Jul 23 15:55:52 UTC 2020 - Knut Anderssen <[email protected]> + +- AutoYaST: Only export modified zones when it is asked to export a + reduced profile. (bsc#1171356) +- 4.3.2 + +------------------------------------------------------------------- Thu May 7 15:22:56 CEST 2020 - [email protected] - AutoYaST: Cleanup/improve issue handling (bsc#1171335). diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-firewall-4.3.1/package/yast2-firewall.spec new/yast2-firewall-4.3.2/package/yast2-firewall.spec --- old/yast2-firewall-4.3.1/package/yast2-firewall.spec 2020-05-29 15:06:39.000000000 +0200 +++ new/yast2-firewall-4.3.2/package/yast2-firewall.spec 2020-07-24 13:36:38.000000000 +0200 @@ -17,7 +17,7 @@ Name: yast2-firewall -Version: 4.3.1 +Version: 4.3.2 Release: 0 Summary: YaST2 - Firewall Configuration Group: System/YaST @@ -28,13 +28,13 @@ BuildRequires: perl-XML-Writer update-desktop-files yast2-testsuite BuildRequires: yast2-devtools >= 4.2.2 -# AutoYaST issue report -BuildRequires: yast2 >= 4.3.2 +# Y2Firewall::Firewalld#modified_from_default +BuildRequires: yast2 >= 4.3.17 BuildRequires: rubygem(%rb_default_ruby_abi:yast-rake) BuildRequires: rubygem(%rb_default_ruby_abi:rspec) -# AutoYaST issue report -Requires: yast2 >= 4.3.2 +# Y2Firewall::Firewalld#modified_from_default +Requires: yast2 >= 4.3.17 Requires: yast2-ruby-bindings >= 1.0.0 # ButtonBox widget diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-firewall-4.3.1/src/lib/y2firewall/autoyast.rb new/yast2-firewall-4.3.2/src/lib/y2firewall/autoyast.rb --- old/yast2-firewall-4.3.1/src/lib/y2firewall/autoyast.rb 2020-05-29 15:06:39.000000000 +0200 +++ new/yast2-firewall-4.3.2/src/lib/y2firewall/autoyast.rb 2020-07-24 13:36:38.000000000 +0200 @@ -45,7 +45,7 @@ # Return a map with current firewalld settings. # # @return [Hash] dump firewalld settings - def export + def export(target: :default) return {} unless firewalld.installed? { @@ -53,12 +53,24 @@ "start_firewall" => firewalld.running?, "default_zone" => firewalld.default_zone, "log_denied_packets" => firewalld.log_denied_packets, - "zones" => firewalld.zones.map { |z| export_zone(z) } + "zones" => export_zones(target.to_s) } end private + def zones_to_export(target) + return firewalld.modified_from_default("zones") if target == "compact" + + firewalld.zones.map(&:name) + end + + def export_zones(target) + zones = zones_to_export(target) + + firewalld.zones.select { |z| zones.include?(z.name) }.map { |z| export_zone(z) } + end + def export_zone(zone) (zone.attributes + zone.relations) .each_with_object("name" => zone.name) do |field, profile| diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-firewall-4.3.1/src/lib/y2firewall/clients/auto.rb new/yast2-firewall-4.3.2/src/lib/y2firewall/clients/auto.rb --- old/yast2-firewall-4.3.1/src/lib/y2firewall/clients/auto.rb 2020-05-29 15:06:39.000000000 +0200 +++ new/yast2-firewall-4.3.2/src/lib/y2firewall/clients/auto.rb 2020-07-24 13:36:38.000000000 +0200 @@ -93,9 +93,11 @@ # Export the current firewalld configuration # + # @param target [Symbol] Control how much information should be exported + # (e.g., :default or :compact). # @return [Hash] with the current firewalld configuration - def export - autoyast.export + def export(target: :default) + autoyast.export(target: target) end # Reset the current firewalld configuration. @@ -123,6 +125,7 @@ # it again. def write return false if !firewalld.installed? + import_if_needed return false unless imported? diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-firewall-4.3.1/test/lib/y2firewall/autoyast_test.rb new/yast2-firewall-4.3.2/test/lib/y2firewall/autoyast_test.rb --- old/yast2-firewall-4.3.1/test/lib/y2firewall/autoyast_test.rb 2020-05-29 15:06:39.000000000 +0200 +++ new/yast2-firewall-4.3.2/test/lib/y2firewall/autoyast_test.rb 2020-07-24 13:36:38.000000000 +0200 @@ -86,6 +86,7 @@ allow(firewalld).to receive("running?").and_return true allow(firewalld).to receive("enabled?").and_return false allow(firewalld).to receive("installed?").and_return true + allow(firewalld).to receive(:modified_from_default).with("zones").and_return(["dmz"]) firewalld.read end @@ -109,6 +110,15 @@ config = subject.export expect { subject.import(config) }.to_not raise_error end + + context "when 'compact' export is wanted" do + it "exports only modified zones" do + config = subject.export(target: "compact") + + expect(config["zones"].size).to eq(1) + expect(config["zones"].first["name"]) == "dmz" + end + end end describe "#strategy_for" do
